这个示例展示了如何使用from workspace块创建和格式化要从基本工作空间加载的数据。要使用From Workspace块加载数据,必须使用From Workspace块在基础、模型或掩码工作区中支持的格式创建或保存数据。金宝app您可以通过编程方式创建加载的数据,加载另一个模拟中记录的数据,或者加载从传感器或实验室中收集的真实数据。您可以使用来自每个格式部分的代码作为模板,以了解如何格式化您自己的模拟输入数据。
这个例子使用了一个简单的模型。两个From Workspace块从基本工作区加载数据,以创建连接到两个Outport块的信号。一个From Workspace块对所有块设置使用默认值,另一个被配置为加载总线的数据。两个Dashboard Scope块显示每个From Workspace块创建的输出信号。该模型还包含几个Callback Button块,您可以使用From workspace块支持的不同格式在基本工作区中生成数据。金宝app
模型使用PreLoadFcn
回调函数:
创建timeseries
存储在变量中的数据思敏
.
创建一个结构timeseries
对象存储在变量中busin
.
创建金宝app仿真软件。公共汽车
对象,该对象定义从工作区块的输出数据类型,该块为总线加载数据。
在模拟模型之前,使用Callback Button块以所需格式创建数据。要创建数据,请单击以选择Callback Button块,然后再次单击以运行代码。您可以在块对话框或属性检查器中查看每个回调按钮块的代码。
From Workspace块支持的金宝app大多数数据格式基本上由时间值与信号值配对组成。你可以使用结构没有时间
格式只加载输入数据值而不加载相应的时间值,这在离散模拟中有时是必需的。(有关更多信息,请参见加载数据以测试离散算法.)这个示例创建并加载代表正弦波的10秒时间和信号数据。
首先,创建一个时间向量。当您使用From Workspace块加载包含时间值的数据时,时间值的数据类型必须为双
,时间值必须单调增加。
sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);时间= ';
使用本例中的表达式为输入信号创建均匀间隔的时间向量,特别是在建模离散输入信号时。MATLAB®支金宝app持其他几种方法来创建均匀间隔的时间向量,但其他方法可能会在时间数据中引入双精度舍入误差,从而导致意外的仿真结果。
现在,用罪
函数。
data =罪(2 *π/ 3 *时间);
timeseries
数据金宝appSimulink®加载和日志记录都是常用的timeseries
对象来将时间序列数据输入或输出模拟。回调按钮块的代码创建要加载的时间序列数据
创建时间和信号数据,使用它创建一个timeseries
对象,并赋值timeseries
对象指向加载变量思敏
.
sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);时间= ';data =罪(2 *π/ 3 *时间);思敏= timeseries(数据、时间);
加载timeseries
数据,您可以运行代码来创建思敏
加载变量在MATLAB命令窗口或选择,然后单击创建要加载的时间序列数据
回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。
时间表
数据您还可以在MATLAB中存储时间序列数据时间表
.顾名思义,数据被格式化为表。当您使用时间表
,时间表
对于单个信号,只能在一列中包含数据。
回调按钮块的代码创建要加载的时间表数据
创建时间和信号数据,将数据格式化为时间表
,并将时间表
到加载变量思敏
.创建一个时间表
,输入时间必须为datetime
或持续时间
向量。这个例子创建了持续时间向量,秒
,使用秒
函数。
sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);时间= ';data =罪(2 *π/ 3 *时间);秒=秒(时间);思敏=时间表(秒、数据);
加载时间表
数据,您可以运行代码来创建思敏
加载变量在MATLAB命令窗口或选择,然后单击创建要加载的时间表数据
回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。
的结构支持为信号加载数据金宝app结构
或结构随着时间的推移
日志格式。这个示例展示了如何创建与结构随着时间的推移
格式。的结构
格式与结构随着时间的推移
格式,除了结构
格式没有时间
字段。
该结构有两个顶级字段,时间
和信号
.方法记录数据时结构随着时间的推移
格式,信号
字段可以是结构的数组,每个结构包含不同信号的数据。的加载数据时结构随着时间的推移
格式,信号
字段只能包含一个带有单个信号数据的结构。它的结构信号
字段包含一个值
字段,且必须包含维
当信号不是标量时的场。
回调按钮块的代码创建带有加载时间数据的结构
创建时间和信号数据,并使用它构建具有所需字段和层次结构的结构。代码首先清除所有具有该名称的现有变量思敏
它可以是一个具有与结构字段名称匹配的属性名称的对象。
清晰的思敏;sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);时间= ';data =罪(2 *π/ 3 *时间);思敏。时间= time; simin.signals.values = data;
要加载结构数据,可以运行代码来创建思敏
加载变量在MATLAB命令窗口或选择,然后单击创建要加载的结构数据
回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。
加载多维信号的数据时,再添加一行代码以分配信号维度simin.signals.dimensions
.当信号数据为标量时,将维度字段设置为1
,如果你把它包括在内的话。当每个信号值都是行向量时,可以将维数指定为n [1]
或者是n
,在那里n
为行向量中元素的个数。当每个信号值为米
-通过|N|矩阵,指定维度字段值为(mn)
.
当您希望加载没有时间数据的模拟输入数据时,请使用结构
格式,其中不包括时间
字段,并使用样品时间参数。有关更多信息,请参见加载数据以测试离散算法.
可以使用From Workspace块加载格式化为数组的信号数据,其中数组的第一列包含时间数据,随后的列包含信号数据。当以数组格式加载数据时,样本值必须是标量或向量。
回调按钮块的代码创建要加载的数组数据
创建时间和信号数据,将两个行向量连接到一个数组中,并将该数组赋给思敏
加载变量。
sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);时间= ';data =罪(2 *π/ 3 *时间);思敏=(时间、数据);
要加载数组数据,可以运行代码来创建思敏
加载变量在MATLAB命令窗口或选择,然后单击创建要加载的数组数据
回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。
From Workspace块支持加载包含金宝apptimeseries
对象或时间表作为总线的输入数据。每一个timeseries
对象或时间表可以包含任何类型的数据支持时,从单一金宝apptimeseries
对象或时间表。
使用From Workspace块加载总线的输入数据时,必须指定输出数据类型设置为金宝app仿真软件。公共汽车
对象,该对象定义总线。属性的层次结构和字段名称必须匹配包含总线数据的结构中的层次结构和字段名称公共汽车
对象,该对象定义输出数据类型。
加载总线数据的From Workspace块具有它的输出数据类型设置配置为总线:SinusoidBus
.的PreloadFcn
的回调函数和代码创建要加载的总线数据
回调按钮都定义SinusoidBus
对象。
一个公共汽车
对象定义总线层次结构以及总线中元素的属性,如名称和数据类型。的公共汽车
对象定义了总线层次结构、总线中包含的信号的名称以及嵌套总线的数据类型。公共汽车,SinusoidBus
,包含一个信号,余弦
,并调用嵌套总线SineBus
,它包含两个信号,正弦
和BigSine
.
elem (1) = 金宝appSimulink.BusElement;elem(1)。Name =的正弦;elem (2) = 金宝appSimulink.BusElement;elem(2)。Name =“BigSine”;SineBus = 金宝appSimulink.Bus;SineBus。元素= elem;清晰的初步的;elem (1) = 金宝appSimulink.BusElement;elem(1)。Name =“SineBus”;elem(1)。数据Type =“巴士:SineBus”;elem (2) = 金宝appSimulink.BusElement;elem(2)。Name =的余弦;SinusoidBus = 金宝appSimulink.Bus;SinusoidBus。元素= elem;
有关定义使用的总线的更多信息金宝app仿真软件。公共汽车
对象,看到用Simulink指定总线属性。金宝app总线对象数据类型.
的创建要加载的总线数据
块创建的结构为timeseries
对象的层次结构和字段名称匹配的层次结构和元素名称SinusoidBus
对象。
sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);时间= ';data =罪(2 *π/ 3 *时间);cosdata = cos(2 *π/ 3 *时间);ampdata = 2 *数据;清晰的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;时间= sampleTime * (0: numSteps-1);时间= ';data =罪(2 *π/ 3 *时间);ampdata = 2 *数据;清晰的busin;普杜拉。布辛余弦= []; busin.SineBus.Sine = timeseries(data,time); busin.SineBus.BigSine = timeseries(ampdata,time);
要加载部分指定的总线数据,可以运行代码来创建busin
加载变量在MATLAB命令窗口或选择,然后单击创建要加载的部分指定的总线数据
回调按钮。然后,模拟模型并在Dashboard Scope块上查看加载的数据。
当您为包含嵌套总线或嵌套总线数组的总线部分指定数据时,可以将整个嵌套总线或嵌套总线数组指定为[]
From Workspace块为嵌套总线或总线数组的所有元素提供基值。还可以通过省略总线数组中包含的一个或多个总线的数据来部分指定总线数组的数据。
使用From Workspace块加载总线数组的数据时,必须指定输出数据类型参数的金宝app仿真软件。公共汽车
对象,该对象定义总线数组所包含的总线。总线数组中的所有总线必须由相同的金宝app仿真软件。公共汽车
对象。从工作区块为总线数组加载数据输出数据类型设置为总线:SinusoidBus
.的详细信息公共汽车
对象,请参见加载总线数据。
的创建要加载的总线数据数组
块创建一个数组,该数组包含两个结构timeseries
对象的层次结构和字段名称匹配的层次结构和元素名称SinusoidBus
对象。第二个结构,bus2
,使用与第一个相同的数据,向下移动1
这样你就可以在Dashboard Scope块上看到所有6个信号。
sampleTime = 0.01;numSteps = 1001;时间= sampleTime * (0: numSteps-1);时间= ';data =罪(2 *π/ 3 *时间);cosdata = cos(2 *π/ 3 *时间);ampdata = 2 *数据;bus1。cos = timeseries (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块上查看加载的数据。