访问信号数据和元数据
一个万博1manbetxsimulink.sdi.signal
对象包含有关信号的数据和元数据仿真数据检查器。您可以使用信号
对象属性检查信号元数据,在时间图上可视化信号,并使用该信号进行比较万博1manbetxsimulink.sdi.comparesignals
功能。
一个万博1manbetxsimulink.sdi.signal
为您在模型仿真中登录的每个信号创建对象,或将其导入到仿真数据检查器中。您可以访问信号
模拟数据检查器中的对象几种方式。通常,访问信号
对象,您首先需要获得万博1manbetxsimulink.sdi.run
包含信号的对象。
这万博1manbetxsimulink.sdi.getSignal
功能返回a信号
对应于您提供的信号ID的对象。
这getignal
函数返回信号
对象具有指定的指定信号ID跑
目的。
这getSignalByIndex
函数返回信号
指定索引的对象跑
目的。
ID
-信号标识符此属性仅阅读。
识别信号的唯一数字,返回为整数。仿真数据检查器为每个运行和信号分配一个唯一的数字ID。
runid
-运行标识符此属性仅阅读。
运行标识符包含信号的运行,以整数返回。仿真数据检查器为每个运行和信号分配一个唯一的数字ID。
姓名
-信号名称信号的名称,指定为字符向量或字符串。当。。。的时候信号
对象包含从仿真记录的数据,该名称匹配模型中信号指定的名称。如果模型未指定名称,则信号名称是产生信号的块的块路径。
例子:'汽油'
领域
-信号类型“信号”
|“出口”
|'状态'
|“数据存储内存”
|'参数'
|...信号类型,指定为以下选项之一:
“信号”
- 信号记录数据。
“出口”
- 输出记录数据。
'状态'
- 状态记录数据。
“数据存储内存”
- 数据存储存储器记录数据。
“参数”
- 记录的参数数据。
“状态流”
- 状态流®数据。
“ simscape'
- SIMSCAPE™数据。
“评估”
-万博1manbetx®Test™评估数据。
“分析”
- 执行分析数据。
这领域
属性是空的,用于未通过记录模拟数据创建的数据。
描述
-信号描述''
(默认)|角色向量|细绳信号的描述,指定为字符向量或字符串。您可以使用描述
属性以注释信号或识别超出该信号的信号内容姓名
。当您将SIMSCAPE数据记录到仿真数据检查器时,描述
每个节点自动填充属性。
存储的单位
-Units of signal data stored on disk此属性仅阅读。
存储在磁盘上的信号数据的单位,指定为字符向量或字符串。对于通过模拟模型产生的信号,存储的单元信号
目的s use the units specified in the model. When you specify display units for a signal without units, the same units are used to set the stored units. To analyze a signal alongside another that uses different units, modify the display units for the signal. The Simulation Data Inspector performs the conversion to plot the data using the display units.
您可以使用该信号转换存储的单元转换
功能。存储的单元转换不支持撤消,可能会导致精确损失。万博1manbetx
例子:'g/s'
显示单元
-用于在仿真数据检查器中显示信号数据的单元用于在仿真数据检查器中显示信号数据的单元,指定为字符向量或字符串。信号的显示单元可能与反映存储在磁盘上的数据的存储单元不同。修改信号显示单元以分析模拟数据检查器中的数据。仿真数据检查器中的单位偏好可能会更改已记录和导入信号数据的显示单元。有关更多信息,请参阅信号显示单元。
例子:'小姐'
数据类型
-信号数据的数据类型此属性仅阅读。
信号数据的数据类型,作为字符向量或字符串返回。
例子:'双倍的'
复杂
-信号数据的复杂性“真实的”
|“复杂的”
此属性仅阅读。
信号数据的复杂性,返回为“真实的”
或者“复杂的”
。
例子:“真实的”
采样时间
-信号样本时间此属性仅阅读。
信号样本时间,作为字符矢量或标量返回。一个值'连续的'
指示可变阶段的仿真。
例子:'连续的'
例子:'0.1'
模型
-产生信号的模型名称此属性仅阅读。
产生信号的模型的名称,作为字符向量返回。这模型
属性是空的信号
包含未通过模拟模型产生的数据的对象。
例子:'sldemo_fuelsys'
区块路
-产生信号的块路径此属性仅阅读。
产生信号的块的块路径,作为字符阵列返回。这区块路
属性是不包括模型层次结构的相对路径。这区块路
属性是空的信号
包含未通过模拟模型产生的数据的对象。
例子:'sldemo_fuelsys/发动机气体动力学'
FullBlockPath
-产生信号的块的完整块路径此属性仅阅读。
产生信号的块的完整块路径,包括完整的模型层次结构,作为字符向量返回。对于参考模型中的信号,FullBlockPath
是包含完整路径的单元格数组。对于其他信号,FullBlockPath
与区块路
。这FullBlockPath
属性是空的信号
包含未通过模拟模型产生的数据的对象。
BlockName
-产生信号的块的名称此属性仅阅读。
产生信号的块的名称,作为字符向量返回。这BlockName
属性是空的信号
包含未通过模拟模型产生的数据的对象。
例子:“发动机气体动力学”
PortIndex
-块端口索引此属性仅阅读。
输出端口的索引连接到产生信号的块上的信号。这PortIndex
属性是空的信号
包含未通过模拟模型产生的数据的对象。
例子:1
方面
-信号尺寸此属性仅阅读。
信号尺寸,作为整数或整数阵列返回。
例子:[1 2]
渠道
-矩阵中的信号索引此属性仅阅读。
矩阵中信号的索引,作为整数数组返回。
数字
-信号中的样品数量此属性仅阅读。
信号中的样品数量,作为整数返回。
值
-信号值时间序列
|结构体Time and data values for the signal, returned as a时间序列
非BUS信号或结构与总线层次结构匹配的对象。
Rootsource
-包含导入信号的高级结构此属性仅阅读。
包含信号的高级结构的名称,作为字符向量返回。这Rootsource
属性仅具有导入信号的值。
例子:当您导入万博1manbetxsimulink.simulationOutput
目的模拟
包含结构xout
, 这Rootsource
是'simout.get('xout')'
时间仪
-导入信号时间数据的来源此属性仅阅读。
信号时间数据的路径,返回为字符向量。这时间仪
属性仅具有导入信号的值。
例子:当您导入万博1manbetxsimulink.simulationOutput
目的模拟
包含结构xout
, 这时间仪
是'simout.get('xout')。时间'
数据源
-导入信号数据的来源此属性仅阅读。
通往信号样本值的路径,返回为字符阵列。这数据源
属性仅具有导入信号的值。
例子:当您导入万博1manbetxsimulink.simulationOutput
目的模拟
包含结构xout
, 这数据源
是'simout.get('xout')。信号(1).values'
孩子们
-复合信号包含的信号万博1manbetxsimulink.sdi.signal
向量此属性仅阅读。
复合信号包含的信号,返回为万博1manbetxsimulink.sdi.signal
对象。这孩子们
标量信号的属性为空。
复杂形式
-显示复杂信号的格式“真实疑问”
|“震级”
|“大小相”
|“阶段”
复杂格式用于在仿真数据检查器中显示复杂的信号数据,指定为以下值之一。您可以修改复杂形式
属性信号
当对象包含复杂信号的数据时,对象更改仿真数据检查器如何显示信号数据。
“真实疑问”
- 当您绘制信号时,信号的真实和虚构组件一起显示。信号的假想组件用不同的阴影绘制线颜色。
“震级”
- 当您绘制信号时,信号的大小会显示。
“大小相”
- 当您绘制信号时,信号的大小和相位一起显示。
“阶段”
- 当您绘制信号时,信号的阶段会显示。该阶段用不同的阴影绘制线颜色。
数据类型:char
|细绳
检查
-是否绘制信号0
或者错误的
(默认)|1
或者真的
是否绘制信号,指定为逻辑值。环境检查
至错误的
清除所有子图的信号。环境检查
至真的
plots the signal on the active subplot.
数据类型:逻辑
LineColor
-信号线颜色1
-经过-3
向量图中信号的颜色,指定为1
-经过-3
RGB矢量具有值0
和1
。
例子:[0 0.5 0.5]
数据类型:双倍的
排队
-信号线样式' - '
|' - '
|':'
|' - 。'
在模拟数据检查器中绘制信号时使用的信号线样式,指定为以下选项之一:
' - '
- 坚硬的
' - '
- 虚线
':'
- 点缀
' - 。'
- 破折号
行宽
-信号线宽度1
(默认)|之间的整数1
和20
信号线宽度在仿真数据检查器中绘制的信号时使用的信号线宽度,指定为1
和20
, 包括的。
插管
-插值法“线性”
(默认)|'zoh'
|'没有任何'
Abstol
-绝对宽容0
(默认)|标量在信号比较中使用的绝对耐受性,指定为正值标量。
仿真数据检查器使用基线信号信号特性中指定的公差超级球尔托尔
属性设置为1
或者真的
。有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据。
例子:0.1
数据类型:双倍的
Reltol
-相对耐受性0
(默认)|标量在信号比较中使用的相对耐受性,指定为正值标量。相对公差表示为分数乘数。例如,0.1
指定10%的公差。
仿真数据检查器使用基线信号信号特性中指定的公差超级球尔托尔
属性设置为1
或者真的
。有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据。
例子:0.05
数据类型:双倍的
时间表
-时间公差0
(默认)|标量信号比较中使用的信号的时间公差,指定为正值标量。在几秒钟内指定时间公差。
仿真数据检查器使用基线信号信号特性中指定的公差超级球尔托尔
属性设置为1
或者真的
。有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据。
例子:0.1
数据类型:双倍的
超级球尔托尔
-比较是否使用信号公差0
或者错误的
(默认)|1
或者真的
比较是否使用信号公差值,而不是指定为逻辑值的全局公差值。设置超级球尔托尔
财产为1
或者真的
使用在信号
对象属性。将属性设置为0
或者错误的
使用全球公差值。
有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据。
数据类型:逻辑
SyncMethod
-同步法'联盟'
(默认)|'路口'
用于在比较中同步信号的方法,指定为'联盟'
或者'路口'
。有关同步选项的更多信息,请参阅模拟数据检查器如何比较数据。
转换 |
转换单位万博1manbetxsimulink.sdi.signal 目的 |
出口 |
出口万博1manbetxsimulink.sdi.signal 目的是工作空间或文件 |
getastall |
创建高大的时间表万博1manbetxsimulink.sdi.signal 目的 |
Plotonsubplot |
阴谋万博1manbetxsimulink.sdi.signal 模拟数据检查器子图上的对象 |
您可以通过编程方式指定使用仿真数据检查器执行的比较中使用的信号公差值。在此示例中,您通过模拟飞机纵向飞行控制系统的模型来比较收集的数据。每个仿真都为输入过滤器时间常数使用不同的值,并记录输入和输出信号。您通过使用仿真数据检查器和信号公差进行比较结果来分析时间常数变化的效果。
首先,加载包含仿真数据的会话文件。
万博1manbetxsimulink.sdi.load('aircraftExample.mldatx');
会话文件包含四个运行。在此示例中,您比较文件中前两个运行的数据。访问万博1manbetxsimulink.sdi.run
从文件加载的前两个运行的对象。
runids = 万博1manbetxsimulink.sdi.getAllrunids;runidts1 = runids(end-3);runidts2 = runids(end-2);
现在,在没有指定任何公差的情况下比较这两个运行。
notoldiffresult = 万博1manbetxsimulink.sdi.compareruns(runidts1,runidts2);
使用GetResultByIndex
访问比较结果的功能问
和α
信号。
qresult = getResultByIndex(NodoldiffResult,1);Alpharesult = GetResultByIndex(NodoldiffResult,2);
检查地位
每个信号的结果是否将n result fell within our out of tolerance.
qresult.status
ans =比较枚举枚举
alpharesult.status
ans =比较枚举枚举
比较使用的值0
对于所有公差,所以外观
结果意味着信号是不一样的。
您可以通过指定信号的公差值进一步分析时间常数的效果。通过设置属性来指定公差万博1manbetxsimulink.sdi.signal
与要比较的信号相对应的对象。比较使用为基线信号指定的公差。此示例指定了时间公差和绝对耐受性。
要指定公差,请首先访问信号
基线运行的对象。
runts1 = 万博1manbetxsimulink.sdi.getRun(runidts1);qsig = getsignalsbyname(runts1,'q,rad/sec');alphasig = getsignalsbyname(runts1,'alpha,rad');
指定绝对的公差0.1
和时间的宽容0.6
为了问
使用Abstol
和时间表
特性。
qsig.abstol = 0.1;Qsig.timetol = 0.6;
指定绝对的公差0.2
和时间的宽容0.8
为了α
信号。
Alphasig.Abstol = 0.2;alphasig.timetol = 0.8;
再次比较结果。访问比较的结果,并检查地位
每个信号的属性。
telliffresult = 万博1manbetxsimulink.sdi.compareruns(runidts1,runidts2);qresult2 = getResultbyIndex(telliffresult,1);alpharesult2 = getResultbyIndex(telliffresult,2);qresult2.status
ANS =比较枚举枚举与智力
alpharesult2.status
ANS =比较枚举枚举与智力
此示例显示了如何获得万博1manbetxsimulink.sdi.signal
对象并使用仿真数据检查器编程接口修改其属性。
在模拟数据检查器中创建数据
当您模拟一个记录数据的模型时,将在模拟数据检查器中创建运行以包含已记录的数据。您还可以通过导入数据来在模拟数据检查器中创建运行。此示例模拟SlexaircraftExample
模型并记录数据数据集
格式。
simout = sim(“ slexaircraftExample”,,,,“ saveformat',,,,“数据集”);
得到万博1manbetxsimulink.sdi.signal
目的
程序模拟返回工作区变量中的已记录数据模拟
。您可以访问该变量中的记录数据。但是,要使用仿真数据检查器编程接口,您需要访问已记录的数据万博1manbetxsimulink.sdi.run
和万博1manbetxsimulink.sdi.signal
对象。
首先,使用万博1manbetxsimulink.sdi.getCurrentsImulationRun
得到跑
模拟时创建的对象SlexaircraftExample
模型。
aircraftrun = 万博1manbetxsimulink.sdi.getCurrentsImulationRun(“ slexaircraftExample”);
您可以使用getallsignals
访问的功能信号
运行中所有信号的对象。从返回的阵列信号
对象,选择第一个信号。
信号= getAllSignals(aircraftrun);sig =信号(1);
修改信号属性
这万博1manbetxsimulink.sdi.signal
对象的属性可以指定用于比较和可视化信号的选项。为信号指定线样式和颜色。然后,使用万博1manbetxsimulink.sdi.setsubplotlayout
配置仿真数据检查器以显示一个子图,并使用Plotonsubplot
绘制信号的功能。
sig.linecolor = [1 0.4 0.6];sig.linedashed =' - '; Simulink.sdi.setSubPlotLayout(1,1) plotOnSubPlot(sig,1,1,true)
使用万博1manbetxsimulink.sdi.view
功能以打开仿真数据检查器并查看绘制的信号。
您可以使用仿真数据检查器编程接口来比较单个运行中的信号。此示例比较了飞机纵向控制器的输入和输出信号。
首先,加载包含数据的会话。
万博1manbetxsimulink.sdi.load('aircraftExample.mldatx');
使用万博1manbetxsimulink.sdi.run.getlatest
访问数据中最新运行的功能。
aircraftrun = 万博1manbetxsimulink.sdi.run.getlatest;
然后,您可以使用万博1manbetxsimulink.sdi.getSignalsByname
访问的功能戳
信号,代表控制器的输入,阿尔法,rad
代表输出的信号。
stick = getsignalsbyname(aircraftrun,'戳');alpha = getsignalsByname(aircraftrun,'alpha,rad');
在比较信号之前,您可以指定用于比较的公差值。比较使用比较中为基线信号指定的公差值,因此将绝对公差值设置为0.1
在戳
信号。
Stick.Abstol = 0.1;
现在,使用万博1manbetxsimulink.sdi.comparesignals
功能。这戳
信号是基线,阿尔法,rad
信号是与基线进行比较的信号。
比较results = simulink万博1manbetx.sdi.comparesignals(stick.id,alpha.id);匹配= comparionresults.status
匹配=比较枚举枚举
比较结果不可能。您可以使用万博1manbetxsimulink.sdi.view
功能以打开仿真数据检查器以查看和分析比较结果。
此示例演示了如何访问万博1manbetxsimulink.sdi.run
通过记录信号创建的模拟数据检查器运行的对象。来自万博1manbetxsimulink.sdi.run
您可以得到的对象万博1manbetxsimulink.sdi.signal
包含已记录信号数据和元数据的对象。您可以使用信号
对象和Plotonsubplot
功能以绘制仿真数据检查器中的数据。
创建模拟运行并访问跑
目的
这EX_VDP
型号记录两个信号。要创建包含已记录数据的模拟运行,请模拟模型。
sim('ex_vdp');
仿真数据检查器通过为通过仿真,导入数据或打开会话创建的每个运行分配唯一的数字运行ID来跟踪运行。要访问您刚执行的模拟的运行对象,请使用万博1manbetxsimulink.sdi.getAllrunids
功能并在返回的向量中获取最后一个运行ID。
runids = 万博1manbetxsimulink.sdi.getAllrunids;runid = runids(end);
一旦拥有运行的运行ID,您可以使用万博1manbetxsimulink.sdi.getrun
功能以获取万博1manbetxsimulink.sdi.run
对应于运行的对象。您可以使用跑
对象检查与运行相关联的元数据,包括运行中的信号数。
vdprun = 万博1manbetxsimulink.sdi.getrun(runid);vdprun.signalcount
ans =INT322
使用信号
对象
使用getSignalByIndex
访问信号的功能跑
目的,燃油运输
。
signal1 = getSignalByIndex(vdprun,1);signal2 = getsignalbyIndex(vdprun,2);
使用万博1manbetxsimulink.sdi.setsubplotlayout
函数以指定3 by-1布局。
万博1manbetxsimulink.sdi.setsubplotlayout(2,1)
绘制数据之前,请使用万博1manbetxsimulink.sdi.clearallsubplots
功能以清除已经绘制的任何数据。
万博1manbetxsimulink.sdi.clearallsubplots
在每个子图上绘制一个信号。要在第一个子图上绘制信号,您可以设置检查
信号的属性。要在第一个子图以外的子图上绘制信号,请使用Plotonsubplot
功能。
signal1.checked = true;PlotonSubplot(Signal2,2,1,true);
查看绘制的数据
要查看您刚创建的图,请使用万博1manbetxsimulink.sdi.view
功能。
万博1manbetxsimulink.sdi.getSignal
|万博1manbetxsimulink.sdi.createrun
|getSignalByIndex
|getsignalidbyIndex
|getignal
您单击了与此MATLAB命令相对应的链接:
通过在MATLAB命令窗口中输入该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您还可以从以下列表中选择一个网站:
选择中国网站(中文或英语)以获得最佳场地性能。其他Mathworks乡村网站未针对您所在的访问进行优化。