主要内容

金宝appSimulink.sdi.Signal

接入信号数据和元数据

描述

一种金宝appSimulink.sdi.Signal对象中包含信号的数据和元数据仿真数据检查.你可以使用信号对象属性来检查信号元数据,在时间图上可视化信号,并使用该信号进行比较信号金宝appSimulink.sdi.compareSignals函数。

创建

一种金宝appSimulink.sdi.Signal对于您登录模型模拟或导入模拟数据检查器的每个信号创建对象。你可以访问信号模拟数据检查器中的对象多种方式。一般来说,访问a信号对象,你首先需要得到金宝appSimulink.sdi.Run对象,该对象包含信号。

属性

全部展开

信号特性

此属性是只读的。

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

此属性是只读的。

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

信号的名称,指定为字符向量或字符串。当。。。的时候信号对象包含从模拟中记录的数据,其名称与模型中为信号指定的名称匹配。如果模型没有指定名称,则信号名称是生成信号的块的块路径。

例子:'燃料'

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

  • '信号'—信号测井数据。

  • “输出港”—输出日志数据。

  • “州”—状态记录数据。

  • '数据存储内存'- 数据存储记忆日志数据。

  • “Parametrs”—已记录参数数据。

  • “Stateflow”- eventsflow.®数据。

  • “Simscape”- Simscape™数据。

  • '评估'-金宝app®测试™评估数据。

  • '剖析'- 执行分析数据。

由于日志记录模拟数据未创建的数据,属性为空。

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

此属性是只读的。

存储在磁盘上的信号数据单元,指定为字符向量或字符串。对于从模拟模型生成的信号,所存储的单元信号对象使用模型中指定的单位。为不带单位的信号指定显示单位时,将使用相同的单位设置存储的单位。要分析使用不同单位的信号,请修改信号的显示单位。模拟数据检查器使用显示单元执行转换以绘制数据。

您可以转换存储单元的信号使用换股公司函数。存储的单元转换不支持撤消,可能导致精度损耗。金宝app

例子:'g / s'

用于在仿真数据检查器中显示信号数据的单元,指定为字符向量或字符串。信号的显示单元可能不同于反映存储在磁盘上的数据的存储单元。在仿真数据检查器中修改信号显示单元以分析数据。模拟数据检查器中的单元首选项可能会改变记录和导入信号数据的显示单元。有关更多信息,请参见信号显示设备

例子:“米/秒”

此属性是只读的。

信号数据的数据类型,作为字符向量或字符串返回。

例子:“双”

此属性是只读的。

信号数据的复杂性,返回为“真实的”“复杂”

例子:“真实的”

此属性是只读的。

信号采样时间,作为字符向量或标量返回。价值'连续'表示可变步长仿真。

例子:'连续'

例子:“0.1”

此属性是只读的。

产生信号的模型的名称,作为字符向量返回。这模型财产是空的信号包含通过模拟模型而不是产生的数据的对象。

例子:“sldemo_fuelsys”

此属性是只读的。

产生信号的块的块路径,以字符数组的形式返回。这BlockPath属性是不包含模型层次结构的相对路径。这BlockPath财产是空的信号包含通过模拟模型而不是产生的数据的对象。

例子:'sldemo_fuelsys /发动机气体动力学'

此属性是只读的。

为制作信号的块的完整块路径,包括完整模型层次结构,作为字符向量返回。对于引用模型中的信号,FullBlockPath是包含完整路径的单元格数组。对于其他信号,FullBlockPath与之相同BlockPath.这FullBlockPath财产是空的信号包含通过模拟模型而不是产生的数据的对象。

此属性是只读的。

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

例子:'发动机气体动力学'

此属性是只读的。

在产生该信号的块上,连接到该信号的输出端口的索引。这portindex.财产是空的信号包含通过模拟模型而不是产生的数据的对象。

例子:1

此属性是只读的。

信号维数,作为整数或整数数组返回。

例子:(1 2)

此属性是只读的。

矩阵内的信号索引,作为整数阵列返回。

此属性是只读的。

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

信号的时间和数据值,作为timeseries对象的非总线信号或与总线信号的总线层次结构相匹配的结构。

