主要内容

jc_0805:数值运算模块的输入

规范来源

控制算法建模规范 - 使用 MATLAB®、Simulink® 和 Stateflow®

子 ID 建议

  • NA-MAAB - a1/a2、b、c1/c2、d、e、f1/f2、g、h、i、j

  • JMAAB - a1/a2、b、c1/c2、d、e、f1/f2、g、h、i、j

MATLAB 版本

全部

规则

子 ID a1

Abs 模块使用有符号整数类型时,输入不应为最小负值。

自定义参数

不适用

示例 - 正确

示例 - 不正确

子 ID a2

应选择 Abs 模块的参数对整数溢出进行饱和处理

自定义参数

不适用

示例 - 正确

示例 - 不正确

子 ID b

Abs 模块的输入不应为无符号整数类型或定点类型。

自定义参数

不适用

示例 - 正确

示例 - 不正确

子 ID c1

Sqrt 模块的输入不应为负值。

自定义参数

不适用

示例 - 正确

负数被饱和处理为 0。

仿真结果

示例 - 不正确

子 ID c2

Sqrt 模块的参数输出信号类型应设置为 complex

自定义参数

不适用

示例 - 正确

示例 - 不正确

子 ID d

Reciprocal 模块的输入不应小于Sqrt零。

自定义参数

不适用

示例 - 正确

小于 eps 的值被饱和处理为 eps。

仿真结果:按 Y=log10(Z) 绘制。

示例 - 不正确

子 ID e

Math Function 模块的参数函数设置为 loglog10 时,模块的输入不应为零。

自定义参数

不适用

示例 - 正确

将 ±eps 范围内的值替换为 ±eps

仿真结果:按 Y = |Z| 绘制

示例 - 不正确

子 ID f1

Math Function 模块的参数函数设置为 loglog10 时,模块的输入不得为负数。

自定义参数

不适用

示例 - 正确

当输入小于 eps 时,值会饱和处理为 eps。小于 eps 的值被饱和处理为 eps。

仿真结果

示例 - 不正确

子 ID f2

Math Function 模块的参数函数设置为 loglog10 时,模块参数输出信号类型应设置为 complex

自定义参数

不适用

示例 - 正确

示例 - 不正确

子 ID g

Math Function 模块的参数函数设置为 modrem 时,第二个参量输入不应为零。

自定义参数

不适用

示例 - 正确

示例 - 不正确

子 ID h

Math Function 模块的参数函数设置为 reciprocal 时,模块的输入不应为零。

自定义参数

不适用

示例 - 正确

将 ±eps 范围内的值替换为 ±eps

仿真结果:仿真结果不是无穷大,但由于它接近于零,所以输出值的变化很大。

示例 - 不正确

子 ID i

Product 模块的参数乘法设置为 Element-wise(.*) 时,除数输入不应为零。

注意

要指定除数输入,请将 Product 模块的参数输入数目指定为 */

自定义参数

不适用

示例 - 正确

示例 - 不正确

子 ID j

Product 模块的参数乘法设置为 Matrix(*) 时,除数输入不应设置为奇异矩阵。

注意

要指定除数输入,请将 Product 模块的参数输入数目指定为 */

自定义参数

不适用

示例 - 正确

示例 - 不正确

理由

子 ID a1、c1、d、e、f1、g、h、i、j:

  • 输入无效值的结果取决于具体实现。不遵守规则可能会导致意外行为。

子 ID a2:

  • 正确的设置可以防止因使用无效值而导致的意外行为。

子 ID b:

  • 模块可能会在生成的代码中被优化掉,导致无法跟踪到生成代码的模块。

子 ID c2、f2:

  • 正确的设置可以防止因使用负值而导致的意外行为。

验证

无法通过模型顾问检查来验证对此建模规范的遵守情况。

上次更改

R2020a

版本历史记录

在 R2020a 中推出