Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

Advisor.Application 类

命名空间: Advisor

跨模型引用层次结构和变体运行模型顾问

描述

使用 Advisor.Application 的实例执行以下操作:

  • 对父模型及其引用模型运行检查。

  • 通过将参数 AnalyzeVariants 指定为 true,对活动和非活动变体运行检查。

  • 从模型顾问分析中选择或删除特定模型组件。模型组件是根模型引用的模型以及 setAnalysisRoot 指定的模型。

使用公共方法执行以下操作:

  • 使用 Advisor.Application 对象运行模型顾问。

  • 删除 Advisor.Application 对象。

  • 指定对其运行模型顾问的模型组件。

  • 指定模型顾问运行的检查。

  • 从模型顾问获取结果。

注意

如果您的模型不使用模型引用或变体,请改用函数 ModelAdvisor.run

ModelAdvisor.run 可以对模型和子系统运行模型顾问检查,并且可以选择在多个系统上并行运行。

创建对象

要创建 Advisor.Application 对象,请使用 Advisor.Manager.createApplication

属性

全部展开

要分析的模型引用层次结构中的根模型的名称,由 Advisor.Application.setAnalysisRoot 方法指定。此属性是只读的。

属性:

GetAccess
public
SetAccess
private

数据类型: char

Advisor.Application 对象的唯一标识符,指定为字符向量。此属性是只读的。

属性:

GetAccess
public
SetAccess
private

数据类型: char

在临时工作文件夹中运行分析,由 Advisor.Manager.createApplication 方法指定。此属性是只读的。

属性:

GetAccess
public
SetAccess
private

数据类型: logical

依据您使用变体管理器创建的变体配置,对模型中的活动和非活动变体模块运行分析。有关详细信息,请参阅Variant Manager for SimulinkVariant Configurations。如果您生成报告,则模型顾问会为每个变体配置生成单独的报告。此属性是可读取/写入的。

属性:

GetAccess
public
SetAccess
public

数据类型: logical

方法

全部展开

示例

全部折叠

此示例说明如何对模型 sldemo_mdlref_basic 及其引用模型 sldemo_mdlref_counter 运行检查根模型 Inport 模块设定检查。

打开示例模型 sldemo_mdlref_basic。在 MATLAB® 命令行窗口中,输入:

openExample("sldemo_mdlref_basic")

模型 sldemo_mdlref_basic 是包含以下三个 Model 模块的父模型:CounterACounterBCounterC。这些模块引用同一模型 sldemo_mdlref_counter,该模型是一个单独的模型,而不是 sldemo_mdlref_basic 的子系统。

创建一个 Advisor.Application 对象,该对象可用于跨 sldemo_mdlref_basic 中的模型引用层次结构运行模型顾问检查。

app = Advisor.Manager.createApplication();

指定要分析的模型或子系统。对于此示例,请将模型 sldemo_mdlref_basic 指定为模型顾问分析的根模型。

setAnalysisRoot(app,Root = "sldemo_mdlref_basic");

当您将某个模型指定为 Advisor.Application 对象的分析根时,模型顾问会分析该模型及其引用的所有模型。有关详细信息,请参阅 setAnalysisRoot

假设您只想运行检查根模型 Inport 模块设定检查。

默认情况下,Advisor.Application 对象设置为运行当前模型顾问配置中的每个检查实例并选择所有检查实例。清除检查实例,以从模型顾问分析中删除所有检查实例。

deselectCheckInstances(app);

通过查找并使用检查实例 ID,指定您希望模型顾问仅运行检查根模型 Inport 模块设定检查。

checkID = "mathworks.design.RootInportSpec";
instanceIDs = getCheckInstanceIDs(app,checkID);
instanceID = instanceIDs(1);
selectCheckInstances(app,ID = instanceID);

现在,您已选择检查根模型 Inport 模块设定检查作为模型顾问分析内容。

getCheckInstanceIDs 方法返回多个检查实例 ID,因为检查根模型 Inport 模块设定检查显示在模型顾问树的多个文件夹中。对于此示例,instanceID 指定为 getCheckInstanceIDs 返回的第一个检查实例 ID,但您可以选择 getCheckInstanceIDs 返回的任何检查实例 ID。

