主要内容

万博1manbetxsimulink.sdi.signal

访问信号数据和元数据

描述

一个万博1manbetxsimulink.sdi.signal对象包含有关信号的数据和元数据仿真数据检查器。您可以使用信号对象属性检查信号元数据,在时间图上可视化信号,并使用该信号进行比较万博1manbetxsimulink.sdi.comparesignals功能。

创建

一个万博1manbetxsimulink.sdi.signal为您在模型仿真中登录的每个信号创建对象,或将其导入到仿真数据检查器中。您可以访问信号模拟数据检查器中的对象几种方式。通常,访问信号对象,您首先需要获得万博1manbetxsimulink.sdi.run包含信号的对象。

特性

展开全部

信号属性

此属性仅阅读。

识别信号的唯一数字,返回为整数。仿真数据检查器为每个运行和信号分配一个唯一的数字ID。

此属性仅阅读。

运行标识符包含信号的运行,以整数返回。仿真数据检查器为每个运行和信号分配一个唯一的数字ID。

信号的名称,指定为字符向量或字符串。当。。。的时候信号对象包含从仿真记录的数据,该名称匹配模型中信号指定的名称。如果模型未指定名称,则信号名称是产生信号的块的块路径。

例子:'汽油'

信号类型,指定为以下选项之一:

  • “信号”- 信号记录数据。

  • “出口”- 输出记录数据。

  • '状态'- 状态记录数据。

  • “数据存储内存”- 数据存储存储器记录数据。

  • “参数”- 记录的参数数据。

  • “状态流”- 状态流®数据。

  • “ simscape'- SIMSCAPE™数据。

  • “评估”-万博1manbetx®Test™评估数据。

  • “分析”- 执行分析数据。

领域属性是空的,用于未通过记录模拟数据创建的数据。

信号的描述,指定为字符向量或字符串。您可以使用描述属性以注释信号或识别超出该信号的信号内容姓名。当您将SIMSCAPE数据记录到仿真数据检查器时,描述每个节点自动填充属性。

此属性仅阅读。

存储在磁盘上的信号数据的单位,指定为字符向量或字符串。对于通过模拟模型产生的信号,存储的单元信号目的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属性是空的信号包含未通过模拟模型产生的数据的对象。

此属性仅阅读。

产生信号的块的名称,作为字符向量返回。这BlockName属性是空的信号包含未通过模拟模型产生的数据的对象。

例子:“发动机气体动力学”

此属性仅阅读。

输出端口的索引连接到产生信号的块上的信号。这PortIndex属性是空的信号包含未通过模拟模型产生的数据的对象。

例子:1

此属性仅阅读。

信号尺寸,作为整数或整数阵列返回。

例子:[1 2]

此属性仅阅读。

矩阵中信号的索引,作为整数数组返回。

此属性仅阅读。

信号中的样品数量,作为整数返回。

Time and data values for the signal, returned as a时间序列非BUS信号或结构与总线层次结构匹配的对象。

此属性仅阅读。

包含信号的高级结构的名称,作为字符向量返回。这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对象。这孩子们标量信号的属性为空。

可视化属性

复杂格式用于在仿真数据检查器中显示复杂的信号数据,指定为以下值之一。您可以修改复杂形式属性信号当对象包含复杂信号的数据时,对象更改仿真数据检查器如何显示信号数据。

  • “真实疑问”- 当您绘制信号时,信号的真实和虚构组件一起显示。信号的假想组件用不同的阴影绘制线颜色

  • “震级”- 当您绘制信号时,信号的大小会显示。

  • “大小相”- 当您绘制信号时,信号的大小和相位一起显示。

  • “阶段”- 当您绘制信号时,信号的阶段会显示。该阶段用不同的阴影绘制线颜色

数据类型:char|细绳

是否绘制信号,指定为逻辑值。环境检查错误的清除所有子图的信号。环境检查真的plots the signal on the active subplot.

数据类型:逻辑

图中信号的颜色,指定为1-经过-3RGB矢量具有值01

例子:[0 0.5 0.5]

数据类型:双倍的

在模拟数据检查器中绘制信号时使用的信号线样式,指定为以下选项之一:

  • ' - '- 坚硬的

  • ' - '- 虚线

  • ':'- 点缀

  • ' - 。'- 破折号

信号线宽度在仿真数据检查器中绘制的信号时使用的信号线宽度,指定为120, 包括的。

数据可视化和比较的同步步骤中使用的插值方法,指定为以下值之一:

  • 'zoh'- 零级保持插值

  • “线性”- 线性插值

  • '没有任何'- 没有插值

有关插值选项的更多信息,请参阅模拟数据检查器如何比较数据

比较属性

在信号比较中使用的绝对耐受性,指定为正值标量。

仿真数据检查器使用基线信号信号特性中指定的公差超级球尔托尔属性设置为1或者真的。有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据

例子:0.1

数据类型:双倍的

在信号比较中使用的相对耐受性,指定为正值标量。相对公差表示为分数乘数。例如,0.1指定10%的公差。

仿真数据检查器使用基线信号信号特性中指定的公差超级球尔托尔属性设置为1或者真的。有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据

例子:0.05

数据类型:双倍的

信号比较中使用的信号的时间公差,指定为正值标量。在几秒钟内指定时间公差。

仿真数据检查器使用基线信号信号特性中指定的公差超级球尔托尔属性设置为1或者真的。有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据

例子:0.1

数据类型:双倍的

比较是否使用信号公差值,而不是指定为逻辑值的全局公差值。设置超级球尔托尔财产为1或者真的使用在信号对象属性。将属性设置为0或者错误的使用全球公差值。

有关模拟数据检查器中公差的更多信息,请参见模拟数据检查器如何比较数据

数据类型:逻辑

用于在比较中同步信号的方法,指定为'联盟'或者'路口'。有关同步选项的更多信息,请参阅模拟数据检查器如何比较数据

对象功能

转换 转换单位万博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功能。

在R2012B中引入