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

Когда вы задаете различные условия в моделях, содержащих Различный Источник и Различные блоки Приемника, 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, как сгруппировано при распространении различного флажка условий. Сгруппированная виртуальная подсистема имеет сплошную линию.

  • Разгруппированный Виртуальный: Очистите Обработку, как сгруппировано при распространении различного флажка условий. Разгруппированная виртуальная подсистема имеет пунктирную линию.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В этом примере блокировка порта вызова функции в Функциональном блоке Simulink имеет Разрешать различную выбранную опцию условия. Ключевое слово (inherit) используется, чтобы задать значение для Различного параметра управления. В результате Функциональный блок Simulink наследовал различное условие от соответствующих Функциональных блоков Вызывающей стороны в модели. Сгенерировать условное значение параметров препроцессора также наследовано.

Примечание

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

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

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

Примечание

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

В этом примере блок Event Listener в Init, Reset и блоках Term имеет Разрешать различную выбранную опцию условия. Различный параметр управления блока Event Listener задан как V==0. Если вы изменяете значение V к значению кроме 0, Init, Reset, и блоки Term становятся неактивными.

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

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

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

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

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

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

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

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

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

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

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

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

Больше о

Была ли эта тема полезной?