金宝app®块允许您为其输出信号指定有效值范围。指定信号范围有助于优化数据类型和改进生成的代码。
如果你有嵌入式编码器®,金宝app仿真软件编码器™可以通过考虑您为信号和参数指定的最小值和最大值来优化您从模型生成的代码。该优化可以删除算法代码并影响某些模拟模式的结果,例如SIL或外部模式。有关更多信息,请参阅使用指定的最小值和最大值进行优化(嵌入式编码).
下面的块允许你为它们的输出信号指定范围:
要为大多数块指定信号范围,请使用输出最小和输出最大值块的参数,用于指定块输出信号的有效值范围。异常包括数据存储内存,inport.,外港, 和信号规范块,你用他们的最低限度和最大参数指定信号范围。看到允许信号范围规格的块有关适用块的列表。
要访问这些参数,请使用属性检查器(在造型选项卡,在设计, 点击物业检查员),模型数据编辑器(在造型选项卡上,单击模型数据编辑器)或块对话框。
指定最小值或最大值作为计算为标量实数的表达式双倍的
数据类型。例如,您可以使用:
字面数,例如98.884
.隐含地,数据类型是双倍的
.
一个数值工作空间变量(参见通过创建变量共享和重用块参数值),其数据类型为双倍的
.使用此技术在多个数据项之间共享最小值或最大值。
但是,不能使用变量来设置最小值
或最大限度
的属性金宝app仿真软件。信号
对象。
指定的标量值应用于复合信号的每个元素(例如,当信号是非标量或总线时)。有关标量展开的信息,请参见输入和参数的标量展开.
若不指定信号的最小值或最大值,请使用空矩阵[]
,这是默认值。
如果您使用诸如总线信号,数据存储和eventFlow等建模构造®图表,您可以使用不同的技术来指定设计范围信息。使用表中的信息。
目标信号的描述 | 技术和更多信息 |
---|---|
数值复杂的信号 |
指定时输出最小或输出最大值对于复数信号,指定的最小值和最大值分别作用于复数的实部和虚部。如果该数的任何一部分的值小于最小值或大于最大值,则该复数不在指定的范围内。不针对实部和虚部的任何组合进行距离检查,例如 |
公共汽车中的信号元素 |
如果你用总线的创造者块,您可以在馈送的上游块上指定范围信息总线的创造者. 无论您用于组装总线的技术如何,您都可以创建一个 |
信号在一个Matlab功能堵塞 |
使用端口和数据管理器指定最低限度和最大数据的属性。看到设置常规属性. |
状态流程图中的信号 |
设定最低限度和最大属性对应的statflow数据。看到限制范围内(Stateflow). |
与信号对象相关联的信号(例如 |
设定 |
数据存储(数据存储内存块或 |
对于一个数据存储内存块,设置最低限度和最大块参数。对于信号对象,请设置 |
金宝appSimulink提供了一个名为的诊断模拟范围检查,您可以在模拟期间启用信号检测信号超过其指定范围。启用后,Simulink将块金宝app输出与指定范围的信号值进行比较(参见在块中处理信号范围)和块数据类型。也就是说,Simu金宝applink执行以下检查:
DataTypemin≤xinvalue≤值≤MaxValue≤DatatyPemax
在哪里
DataTypeMin
是块数据类型可表示的最小值。
迷你
是块应输出的最小值,指定,例如,输出最小.
价值
是块输出的信号值。
maxvalue.
是块应该输出的最大值,如:输出最大值.
dataTypemax.
是块数据类型表示的最大值。
请注意
可以过度指定块如何处理超出特定范围的信号。例如,您可以为信号范围参数指定值(而不是默认值)并启用在整数溢出上饱和参数。在这种情况下,Simulin金宝appk会显示一条警告消息,建议您禁用在整数溢出上饱和参数。
要启用模拟范围检查诊断:
在模型窗口中造型选项卡上,单击模型设置.
金宝appSimulink显示“配置参数”对话框。
在里面选择在配置参数的左侧的树对话框,单击“诊断>数据的有效性类别。在右侧信号,设置模拟范围检查诊断到错误
或警告
.
点击好吧要应用更改并关闭“配置参数”对话框。
看到模拟范围检查了解更多信息。
检查信号范围错误或警告:
启用模拟范围检查诊断为您的模型(参见启用模拟范围检查)。
在模型窗口中,单击运行来模拟模型。
金宝appSimulink会模拟您的模型并执行信号范围检查。当信号超出指定范围时模拟范围检查诊断指定错误
,S金宝appimulink停止模拟并生成错误(例如,在诊断查看器中)。
否则,如果信号超出了指定的范围模拟范围检查诊断指定警告
, 金宝appSimulink在MATLAB中生成一条警告消息®命令窗口。每条消息都标识输出信号超过其指定范围的块,以及发生违规的时间步骤。
一些虚拟块(见非宽恕和虚拟块)允许指定它们的输出信号的范围,例如inport.和外港块。当模拟范围检查对包含此类块的模型启用诊断,虚块的信号范围向后传播到它接收到输出信号的非虚块的第一个实例。如果非虚块为它自己的范围指定了不同的值,则Simulink使用金宝app最紧密的可能的范围。也就是说,Simu金宝applink用较大的最小值和较小的最大值来检查信号。
例如,考虑以下模型:
在这个模型中,Constant块指定了它输出最大值参数为300,以及inport.块设置为100.假设您启用模拟范围检查诊断和模拟模型。这inport.阻止将其最大值传播到其中的非宽度块,即,即,常数块。金宝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
,替换最大值。