sl_customization.m содержит набор функций для регистрации и определения пользовательских проверок, задач и групп. Как настроить sl_customization.m следуйте инструкциям в этой таблице.
Примечание
Если папка По продукту (By Product) не отображается в окне Мастер модели (Model Advisor), выберите Показать по папке продукта (Show By Product Folder) в диалоговом окне Настройки (Settings) > Настройки (Preferences).
| Функция | Описание | Обязательно или необязательно |
|---|---|---|
sl_customization() | Регистрирует пользовательские проверки и задачи, папки в диспетчере настройки Simulink ® при запуске. См. раздел Определение собственных пользовательских проверок помощника по модели . | Требуется для настройки в Model Advisor. |
| Одно или несколько определений проверки | Определяет пользовательские проверки. См. раздел Определение собственных пользовательских проверок помощника по модели. | Требуется для пользовательских проверок и для добавления пользовательских проверок в папку By Product. |
| Одно или несколько определений задач | Определяет пользовательские задачи. См. раздел Определение настраиваемых задач. | Требуется для добавления пользовательских проверок в Model Advisor, за исключением случаев добавления проверок в папку By Product. Запишите по одной задаче для каждой проверки, добавляемой в Model Advisor. |
| Одна или несколько групп | Определяет пользовательские группы. См. раздел Определение настраиваемых задач. | Требуется для добавления пользовательских задач в новые папки в Model Advisor, за исключением добавления новой подпапки в папку By Product. Запишите одно определение группы для каждой новой папки. |
Чтобы добавить задачи и папки в Model Advisor, создайте sl_customization.m файл по пути MATLAB ®. Затем создайте sl_customization() функции в sl_customization.m файл по пути MATLAB.
Совет
Вы можете иметь более одного sl_customization.m файл по пути MATLAB.
Не размещать sl_customization.m файл, который настраивает Model Advisor в вашей корневой папке MATLAB или ее подпапках, за исключением папка. В противном случае помощник по модели игнорирует настройки, указанные в файле.matlabroot/work
sl_customization функция принимает один аргумент, объект диспетчера настройки, как в этом примере:
function sl_customization(cm)
Объект диспетчера настроек включает методы регистрации пользовательских проверок, задач и папок. Эти методы используются для регистрации настроек, специфичных для приложения, как описано в следующих разделах.
Диспетчер настройки предоставляет следующие методы регистрации пользовательских задач и папок:
addModelAdvisorTaskFcn (@factorygroupDefinitionFcn)
Регистрация задач, определенных в в папку By Task помощника по модели.factorygroupDefinitionFcn
аргумент является дескриптором функции, определяющей проверки для добавления в Model Advisor в качестве экземпляров factorygroupDefinitionFcnModelAdvisor.FactoryGroup класс.
addModelAdvisorTaskAdvisorFcn (@taskDefinitionFcn)
Регистрация задач и папок, определенных в в папку в Model Advisor, заданную с помощью taskDefinitionFcnModelAdvisor.Root.publish метод или ModelAdvisor.Group класс.
аргумент является дескриптором функции, определяющей пользовательские задачи и папки. Simulink добавляет проверки и папки в Model Advisor в качестве экземпляров taskDefinitionFcnModelAdvisor.Task или ModelAdvisor.Group классы.
В следующем примере показано, как зарегистрировать пользовательские задачи и папки:
function sl_customization(cm) % register custom factory group cm.addModelAdvisorTaskFcn(@defineModelAdvisorTasks); % register custom tasks. cm.addModelAdvisorTaskAdvisorFcn(@defineTaskAdvisor);
Примечание
При добавлении пользовательских проверок в sl_customization.m , включить методы регистрации проверок в sl_customization функция.
Настраиваемые задачи можно использовать для добавления проверок в Model Advisor либо в нескольких папках, либо в одной настраиваемой папке. Пользовательские задачи определяются в одной или нескольких функциях, задающих свойства каждого экземпляра ModelAdvisor.Task класс. Определите один экземпляр этого класса для каждой пользовательской задачи, которую необходимо добавить в Model Advisor. Затем зарегистрируйте пользовательскую задачу. В следующих разделах описывается определение пользовательских задач.
Чтобы добавить чек в несколько папок или в одну настраиваемую папку, выполните следующие действия.
Создание чека с помощью ModelAdvisor.Check класс.
Зарегистрируйте оболочку задачи для проверки.
Если вы хотите добавить чек к папкам, которые еще не присутствуют, зарегистрируйте и создайте папки с помощью ModelAdvisor.Group класс.
Добавление проверки к задаче с помощью ModelAdvisor.Task.setCheck способ.
Добавьте задачу в каждую папку с помощью ModelAdvisor.Group.addTask метод и идентификатор задачи.
Можно добавить проверки MathWorks ® в пользовательские папки, определив проверки как пользовательские задачи. При добавлении проверок в качестве пользовательских задач они идентифицируются по идентификатору проверки.
Чтобы найти идентификаторы проверки MathWorks:
В иерархии перейдите к папке, содержащей проверку MathWorks.
На правой панели помощника по модели выберите вкладку Источник (Source). Для каждой проверки в папке помощник по модели отображает сведения о названии, коде и источнике.
Примечание
Если вкладка "Источник" недоступна, откройте "Параметры" > "Установки" и выберите "Показать вкладку" Источник ".
Выберите и скопируйте ID проверки, которую требуется добавить в качестве задачи.
Visible, Enable, и Value свойства взаимодействуют для задач так же, как и для проверок.
Можно указать, где помощник по модели размещает задачи в помощнике по модели, используя следующие рекомендации.
Чтобы поместить задачу в новую папку в диспетчере задач Model Advisor, используйте ModelAdvisor.Group класс.
Чтобы поместить задачу в новую папку в папке «По задаче», используйте ModelAdvisor.FactoryGroup класс.
В следующем примере показана функция определения задачи. Эта функция определяет три задачи.
% Defines Model Advisor tasks and a custom folder % Add checks to a custom folder using task definitions function defineTaskAdvisor mdladvRoot = ModelAdvisor.Root; % Define task that uses Sample Check 0: Check whose Results are Viewed as Detailed Result Collections MAT8 = ModelAdvisor.Task('com.mathworks.sample.TaskSample8'); MAT8.DisplayName='Example task using new check style (recommended style)'; MAT8.setCheck('com.mathworks.sample.Check0'); mdladvRoot.register(MAT8); % Define task that uses Sample Check 1: Informational check MAT1 = ModelAdvisor.Task('mathworks.example.task.configManagement'); MAT1.DisplayName = 'Informational check for model configuration management'; MAT1.Description = 'Display model configuration and checksum information.'; setCheck(MAT1, 'mathworks.example.configManagement'); mdladvRoot.register(MAT1); % Define task that uses Sample Check 2: Basic Check with Pass/Fail Status MAT2 = ModelAdvisor.Task('mathworks.example.task.unconnectedObjects'); MAT2.DisplayName = 'Check for unconnected objects'; setCheck(MAT2, 'mathworks.example.unconnectedObjects'); MAT2.Description = ['Identify unconnected lines, input ports, and output ' ... 'ports in the model or subsystem.']; mdladvRoot.register(MAT2); % Define task that uses Sample Check 3: Check with Subresults and Actions MAT3 = ModelAdvisor.Task('mathworks.example.task.optimizationSettings'); MAT3.DisplayName = 'Check safety-related optimization settings'; MAT3.Description = ['Check model configuration for optimization ' ... 'settings that can impact safety.']; MAT3.setCheck('mathworks.example.optimizationSettings'); mdladvRoot.register(MAT3); % Custom folder definition MAG = ModelAdvisor.Group('mathworks.example.ExampleGroup'); MAG.DisplayName = 'My Group'; % Add tasks to My Group folder MAG.addTask(MAT8); addTask(MAG, MAT1); addTask(MAG, MAT2); addTask(MAG, MAT3); % Add My Group folder to the Model Advisor under 'Model Advisor' (root) mdladvRoot.publish(MAG);
Используйте папки для группирования проверок в Model Advisor по функциям или использованию. Пользовательские папки определяются в:
Функция определения группы фабрики, определяющая свойства каждого экземпляра ModelAdvisor.FactoryGroup класс.
Функция определения задачи, определяющая свойства каждого экземпляра ModelAdvisor.Group класс.
Определите один экземпляр классов групп для каждой папки, которую требуется добавить в Model Advisor.
Чтобы добавить пользовательскую папку, выполните следующие действия.
Создайте папку с помощью ModelAdvisor.Group или ModelAdvisor.FactoryGroup классы.
Зарегистрируйте папку.
Расположение пользовательских папок в модуле Model Advisor можно задать с помощью следующих инструкций.
Чтобы определить новую папку в диспетчере задач Model Advisor, используйте ModelAdvisor.Group класс.
Чтобы определить новую папку в папке «По заданию», используйте ModelAdvisor.FactoryGroup класс.
Примечание
Чтобы определить новую папку в папке «По продукту», используйте ModelAdvisor.Root.publish в рамках пользовательской проверки. Если папка По продукту (By Product) не отображается в окне Мастер модели (Model Advisor), выберите Показать по папке продукта (Show By Product Folder) в диалоговом окне Настройки (Settings) > Настройки (Preferences).
В следующих примерах показано определение группы. Определение помещает задачи в папку «Моя группа» в корневом каталоге Model Advisor. Функция определения задачи включает это определение группы.
% Custom folder definition MAG = ModelAdvisor.Group('mathworks.example.ExampleGroup'); MAG.DisplayName='My Group'; % Add tasks to My Group folder MAG.addTask(MAT8); MAG.addTask(MAT1); MAG.addTask(MAT2); MAG.addTask(MAT3); % Add My Group folder to the Model Advisor under 'Model Advisor' (root) mdladvRoot.publish(MAG);
В следующем примере показана функция определения группы фабрики. Определение помещает чеки в папку Demo Factory Group внутри папки By Task.
function defineModelAdvisorTasks mdladvRoot = ModelAdvisor.Root; % --- sample factory group rec = ModelAdvisor.FactoryGroup('com.mathworks.sample.factorygroup'); rec.DisplayName='Demo Factory Group'; rec.Description='Demo Factory Group'; rec.addCheck('com.mathworks.sample.Check0'); rec.addCheck('mathworks.example.configManagement'); rec.addCheck('mathworks.example.unconnectedObjects'); rec.addCheck('mathworks.example.optimizationSettings'); mdladvRoot.publish(rec); % publish inside By Task
ModelAdvisor.Check | ModelAdvisor.FactoryGroup | ModelAdvisor.Group | ModelAdvisor.Procedure | ModelAdvisor.Task | publish