Когда вы задаете различные условия в моделях, содержащих Различный Источник и Различные блоки Приемника, 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 компилирует модели, на которые ссылаются, прежде, чем распространить различные условия. Различное условие может активировать или деактивировать Блок модели, но различные условия не могут распространить в модель, на которую ссылаются. Блок модели может распространить различные условия от своего интерфейса (импорт, выходной порт или порт управления), если то различное условие происходит в порте в модели.
В этом примере различное условие V==1
активирует блок модели iv_20_model_reference_sub
. Однако условие не распространяет в модель, на которую ссылается блок. Блок модели iv_20_model_reference_sub2
распространяет то же различное условие от своего выходного порта.
Аргумент 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 становятся безусловными.
Генерация кода С++ не поддержана для моделей, которые содержат распространенные различные условия.