主要内容

使用From工作区块加载数据

这个示例展示了如何使用from workspace块创建和格式化数据以从基本工作区加载。若要使用From Workspace块加载数据,必须使用From Workspace块在基本、模型或掩码工作区中支持的格式创建或保存数据。万博1manbetx您可以通过编程方式创建加载的数据、加载记录在另一个模拟中的数据,或者加载从传感器或实验室收集的真实数据。您可以使用每个格式部分中的代码作为模板,以了解如何格式化自己的模拟输入数据。

检查模型

这个例子使用了一个简单的模型。两个From Workspace块从基本工作区加载数据,以创建连接到两个Outport块的信号。一个From Workspace块使用所有块设置的默认值,另一个配置为为总线加载数据。两个Dashboard Scope块显示由每个From Workspace块创建的输出信号。该模型还包含几个Callback Button块,您可以使用From workspace块支持的不同格式在基本工作区中生成数据。万博1manbetx

该模型使用PreLoadFcn回调函数:

  • 创建timeseries存储在变量中的数据思敏

  • 创建一个结构timeseries存储在变量中的对象busin

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

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

创建时间和信号数据

From Workspace块支持的万博1manbetx大多数数据格式基本上由时间值和信号值组成。您可以使用没有时间的结构格式化以只加载没有相应时间值的输入数据值,这在离散模拟中有时是必需的。(有关更多信息,请参见加载数据来测试离散算法)。此示例创建并加载表示正弦波的10秒时间和信号数据。

首先,创建一个时间向量。当您使用From Workspace块加载包含时间值的数据时,时间值的数据类型必须为,且时间值单调递增。

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

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

方法创建信号数据函数。

数据= sin(2*pi/3*time);

负载timeseries数据

万博1manbetxSimulink®加载和日志均常用timeseries对象将时间序列数据传入和传出模拟。回调按钮块的代码创建要加载的时间序列数据创建时间和信号数据,用它来创建一个timeseries对象,并将timeseries对象添加到加载变量思敏

sampleTime = 0.01;numSteps = 1001;time = sampleTime*(0:numSteps-1);时间=时间';数据= sin(2*pi/3*time);思明=时间序列(数据,时间);

加载timeseries数据,可以运行代码创建思敏加载变量在MATLAB命令窗口或选择然后单击创建要加载的时间序列数据回调按钮块。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

负载时间表数据

您还可以在MATLAB中存储时间序列数据时间表.顾名思义,数据被格式化为表。类加载数据时时间表,时间表必须仅在一列中包含单个信号的数据。

回调按钮块的代码创建要加载的时间表数据创建时间和信号数据,将数据格式化为时间表,并将时间表加载变量思敏.加载时间表使用From Workspace块,输入时间必须是a持续时间向量。这个例子创建了持续时间向量,,使用函数。

sampleTime = 0.01;numSteps = 1001;time = sampleTime*(0:numSteps-1);时间=时间';数据= sin(2*pi/3*time);Secs =秒(时间);Simin =时间表(秒,数据);

加载时间表数据,可以运行代码创建思敏加载变量在MATLAB命令窗口或选择然后单击创建要加载的时间表数据回调按钮块。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

负载结构数据

对象的结构支持为信号加载数据万博1manbetx结构结构随时间变化日志格式。属性匹配的数据结构随时间变化格式。的结构格式与结构随时间变化格式,除结构格式没有时间字段。

该结构有两个顶级字段,时间而且信号.方法记录数据时结构随时间变化格式,信号Field可以是一个结构数组,每个结构包含不同信号的数据。方法加载数据时结构随时间变化格式,信号字段只能包含一个具有单个信号数据的结构。的结构信号字段包含字段,且必须包含字段,当信号不是标量时。

回调按钮块的代码创建带有要加载的时间数据的结构创建时间和信号数据,并使用它构建具有所需字段和层次结构的结构。代码首先清除具有该名称的任何现有变量思敏它可以是具有与结构字段名称匹配的属性名的对象。

清晰的思敏;sampleTime = 0.01;numSteps = 1001;time = sampleTime*(0:numSteps-1);时间=时间';数据= sin(2*pi/3*time);思敏。时间= time; simin.signals.values = data;

要加载结构数据,可以运行代码来创建思敏加载变量在MATLAB命令窗口或选择然后单击创建要加载的结构数据回调按钮块。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

在为多维信号加载数据时,再添加一行代码来为其分配信号维度simin.signals.dimensions.当信号数据为标量时,将dimensions字段设置为1,如果你包括它的话。当每个信号值都是行向量时,可以将维数指定为n [1]或者是n,在那里n是行向量中元素的个数。当每个信号值为-通过|N|矩阵,指定dimensions字段值为(mn)

