主要内容

检查单变量变体条件句的使用情形

检查 IDmathworks.maab.na_0037

规范:na_0037:变体条件使用单变量

描述

检查条件表达式中是否使用了单变量

检查 Variant SubsystemVariant SourceVariant Sink 和变体 Model 模块中是否存在包含多个变量的条件表达式。

注意

规范 na_0037 规定,编写变体条件表达式时应使用单变量,但默认变体是例外情况,可以在一个条件表达式中使用多个变量。您可以通过以下方式定义默认值:

  • 在模块参数变体控制项中选择 (默认值)

  • 指定一个穷尽条件。

此检查无法区分使用穷尽条件定义的默认值。

此检查需要 Simulink® Check™ 许可证。

可接受变体条件的预期检查行为示例包括:

  • 通过情形 1:仅有一个变体条件在单个条件中包含多个变量(单个条件指相同条件或单一条件,x==0 被视为默认情形):

    • var1 IN==0 && OUT==0

    • var2 IN==1

  • 通过情形 2:变体条件中有多个条件,但使用的是同一个变量:

    • var1 IN==0 && IN==1

    • var2 OUT==1 && OUT==2

不合规变体条件的预期检查行为示例包括:

  • 违规情形 1:有多个变体条件在单个条件中包含多个变量:

    • var1 IN==0 && OUT==0

    • var2 IN==1 && OUT==1

  • 违规情形 2:有多个变体条件在多个条件中包含多个变量:

    • var1 IN==1 && OUT==2

    • var2 IN==2

  • 违规情形 3:其中一个变体条件是 default,另一个变体条件是在单个条件中包含多个变量。这是不可接受的情况,因为不允许存在多个默认变体:

    • var1 IN==0 && OUT==0

    • var2 default

检查参数化

此检查不包括子检查,因为 MAB 建模规范仅提供一个子 ID。

作为参考,NA-MAAB 和 JMAAB 建模标准组织建议使用的 MAB 规范子 ID 为:

  • NA-MAAB - a

  • JMAAB - a

结果和建议的操作

条件建议的操作
条件表达式包含多个条件变量。请考虑更新模型,确保只使用一个变体。

在工作区中找不到条件表达式变量或 Simulink.Variant 对象。

请考虑在模型中定义一个变体。
检查在我的变体子系统上无法执行。 请清除变体子系统的覆盖变体条件并使用以下变体

功能和限制

  • 不检查默认变体。

  • 当选择覆盖变体条件并使用以下变体时,不会在变体子系统上运行。

  • 对库模型运行。

  • 可以分析库链接模块的内容。

  • 分析所有封装子系统中的内容。