注意

或者,如果您要加载模型顾问配置文件而不是选择单个检查,请使用 loadConfiguration 方法。

运行模型顾问分析。

run(app);

模型顾问对 sldemo_mdlref_basicsldemo_mdlref_counter 运行检查根模型 Inport 模块设定检查。

获取模型顾问分析的结果。

res = getResults(app);

生成并查看模型顾问报告。

report = generateReport(app);
web(report);

模型顾问报告提供 sldemo_mdlref_basicsldemo_mdlref_counter 的结果摘要,以及指向每个模型的单独报告的超链接。

此示例说明如何对模型 slexVariantManagement 中的不同变体选择项运行标识未连接的信号线、输入端口和输出端口检查。

打开示例模型 slexVariantManagement。在 MATLAB 命令行窗口中,输入:

openExample("slexVariantManagement")

模型 slexVariantManagement 包含多个可变子系统模块,包括 ControllerPlant。可变子系统模块内包含这些组件的不同实现。

slexVariantManagement 具有存储在与该模型关联的变体配置数据对象 vcd 中的多个变体配置。Advisor.Application 对象只能依据使用变体管理器创建的变体配置,对模型中的活动和非活动变体模块运行模型顾问分析。有关详细信息,请参阅Variant Manager for SimulinkVariant Configurations

创建可用于运行模型顾问检查的 Advisor.Application 对象。

app = Advisor.Manager.createApplication();

AnalyzeVariants 指定为 true,以便 Advisor.Application 对象可以对 slexVariantManagement 中的每个变体选择项运行模型顾问。

app.AnalyzeVariants = true;

指定要分析的模型。对于此示例,请将模型 slexVariantManagement 指定为模型顾问分析的根模型。

setAnalysisRoot(app,Root = "slexVariantManagement");

假设您只想运行标识未连接的信号线、输入端口和输出端口检查。

默认情况下,Advisor.Application 对象设置为运行当前模型顾问配置中的每个检查实例并选择所有检查实例。清除检查实例,以从模型顾问分析中删除所有检查实例。

deselectCheckInstances(app);

通过查找并使用检查实例 ID,指定您希望模型顾问仅运行标识未连接的信号线、输入端口和输出端口检查。

checkID = "mathworks.design.UnconnectedLinesPorts";
instanceIDs = getCheckInstanceIDs(app,checkID);
instanceID = instanceIDs(1);
selectCheckInstances(app,ID = instanceID);

现在,您已选择标识未连接的信号线、输入端口和输出端口检查作为模型顾问分析内容。

getCheckInstanceIDs 方法返回多个检查实例 ID,因为标识未连接的信号线、输入端口和输出端口检查显示在模型顾问树的多个文件夹中。对于此示例,instanceID 指定为 getCheckInstanceIDs 返回的第一个检查实例 ID,但您可以选择 getCheckInstanceIDs 返回的任何检查实例 ID。

注意

或者,如果您要加载模型顾问配置文件而不是选择单个检查,请使用 loadConfiguration 方法。

运行模型顾问分析。

run(app);

模型顾问对该模型和引用模型中的活动和非活动变体运行检查。

获取模型顾问分析的结果。

res = getResults(app);

生成并查看模型顾问报告。

report = generateReport(app);
web(report);

模型顾问报告提供 slexVariantManagement 的结果摘要,以及指向每个变体的单独报告的超链接。

限制

  • 引用模型仅在没有数据时才进行编译,并且在以下情况下不会对引用模型运行编译时检查:

    • 在层次结构中使用模型引用。

    • 仿真模式设置为 accelerator

    • UpdateModelReferenceTargets 设置为 IfOutOfDate

  • Advisor.Application 无法在多个系统上并行运行。如果您的模型不使用模型引用或变体,请改用函数 ModelAdvisor.runModelAdvisor.run 可以对模型和子系统运行模型顾问检查,并且可以选择在多个系统上并行运行。

版本历史记录

在 R2015b 中推出