主要内容

指定信号范围

金宝app®块允许您为其输出信号指定一系列有效值。指定信号范围可以帮助您优化数据类型并改进生成的代码。

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

允许信号范围规范的块

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

在块中使用信号范围

要指定大多数块的信号范围,请使用输出最小输出最大块的参数用于指定块输出信号的有效值范围。例外情况包括数据存储内存轮廓尺寸总线元件外港输出母线元件,信号规范块,你使用他们的最低最大参数指定信号范围。看到允许信号范围规范的块获取适用块的列表。

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

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

  • 字面数字,如98.884。隐式地,数据类型为

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

    当您使用变量来设置最小值马克斯a的性质金宝app仿真软件。ValueType金宝app仿真软件。信号,或金宝app仿真软件。公共汽车Element对象,则将变量的当前值赋给该对象。的最小值马克斯对象的属性不受将来对变量的更改的影响。

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

若要不指定信号的最小值或最大值,请使用空矩阵[],为默认值。

为建模构造指定范围

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

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

数值复信号

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

总线上的信号元件

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

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

a中的信号MATLAB函数

使用符号窗格和属性检查器来指定最低最大变量的属性。看到设置通用变量属性

状态流图中的信号

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

表示您与一个对象(如金宝app仿真软件。信号金宝app仿真软件。ValueType对象)

设置最小值马克斯的性质金宝app仿真软件。信号金宝app仿真软件。ValueType对象。

数据存储(数据存储内存块或金宝app仿真软件。信号对象)

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

排除信号范围误差

金宝appSimulink提供了一个名为模拟距离检查,在模拟过程中,当信号超出指定范围时,您可以启用该功能来检测信号。当启用时,Simulink将金宝app块输出的信号值与指定范围进行比较(参见在块中使用信号范围)和块数据类型。也就是说,Simu金宝applink执行以下检查:

DataTypeMin≤MinValue≤VALUE≤MaxValue≤DataTypeMax

在哪里

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

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

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

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

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

请注意

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

启用模拟范围检查

要启用模拟距离检查诊断:

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

    金宝appSimulink显示“配置参数”对话框。

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

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

看到模拟距离检查了解更多信息。

模拟模型与仿真范围检查

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

  1. 启用模拟距离检查模型的诊断(请参阅启用模拟范围检查).

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

    金宝appSimulink模拟您的模型并执行信号范围检查。如果信号超出了指定的范围模拟距离检查诊断指定错误, 金宝appSimulink停止模拟并生成错误(例如,在诊断查看器中)。

    否则,当信号超出其指定范围时模拟距离检查诊断指定警告, 金宝appSimulink在MATLAB中生成警告消息®命令窗口。每条消息标识输出信号超出其指定范围的块,以及发生这种违规的时间步长。

虚拟块的信号范围传播

一些虚拟块(参见非虚拟块和虚拟块)允许您指定其输出信号的范围,例如轮廓尺寸外港块。当模拟距离检查如果对包含此类块的模型启用了诊断功能,则虚拟块的信号范围向后传播到接收其输出信号的非虚拟块的第一个实例。如果非虚拟块为它自己的范围指定了不同的值,Simulink将执行信号范围检查金宝app紧密可能的范围。也就是说,Simu金宝applink使用较大的最小值和较小的最大值来检查信号。

例如,考虑以下模型:

在这个模型中,常量块指定了它的输出最大参数为300,参数为轮廓尺寸Block设置为100。假设您启用了模拟距离检查诊断和模拟模型。的轮廓尺寸块返回将其最大值传播到它前面的非虚拟块,即常数块。金宝app然后,Simulink使用两个最大值中较小的那个来检查信号常数块输出。因为常数block输出的信号值(200)超过了最严格的范围,则Simulink产生一个错误。金宝app

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

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

然而,Simuli金宝appnk将设计限制存储为之前的比较。如果数据项的数据类型的精度高于(例如,具有128位字长和126位分数长度的定点数据类型)或更大的范围,不能准确地表示设计极限的值,Simulink可能会产生意想不到的警告和错误。金宝app

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

格式98.8847692348509014 + eps(98.8847692348509014)
Ans = 98.884769234850921

使用得到的数字,98.884769234850921,以替换最大值。

相关的话题