使用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块上查看加载的数据。