Преобразуйте модель в Вариантную систему

Можно использовать инструмент 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 как системная константа.

  1. Откройте модель. В Командном окне введите rtwdemo_controlflow_opt.

  2. Откройте Switch1 Параметры блоков. Измените параметр Threshold на 0. Параметр Threshold должен быть целым числом, потому что после преобразования варианта он является частью выражения условия в блоке Variant Source.

  3. Повторите шаг 2 для блоков Switch Switch1, Switch2, и Switch3.

  4. Сохраните модель в рабочей папке.

Выполните преобразование варианта на модели примера

  1. На вкладке Apps Откройте трансформатор модели, выбрав Model Transformer. Или в Командном окне введите:
    mdltransformer('rtwdemo_controlflow_opt')

  2. Установите флажок Преобразовать модель в вариантную систему.

  3. В Specify system constant cell array поле можно задать массив ячеек из векторов символов, состоящих из Simulink.Parameters. Базовое рабочее пространство должна содержать их определения.

  4. В поле Prefix of transformed model name укажите префикс для имени модели. Если вы не задаете префикс, по умолчанию это gen0.

  5. Выберите Run This Check. Model Transformer приводит системные константы и блоки, которые считаются частью выражений условий в Variant Source или Variant Subsystem блоках. Чтобы Трансформатор Модели перечислил системную константу, это должно быть Simulink.Parameter объект скалярного типа. В данном примере Cond определяет часть выражения условия.

  6. Если вы не хотите, чтобы одно из преобразований произошло, можно снять флажок рядом с ним.

  7. Выберите Refactor Model. Model Transformer предоставляет гиперссылку на преобразованную модель и гиперссылки на соответствующие блоки в исходной модели и преобразованной модели.

    Преобразованная модель или модели находятся в папке, которая имеет префикс m2m плюс исходное имя модели. В данном примере имя папки m2m_rtwdemo_controlflow_opt.

  8. В исходной модели rtwdemo_controlflow_optщелкните правой кнопкой мыши один из блоков Switch. В меню выберите Model Transformer > Traceability to Transformed Block. В преобразованной модели gen0_rtwdemo_controlflow_optсоответствующий Variant Source блок подсвечивается.

  9. В преобразованной модели 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.

  • Чтобы гиперссылки в Модельном трансформаторе работали, вы должны иметь модель, на которую указывают ссылки, чтобы открыться.

Похожие темы