Можно использовать инструмент Model Transformer, чтобы улучшить компонентность модели путем замены квалифицированных шаблонов моделирования блоками Variant Source и Variant Subsystem, Variant Model. Model Transformer сообщает о квалифицированных шаблонах моделирования. Вы выбираете, какие шаблоны моделирования инструмент заменяет на Variant Source блок или Variant Subsystem блок.
Модельный трансформатор может выполнить следующие преобразования:
Если блок If соединяется с одним или несколькими If Action Subsystem s, и у каждого из них есть один выходной порт, замените этот шаблон моделирования на подсистему и Variant Source блок.
Если блок If соединяется с If Action Subsystem, которая не имеет выхода или имеет два или более выходов, замените этот шаблон моделирования на Variant Subsystem блок.
Если блок Switch Case соединяется с одним или несколькими Switch Case Action Subsystem s, и у каждого из них есть один выходной порт, замените этот шаблон моделирования на подсистему и Variant Source блок.
Если блок Switch Case соединяется с Switch Case Action Subsystem, которая не имеет выхода или имеет два или более выходов, замените этот шаблон моделирования на Variant Subsystem блок.
Замените Switch блок на Variant Source блок.
Замените блок Multiport Switch, который имеет два или более портов данных, на блок Variant Source.
Для выполнения преобразования инструментом Model Transformer, вход управления в Multiport Switch или Switch блоки и входы в If или Switch Case блоки должны быть любым из следующих:
Блок Constant, в котором параметром Constant value является Simulink.Parameter
объект скалярного типа.
Constant блоки, в которых 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. Или в Командном окне введите:
mdltransformer('rtwdemo_controlflow_opt')
Установите флажок Преобразовать модель в вариантную систему.
В Specify system constant cell array поле можно задать массив ячеек из векторов символов, состоящих из Simulink.Parameters
. Базовое рабочее пространство должна содержать их определения.
В поле Prefix of transformed model name укажите префикс для имени модели. Если вы не задаете префикс, по умолчанию это gen0
.
Выберите Run This Check. Model Transformer приводит системные константы и блоки, которые считаются частью выражений условий в Variant Source или Variant Subsystem блоках. Чтобы Трансформатор Модели перечислил системную константу, это должно быть Simulink.Parameter
объект скалярного типа. В данном примере Cond
определяет часть выражения условия.
Если вы не хотите, чтобы одно из преобразований произошло, можно снять флажок рядом с ним.
Выберите Refactor Model. Model Transformer предоставляет гиперссылку на преобразованную модель и гиперссылки на соответствующие блоки в исходной модели и преобразованной модели.
Преобразованная модель или модели находятся в папке, которая имеет префикс m2m
плюс исходное имя модели. В данном примере имя папки m2m_rtwdemo_controlflow_opt
.
В исходной модели rtwdemo_controlflow_opt
щелкните правой кнопкой мыши один из блоков Switch. В меню выберите Model Transformer > Traceability to Transformed Block. В преобразованной модели gen0_rtwdemo_controlflow_opt
соответствующий Variant Source блок подсвечивается.
В преобразованной модели gen0_rtwdemo_controlflow_opt
щелкните правой кнопкой мыши один из блоков Switch. В меню выберите Model Transformer > Traceability to Original Block. В исходной модели rtwdemo_controlflow_opt
соответствующий Switch блок подсвечивается.
Инструмент Model Transformer имеет следующие ограничения:
В порядок, чтобы запустить Трансформатор Модели на модели, вы должны быть в состоянии симулировать модель.
Если блок If Action Subsystem управляет блоком Merge, а блок Merge имеет другой входной порт, который либо не соединен, либо управляется другой условной подсистемой, трансформатор модели не добавляет блок Variant Source. Этот шаблон моделирования генерирует предупреждение и исключенное сообщение кандидата.
Трансформатор Модели не может выполнить преобразование варианта для каждого шаблона моделирования. Этот список содержит некоторые исключения:
Модель содержит защищенный блок модели-ссылки.
Модель содержит блок Variant Source с Variant activation time набора параметров для update diagram
.
После запуска одной или нескольких задач вы не можете перезапустить задачи, потому что кнопки Run this Task и Run All отключены. Если вы хотите перезапустить задачу, сбросьте Трансформатор, щелкнув правой кнопкой мыши Model Transformer и выбрав Reset
.
Не изменяйте модель в середине преобразования. Если вы хотите изменить модель, закройте Model Transformer, измените модель, а затем снова откройте Model Transformer.
Чтобы гиперссылки в Модельном трансформаторе работали, вы должны иметь модель, на которую указывают ссылки, чтобы открыться.