此属性是只读的。

包含信号的高级结构的名称,作为字符向量返回。这Rootsource.属性仅具有导入信号的值。

例子:当您导入金宝app仿真软件。SimulationOutput目的sim包含结构Xout., 这Rootsource.“simOut.get (xout)”

此属性是只读的。

信号时间数据的路径,返回为字符向量。这倍源属性仅具有导入信号的值。

例子:当您导入金宝app仿真软件。SimulationOutput目的sim包含结构Xout., 这倍源'simout.get('xout')。时间'

此属性是只读的。

信号样本值的路径,作为字符数组返回。这数据源属性仅具有导入信号的值。

例子:当您导入金宝app仿真软件。SimulationOutput目的sim包含结构Xout., 这数据源“simOut.get (xout) .signals (1) . values”

此属性是只读的。

由复合信号包含的信号,返回为金宝appSimulink.sdi.Signal对象。这孩子们标量信号为空。

可视化属性

用于在模拟数据检查器中显示复杂信号数据的复杂格式,指定为以下值之一。你可以修改ComplexFormatA.的财产信号对象更改模拟数据检测器如何在对象包含复杂信号的数据时显示信号数据。

  • “实想”-当绘制信号时,信号的实分量和虚分量一起显示。信号的虚分量用不同的阴影绘制出来线颜色

  • “级”- 当您绘制信号时,信号的幅度显示。

  • “幅度相”-当你绘制信号时,信号的幅度和相位显示在一起。

  • “阶段”—在绘制信号时显示信号的相位。相位是用不同的阴影绘制的线颜色

数据类型:char|字符串

信号是否被绘制为逻辑值。环境检查一下错误的清除所有子图中的信号。环境检查一下真正的在激活的子地块上绘制信号。

数据类型:逻辑

绘图中的信号颜色,指定为a1-经过-3.RGB矢量与之间的值0.1

例子:[0 0.5 - 0.5)

数据类型:双倍的

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

  • ' - '- 坚硬的

  • ' - '- 虚线

  • “:”——点缀

  • ' - 。'- 虚线点缀

在模拟数据检查器中绘制信号时使用的信号线宽度,指定为之间的整数120.、包容。

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

  • 'ZOH'- 零阶保持插值

  • “线性”——线性插值

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

有关插值选项的更多信息,请参见仿真数据检查器如何比较数据

比较属性

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

仿真数据检查器使用基线信号的信号特性中指定的公差OverrideGlobalTol属性设置为1真正的.有关模拟数据检查器中的公差的更多信息,请参见仿真数据检查器如何比较数据

例子:0.1

数据类型:双倍的

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

仿真数据检查器使用基线信号的信号特性中指定的公差OverrideGlobalTol属性设置为1真正的.有关模拟数据检查器中的公差的更多信息,请参见仿真数据检查器如何比较数据

例子:0.05

数据类型:双倍的

信号比较中使用的信号的时间容差指定为正值标量。以秒为单位指定时间容差。

仿真数据检查器使用基线信号的信号特性中指定的公差OverrideGlobalTol属性设置为1真正的.有关模拟数据检查器中的公差的更多信息,请参见仿真数据检查器如何比较数据

例子:0.1

数据类型:双倍的

比较是否使用信号容差值而不是全局公差值,指定为逻辑值。设定OverrideGlobalTol财产1真正的使用中定义的公差值信号对象属性。设置属性0.错误的使用全局公差值。

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

数据类型:逻辑

方法,用于在比较中同步信号,指定为“联盟”'路口'.有关同步选项的详细信息,请参见仿真数据检查器如何比较数据

对象功能

换股公司 转换单位金宝appSimulink.sdi.Signal目的
出口 出口金宝appSimulink.sdi.Signal对象到工作区或文件
Getastall. 从中创建高度的时间表金宝appSimulink.sdi.Signal目的
Plotonsubplot. 情节金宝appSimulink.sdi.Signal对象在模拟数据检查器子图上

例子

全部折叠

