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

Когда вы задаете различные условия в моделях, содержащих Различный Источник и Различные блоки Приемника, Simulink® распространяет эти условия определить, какие компоненты модели активны во время симуляции.

Просмотрите различные аннотации условия

Когда вы создаете модель, которая содержит Различный Источник или Различные блоки Приемника, можно визуализировать условия, которые активируют каждый вариант. Simulink аннотирует эти блоки в модели с их соответствующими различными условиями.

Рассмотрите эту модель, содержащую несколько вариантов, питающихся в Различные Исходные блоки. Определенное различное условие активирует каждый вариант.

Чтобы визуализировать различные условия, выберите Display> Blocks> Variant Conditions.

Диалоговое окно Variant Condition Legend появляется. Различные условия на блоках аннотируются как v:C, где v является различным семантическим индикатором, и C представляет различный индекс условия. Диалоговое окно также показывает выражение, сопоставленное с каждым условием.

В диалоговом окне Variant Condition Legend можно щелкнуть через связанные гиперссылками различные аннотации, чтобы наблюдать, какие части модели каждое условие активирует. Например, если вы нажимаете v:3, Simulink подсвечивает части модели, которые активируются, когда условие V==3 оценивает к true.

Различные аннотации условия имеют эти свойства:

  • Нет никаких аннотаций на безусловные блоки. Поэтому блок Out не аннотируется.

  • Чтобы уменьшать помеху, легенда только отображается, финал вычислил условия. Например, если вы вводите различное условие в Различный Исходный блок, то условие появляется в аннотациях только, когда вы применяете свои изменения.

  • Условия в легенде сортируются во время отображения.

  • В легенде условие установлено к false, если Simulink оценивает это, блоки, сопоставленные с тем условием, никогда не активны.

    Например, блок In4 соединяется с блоком Variant Source1, условием которого является V==1. Variant Source1 соединяется с блоком Variant Source2, который активирует Variant Source1 только когда V==4. Поэтому In4 может только быть активным, когда V==1 && V==4, условие, которое всегда является false.

  • В легенде ключевое слово (default) отображено как отрицаемое условие.

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

Когда вы компилируете модель, содержащую Различный Источник или Различные блоки Приемника, Simulink определяет, который различное управление оценивает к true. Активное различное определение происходит на ранней стадии компиляции. Simulink затем деактивировал блоки, которые не связываются к различному управлению, являющемуся true, и визуализирует активные связи.

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

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

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

  • Когда Var == 1, первый вход активен, и его ответвление во второй вход неактивно.

  • Когда Var == 1 || Var == 2, второй вход активен, и ответвление первого входа активно.

  • Когда Var == 2, второй вход активен, и вывод активен.

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

В этой модели два Различных Исходных блока, каждый питаемый двумя входными портами, соединяются каскадным способом. Входные параметры к Variant Source активны когда Var1 == 1 или Var1 == 2. Вывод Variant Source переходит в одни из входных параметров Variant Source1. Входные параметры toVariant Source1 активны когда Var2 == 1 или Var2 == 2.

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

  • Когда Var1 == 1 && Var2 == 1, первые входные параметры Variant Source и Variant Source активны.

  • Когда Var1 == 1 && Var2 == 2, первый вход Variant Source и второй вход Variant Source1 активны.

  • Когда Var1 == 2 && Var2 == 1, второй вход Variant Source и первый вход Variant Source1 активны.

  • Когда Var1 == 2 && Var2 == 2, вторые входные параметры Variant Source и Variant Source1 активны.

  • Когда Var1 == 1 && Var2 != (1,2), только первый вход Variant Source активен.

  • Когда Var1 == 2 && Var2 != (1,2), только второй вход Variant Source активен.

  • Когда Var1 != (1,2) && Var2 == 1, ни один из вводов или выводов не активен.

  • Когда Var1 != (1,2) && Var2 == 2, только второй вход Variant Source1 активен.

  • Когда Var1 != (1,2) && Var2 != (1,2), ни один из вводов или выводов не активен.

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

В этой модели несколько Различных Исходных блоков используются, чтобы создать иерархическое вложение вариантов. Выбор сначала сгруппирован рядом: A Series, B Series и C Series. Комбинация одного или нескольких рядов обеспечивается, как введено для модели устройства. Получившаяся модель устройства предоставляется, как введено поставщику включением или, исключая выбор датчика.

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

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

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

Подсистема может или быть виртуальным (сгруппированный или разгруппированный) или атомарная подсистема в зависимости от выборов, сделанных в ее диалоговом окне 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 не распространяет различное условие активации в эту подсистему.

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

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

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

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

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

Различное Распространение Условия с Функциональным блоком Simulink

Аргумент Inport и блоки Выходного порта Аргумента, взаимодействующие через интерфейс с Функциональными блоками Simulink, не может быть соединен с Различным Источником или Различными блоками Приемника. Одно различное условие должно управлять целой Функцией Simulink.

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

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

Примечание

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

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

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

Примечание

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

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

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

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

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

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

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

Однако все элементы Мультиплексора, Демультиплексора или Векторной конкатенации блока-сигнала должны иметь то же различное условие.

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

Известные ограничения

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

  • Когда вы моделируете Встроенную модель вариантов с блоками Simscape™, блоки Simscape становятся безусловными.

  • Генерация кода С++ не поддержана для моделей, которые содержат распространенные различные условия.

  • Различное распространение условия не поддержано с корневыми портами элемента шины.

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

Больше о