Различное распространение условия с различными источниками и приемниками

Как различные работы распространения условия

Когда вы задаете различные условия в моделях, содержащих Variant Source и блоки Variant Sink, Simulink® оценивает различные средства управления, заданные на различных блоках, и автоматически распространяет различные условия с соединяющимися блоками, чтобы определить, какие компоненты модели активны в процессе моделирования. Simulink затем деактивировал компоненты модели, сопоставленные с неактивным выбором, и визуализирует активные связи. Simulink использует параметры блоков Variant activation time, чтобы определить период времени, когда это выбирает активный вариант. Для получения дополнительной информации о различном времени активации смотрите, Активируют Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.

Примечание

Различные аннотации условия, отображенные на компонентах модели, помогают вам визуализировать распространенные условия.

Чтобы просмотреть различные аннотации условия, на вкладке Debug, выбирают Information Overlays> Variant Legend.

Если Variant Legend не доступен на вкладке Debug, выберите Information Overlays> Variant Conditions.

Перекрестная связь вводов и выводов

В этой модели блок Variant Source имеет два входных параметров с различными условиями Var == 1 и Var==2, соответственно. Первый вход с блоком Variant Source переходит в его второй вход прежде, чем соединиться с блоком. Второй вход с различным условием Var==2 вариант по умолчанию.

В процессе моделирования эта модель показывает три режима работы:

Различное условиеАктивный выбор
Var == 1

Первый вход Variant Source.

Var == 1 || Var == 2Второй вход Variant Source и ветвь первого входа.
Var == 2Второй вход Variant Source.

Расположение каскадом блоков и соединение условий

В этой модели, Variant Source A и Variant Source B два блока Variant Source, каждый питаемый двумя входными портами и соединенный каскадным способом. Входные параметры к Variant Source A активны когда VarA == 1 или VarA == 2. Выход Variant Source A ветви в одни из входных параметров Variant SourceB. Входные параметры к Variant SourceB активны когда VarB == 1 или VarB == 2.

В процессе моделирования эта модель показывает восемь режимов работы:

Различное условиеАктивный выбор
VarA == 1 && VarB == 1

Первые входные параметры Variant Source A и Variant Source B.

VarA == 1 && VarB == 2Первый вход Variant Source A и второй вход Variant Source B.
VarA == 2 && VarB == 1Второй вход Variant Source A и первый вход Variant Source B.
VarA == 2 && VarB == 2Вторые входные параметры Variant Source A и Variant Source B.
VarA == 1 && VarB != (1,2)Первый вход Variant Source A.
VarA == 2 && VarB != (1,2)Второй вход Variant Source B.
VarA != (1,2) && VarB == 1'none'
VarA != (1,2) && VarB == 2Второй вход Variant Source B.
VarA != (1,2) && VarB != (1,2)'none'

Иерархическое вложение источников или приемников

В этой модели несколько блоков Variant Source используются, чтобы создать иерархическое вложение вариантов, и обеспечивает изменение на входных параметрах датчика. Разнообразный выбор для датчиков сначала сгруппирован рядом: A Series, B Series, и C Series. Блок Variant Source, Device Model, выбирает датчик из одного из рядов. Vendor затем выбирает среди выбора датчика, обеспеченного Device Model и XSensor .

Simulink распространяет комплексные различные условия управления определить, какие компоненты модели активны во время компиляции.

Для получения дополнительной информации смотрите Иерархическое Вложение Различных Источников и Различных Приемников.

Сетевое различное условие

Сетевым различным условием является общее количество локального условия и его наследственного условия.

В этой модели, Variant Source и Variant Source1 два single-input/single-output блока Variant Source с различными условиями V==1 и W==1, соответственно. Параметр Allow zero active variant controls устанавливается на on для обоих различные блоки. Когда эта опция выбрана и нет никакого активного варианта, Simulink отключает все блоки, соединенные с потоком ввода и вывода блока Variant Source.

Когда вы симулируете эту модель, Variant Source1 блокируйтесь и другие блоки в блоке Subsystem получают локальное условие W==1 распространенный от Variant Source1 блок. Наследственное условие V==1 распространен от Variant Source блокируйтесь на блок Subsystem. Поэтому сетевое различное условие на Variant Source1 блокируйтесь и другие блоки в блоке Subsystem V==1 && W==1. Если параметр Allow zero active variant controls устанавливается на off для блока Variant Source затем условием на блоке Subsystem является W==1.

Распространение условия с подсистемами

Различное условие может активировать или деактивировать блок Subsystem, но различные условия не могут распространить в подсистему. Блок Subsystem может распространить различные условия от своего выходного порта, если то различное условие происходит в порте в подсистеме.

