定义自定义模型顾问检查
您可以通过定义自定义检查,为model Advisor创建您自己的条件和模型配置设置。您可以创建自定义检查,这些检查在编辑期间和在Model Advisor中运行,或者仅在Model Advisor中运行。
自定义编辑时检查可以帮助您在模型设计过程的早期识别问题,但是它们只查看用户正在编辑的模型或子系统的同一级别上的块和信号。然而,这些检查确实在模型层次结构的各个级别上聚集,并在model Advisor中报告问题。如果您的检查必须在模型的其他级别检查受影响的块,那么创建一个只在model Advisor中运行的自定义检查。例如,如果您的检查必须检查不匹配从和转到块跨模型层次结构,定义此检查仅在model Advisor中运行。
这些步骤显示了创建在编辑期间或仅在Model Advisor中运行的检查的过程。
创建sl_customization命令功能
要定义自定义检查,首先创建一个sl_customization.m
文件在MATLAB路径下。在sl_customization.m
文件,创建sl_customization
函数。的sl_customization
函数接受一个参数,一个自定义管理器对象:
函数sl_customization (cm)
提示
你可以有不止一个
sl_customization.m
文件在您的MATLAB路径。不要放置
sl_customization.m
自定义模型顾问检查和根MATLAB中的文件夹的文件®文件夹或其子文件夹,但
文件夹中。否则,Model Advisor将忽略文件指定的定制。matlabroot
/工作
登记海关检查
要注册自定义检查,请使用addModelAdvisorCheckFcn
方法的自定义管理器对象的一部分,该对象输入到sl_customization
函数。这段代码显示了一个示例sl_customization.m
功能:
函数sl_customization (cm)%注册自定义检查cm.addModelAdvisorCheckFcn (@defineModelAdvisorChecks);% -----------------------------%定义模型顾问检查% -----------------------------函数defineModelAdvisorChecks defineDetailStyleCheck;defineConfigurationParameterCheck;defineNewBlockConstraintCheck;defineEditTimeChecks;
的addModelAdvisorCheckFcn
方法将检查注册到通过产品模型顾问的文件夹。的defineModelAdvisorChecks
参数是函数的句柄,该函数包含对定义自定义检查的函数的调用。对于您创建的每个自定义Model Advisor检查,您应该创建一个检查定义函数。您可以为编辑时检查创建一个检查定义函数,因为每个编辑时检查都包含自己的类定义。
Create Check Definition命令功能
检查定义函数定义了当您运行检查时Model Advisor所采取的操作。这些部分描述了用于自定义编辑时检查和仅在Model Advisor中运行的检查的检查定义功能的关键组件。
的实例ModelAdvisor。检查
类
控件的一个实例ModelAdvisor。检查
类。使用ModelAdvisor。检查
属性和方法来定义检查用户界面和操作。该表描述了一些关键的检查组件。
内容 | 描述 |
---|---|
身份证(必需) | 唯一标识支票。Model Advisor使用这个ID访问检查。 |
(只检查自定义模型顾问check回调函数句柄(必选) | 指定检查内容的函数。 |
(只检查自定义模型顾问动作回调函数的句柄(可选) | 增加一个固定动作。 |
(自定义编辑时检查类句柄(必选) | 定义编辑时检查操作的派生类。这个类还可以为编辑时检查定义一个修复。 |
检查名称(推荐) | 在Model Advisor中为检查指定一个名称。 |
模型编译(可选) | 指定是否为检查分析编译模型。的PostCompileForCodegen 的价值CallbackContext 属性不支持编辑时检查。 |
输入参数(可选) | 添加请求用户输入的输入参数。Model Advisor使用输入来执行检查。 |
定义自定义模型顾问检查
对于只出现在Model Advisor中的自定义检查,检查定义函数包含一个检查回调函数,该函数指定您希望Model Advisor对模型或子系统执行的操作。定义check回调函数并将其句柄传递给setCallbackFcn
方法。当您运行检查时,Model Advisor执行回调函数。回调函数提供一个或多个返回参数,用于显示执行检查后的结果。当您运行检查时,Model Advisor执行回调函数。
如果指定自定义检查修复,则检查定义函数还应包含操作回调函数。的实例ModelAdvisor。行动
类。定义动作回调函数并将其句柄传递给setCallbackFcn
方法。在Model Advisor中,检查用户单击修复将自定义修复应用到它们的模型。
回调函数和动作回调函数提供一个或多个返回参数,用于显示执行检查后的结果。看到创建Check回调定义函数和创建动作回调定义函数。
要使用Model Advisor结果的默认格式,请指定回调函数类型为DetailStyle
在setCallbackFcn
方法。如果默认格式不能满足您的需要,请使用ModelAdvisor。FormatTemplate
类或其他模型顾问格式化类:
类 | 描述 |
---|---|
ModelAdvisor。文本 |
创建一个Model Advisor文本输出。 |
ModelAdvisor。列表 |
创建一个列表。 |
ModelAdvisor。表格 |
创建一个表。 |
ModelAdvisor。段 |
创建并格式化一个段落。 |
ModelAdvisor。LineBreak |
插入换行符。 |
ModelAdvisor。图像 |
在Model Advisor输出中包含一个图像。 |
定义自定义编辑时间检查
要创建自定义编辑时检查,请创建派生自ModelAdvisor。EdittimeCheck
类。在检查定义函数中,将该类指定为ModelAdvisor。检查
CallbackHandle
财产。在派生类中,定义这些方法:
定义一个方法,该方法指定检查ID和
ModelAdivsor.EdittimeCheck.TraversalType
检查的属性。的TraversalType
属性指定Model Advisor如何运行检查。定义一个
blockDiscovered
方法,该方法查找违反编辑时算法的块。如果违例发生在一个块上,则在编辑期间通过创建一个
ModelAdvisor。ResultDetail
的冲突对象。类型
属性设置为的默认值SID
。方法创建一个冲突对象,突出显示该信号类型
属性设置为信号
。如果你指定了
TraversalType
的属性edittimecheck.TraversalTypes.ACTIVEGRAPH
,定义finishedTraversal
方法的一部分,该方法指定编辑时检查对其收集的数据所做的操作blockDiscovered
方法。可选地,定义
修复
方法用于编辑时检查违规。
使用示例请参见定义编辑时检查以符合您使用模型顾问指定的条件。
为了防止自定义编辑时间检查在编辑模型时对性能产生负面影响,如果在当前的MATLAB会话中,检查在至少三个不同的Simulink中执行的时间超过500毫秒,则模型顾问会自动禁用自定义编辑时间检查®模型。
如果Model Advisor禁用自定义编辑时检查,您将在Simulink画布上看到一个警告。您可以通过以下方式重新启用编辑时检查:
单击警告中的超链接文本。
传递检查标识符,
checkID
,到函数edittime.enableCheck
:edittime.enableCheck (checkID)
。
要防止禁用自定义编辑时检查,请编写检查,以便在模型上执行检查的时间少于500毫秒。
定义检查输入参数
您可以在运行检查之前通过使用输入参数请求输入。类定义输入参数ModelAdvisor。InputParameter
类。必须在自定义检查定义函数中包含输入参数定义。必须为要添加到自定义检查中的每个输入参数定义该类的一个实例。
通过使用这些方法在Model Advisor中指定输入参数的布局。
目的 | 方法 |
---|---|
指定输入参数网格的大小 | 。setInputParametersLayoutGrid |
指定参数在输入参数布局网格中占用的行数。 | setRowSpan |
指定参数在输入参数布局网格中占用的列数。 | setColSpan |
模型顾问显示输入参数输入参数盒子。
显示和启用检查
您可以指定自定义检查如何在Model Advisor中显示。方法定义何时显示检查,或者用户是否可以选择或清除检查可见
,启用
,价值
的性质ModelAdvisor。检查
类。这些属性的交互方式如下:
如果
可见
属性是假
,则检查或任务不会显示在Model Advisor和启用
和价值
属性被忽略。如果
可见
属性是真正的
和启用
属性是假
:检查显示在Model Advisor中。
检查的初始状态为
价值
。复选框显示为暗色。
如果
可见
属性是真正的
和启用
属性是真正的
,检查或任务将显示在Model Advisor中,并且复选框是活动的。
发布自定义检查
为自定义检查创建一个文件夹通过产品文件夹,使用发布
方法。然后,使用Model Advisor Configuration Editor自定义Model Advisor树中的文件夹。有关更多信息,请参见使用模型顾问配置编辑器自定义模型顾问。
另请参阅
ModelAdvisor。检查
|ModelAdvisor。EdittimeCheck
|ModelAdvisor。InputParameter
|ModelAdvisor。行动
|发布