您可以通过编程方式指定要在使用仿真数据检查器执行的比较中使用的信号公差值。在本例中,您将比较通过模拟飞机纵向飞行控制系统模型收集的数据。每个模拟使用不同的值作为输入滤波器时间常数,并记录输入和输出信号。通过使用仿真数据检查器和信号公差比较结果,分析时间常数变化的影响。

首先,加载包含模拟数据的会话文件。

金宝appsimulink.sdi.load(“AircraftExample.mldatx”);

会话文件包含四次运行。在本例中,您将比较文件中前两次运行的数据。访问金宝appSimulink.sdi.Run从文件加载的前两次运行的对象。

runIDs = 金宝appSimulink.sdi.getAllRunIDs;runIDTs1 = runIDs (end-3);runIDTs2 = runIDs (end-2);

现在,在没有指定任何公差的情况下比较这两个运行。

noTolDiffResult = 金宝appSimulink.sdi.compareRuns (runIDTs1 runIDTs2);

使用getResultByIndex用于访问比较结果的功能问:α信号。

qresult = getResultByIndex(notoldiffresult,1);alpharesult = getResultByIndex(notoldiffresult,2);

检查地位每个信号结果看,看看比较结果是否落在我们超出公差范围内。

qresult.status.
ANS = COMPACTISONIGNALSTATUS枚举超大
alphaResult。地位
ANS = COMPACTISONIGNALSTATUS枚举超大

比较使用的值为0.13、对于一切宽容,故有其道OutOfToleranceResult表示信号不相同。

通过指定信号的公差值,可以进一步分析时间常数的影响。的属性指定公差金宝appSimulink.sdi.Signal对应于待比较信号的对象。比较使用为基线信号指定的公差。此示例指定了时间容错和绝对容差。

要指定公差,请首先访问信号来自基线运行的对象。

runTs1 = 金宝appSimulink.sdi.getRun (runIDTs1);qSig = getSignalsByName (runTs1,'q,rad / sec');alphasig = getsignalsbyname(runts1,'alpha,rad');

指定的绝对容忍值0.1和宽度的宽度0.6为了问:信号使用abTimetol.属性。

qSig。一种bsTol = 0.1; qSig.TimeTol = 0.6;

指定的绝对容忍值0.2和宽度的宽度0.8为了α信号。

AlphaSig.abstol = 0.2;AlphaSig.timetol = 0.8;

再次比较结果。从比较中访问结果并检查地位属性。

jortiffresult = 金宝appsimulink.sdi.compareruns(runidts1,runidts2);qresult2 = getResultByIndex(Telliffresult,1);alpharesult2 = getResultByIndex(Telliffresult,2);qresult2.status.
ANS = COMPACTISONSIGNALSTATUS枚举与CILTOLERANCE
alphaResult2。地位
ANS = COMPACTISONSIGNALSTATUS枚举与CILTOLERANCE

这个例子展示了如何获取金宝appSimulink.sdi.Signal对象并使用模拟数据检查器编程接口修改其属性。

在模拟数据检查器中创建数据

当您模拟日志数据的模型时,在模拟数据检查器中创建了运行以包含记录数据。您还可以通过导入数据在模拟数据检查器中创建运行。这个例子模拟了slexaircraftexample.模型并记录数据数据集格式。

simOut = sim卡('slexaircraftexample''saplformat'“数据集”);

得到一个金宝appSimulink.sdi.Signal目的

程序化模拟返回工作区变量中的记录数据sim.您可以访问该变量中的记录数据。但是,要使用Simulation Data Inspector编程接口,您需要访问登录的数据金宝appSimulink.sdi.Run金宝appSimulink.sdi.Signal对象。

首先,使用金宝appSimulink.sdi.getCurrentSimulationRun得到运行模拟时创建的对象slexaircraftexample.模型。

aircraftRun = 金宝appSimulink.sdi.getCurrentSimulationRun ('slexaircraftexample');

你可以使用getallsignals.函数访问信号对象的所有信号。从返回的数组信号对象,选择第一个信号。

信号= getAllSignals (aircraftRun);sig =信号(1);

修改信号属性

