文档

信号范围

关于信号范围

许多模型万博1manbetx®块允许您为其输出信号指定一个有效值范围。万博1manbetxSimulink提供了一个诊断功能,您可以启用它来检测在模拟过程中块产生的信号何时超出了其指定的范围。有关更多信息,请参阅后面的部分。

允许信号范围规范的块

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

指定信号范围

一般情况下,使用输出最小而且输出最大块的参数,以指定块输出信号的有效值范围。例外包括数据存储内存轮廓尺寸外港,信号规范块,您可以使用他们的最低而且最大参数来指定信号范围。看到允许信号范围规范的块获取适用块的列表。

要访问这些参数,请使用属性检查器(视图>属性检查器)、模型数据编辑器(视图>模型数据编辑器),或方块对话框。要有效地使用每种技术,请参见设置属性和参数

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

  • 一种文字数字,如98.884.隐式地,数据类型为

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

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

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

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

为建模构造指定范围

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

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

数值复杂信号

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

总线中的信号元素

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

无论使用何种技术组装总线,都可以创建万博1manbetx仿真软件。公共汽车对象,并将其用作总线信号的数据类型。方法指定范围信息最小值而且马克斯的属性万博1manbetx仿真软件。公共汽车Element驻留在总线对象中的对象。有关更多信息,请参见何时使用总线对象

信号MATLAB函数

使用端口和数据管理器指定最低而且最大数据的属性。看到设置常规属性

状态流程图中的信号

设置最低而且最大对应的状态流数据的属性。看到限制范围属性(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,导入块的参数设置为100。假设您启用模拟距离检查对模型进行诊断和仿真。import块将其最大值反向传播到它前面的非虚拟块,即常量块。万博1manbetx然后Simulink使用两个最大值中较小的一个来检查Constant块输出的信号。因为Constant块输出的信号值(200)超过了最紧的范围,所以Simulink会产生一个错误。万博1manbetx

对于精度或范围大于

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

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

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

格式98.8847692348509014 + eps(98.8847692348509014)
Ans = 98.884769234850921

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

优化生成的代码

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

相关的话题

这个话题有用吗?