Можно использовать инструмент Model Transformer, чтобы улучшить компонентизацию модели, заменяя квалифицирующий моделирование шаблонов с Различным Источником и Различной Подсистемой, Различными блоками Model. Трансформатор Модели сообщает о шаблонах моделирования квалификации. Вы выбираете, который моделирование копирует замены инструмента блоком 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
Диалоговое окно Block Parameters. Измените параметр 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. Трансформатор Модели перечисляет системные константы и блоки, которые квалифицируют, чтобы быть частью выражений условия в блоках Variant Subsystem или Variant Source. Для Трансформатора Модели, чтобы перечислить постоянную систему, это должен быть Simulink.Parameter
объект скалярного типа. В данном примере Cond
квалифицирует к части выражения условия.
Если вы не хотите, чтобы одно из преобразований произошло, можно снять флажок рядом с ним.
Выберите Refactor Model. Трансформатор Модели обеспечивает гиперссылку на преобразованную модель и гиперссылки на соответствующие блоки в исходной модели и преобразованной модели.
Преобразованная модель или модели находятся в папке, которая имеет префиксный 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. Этот шаблон моделирования производит предупреждение и исключенное сообщение кандидата.
Трансформатор Модели не может выполнить различное преобразование для каждого шаблона моделирования. Этот список содержит некоторые исключения:
Модель содержит блок Model, который ссылается на защищенную модель.
Модель содержит блок Variant Source с набором параметров Variant activation time к update diagram
.
После того, как вы запускаете одну или несколько задач, вы не можете повторно выполнить задачи, потому что кнопки Run this Check и Run All деактивированы. Если вы хотите повторно выполнить задачу, сбросьте Трансформатор Модели путем щелчка правой кнопкой по Model Transformer и выбора Reset
.
Не изменяйте модель посреди преобразования. Если вы хотите изменить модель, закрыть Model Transformer, изменить модель, и затем вновь открыть Model Transformer.
Для гиперссылок в Трансформаторе Модели, чтобы работать, у вас должна быть модель, на которую ссылки указывают, чтобы открыться.