Подсистема может или быть виртуальным (сгруппированный или разгруппированный) или атомарная подсистема в зависимости от выборов, сделанных в ее диалоговом окне Block Parameters.

  • Сгруппированный Виртуальный: Установите флажок Treat as grouped when propagating variant conditions. Сгруппированная виртуальная подсистема имеет сплошную линию.

  • Разгруппированный Виртуальный: Снимите флажок Treat as grouped when propagating variant conditions. Разгруппированная виртуальная подсистема имеет пунктирную линию.

  • Атомарный: Установите флажок Treat as atomic unit. Атомарная виртуальная подсистема имеет сплошную линию.

Simulink распространяет различные условия по-другому к этим типам подсистемы.

В этой модели три типа подсистем предоставляются, как введено блоку Variant Source2.

  • Сгруппированная виртуальная подсистема активируется когда V == 1. Simulink распространяет различное условие активации со всеми блоками в подсистеме.

  • Разгруппированная виртуальная подсистема активируется когда V == 2. Simulink распространяет различное условие активации с блоками, которые были доступны в подсистеме при маркировке виртуальной подсистемы.

  • Атомарная подсистема активируется когда V == 3. Simulink не распространяет различное условие активации в эту подсистему.

Для получения дополнительной информации смотрите, Распространяют Различные Условия от Различных Исходных блоков до блоков Subsystem.

Распространение условия с другими блоками Simulink

Различное распространение условия с блоком Model

Simulink компилирует модели, на которые ссылаются, прежде, чем распространить различные условия. Различное условие может активировать или деактивировать блок Model, но различные условия не могут распространить в модель, на которую ссылаются. Блок Model может распространить различные условия от своего интерфейса (вход, вывести, или порт управления), если то различное условие происходит в порте в модели.

В этом примере, различное условие V==1 активирует блок Model iv_20_model_reference_sub. Однако условие не распространяет в модель, на которую ссылается блок. блок Model iv_20_model_reference_sub2 распространяет то же различное условие от его выходного порта.

Различное Распространение Условия с блоком Simulink Function

Argument Inport и блоки Argument Outport, взаимодействующие через интерфейс с блоками Simulink Function, не могут быть соединены с блоками Variant Sink или Variant Source. Одно различное условие должно управлять целым Simulink Function.

Рассмотрите модель slexVariantSimulinkFunctionInherit.

В этом примере блокировке порта вызова функции в блоке Simulink Function выбрали опцию Enable variant condition. (inherit) ключевое слово используется, чтобы задать значение для параметра Variant control. В результате блок Simulink Function наследовал различное условие от соответствующих блоков Function Caller в модели. Значение параметров Generate preprocessor conditionals также наследовано.

Примечание

Используйте диалоговое окно Configure C Step Function Interface, чтобы настроить сгенерированный интерфейс ступенчатой функции точки входа C для модели. Если порты ввода и вывода совместно используют имя аргумента и распространили различные условия, этот уровень интерфейсного управления не поддерживается.

Различное распространение условия с инициализирует, сброс и оконечные блоки

Initialize, Reset и функциональные блоки Terminate являются предварительно сконфигурированными блоками подсистемы, которые выполняются во время модели, инициализируют, сбрасывают, и оконечные события. Подобно блоку Simulink Function эти блоки поддерживают различное распространение условия. Можно распространить различные условия в блоках Model, которые имеют порты Reset Event. Это приводит к оптимизированному существованию блоков, соединенных с портами Reset Event. Модели с неактивными Различными функциями События сброса (в моделях, на которые ссылаются) также поддерживают различное распространение условия.

Примечание

  • Порты события Initialize и Terminate являются всегда безусловными, потому что они управляют и значением по умолчанию модели и специфичный для блока, инициализируют и отключают события модели, на которую ссылаются. Если вы задаете блок Initialize Function или Terminate Function в модели, на которую ссылаются, это соответствует явному, инициализируют или отключают событие.

  • Если вы включите варианты и зададите различное условие на блоке Initialize Function или Terminate Function в модели, на которую ссылаются, различное условие не будет способствовать различному условию экземпляра блока Model.

В этом примере, Event Listener блокируйтесь в Initсброс, и Term блокам выбрали опцию Enable variant condition. Параметр Variant control Event Listener блок задан как V==0. Если вы изменяете значение V к любому значению кроме 0, Initсброс, и Term блоки становятся неактивными.

Различное распространение условия с Bus

Блок Variant Source может принять или виртуальные или невиртуальные входные параметры шины. При генерации кода с условными выражениями препроцессора типы шины и иерархии всех входных параметров шины должны быть тем же самым.

Однако все элементы Mux, Demux или блока-сигнала Vector Concatenate должны иметь то же различное условие.

Для получения дополнительной информации смотрите Различное Распространение Условия с Шиной.

Различное Распространение Условия с блоком Variant Connector

Блок Variant Connector распространяет различные условия ко всем связанным компонентам в физической сети. Смотрите, Variant Connector (Simscape).

Ограничения

  • Различное распространение условия от Функции Simulink в блоке Stateflow не поддерживается.

  • Блок Variant Connector не распространяет различное условие через контур между физической сетью Simscape™ и блоками Simulink, соединенными с ним.

Связанные примеры

Больше о