Управляйте активным выбором заблокированной пользовательской подсистемы варианта библиотеки Используя параметр маски

В этом примере показано, как управлять активным выбором Variant Subsystem, который принадлежит заблокированной пользовательской библиотеке при помощи параметра маски как Различная контрольная переменная. Параметры маски ограничивают осциллограф переменной, которая позволяет вам использовать те же имена для контрольных переменных в различных осциллографах. Этот пример включает продвинутые параметры и выражения управления с классами перечисления, чтобы упростить интерфейс диалогового окна маски и выражений управления с классами перечисления, чтобы улучшить удобочитаемость различных выражений условия. Для получения дополнительной информации о Различных Подсистемах смотрите Различные Подсистемы.

Модель

Открыть Simulink® модель, введите slexVariantSubsystemUsingMaskAndEnums в MATLAB® Командное окно.

Рассмотрите блок Подсистем двигателей в заблокированной пользовательской библиотеке, slexVarEngineLibrary.

Диалоговое окно маски подсистемы содержит эти параметры:

  • Engine type: Когда вы выбираете значение для этого параметра, Simulink присваивает индекс того значения к параметру маски engine. В процессе моделирования, значение engine используется, чтобы оценить различные выражения условия, чтобы активировать или деактивировать базовый Турбо Engine и Не Турбо Подсистемы двигателей.

  • Fidelity type for turbo engine: Этот параметр становится доступным, только если параметр Engine type устанавливается на Turbo. Этот параметр продвинут на диалоговом окне маски Подсистем двигателей от нижележащего слоя Турбо Подсистем двигателей. Когда вы выбираете значение для этого параметра, Simulink присваивает индекс того значения к параметру маски enginetype из Турбо Подсистем двигателей. В процессе моделирования, значение enginetype используется, чтобы оценить различное выражение условия, чтобы активировать или деактивировать базовый Верхний уровень, Носитель и Низкие подсистемы.

  • Fidelity type for non turbo engine: Этот параметр становится доступным, только если параметр Engine type устанавливается на Non Turbo. Этот параметр продвинут на диалоговом окне маски Подсистем двигателей от нижележащего слоя Не Турбо Подсистем двигателей. Когда вы выбираете значение для этого параметра, Simulink присваивает индекс того значения к параметру маски enginetype из Не Турбо Подсистем двигателей. В процессе моделирования, значение enginetype используется, чтобы оценить различное выражение условия, чтобы активировать или деактивировать базовый Верхний уровень, Носитель и Низкие подсистемы.

Осциллограф enginetype в Турбо Подсистемы двигателей отличаются от осциллографа enginetype в Не Турбо Подсистемах двигателей. enginetype из Турбо Engine отображается только к нижележащим слоям Турбо Подсистем двигателей. Точно так же enginetype из Не Турбо Engine отображается только к нижележащим слоям Не Турбо Подсистем двигателей. Ограничение осциллографа при помощи параметров маски как Различные контрольные переменные позволяет вам использовать то же имя для переменных с содержанием различных значений в Турбо Engine и Не Турбо Подсистемах двигателей.

Переключитесь между активным выбором

  1. Чтобы симулировать модель, на вкладке Simulation, нажимают Run. На диалоговом окне маски Подсистем двигателей параметр Engine type устанавливается на Non Turbo, и Fidelity type for non turbo engine установлен в Medium. Когда эти параметры сопоставлены с индексом параметров маски engine и engineType, значение engine установлен в 2, и значение engineType установлен в 1. Здесь, 2 задает индекс Non Turbo опция и 1 задает индекс High опция. Для получения дополнительной информации о том, как параметры на диалоговом окне маски сопоставлены с базовыми параметрами маски, видят, Создают Простую Маску.

    В процессе моделирования, выражения условия engine == Engine.NONTURBO и engineType == EngineFidelity.MEDIUM оцените к true. Здесь, Engine и EngineFidelity основанные на целом числе классы перечисления, заданные в Engine.m и EngineFidelity.m файлы со значениями для Engine.TURBO и Engine.NONTURBO заданный как 1 и 2, и значения для EngineFidelity.HIGH, EngineFidelity.MEDIUM, и EngineFidelity.LOW заданный как 1, 2, и 3.

    Подсистемы двигателей NonTurbo становятся активными, и Турбо Подсистемы двигателей становятся неактивными.

  2. Чтобы изменить активный выбор, выберите Turbo в диалоговом окне маски затем симулируйте модель снова. В процессе моделирования, значение engine установлен в 1, который оценивает различное условие engine == Engine.TURBO к true. Турбо Подсистемы двигателей становятся активными, и Не Турбо Подсистемы двигателей становятся неактивными.

Похожие темы