方法加载模拟输入数据而不加载时间数据时,请使用结构格式,该格式不包括时间字段并指定所需的采样率样品时间参数。有关更多信息,请参见加载数据来测试离散算法

负载阵列数据

可以使用From Workspace块加载格式化为数组的信号数据,其中数组的第一列包含时间数据,后续列包含信号数据。当以数组格式加载数据时,样本值必须是标量或向量。

回调按钮块的代码创建要加载的数组数据创建时间和信号数据,将两个行向量连接到一个数组中,并将该数组分配给思敏加载变量。

sampleTime = 0.01;numSteps = 1001;time = sampleTime*(0:numSteps-1);时间=时间';数据= sin(2*pi/3*time);思敏=[时间,数据];

要加载数组数据,可以运行代码来创建思敏加载变量在MATLAB命令窗口或选择然后单击创建要加载的数组数据回调按钮块。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

负载总线数据

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

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

加载总线数据的From Workspace块有它自己的输出数据类型设置为总线:SinusoidBus.的PreloadFcn函数的回调函数和创建要加载的总线数据回调按钮都定义SinusoidBus对象。

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

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

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

创建要加载的总线数据的结构timeseries类的层次结构和元素名称相匹配的层次结构和字段名称SinusoidBus对象。

sampleTime = 0.01;numSteps = 1001;time = sampleTime*(0:numSteps-1);时间=时间';数据= sin(2*pi/3*time);Cosdata = cos(2*pi/3*time);Ampdata = 2*data;清晰的busin;普杜拉。布辛余弦= timeseries(cosdata,time); busin.SineBus.Sine = timeseries(data,time); busin.SineBus.BigSine = timeseries(ampdata,time);

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

加载部分指定的总线数据

当您使用From Workspace块为总线加载输入数据时,您不需要为每个总线元素提供数据。若要部分指定总线的输入数据,可以省略结构中的相应字段或将其值指定为[]

创建要加载的部分指定总线数据的结构timeseries类的层次结构和元素名称相匹配的层次结构和字段名称SinusoidBus对象。对象的数据余弦总线的元素。

sampleTime = 0.01;numSteps = 1001;time = sampleTime*(0:numSteps-1);时间=时间';数据= sin(2*pi/3*time);Ampdata = 2*data;清晰的busin;普杜拉。布辛余弦= []; busin.SineBus.Sine = timeseries(data,time); busin.SineBus.BigSine = timeseries(ampdata,time);

要加载部分指定的总线数据,可以运行代码来创建busin加载变量在MATLAB命令窗口或选择然后单击创建要加载的部分指定总线数据回调按钮块。然后,模拟模型并在Dashboard Scope块上查看加载的数据。

当您为包含嵌套总线或嵌套总线数组的总线指定部分数据时,可以将整个嵌套总线或嵌套总线数组指定为[]From Workspace块为嵌套总线或总线数组的所有元素提供基础值。通过省略总线数组中包含的一个或多个总线的数据,还可以为总线数组部分指定数据。

装载总线数据阵列

当使用From Workspace块为总线数组加载数据时,必须指定输出数据类型参数为万博1manbetx仿真软件。公共汽车对象,该对象定义总线数组包含的总线。总线数组中的所有总线必须由相同的总线定义万博1manbetx仿真软件。公共汽车对象。为总线数组加载数据的From Workspace块有它的输出数据类型设置为总线:SinusoidBus.属性的定义公共汽车对象,参见负载总线数据。

创建要加载的总线数据数组回调按钮块创建一个包含两个结构的数组timeseries对象的层次结构和字段名称匹配的层次结构和元素名称SinusoidBus对象。第二种结构,bus2,使用与第一个相同的数据,向下移位1所以你可以在仪表板范围块上看到所有六个信号。

sampleTime = 0.01;numSteps = 1001;time = sampleTime*(0:numSteps-1);时间=时间';数据= sin(2*pi/3*time);Cosdata = cos(2*pi/3*time);Ampdata = 2*data;bus1。cos =时间序列(cosdata,时间);bus1.SineBus。正弦 = timeseries(data,time); bus1.SineBus.BigSine = timeseries(ampdata,time); bus2.Cosine = timeseries((cosdata-1),time); bus2.SineBus.Sine = timeseries((data-1),time); bus2.SineBus.BigSine = timeseries((ampdata-1),time); busin = [bus1,bus2];

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

另请参阅

对象

相关的话题