主要内容

Advisor.addExclusion

R2026b

向模型或排除项文件添加排除项

描述

exclusionInfo = Advisor.addExclusion(modelName,filterType,entityIdentifier) 用于向模型 modelName 中的实体(如模块、子系统或 Stateflow® 元素)添加排除项,并返回包含有关该排除项的信息的对象 exclusionInfo。排除项的类型由 filterType 参量指定。实体由 entityIdentifier 参量指定。

示例

exclusionInfo = Advisor.addExclusion(___,Name,Value) 支持上述语法中的输入参量,且可使用一个或多个名称-值参量指定选项。例如,您可以使用 checks 参量从特定的模型顾问检查中排除某个实体,或者使用 rationale 参量提供排除理由。

注意

添加排除项后,您可以限制模型顾问必须对模型执行的分析的范围,从而在模型开发和验证期间节省时间。

示例

示例

全部折叠

创建模型,为某个模块添加排除项,然后显示排除信息。

创建并打开一个名为 myAdvisorModel 的模型。

modelName = 'myAdvisorModel';
new_system(modelName);
open_system(modelName);

向模型添加 Gain 模块。

add_block('simulink/Math Operations/Gain',[modelName '/Gain']);

从模型顾问分析中排除 Gain 模块。

exclusions = Advisor.addExclusion(modelName,'Block',[modelName '/Gain']);

显示排除信息。

exclusions(1)
ans =

  AdvisorFilterSpecification with properties:
     filteredItem: [1×1 advisor.filter.IFilter]
         metadata: [1×1 advisor.filter.Metadata]
             mode: Exclude
    commentThread: [1×0 advisor.filter.Metadata Sequence]
             type: Block
               id: 'myAdvisorModel:1'
           checks: [1×1 String Sequence]

您也可以右键点击 Simulink® 画布,然后选择模型顾问 > 打开模型顾问排除项编辑器,在模型顾问排除项编辑器中查看排除项。

模型顾问排除项编辑器会显示一个表,其中有一行显示 Gain 模块排除的相关信息。过滤器标识符列显示 entityIdentifier 参量指定的路径名称,过滤器类型列显示 filterType 参量指定的排除过滤器类型。理由和检查 ID 列为空,因为未指定理由或检查。

Model Advisor Exclusion Editor showing a table with one row for the Gain block exclusion. The Filter Identifier column shows the block pathname, the Filter Type column shows Block, and the Rationale and Check ID(s) columns are empty.

继续上一个示例,使用 rationale 名称-值参量添加带有理由的排除项。

使用上一个示例中的 myAdvisorModel 模型,添加一个 Constant 模块,然后排除该模块并提供理由。

add_block('simulink/Sources/Constant',[modelName '/Constant']);
exclusions = Advisor.addExclusion(modelName,'Block',[modelName '/Constant'],'rationale','Block verified manually.');

显示排除信息。

exclusions(1)
ans =

  AdvisorFilterSpecification with properties:
     filteredItem: [1×1 advisor.filter.IFilter]
         metadata: [1×1 advisor.filter.Metadata]
             mode: Exclude
    commentThread: [1×0 advisor.filter.Metadata Sequence]
             type: Block
               id: 'myAdvisorModel:2'
           checks: [1×1 String Sequence]

您可以右键点击 Simulink 画布,然后选择模型顾问 > 打开模型顾问排除项编辑器,在模型顾问排除项编辑器中查看排除项。

模型顾问排除项编辑器中的理由列针对 Constant 模块排除显示 Block verified manually。

Model Advisor Exclusion Editor showing a table with two rows, one for the Gain block and one for the Constant block. The Rationale column shows Block verified manually for the Constant block exclusion.

输入参数

全部折叠

要添加排除项的模型,指定为字符向量或字符串数组。

数据类型: char | string

要排除的实体的类型,指定为以下值之一。

值描述
BlockSimulink 模块
BlockType具有特定 BlockType 属性值的模块
Subsystem子系统内的模块
Library库模块实例
MaskType具有特定 MaskType 属性值的模块或子系统
StateflowSimulink 中的 Stateflow 模块
ChartStateflow 图中的每个实体
StateStateflow 状态
TransitionStateflow 转移
JunctionStateflow 结点
GraphicalFunctionStateflow 图形函数
MatlabFunction

