主要内容

本页采用了机器翻译。点击此处可查看英文原文。

generateReport

类: Advisor.Application
命名空间: Advisor

生成模型顾问分析报告

说明

Application 对象分析生成模型顾问报告。

generateReport(app)Application 对象指定的每个组件生成模型顾问报告。默认情况下,模型顾问会生成一个汇总报告 report.html 以及当前工作目录文件夹中每个模型组件的报告。文件夹名称即为分析根目录的名称。

示例

generateReport(___,Name,Value) 指定报告的生成位置,使用一个或多个 Name,Value 对参量。例如,您可以指定包含生成的模型顾问报告的文件夹的名称和位置。

示例

输入参数

全部展开

模型顾问 application 对象,指定为 Advisor.Application 对象。使用 Advisor.Manager.createApplication 方法创建一个 Advisor.Application 对象。

名称-值参数

全部展开

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

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

生成报告的文件夹路径,以字符向量或字符串数组的形式指定。

默认情况下,模型顾问报告会生成在当前工作目录下的一个文件夹中。

示例: report = generateReport(app,'Location','my_work')

生成报告的文件夹名称,以字符向量或字符串数组的形式指定。

默认情况下,文件夹名称为分析根目录的名称。

示例: report = generateReport(app,'Name','my_reports')

示例

全部展开

此示例展示了如何生成以当前文件夹中的分析根名称命名的报告。

打开一个模型。例如,打开模型 sldemo_mdlref_basic

openExample('sldemo_mdlref_basic');

创建一个 Advisor.Application 对象。

app = Advisor.Manager.createApplication();

将模型 sldemo_mdlref_basic 指定为模型顾问分析的根。

RootModel='sldemo_mdlref_basic';
setAnalysisRoot(app,'Root',RootModel);

运行模型顾问分析。

run(app);

这段代码会运行所有选定的检查。有关如何仅运行特定检查的信息,请参阅 Advisor.Application

生成模型顾问报告

report = generateReport(app);

模型顾问生成一份汇总报告 report.html 以及每个模型组件的报告。报告生成在当前工作目录下的 sldemo_mdlref_basic 文件夹中。

在 Web 浏览器中打开摘要报告。

web(report);

此示例展示了如何在具有特定名称和位置的文件夹中生成报告。

打开一个模型。例如,打开模型 sldemo_mdlref_basic

openExample('sldemo_mdlref_basic');

创建一个 Advisor.Application 对象。

app = Advisor.Manager.createApplication();

将模型 sldemo_mdlref_basic 指定为模型顾问分析的根。

RootModel='sldemo_mdlref_basic';
setAnalysisRoot(app,'Root',RootModel);

运行模型顾问分析。

run(app);

在当前工作目录中创建一个名为 my_work 的新文件夹。

mkdir my_work

在文件夹 my_work 中的名为 my_reports 的文件夹中生成模型顾问报告。

report = generateReport(app,...
'Location','my_work',...
'Name','my_reports');

模型顾问生成一份汇总报告 report.html 以及每个模型组件的报告。

Current Folder with "my_work" folder, "my_reports" subfolder, and the generated reports

在 Web 浏览器中打开摘要报告。

web(report);

此示例说明如何对模型 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 的结果摘要,以及指向每个变体的单独报告的超链接。

版本历史记录

在 R2015b 中推出