主要内容

使用From文件块加载数据

这个示例展示了如何使用from file块从MAT文件加载模拟输入数据,包括如何创建和格式化输入数据。您可以通过编程方式创建加载的数据,加载从另一个模拟中记录的数据,或加载从传感器或实验室中收集的真实数据。您可以使用来自每个格式部分的代码作为模板,以了解如何格式化您自己的模拟输入数据。

检查模型

这个例子使用了一个简单的模型。两个From File块从两个不同的MAT文件加载数据,以创建连接到两个Outport块的信号。一个From File块加载标量信号的数据,只有文件名称参数从默认值更改。另一个From File块被配置为为总线加载数据。两个Dashboard Scope块显示每个From File块创建的输出信号。该模型还包含三个Callback Button块,您可以使用From File块支持的每种格式使用输入数据生成文件。万博1manbetx

模型使用PreLoadFcn回调函数:

  • 创建并保存timeseries文件中的数据inputData.mat

  • 在文件中创建并保存总线的输入数据busData.mat

  • 创建万博1manbetx仿真软件。公共汽车对象,该对象定义为为总线加载数据的From File块的输出数据类型。

在模拟模型之前,使用Callback Button块以所需格式创建数据。要创建数据,请单击以选择Callback Button块,然后再次单击以运行代码。您可以在块对话框或属性检查器中查看每个回调按钮块的代码。

创建时间和信号数据

中的From File块支持加载存储的数万博1manbetx据timeseries存储在数组中的对象和数据。使用From File块加载的数据必须包含与每个样本值对应的时间值。这个示例创建并加载代表正弦波的10秒数据。

首先,创建一个时间向量。当您使用From File块加载数据时,时间值的数据类型必须是,时间值必须单调增加。

sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);

使用本例中的表达式为输入信号创建均匀间隔的时间向量,特别是在建模离散输入信号时。MATLAB®支万博1manbetx持其他几种方法来创建均匀间隔的时间向量,但其他方法可能会在时间数据中引入双精度舍入误差,从而导致意外的仿真结果。

现在,用函数。使用From File块加载的示例值不能包含,或值。

data =罪(2 *π/ 3 *时间);

负载timeseries数据

万博1manbetxSimulink®加载和日志记录都是常用的timeseries对象来将时间序列数据输入或输出模拟。当您将数据保存到MAT文件中作为时间序列万博1manbetx对象时,From File块支持加载各种输入数据。你加载的信号值可以是:

  • 一种内置的数值数据类型一半int64,uint64;一种不超过32位字长的定点数据类型;或枚举数据类型。

  • 真实的或复杂的。

  • 标量、矢量或多维

将数据加载到timeseries对象,则必须保存timeseriesdata在Version 7.3 MAT文件中。To File块将数据保存到Version 7.3 MAT文件中。当您从使用To file块创建的文件加载数据时,您不需要转换文件的版本。

回调按钮块的代码创建要加载的timeseries数据的文件

  1. 将时间和信号数据创建为行向量。

  2. 将行向量转置为列向量,以创建timeseries对象的标量数据值。

  3. 创建一个timeseries对象以包含数据。

  4. 保存timeseries对象在Version 7.3 MAT文件中。

sampleTime = 0.01;numSteps = 1001;时间= sampleTime * [0:(numSteps-1)];data =罪(2 *π/ 3 *时间);时间= ';data =数据”;inputData = timeseries(数据、时间);保存(“inputData.mat”“inputData”“-v7.3”);

加载timeseries数据,您可以运行代码来创建inputData.mat文件使用MATLAB命令窗口或选择,然后单击创建要加载的timeseries数据的文件回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

数组数据加载

可以使用From File块加载格式化为数组的标量或矢量信号数据,其中第一行包含时间数据,后续行包含示例值。当您使用From File块加载数组数据时,示例值必须是真实的和.From File块可以从任何MAT文件版本加载数组数据。

回调按钮块的代码创建文件与数组数据加载创建时间和信号数据,将行向量连接到一个数组中,并将该数组保存到Version 7 MAT文件中。

sampleTime = 0.01;numSteps = 1001;时间= sampleTime * [0:(numSteps-1)];data =罪(2 *π/ 3 *时间);inputData =(时间;数据);保存(“inputData.mat”“inputData”

要加载数组数据,可以运行代码来创建inputData.mat文件使用MATLAB命令窗口或选择,然后单击创建文件与数组数据加载回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

总线数据加载

From File块支持加载包含万博1manbetxtimeseries对象作为总线的输入数据。每一个timeseries对象可以包含从单个对象加载数据时支持的任何类型的数据万博1manbetxtimeseries对象。

使用From File块加载总线数据时,必须指定输出数据类型参数的万博1manbetx仿真软件。公共汽车对象,该对象定义总线。属性的层次结构和字段名称必须匹配包含总线数据的结构中的层次结构和字段名称公共汽车对象,该对象定义输出数据类型。

加载总线数据的From File块具有它的输出数据类型设置配置为总线:SinusoidBus.的PreLoadFcn的回调函数和代码创建带有要加载的总线数据的文件块都定义了SinusoidBus对象。

一个公共汽车对象定义总线层次结构以及总线中元素的属性,如名称和数据类型。的公共汽车对象定义了总线层次结构、总线中包含的信号的名称以及嵌套总线的数据类型。公共汽车,SinusoidBus,包含一个信号,余弦,并调用嵌套总线SineBus,它包含两个信号,正弦BigSine

elem (1) = 万博1manbetxSimulink.BusElement;elem(1)。Name =的正弦;elem (2) = 万博1manbetxSimulink.BusElement;elem(2)。Name =“BigSine”;SineBus = 万博1manbetxSimulink.Bus;SineBus。元素= elem;清晰的初步的;elem (1) = 万博1manbetxSimulink.BusElement;elem(1)。Name =“SineBus”;elem(1)。数据Type =“巴士:SineBus”;elem (2) = 万博1manbetxSimulink.BusElement;elem(2)。Name =的余弦;SinusoidBus = 万博1manbetxSimulink.Bus;SinusoidBus。元素= elem;

有关定义使用的总线的更多信息万博1manbetx仿真软件。公共汽车对象,看到用Simulink指定总线属性。万博1manbetx总线对象数据类型

创建要加载的总线数据块创建的结构为timeseries对象的层次结构和字段名称匹配的层次结构和元素名称SinusoidBus对象,并将结构保存到7.3 MAT文件中。

sampleTime = 0.01;numSteps = 1001;时间= sampleTime * [0:(numSteps-1)];时间= ';data =罪(2 *π/ 3 *时间);cosdata = cos(2 *π/ 3 *时间);ampdata = 2 *数据;busData。余弦= timeseries(cosdata,time); busData.SineBus.Sine = timeseries(data,time); busData.SineBus.BigSine = timeseries(ampdata,time); save(“busData.mat”“busData”“-v7.3”);

要加载总线数据,可以运行代码来创建busData.mat文件使用MATLAB命令窗口或选择,然后单击创建要加载的总线数据回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

当您使用From File块加载总线的输入数据时,您不需要为总线中的每个元素提供数据。要部分指定总线的输入数据,可以省略结构中相应的字段,或者将其值指定为[].当您为包含嵌套总线的总线部分指定数据时,可以将整个嵌套总线指定为[]和From File块为嵌套总线的所有元素提供基础值。

另请参阅

对象

功能

相关的话题