主要内容

指定信号范围

万博1manbetx®块允许您为其输出信号指定有效值的范围。指定信号范围有助于优化数据类型和改进生成的代码。

如果你有嵌入式编码器®万博1manbetx仿真软件编码器™可以通过考虑为信号和参数指定的最小值和最大值来优化从模型生成的代码。这种优化可以去除算法代码,并影响一些仿真模式的结果,如SIL或外部模式。有关更多信息,请参见使用指定的最小值和最大值进行优化(嵌入式编码)

允许信号范围规范的块

下面的块允许你为它们的输出信号指定范围:

在区块中处理信号范围

若要为大多数块指定信号范围,请使用输出最小输出最大一个块的参数来指定块输出信号的有效值范围。异常包括数据存储内存轮廓尺寸外港,信号规范块,你用它们最低最大参数来指定一个信号范围。看到允许信号范围规范的块查看适用区块的列表。

要访问这些参数,请使用属性检查器(在建模选项卡,在设计,点击属性检查器),模型数据编辑器(在建模选项卡上,单击模型数据编辑器),或方块对话框。

将最小值或最大值指定为计算结果为标量实数的表达式数据类型。例如,你可以使用:

  • 字面数字,如98.884.隐式地,数据类型是

  • 数值型工作空间变量(参见通过创建变量共享和重用块参数值),其数据类型为.使用这种技术可以在多个数据项之间共享最小值或最大值。

    但是,您不能使用变量来设置最小值马克斯的属性万博1manbetx仿真软件。信号对象。

您指定的标量值应用于复合信号的每个元素(例如,当信号是非标量或总线时)。有关标量展开的信息,请参见输入和参数的标量展开

若不指定信号的最小值或最大值,则使用空矩阵[],这是默认值。

为建模构造指定范围

如果您使用诸如总线信号、数据存储和状态流等建模结构®图表,您可以使用不同的技术来指定设计范围信息。使用表格中的信息。

目标信号描述 技术和更多信息

数字的复杂信号

当您指定输出最小输出最大对于数值复杂的信号,指定的最小值和最大值分别适用于复数的实部和虚部。如果复数的任意一部分小于最小值或大于最大值,则表示复数超出了指定的范围。对实部和虚部的任何组合都不进行范围检查,例如(sqrt (a ^ 2 + ^ 2))

总线中的信号元素

如果您使用总线的创造者块,你可以在上游块上指定范围信息总线的创造者

无论您使用什么技术来组装总线,都可以创建万博1manbetx仿真软件。公共汽车对象,并将其用作总线信号的数据类型。在这种情况下,考虑使用最小值马克斯的属性万博1manbetx仿真软件。公共汽车Element驻留在总线对象中的对象。有关更多信息,请参见使用Simulink指定总线属性。万博1manbetx总线对象数据类型

信号在一个MATLAB函数

使用端口和数据管理器指定最低最大数据的属性。看到设置一般属性

状态流程图中的信号

设置最低最大属性对应的statflow数据。看到限制范围内(Stateflow)

表示与一个信号对象关联的信号(例如万博1manbetx仿真软件。信号

设置最小值马克斯信号对象的属性。看到万博1manbetx仿真软件。信号

数据存储(数据存储内存块或万博1manbetx仿真软件。信号对象)

对于一个数据存储内存块,设置最低最大块的参数。对于信号对象,设置最小值马克斯属性。

排除信号范围错误

万博1manbetxSimulink提供名为模拟范围检查,可以在模拟过程中检测信号是否超过指定范围。当启用时,Simulink将万博1manbetx块输出的信号值与指定的范围(参见在区块中处理信号范围)和块数据类型。也就是说,Simu万博1manbetxlink执行以下检查:

DataTypeMin≤MinValue≤VALUE≤MaxValue≤DataTypeMax

在哪里

  • DataTypeMin是块数据类型所表示的最小值。

  • MinValue是块应该输出的最小值,由,例如,输出最小

  • 价值是块输出的信号值。

  • MaxValue是块应该输出的最大值,由,例如,输出最大

  • DataTypeMax是块数据类型所表示的最大值。

请注意

可以过度指定一个块如何处理超出特定范围的信号。例如,您可以为两个信号范围参数指定值(而不是默认值),并启用使整数溢出饱和参数。在这种情况下,Simulin万博1manbetxk会显示一条警告消息,建议您禁用使整数溢出饱和参数。

启用模拟范围检查

要启用模拟范围检查诊断:

  1. 在你的模型窗口上建模选项卡上,单击模型设置

    万博1manbetxSimulink显示“配置参数”对话框。

  2. 选择树,单击“配置参数”对话框左侧的诊断>数据的有效性类别。在右边下面信号,设置模拟范围检查诊断为错误警告

  3. 点击好吧应用更改并关闭“配置参数”对话框。

看到模拟范围检查为更多的信息。

仿真模型与仿真范围检查

检查信号范围错误或警告:

  1. 启用模拟范围检查您的模型的诊断(参见启用模拟范围检查).

  2. 在模型窗口中,单击运行模拟模型。

    万博1manbetxSimulink模拟您的模型并执行信号范围检查。如果一个信号超过了指定的范围模拟范围检查诊断指定错误, 万博1manbetxSimulink停止模拟并生成一个错误(例如,在诊断查看器中)。

    否则,如果一个信号超过了指定的范围模拟范围检查诊断指定警告, 万博1manbetxSimulink在MATLAB中生成一个警告消息®命令窗口。每个消息都标识出其输出信号超过其指定范围的块,以及此违规发生的时间步长。

虚拟块的信号范围传播

一些虚拟块(参见非虚拟块和虚拟块)允许您为其输出信号指定范围,例如轮廓尺寸外港块。当模拟范围检查诊断为包含这些块的模型启用,虚拟块的信号范围向后传播到非虚拟块的第一个实例,它接收到输出信号。如果非虚拟块为其自己的范围指定了不同的值,那么Simulink将使用万博1manbetx紧密可能的范围。也就是说,Simu万博1manbetxlink使用较大的最小值和较小的最大值来检查信号。

例如,考虑以下模型:

在这个模型中,Constant块指定其输出最大参数的值为300轮廓尺寸Block设置为100。假设您启用模拟范围检查诊断和模拟模型。的轮廓尺寸块返回将其最大值传播到它之前的非虚拟块,即常数块。万博1manbetxSimulink然后使用两个最大值中较小的值来检查信号常数块输出。因为常数块输出的信号,其值(200)超过最紧的范围,Simulink产生一个错误。万博1manbetx

精度或范围更大的数据的意外错误或警告

当数据项(信号或参数)使用的数据类型不是,在进行比较之前,Simulink将数据项万博1manbetx和每个设计限制(您指定的最小值或最大值)转换为非双精度数据类型。这种技术有助于防止产生不必要的、误导性的错误和警告。

然而,Simuli万博1manbetxnk的设计限制为之前的比较。如果数据项的数据类型的精度高于(例如,具有128位字长和126位分段长度的定点数据类型)或更大的范围,不能准确地表示设计极限的值,Simulink可以产生意外的警告和错误。万博1manbetx

如果非双精度类型具有更高的精度,请考虑将设计极限舍入到离零最远的下一个数字可以表示。例如,假设一个信号在您将最大值设置为之后产生一个错误98.8847692348509014.在命令提示符下,计算离零最远的下一个数字可以表示。

格式98.8847692348509014 + eps (98.8847692348509014)
ans = 98.884769234850921

使用结果数字,98.884769234850921,替换最大值。

相关的话题