Маршрут среди нескольких выходов с использованием вариантов
Simulink/Маршрутизация сигнала
Блок Variant Sink имеет один входной порт и один или несколько выходных портов. Можно задать Варианты как блоки, которые соединяются с выходом портом, так что, самое большее, один выбор активен.
Каждый выходной порт сопоставлен с управлением Variant. Элемент управления Variant, который вычисляет, чтобы true
, определяет, какой выходной порт является активным.
Во время симуляции Simulink® соединяет активный выбор непосредственно с входом портом блока Variant Sink и игнорирует неактивные варианты.
Port_1
- Входной сигналВходной сигнал, заданный как скаляр, вектор или матрица, для соединения с активным выходным портом.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
| struct
Port_1
- Выход из первого вариантаВыходной сигнал от первого варианта. Элемент управления Variant, который вычисляет, чтобы true
, определяет, какой выходной порт является активным.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Port_N
- Выход из n-го вариантаВыходной сигнал от N-го варианта. Элемент управления Variant, который вычисляет, чтобы true
, определяет, какой выходной порт является активным.
Типы данных: single
| double
| half
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| Boolean
| fixed point
| enumerated
| bus
Variant control mode
- Имя режима управления вариантомexpression
(по умолчанию) | label
| sim codegen switching
expression
- Чтобы выбрать активный вариант на основе оценки условий варианта, используйте expression
режим. Переменные Variant, используемые в условии Variant, должны быть созданы в глобальной рабочей области или в словаре данных.
Label
- Чтобы выбрать активный Вариант на основе имени Варианта, заданного в параметре Label mode active choice, используйте label
режим. В label
mode, элемент управления Variant является строкой и не должен создаваться ни в каких рабочих областях.
Когда вы выбираете label
режим, значок «Вариант» указывает на изменение.
Примечание
Когда вы продвигаете параметр Label mode active choice в маску, Variant control mode отключается.
Если блок находится в expression
режим при продвижении параметра Label mode active choice в маску можно изменить Variant control mode на label
путем изменения параметра повышенного Label mode active choice из диалогового окна «Маска».
Если блок находится в label
режим при продвижении параметра Label mode active choice в маску, вы не можете изменить Variant control mode на expression
режим.
Дополнительные сведения о продвижении параметров в маски см. в разделе «Продвижение параметра в маску».
sim codegen switching
- Чтобы автоматически переключаться между рабочими процессами «Варианты для симуляции» и «Генерация кода», используйте sim codegen switching
режим. Когда вы симулируете (Normal, Accelerator, Rapid Accelerator) модель, то Simulink автоматически выбирает sim
ветвь как активный выбор. Точно так же, когда вы делаете симуляцию «Цикл» (SIL), «Процессор в цикле» (PIL) или генерируете код или используете режим external mode, Simulink автоматически выбирает codegen
ветвь.
.
Когда вы устанавливаете этот параметр в различные значения, значок «Вариант» изменяется, как показано на Значках варианта.
Параметр Variant activation time доступен только, когда вы устанавливаете параметр Variant control mode равным expression
или sim codegen switching
.
Variant activation time
- Определите, когда Simulink выбирает активный выбор вариантаupdate diagram
(по умолчанию) | update diagram analyze all choices
| code compile
Этот параметр определяет, устанавливает ли Simulink активный выбор блока Variant Sink во время схемы обновления или компиляции кода. Этот параметр также определяет, какую изменчивость включить в сгенерированный код для целей ERT. Если вы принимаете решение включить все варианты, варианты заключаются в условные операторы препроцессора C (# if и # endif) в сгенерированном коде.
Когда вы устанавливаете этот параметр в различные значения, значок варианта изменяется, как показано на значках варианта.
Можно задать параметр Variant activation time как:
update diagram
- Simulink устанавливает активный выбор во время обновления схемы перед распространением атрибутов сигнала. Неактивные варианты удаляются до распространения атрибутов сигнала, поэтому сгенерированный код содержит только активный выбор.
update diagram analyze all choices
- Simulink устанавливает активный выбор во время обновления схемы после распространения атрибутов сигнала. Атрибуты сигнала распространяются как на активный, так и на неактивный выбор. Все варианты анализируются, чтобы гарантировать согласованность всех вариантных ветвей между результатами симуляции и генерации кода. Неактивные варианты удаляются в конце схемы обновления до начала модели. Сгенерированный код содержит только активные варианты. Этот рабочий процесс остается неизменным для симуляции и генерации кода.
code compile
- Для симуляции рабочий процесс аналогичен update diagram analyze all choices
. Однако неактивные варианты не удаляются во время генерации кода. Сгенерированный код содержит активные и неактивные варианты, и варианты заключаются в условные операторы препроцессора C #if
и #endif
.
Этот рисунок показывает время активации варианта для различных значений, заданных в этом параметре.
Для получения дополнительной информации смотрите Представление источника исполнения и блоков приемника в Сгенерированном коде (Embedded Coder).
Когда вы устанавливаете Variant control mode на expression
, этот параметр может быть установлен в update diagram
, update diagram analyze all choices
, или code compile
.
Когда вы устанавливаете Variant control mode на sim codegen switching
, этот параметр может быть установлен на любое update diagram
или update diagram analyze all choices
. The code compile
опция становится недоступным.
Параметры блоков:
VariantActivationTime
|
Тип: Вектор символов |
Значения:
update diagram | update diagram analyze all choices | code compile
|
По умолчанию:
update diagram
|
Port
- Количество подключенных входных портовНомер входного порта, который соединяется с одним вариантом выбора в восходящем направлении блока Variant Sink. Это значение доступно только для чтения.
Щелкните, чтобы добавить порт или удалить существующий.
Variant control expression
- Варианты управления, доступные в глобальной рабочей области'Variant'
(по умолчанию) | логическое выражение условия | Simulink.Variant
| объекта Simulink.Parameter
объект | перечислениеОтображает элементы управления «Вариант», доступные в глобальной рабочей области. Элемент управления Variant может быть выражением логического условия или Simulink.Variant
объект, представляющий выражение логического условия. Если вы хотите сгенерировать код для модели, необходимо задать переменные управления как MATLAB® переменные.
Чтобы ввести нечисловые управляющие значения Variant, используйте перечисленные данные. Для получения информации об использовании перечисленных данных смотрите Использование перечисленных данных в моделях Simulink
Чтобы ввести имя варианта, дважды щелкните камеру Variant control expression в новой строке и введите в выражение управления вариантом. Щелкните Apply после редактирования имени элемента управления «Вариант». Если вы добавляете или удаляете элемент управления Variant без применения изменений, предыдущие изменения имени элемента управления Variant теряются.
Параметры блоков:
VariantControls
|
Тип: массив ячеек из векторов символов |
Значения: Управление вариантом, которое связано с выбором варианта |
По умолчанию:
'Variant'
|
Condition (read-only)
- Условие для вариантов управленияОтображает Condition для элементов управления «Варианты», которые Simulink.Variant
объекты. Создайте или измените условие варианта в Simulink.Variant
диалоговое окно параметра или в глобальной рабочей области.
Для получения дополнительной информации смотрите Создание исполнительных элементов управления программно и Simulink.Variant
.
Label mode active choice
- Имя варианта, используемого, если выбран режим управления меткойChoice_1
(по умолчанию) | имя варианта управленияКогда вы выбираете Variant control mode как Label
, доступна опция Label mode active choice. Можно выбрать активный вариант из Label mode active choice опций. Можно также щелкнуть значок правой кнопкой мыши на блоке Variant Sink и выбрать Label Mode Active Choice.
В раскрывающемся списке Label mode active choice отображаются все элементы управления вариант, которые в настоящее время определены в глобальной рабочей области или словаре данных. Используйте допустимые идентификаторы MATLAB, чтобы задать элементы управления вариант. Для получения дополнительной информации смотрите Simulink.Variant
.
Примечание
Label mode active choice опция недоступна в Expression
режим.
Чтобы включить этот параметр, выберите Label
режим.
Параметры блоков:
LabelModeActivechoice
|
Тип: Вектор символов |
Значения: Задается выражением Variant control |
По умолчанию:
Choice_1 |
Allow zero active variant controls
- Моделируйте модель без активного выбора вариантаoff
(по умолчанию) | on
Чтобы симулировать модель (содержащую блок Variant) без активного варианта, выберите опцию Allow zero active variant controls. Когда эта опция выбрана и нет активных Вариантов, Simulink отключает все блоки, соединенные с входом и выходом потоком Variant Sink блока. Удаленные блоки игнорируются из схемы обновления или симуляции.
Если вы не выбираете эту опцию, Simulink генерирует ошибку, когда нет активного выбора варианта.
При выборе этой опции значок «Вариант» указывает на изменение.
Expression
выбрана опция из Variant control mode.
Параметры блоков:
AllowZeroVariantControls
|
Тип: Вектор символов |
Значения:
'off' | 'on'
|
По умолчанию:
'off'
|
Show variant condition on block
- Аннотировать блочные портыoff
(по умолчанию) | on
Когда вы выбираете эту опцию, Simulink аннотирует каждый элемент управления (выражение условия) в Variant Sink портах блоков.
Параметры блоков:
ShowConditionOnBlock
|
Тип: Вектор символов |
Значения:
'off' | 'on'
|
По умолчанию:
'off'
|
Типы данных |
|
Прямое сквозное соединение |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулем |
|
Manual Variant Sink | Manual Variant Source | Model | Simulink.Variant
| Variant Source | Variant Subsystem
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.