金宝appSimulink.sdi.Signal对象具有指定用于比较和可视化信号的选项的属性。指定信号的线条样式和颜色。然后,使用金宝appsimulink.sdi.setsubplotlayout.配置模拟数据检查器以显示单个子图,并使用Plotonsubplot.函数绘制信号。

sign . lineccolor = [1 0.4 0.6];sig.LineDashed =' - '; 金宝appSimulink.sdi.SetSubplot布局(1,1)图Subplot(sig,1,1,true)

使用金宝appsimulink.sdi.view.功能要打开仿真数据检查器并查看绘图信号。

您可以使用Simulation Data Inspector编程接口在一次运行中比较信号。这个例子比较了飞机纵向控制器的输入和输出信号。

首先,加载包含数据的会话。

金宝appsimulink.sdi.load(“AircraftExample.mldatx”);

使用金宝appSimulink.sdi.Run.getLatest访问数据中最新运行的功能。

aircraftRun = 金宝appSimulink.sdi.Run.getLatest;

然后,你可以使用金宝appsimulink.sdi.getSignalSyName.函数访问信号,表示控制器的输入,以及阿尔法,拉迪表示输出的信号。

坚持= getSignalsByName (aircraftRun,'戳');α= getSignalsByName (aircraftRun'alpha,rad');

在比较信号之前,可以指定一个用于比较的公差值。比较使用比较中为基线信号指定的公差值,因此设置绝对公差值为0.1信号。

kick.abstol = 0.1;

现在,用金宝appSimulink.sdi.compareSignals函数。这信号是基线,而且阿尔法,拉迪信号是与基线相比较的信号。

comparisonResults = 金宝appSimulink.sdi.compareSignals (stick.ID alpha.ID);= comparisonResults相匹配。地位
匹配= COMPACTISONSIGNALSTATUS枚举OUTOFTOLANCE

比较结果超出了容许范围。你可以使用金宝appsimulink.sdi.view.函数打开仿真数据检查器以查看和分析比较结果。

这个例子演示了如何访问金宝appSimulink.sdi.Run用于通过记录信号创建的模拟数据检查器的对象。来自金宝appSimulink.sdi.Run你可以得到的对象金宝appSimulink.sdi.Signal对象,该对象包含已记录的信号数据和元数据。你可以使用信号对象和Plotonsubplot.函数在仿真数据检查器中绘制数据。

创建模拟运行并访问运行目的

ex_vdp模型记录两个信号。要创建包含记录数据的模拟运行,请模拟模型。

sim卡(“ex_vdp”);

模拟数据检查器通过为模拟、导入数据或打开会话创建的每个运行分配唯一的数值运行ID来跟踪运行。要访问刚才执行的模拟的run对象,请使用金宝appsimulink.sdi.getallrunids.函数并拍摄返回的向量中的最后一个运行ID。

runIDs = 金宝appSimulink.sdi.getAllRunIDs;runid = unrids(结束);

有一次运行运行ID后,可以使用金宝appsimulink.sdi.getrun.函数来获取金宝appSimulink.sdi.Run对应于运行的对象。你可以使用运行对象检查与运行关联的元数据,包括运行中信号的数量。

vdprun = 金宝appsimulink.sdi.getrun(runid);vdprun.signalcount.
ans =.INT32.2

图数据使用信号对象

使用getsignalbyIndex.用于访问信号的信号运行对象,fuelRun

signal1 = getsignalbyIndex(vdprun,1);signal2 = getsignalbyIndex(vdprun,2);

使用金宝appsimulink.sdi.setsubplotlayout.功能指定3×1布局。

金宝appSimulink.sdi.setSubPlotLayout (2, 1)

在绘制数据之前,使用金宝appSimulink.sdi.clearAllSubPlots功能清除已绘制的任何数据。

金宝appSimulink.sdi.clearAllSubPlots

在每个副图上标出一个信号。要在第一个子图上绘制信号,您可以设置检查一下属性为信号。要在第一个子图以外的子图上绘制信号,请使用Plotonsubplot.函数。

signal1。检查一下= true; plotOnSubPlot(signal2,2,1,true);

查看绘制的数据

要查看刚刚创建的绘图,请使用仿真数据检查器使用金宝appsimulink.sdi.view.函数。

介绍了R2012b