Можно создать процедурную конфигурацию, позволяющую указать порядок внесения изменений в модель. Вы организуете проверки в процедурах с помощью API процедур. Процедура возврата не выполняется до тех пор, пока не пройдет предыдущая проверка. Процедурная конфигурация выполняется до тех пор, пока проверка не завершится неуспешно, что требует изменения модели для прохождения проверки и перехода к следующей проверке. Таким образом, изменения, внесенные в модель для прохождения проверок, выполняются в определенном порядке.
Чтобы создать конфигурацию на основе процедур, выполните следующие задачи.
Просмотрите информацию в разделе Настройка конфигурации обзора Model Advisor (Customize the Configuration of the Model Advisor Overview).
Определите порядок внесения изменений в модель.
Определите проверки, содержащие информацию об изменениях, которые необходимо внести в модель. Например, если требуется изменить настройки оптимизации модели, Проверка настроек оптимизации (Check optimization settings) предоставляет информацию о настройках. Можно использовать пользовательские проверки, предоставляемые MathWorks ®.
(Необязательно) Создание пользовательских проверок в файле настройки. См. раздел Создание проверок помощника по модели.
Организуйте проверки в процедуры для конфигурации на основе процедур:
Создайте процедуры с помощью API процедур. Дополнительные сведения см. в разделе Создание конфигураций на основе процедур.
Создание пользовательской конфигурации Используйте редактор конфигурации Model Advisor для настройки помощника по модели
.
(Необязательно) Разверните пользовательские конфигурации для пользователей. Дополнительные сведения см. в разделе Развертывание настраиваемых конфигураций.
Убедитесь, что модели соответствуют рекомендациям по моделированию. Дополнительные сведения см. в разделе Выполнение проверки и проверки результатов мастера моделей.
Процедуры создаются с помощью ModelAdvisor.Procedure API класса. Сначала необходимо добавить проверки в задачи, которые являются оболочками для проверок. Задачи добавляются в процедуры.
Примечание
При создании процедурных проверок следует помнить о потенциальных конфликтах с проверками. Убедитесь в возможности прохождения обеих проверок.
Вы используете ModelAdvisor.Procedure для создания процедурных проверок.
Добавление каждой проверки к задаче с помощью ModelAdvisor.Task.setCheck способ. Задача является оболочкой для проверки. Нельзя добавлять проверки непосредственно в процедуры.
Добавление каждой задачи в процедуру с помощью ModelAdvisor.Procedure.addTask способ.
Процедуры определяются в функции определения процедур, которая определяет свойства каждого экземпляра ModelAdvisor.Procedure класс. Определите один экземпляр класса процедур для каждой процедуры, которую требуется добавить в Model Advisor. Затем зарегистрируйте процедуру с помощью 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