主要内容

指定信号范围

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

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

允许信号范围规格的块

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

在块中处理信号范围

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

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

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

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

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

    但是,不能使用变量来设置最小值马克斯的属性金宝app仿真软件。信号对象。

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

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

指定建模构造的范围

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

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

数字的复杂信号

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

总线中的信号元件

如果你用总线的创造者块的范围信息,可以在为总线的创造者

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

信号在一个MATLAB函数

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

状态流程图中的信号

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

与信号对象相关联的信号(例如金宝app仿真软件。信号)

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

数据存储(数据存储内存块或金宝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用较大的最小值和较小的最大值来检查信号。

例如,考虑以下模型:

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

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

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

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

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

格式98.8847692348509014 + eps (98.8847692348509014)
ans = 98.884769234850921

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

相关的话题