检查单变量变体条件句的使用情形
检查 ID:mathworks.maab.na_0037
规范:na_0037:变体条件使用单变量
描述
检查条件表达式中是否使用了单变量
检查 Variant Subsystem、Variant Source、Variant 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
结果和建议的操作
条件 | 建议的操作 |
---|---|
条件表达式包含多个条件变量。 | 请考虑更新模型,确保只使用一个变体。 |
在工作区中找不到条件表达式变量或 | 请考虑在模型中定义一个变体。 |
检查在我的变体子系统上无法执行。 | 请清除变体子系统的覆盖变体条件并使用以下变体。 |
功能和限制
不检查默认变体。
当选择覆盖变体条件并使用以下变体时,不会在变体子系统上运行。
对库模型运行。
可以分析库链接模块的内容。
分析所有封装子系统中的内容。