以编程方式创建基于过程的配置
您可以创建一个基于过程的配置,用它来指定对模型进行更改的顺序。您可以使用过程 API 将检查放入过程。过程中的检查仅在前一项检查通过后才会运行。基于过程的配置会一直运行,直到有一项检查失败,这时会要求您修改模型以通过该检查并继续执行下一项检查。因此,为了通过检查而对模型进行的更改要遵循特定的顺序。
要创建基于过程的配置,请执行以下任务:
查看自定义模型顾问配置概述中的信息。
决定对您模型的更改的顺序。
根据您要对模型进行的修改,确定可以提供相关信息的检查。例如,如果要修改模型优化设置,则“检查优化设置”检查可以提供相关设置的信息。您可以使用自定义检查和 MathWorks® 提供的检查。
(可选)在自定义文件中创建自定义检查。请参阅创建模型顾问检查。
将检查放入过程中以创建基于过程的配置:
使用过程 API 创建过程。有关详细信息,请参阅创建基于过程的配置。
创建自定义配置 使用模型顾问配置编辑器来自定义模型顾问。
(可选)为用户部署自定义配置。有关详细信息,请参阅部署自定义配置。
验证模型符合建模规范。有关详细信息,请参阅运行模型顾问检查并查看结果。
创建基于过程的配置
使用过程 API 创建过程
使用 ModelAdvisor.Procedure 类 API 创建过程。首先将检查添加到任务中,任务是检查的包装器。任务添加到了过程中。
注意
创建在过程中使用的检查时,请注意检查之间的潜在冲突。确保检查均可通过。
您可以使用 ModelAdvisor.Procedure 类来创建在过程中使用的检查。
使用
ModelAdvisor.Task.setCheck方法将每个检查添加到任务中。任务是检查的包装器。您无法将检查直接添加到过程中。使用
ModelAdvisor.Procedure.addTask方法将每个任务添加到过程中。
定义过程
您可以在过程定义函数中定义过程,用函数来指定 ModelAdvisor.Procedure 类的每个实例的属性。为要添加到模型顾问的每个过程定义一个过程类的实例。然后使用 ModelAdvisor.Root.register 方法注册该过程。
您可以向过程中添加子过程或任务。这些任务是检查的包装器。
使用
ModelAdvisor.Procedure.addProcedure方法向过程添加子过程。使用
ModelAdvisor.Procedure.addTask方法向过程添加任务。
以下代码示例向过程添加子过程:
%Create a procedure
MAP = ModelAdvisor.Procedure('com.mathworks.example.Procedure');
%Create 3 sub procedures
MAP1=ModelAdvisor.Procedure('com.mathworks.example.procedure_sub1');
MAP2=ModelAdvisor.Procedure('com.mathworks.example.procedure_sub2');
MAP3=ModelAdvisor.Procedure('com.mathworks.example.procedure_sub3');
%Add sub procedures to procedure
addProcedure(MAP, MAP1);
addProcedure(MAP, MAP2);
addProcedure(MAP, MAP3);
%register the procedures
mdladvRoot = ModelAdvisor.Root;
mdladvRoot.register(MAP);
mdladvRoot.register(MAP1);
mdladvRoot.register(MAP2);
mdladvRoot.register(MAP3);以下代码示例向过程添加任务:
%Create three tasks
MAT1=ModelAdvisor.Task('com.mathworks.tasksample.myTask1');
MAT2=ModelAdvisor.Task('com.mathworks.tasksample.myTask2');
MAT3=ModelAdvisor.Task('com.mathworks.tasksample.myTask3');
%Create a procedure
MAP = ModelAdvisor.Procedure('com.mathworks.tasksample.myProcedure');
%Add the three tasks to the procedure
addTask(MAP, MAT1);
addTask(MAP, MAT2);
addTask(MAP, MAT3);
%register the procedure and tasks
mdladvRoot = ModelAdvisor.Root;
mdladvRoot.register(MAP);
mdladvRoot.register(MAT1);
mdladvRoot.register(MAT2);
mdladvRoot.register(MAT3);您可以使用 ModelAdvisor.Group.addProcedure 方法指定模型顾问放置过程的位置。以下代码示例将过程添加到一个组中:
%Create three procedures
MAP1=ModelAdvisor.Procedure('com.mathworks.sample.myProcedure1');
MAP2=ModelAdvisor.Procedure('com.mathworks.sample.myProcedure2');
MAP3=ModelAdvisor.Procedure('com.mathworks.sample.myProcedure3');
%Create a group
MAG = ModelAdvisor.Group('com.mathworks.sample.myGroup');
%Add the three procedures to the group
addProcedure(MAG, MAP1);
addProcedure(MAG, MAP2);
addProcedure(MAG, MAP3);
%register the group and procedures
mdladvRoot = ModelAdvisor.Root;
mdladvRoot.register(MAG);
mdladvRoot.register(MAP1);
mdladvRoot.register(MAP2);
mdladvRoot.register(MAP3);另请参阅
ModelAdvisor.Check | ModelAdvisor.Procedure