Варианты модели - ссылки

В этом примере показано, как использовать варианты модели - ссылки. Блок Model используется, чтобы сослаться на одну модель Simulink® из другой модели Simulink. Различный блок Subsystem может содержать блоки Model как варианты. Вариант описывает один из возможных режимов N, в которых может действовать Различный блок Subsystem. Каждый различные ссылки определенная модель с ее связанными аргументами модели специфичными. Для данного Различного блока Subsystem только один вариант активен в процессе моделирования. Можно переключить активный вариант путем изменения значений переменных в базовом рабочем пространстве или вручную переопределяющим различным выбором с помощью Различного диалогового окна блока Subsystem.

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

sldemo_mdlref_variants модель содержит Различный блок Subsystem под названием Контроллер, это ссылается на две модели.

open_system('sldemo_mdlref_variants')

Чтобы видеть варианты, щелкните правой кнопкой по Variant Subsystem block под названием Контроллер и выберите Block Parameters (Subsystem). Активный вариант определяется значением CTRL переменная в базовом рабочем пространстве MATLAB®. Определение CTRL=1 активирует блок Model под названием Линейный, и определение CTRL=2 активирует блок Model под названием Нелинейный.

Открытие 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 объекты могут быть снова использованы в различных Различных блоках Subsystem.

Различные блоки Subsystem в этой модели требуют, чтобы следующие переменные были заданы в базовом рабочем пространстве 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. Этот коллбэк настраивается, чтобы заполнить базовое рабочее пространство с переменными, требуемыми Различными блоками Subsystem.

open_system('sldemo_mdlref_variants_enum')

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

Диалоговое окно Block Parameters Различных блоков Subsystem показывает свойство Condition связанного Variant объекты.

Смотрите также

| |

Похожие темы