以编程方式创建基于过程的配置
您可以创建一个基于过程的配置,用它来指定对模型进行更改的顺序。您可以使用过程 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