Инструмент «Трансформатор модели» можно использовать для улучшения компонентности модели путем замены соответствующих шаблонов моделирования блоками «Источник исполнения» и «Подсистема исполнения». Модельный трансформатор (Model Transformer) сообщает о соответствующих шаблонах моделирования. Выбираются образцы моделирования, заменяемые инструментом блоком «Источник исполнения» или блоком «Подсистема исполнения».
Модельный трансформатор может выполнять следующие преобразования:
Если блок If соединяется с одной или несколькими подсистемами If Action и каждая из них имеет один выходной порт, замените этот шаблон моделирования подсистемой и блоком Variant Source.
Если блок If соединяется с подсистемой If Action, которая не имеет внешнего порта или имеет два или более внешних порта, замените этот шаблон моделирования блоком Variant Subsystem.
Если блок варианта коммутатора подключается к одной или нескольким подсистемам действия варианта коммутатора и каждая из них имеет один выходной порт, замените этот шаблон моделирования на подсистему и блок источника варианта.
Если блок варианта коммутатора подключается к подсистеме действия варианта коммутатора, которая не имеет исходящего порта или имеет два или более выходов, замените этот шаблон моделирования блоком подсистемы исполнения.
Замените блок Switch блоком Variant Source.
Замените блок многопортового коммутатора, который имеет два или более портов данных, блоком источника варианта.
Для выполнения преобразования инструментом Model Transformer управляющий вход в блоки Multiport Switch или Switch и вход в блоки If или Switch Case должны быть следующими:
Блок Constant, в котором параметром Constant value является Simulink.Parameter объект скалярного типа.
Блоки констант, в которых параметры Constant value имеют значение Simulink.Parameter объекты скалярного типа и некоторые другие комбинации блоков, которые образуют поддерживаемое выражение MATLAB. Выражения MATLAB в операторах и операндах в выражениях условий исполнения поддерживаются, за исключением побитовых операций.
В этом примере показано, как использовать трансформатор модели для преобразования модели в исполнительную систему. В примере используется модель rtwdemo_controlflow_opt. Эта модель имеет три блока Switch. Управляющий вход в эти блоки Switch - Simulink.Parameter
cond. Диалоговое окно Модель трансформатора (Model Transformer) и этот пример относятся к cond как системная константа.

Откройте модель. В окне команд введите rtwdemo_controlflow_opt.
Откройте окно Switch1 диалоговое окно «Параметры блока». Измените параметр Threshold на 0. Параметр Threshold должен быть целым числом, поскольку после преобразования исполнения он является частью выражения условия в блоке Variant Source.
Повторите шаг 2 для блоков Switch Switch1, Switch2, и Switch3.
Сохраните модель в рабочей папке.
На вкладке Приложения (Apps) Откройте модель трансформатора (Model Transformer), выбрав Модель трансформатора (Model Transformer). Или в окне команд введите:
mdltransformer('rtwdemo_controlflow_opt')
Установите флажок Преобразовать модель в систему исполнения.

В поле Задать массив системных постоянных ячеек можно указать массив ячеек из векторов символов, состоящий из Simulink.Parameters. Базовая рабочая область должна содержать их определения.
В поле Префикс имени преобразованной модели укажите префикс для имени модели. Если префикс не указан, по умолчанию используется значение gen0.
Выберите Выполнить эту проверку. Модельный трансформатор (Model Transformer) перечисляет системные константы и блоки, которые могут быть частью выражений условий в блоках Источник исполнения (Variant Source) или Подсистема исполнения (Variant Subsystem). Чтобы модель трансформатора могла перечислить системную константу, она должна быть Simulink.Parameter объект скалярного типа. Для этого примера: Cond соответствует части выражения условия.
Если одно из преобразований не требуется, можно снять флажок рядом с ним.
Выберите Модель рефактора (Refactor Model). Трансформатор модели предоставляет гиперссылку на преобразованную модель и гиперссылки на соответствующие блоки в исходной модели и преобразованной модели.
Преобразованная модель или модели находятся в папке с префиксом m2m плюс исходное имя модели. В этом примере имя папки: m2m_rtwdemo_controlflow_opt.
В исходной модели rtwdemo_controlflow_optщелкните правой кнопкой мыши на одном из блоков переключения. В меню выберите Модель (Model) Трансформатор (Transformer) > Отслеживание преобразованного блока (Traceability to Transformed Block). В преобразованной модели gen0_rtwdemo_controlflow_optсоответствующий блок «Источник исполнения» подсвечивается.
В преобразованной модели gen0_rtwdemo_controlflow_optщелкните правой кнопкой мыши на одном из блоков переключения. В меню выберите Модель (Model) Трансформатор (Transformer) > Отслеживание исходного блока (Traceability to Original Block). В исходной модели rtwdemo_controlflow_optсоответствующий блок Switch подсвечивается.
Инструмент Model Transformer имеет следующие ограничения:
Для запуска модели трансформатора необходимо иметь возможность моделирования модели.
Если блок «Если подсистема действий» управляет блоком объединения, а блок объединения имеет другой входной порт, который либо не связан, либо управляется другой условной подсистемой, то трансформатор модели не добавляет блок источника исполнения. Этот шаблон моделирования создает предупреждение и сообщение об исключении кандидата.
Трансформатор модели не может выполнить преобразование исполнения для каждого шаблона моделирования. Этот список содержит некоторые исключения:
Модель содержит защищенный ссылочный блок модели.
Модель содержит блок Variant Source, для параметра Variant activation time установлено значение update diagram.
После выполнения одной или нескольких задач невозможно повторно запустить задачи, поскольку кнопки Выполнить эту задачу и Выполнить все деактивированы. Если требуется повторно запустить задачу, сбросьте модель трансформатора, щелкнув правой кнопкой мыши Модель трансформатора (Model Transformer) и выбрав команду Reset.
Не изменяйте модель в середине преобразования. Если требуется изменить модель, закройте модуль «Модель трансформатора», измените модель, а затем снова откройте модуль «Модель трансформатора».
Для работы гиперссылок в модуле «Трансформатор модели» необходимо иметь модель, на которую указывают связи.