exponenta event banner

Ссылочные варианты модели

В этом примере показано, как использовать ссылочные варианты модели. Блок модели используется для ссылки на одну модель Simulink ® из другой модели Simulink. Блок подсистемы исполнений может содержать блоки модели в качестве исполнений. Вариант описывает один из N возможных режимов, в которых может работать блок подсистемы вариантов. Каждый вариант ссылается на конкретную модель со связанными с ней аргументами для конкретной модели. Для данного блока Variant Subsystem во время моделирования активен только один вариант. Активное исполнение можно переключить путем изменения значений переменных в базовой рабочей области или путем переопределения выбора исполнения вручную с помощью диалогового окна Блок подсистемы исполнения (Variant Subsystem block).

Переключение активных вариантов

sldemo_mdlref_variants содержит блок Variant Subsystem с именем Controller, который ссылается на две модели.

open_system('sldemo_mdlref_variants')

Чтобы просмотреть варианты, щелкните правой кнопкой мыши блок «Подсистема вариантов» с именем «Контроллер» и выберите «Параметры блока» (Подсистема). Активный вариант определяется значением CTRL в базовой рабочей области MATLAB ®. ОпределениеCTRL=1 активирует блок модели с именем «Линейный» и определяет CTRL=2 активирует блок модели с именем «Нелинейный».

Открытие окна sldemo_mdlref_variants модель выполняет обратный вызов модели PreLoadFcn, который устанавливает CTRL кому 2.

Для моделирования с использованием линейного контроллера определите CTRL=1 в базовой рабочей области, затем смоделировать модель.

CTRL=1;
sim('sldemo_mdlref_variants');

Для моделирования с использованием нелинейного контроллера определите CTRL=2 в базовой рабочей области, затем смоделировать модель.

CTRL=2;
sim('sldemo_mdlref_variants');

Перечисления и повторное использование

sldemo_mdlref_variants_enum модель демонстрирует Simulink.Variant возможности объекта:

  • Перечисления: классы перечисления MATLAB могут использоваться для улучшения читаемости условий Variant объект.

  • Повторное использование: Variant объекты могут быть повторно использованы в различных блоках подсистемы вариантов.

Блоки подсистемы исполнения в этой модели требуют определения следующих переменных в базовой рабочей области MATLAB:

  • VE_LINEAR_CONTROLLER = Simulink.Variant('E_CTRL==sldemo_mrv_CONTROLLER_TYPE.LINEAR')

  • VE_NONLINEAR_CONTROLLER = Simulink.Variant('E_CTRL==sldemo_mrv_CONTROLLER_TYPE.NONLINEAR')

  • E_CTRL = sldemo_mrv_CONTROLLER_TYPE.LINEAR

  • VE_PROTOTYPE = Simulink.Variant('E_CURRENT_BUILD==sldemo_mrv_BUILD_TYPE.PROTOTYPE')

  • VE_PRODUCTION = Simulink.Variant('E_CURRENT_BUILD==sldemo_mrv_BUILD_TYPE.PRODUCTION')

  • E_CURRENT_BUILD = sldemo_mrv_BUILD_TYPE.PRODUCTION

Каждый вариант связан с Simulink.Variant объект, который использует либо sldemo_mrv_BUILD_TYPE.m или sldemo_mrv_CONTROLLER_TYPE.m класс перечисления.

Variant объекты имеют Condition свойство, которое является выражением. Выражение получает логическое значение и определяет, какой вариант активен. Выражение может состоять из скалярных переменных, перечислений, равенства, неравенства, & &, | | и ~. Для группировки приоритетов можно использовать круглые скобки (). Переменные могут быть стандартными переменными MATLAB илиSimulink.Parameter объекты.

Открытие модели sldemo_mdlref_variants_enum выполняет обратный вызов модели PreLoadFcn. Этот обратный вызов настраивается для заполнения базовой рабочей области переменными, требуемыми блоками подсистемы исполнения.

open_system('sldemo_mdlref_variants_enum')

VE_PROTOTYPE и VE_PRODUCTION Variant повторно используются в блоках исполнительной подсистемы с именами Filter1, Filter2 и Filter3.

В диалоговом окне «Параметры блока» блоков «Подсистема исполнения» отображается свойство «Условие» связанных блоков. Variant объекты.

См. также

| |

Связанные темы