Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

定义您自己的自定义模型顾问检查

要指定您自己的条件组和模型配置设置供模型顾问审核,请创建自定义检查。下图概要显示了创建和定义自定义检查的工作流。以下各节提供了每个工作流步骤的详细信息。

创建 sl_customization 文件和函数

要定义自定义检查,首先在 MATLAB 路径中创建一个 sl_customization.m 文件。在 sl_customization.m 文件中,创建一个 sl_customization 函数。sl_customization 函数接受一个参数,即自定义管理器对象:

function sl_customization(cm)

提示

  • 您的 MATLAB 路径上可以有多个 sl_customization.m 文件。

  • 不要将用于对模型顾问检查和文件夹进行自定义的 sl_customization.m 文件放在您的根 MATLAB® 文件夹或其子文件夹中,matlabroot/work 文件夹除外。否则,模型顾问会忽略文件指定的自定义。

注册自定义检查

要注册自定义检查,请使用 addModelAdvisorCheckFcn 方法,它是您输入到 sl_customization 函数的自定义管理器对象的一部分。将以下代码添加到您的 sl_customization.m 文件中:

function sl_customization(cm)
% register custom checks
cm.addModelAdvisorCheckFcn(@checkDefinitionFcn)

addModelAdvisorCheckFcn 方法将您在 checkDefinitionFcn 中定义的检查注册到模型顾问的 By Product 文件夹。checkDefinitionFcn 参数是函数句柄,该函数以 ModelAdvisor.Check 类实例的形式定义您要添加到模型顾问中的自定义检查。

创建检查定义函数

检查定义函数定义在运行检查时模型顾问采取的操作。对于您创建的每个检查,您应定义一个检查定义函数。以下各节说明检查定义函数的关键组成部分。

创建 ModelAdvisor.Check 类的实例

对于每个自定义检查,创建 ModelAdvisor.Check 类的一个实例。使用 ModelAdvisor.Check 属性和方法来定义检查用户界面和操作。下表说明了一些关键的检查组成部分。

内容说明
检查 ID(必需)用于对检查进行唯一性标识。模型顾问使用此 ID 来访问检查。
检查回调函数的句柄(必需)用于指定检查内容的函数。
检查名称(推荐)为模型顾问显示的检查创建一个名称。
模型编译(可选)指定是否编译模型以用于检查分析。
输入参数(可选)添加输入参数,这些输入参数要求用户提供输入。模型顾问使用输入来执行检查。
操作(可选)添加修复操作。

定义检查操作和修复

检查定义函数包含一个检查回调函数,该函数指定您希望模型顾问对模型或子系统执行的操作。定义检查回调函数,并将其句柄传递给 setCallbackFcn 方法。在您运行检查时,模型顾问执行该回调函数。回调函数提供一个或多个返回参数,这些参数在执行检查后显示结果。

如果您要指定自定义检查修复,检查定义函数还应包含操作回调函数。在检查定义函数中,创建 ModelAdvisor.Action 类的一个实例。定义操作回调函数,并将其句柄传递给 setCallbackFcn 方法。在您定义操作时,模型顾问在 Analysis 框下方增加一个 Action 框。Action 框包含用于修复模型或子系统的按钮。在以下示例中,按钮名称是 Modify Settings

回调和操作回调函数提供一个或多个返回参数,用于在执行检查后显示结果。请参阅 创建检查回调定义函数创建操作回调定义函数

定义检查输入参数

使用输入参数,您可以在运行检查之前要求提供输入。使用 ModelAdvisor.InputParameter 类定义输入参数。您必须在自定义检查定义函数中包含输入参数定义。您必须为要添加到模型顾问检查中的每个输入参数定义此类的一个实例。

使用以下方法指定输入参数的布局。

方法说明
setInputParametersLayoutGrid指定输入参数网格的大小。
setRowSpan指定参数在输入参数布局网格中占据的行数。
setColSpan指定参数在输入参数布局网格中占据的列数。

模型顾问在 Input Parameters 框中显示输入参数。

定义自定义检查出现的位置

通过使用 publish 方法在 By Product 文件夹中创建一个用于自定义检查的文件夹。然后使用 Model Advisor Configuration Editor 自定义模型顾问树中的文件夹。有关详细信息,请参阅使用 Model Advisor Configuration Editor 来自定义模型顾问

您可以使用 ModelAdvisor.GroupModelAdvisor.FactoryGroup 类(而不是 Model Advisor Configuration Editor)来自定义模型顾问。然而,使用这些 API 自定义模型顾问的灵活性不高,且更耗时。要将自定义的检查放置在模型顾问树顶层(模型顾问根)的自定义文件夹中,请使用 ModelAdvisor.Group 类。要将自定义的检查放置在 By Task 文件夹中的新文件夹中,请使用 ModelAdvisor.FactoryGroup 类。您必须在 sl_customization 函数中包含注册这些任务和文件夹的方法。

格式化检查结果

要对模型顾问结果使用默认格式,请在 setCallbackFcn 方法中将回调函数类型指定为 DetailStyle。如果默认格式不能满足您的需要,请使用其他回调函数样式之一以及 ModelAdvisor.FormatTemplate 类或下列其他模型顾问格式 API:

说明
ModelAdvisor.Text

创建一个模型顾问文本输出。

ModelAdvisor.List

创建一个列表。

ModelAdvisor.Table

创建一个表。

ModelAdvisor.Paragraph

创建并格式化一个段落。

ModelAdvisor.LineBreak

插入一个换行符。

ModelAdvisor.Image

在模型顾问输出中包含一个图像。

显示和启用检查

您可以指定自定义检查在模型顾问中的显示方式。您可以定义何时显示检查,或者用户是否可以使用 ModelAdvisor.Check 类的 VisibleEnableValue 属性选择或清除检查。

下图说明了 VisibleEnableValue 属性如何交互。

如果您将检查作为任务添加到模型顾问,请在 ModelAdvisor.Task 类中指定这些属性。如果您在 ModelAdvisor.CheckModelAdvisor.Task 类中同时指定了某些属性,则 ModelAdvisor.Task 中的属性优先,但 VisibleLicenseName 属性除外。

另请参阅

| | | | |

相关主题