Stateflow MATLAB® 函数

SimulinkFunction

Stateflow Simulink 函数

TruthTableStateflow 真值表
SimulinkBasedStateStateflow 中基于 Simulink 的状态

示例: Advisor.addExclusion('mymodel', 'Block', 'mymodel/Constant')

数据类型: char | string

要排除的实体的标识符,指定为 BlockType 属性值、MaskType 属性值或路径名称。

entityIdentifier 值的格式取决于您指定的 filterType。

filterType 值entityIdentifier 值示例
BlockType

模块的 BlockType 属性的值

使用函数 gcb 获取当前所选模块,使用 get_param 获取模块类型。

myblock = gcb;
blockType = get_param(myblock,'BlockType');
Advisor.addExclusion('mymodel','BlockType',blockType);

MaskType

模块的 MaskType 属性的值

使用函数 gcb 获取当前模块,使用 get_param 获取封装类型。

blockWithMask = gcb;
maskType = get_param(blockWithMask,'MaskType');
Advisor.addExclusion('mymodel','MaskType',maskType);

所有其他 filterType 值实体的路径名称

您可以使用函数 gcb 或 find_system 获取实体的路径名称。

myblock = gcb;
Advisor.addExclusion('mymodel','Block',myblock)

示例: Advisor.addExclusion('mymodel','BlockType',blockType)

示例: Advisor.addExclusion('mymodel','MaskType',maskType)

示例: Advisor.addExclusion('mymodel','Block','mymodel/Constant')

数据类型: char | string

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: Advisor.addExclusion('mymodel', 'BlockType', 'Integrator', 'checks', {'mathworks.jmaab.jc_0231', 'mathworks.jmaab.jc_0222'}, 'validateChecks', true);

排除项所适用的检查,指定为由模型顾问检查 ID 组成的元胞数组。

默认情况下,向实体添加排除项后,该排除项适用于所有检查。您可以使用 checks 参量来仅排除所选检查。

示例: Advisor.addExclusion('mymodel','Block','mymodel/Constant','checks',{'mathworks.design.UnconnectedLinesPorts'})

示例: Advisor.addExclusion('mymodel','Block','mymodel/Constant','checks',{'mathworks.jmaab.jc_0231','mathworks.design.UnconnectedLinesPorts'})

数据类型: cell

验证是否可以排除 checks 参量指定的检查,指定为数字或逻辑 0 (false) 或 1 (true)。

某些检查,如检查枚举值的使用,不允许使用排除项。如果您将 validateChecks 指定为 true,则模型顾问会警告该检查不支持排除项。

Advisor.addExclusion('vdp','Block',gcb,...
'checks',{'mathworks.jmaab.jc_0231','mathworks.maab.na_0031'},..
'validateChecks',true);
The following checks do not support exclusions:
    {'mathworks.maab.na_0031'}

示例: Advisor.addExclusion('mymodel','Block','mymodel/Constant','checks',{'mathworks.jmaab.jc_0231','mathworks.maab.na_0031'},'validateChecks',true)

数据类型: logical

排除原因,指定为字符向量或字符串数组。

示例: Advisor.addExclusion('mymodel','Block','mymodel/Constant','rationale','Block to be removed later.')

数据类型: char | string

输出参量

全部折叠

排除信息,以 AdvisorFilterSpecification 对象或 advisor.filter.FilterSpecification Sequence 形式返回。advisor.filter.FilterSpecification Sequence 包含每个排除项对应的 AdvisorFilterSpecification 对象。

替代功能

模型顾问排除项编辑器

您也可以使用模型顾问排除项编辑器从 Simulink 画布添加排除项。要从 Simulink 画布添加排除项,请右键点击实体,选择模型顾问,然后选择您要添加的排除项的类型对应的菜单选项。有关详细信息,请参阅Exclude Blocks from Model Advisor Check Analysis。

版本历史记录

在 R2021a 中推出

全部展开