Variant Source

Направьте среди нескольких входных Вариантов использования

  • Библиотека:
  • Simulink / Маршрутизация Сигнала

  • Variant Source block

Описание

Блок Variant Source имеет один или несколько входных портов и один выходной порт. Можно задать Варианты как блоки, которые соединяются с входным портом так, чтобы самое большее один выбор был активен.

Каждый входной порт сопоставлен с Различным управлением. Различное управление, которое оценивает к true, определяет, какой входной порт активен.

Когда опция Variant activation time в диалоговом окне блока установлена в update diagram, затем в процессе моделирования Simulink® соединяет активный выбор непосредственно с выходным портом блока Variant Source и игнорирует неактивный выбор.

Порты

Входной параметр

развернуть все

Input port сопоставлен с первым Различным управлением. Различное управление, которое оценивает к true, определяет, какой входной порт активен.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Input port сопоставлен с Энным Различным управлением. Различное управление, которое оценивает к true, определяет, какой входной порт активен.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Вывод

развернуть все

Выходной сигнал активного Варианта.

Типы данных: single | double | half | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | Boolean | fixed point | enumerated | bus

Параметры

развернуть все

  • expression— Чтобы выбрать активный Вариант на основе оценки Различных условий, используйте expression режим. Различные контрольные переменные, используемые в Различном условии, должны быть созданы в глобальной рабочей области или в словаре данных.

  • Label— Чтобы выбрать активный Вариант на основе имени Варианта, вы задаете в параметре Label mode active choice, используете label режим. В label режим, Различное управление является строкой и не должно быть создано ни в каких рабочих областях.

    Когда вы выбираете label режим, Различный значок указывает на изменение.

    Примечание

    Когда вы продвигаете параметр Label mode active choice маску, Variant control mode отключен.

    • Если блок находится в expression режим при продвижении параметра Label mode active choice маску, можно изменить Variant control mode в label путем изменения продвинутого параметра Label mode active choice от диалогового окна Mask.

    • Если блок находится в label режим при продвижении параметра Label mode active choice маску, вы не можете изменить Variant control mode в expression режим.

    Для получения информации о продвижении параметров к маскам смотрите, Продвигают Параметр Маску.

  • sim codegen switching— Чтобы автоматически переключиться между Вариантами для симуляции и рабочих процессов генерации кода, используйте sim codegen switching режим. Когда вы симулируете (Нормальный, Акселератор, Быстрый Акселератор) модель, затем Simulink автоматически выбирает sim перейдите как активный выбор. Точно так же, когда вы делаете программное обеспечение в цикле (SIL), симуляции Процессора в цикле (PIL) или генерируете код или используете режим external mode, Simulink автоматически выбирает codegen ветвь.

Когда вы устанавливаете этот параметр на различные значения, Различный значок изменяется как показано в Различных Значках.

Зависимости

Параметр Variant activation time доступен только, когда вы устанавливаете параметр Variant control mode на expression или sim codegen switching.

Этот параметр определяет, устанавливает ли Simulink активный выбор блока Variant Source во время компиляции схемы или кода обновления. Этот параметр также определяет, для которого предназначается изменчивость включать в сгенерированный код для 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. code compile опция становится недоступной.

Программируемое использование

Параметры блоков: VariantActivationTime
Ввод: символьный вектор
Значения: update diagram | update diagram analyze all choices |code compile
Значение по умолчанию: update diagram

Количество входного порта, который соединяется с одним Вариантом в восходящем направлении блока Variant Source. Это значение только для чтения.

Щелкните, чтобы добавить порт или удалить существующий.

Отображает Различные средства управления, доступные в глобальной рабочей области. Различное управление может быть выражением булева условия или Simulink.Variant объект, представляющий выражение булева условия. Если вы хотите сгенерировать код для своей модели, необходимо задать контрольные переменные как Simulink.Parameter объекты.

Чтобы ввести нечисловые Различные значения управления, используйте перечисленные данные. Для получения информации об использовании перечислимых данных смотрите Использование Перечислимые Данные в Моделях Simulink

Чтобы отредактировать Различное имя, дважды кликните ячейку Variant control expression и тип в Различном выражении управления. Нажмите Apply после того, как вы отредактируете Различное имя элемента управления. Если вы добавляете или удаляете Различное управление, не применяя изменения, предыдущие редактирования на Различном имени элемента управления потеряны.

Variant control, который оценивает к true определяет, какой входной порт должен быть активным.

Программируемое использование

Параметры блоков: VariantControls
Ввод: массив ячеек из символьных векторов
Значение: Различное управление, которое сопоставлено с Вариантом
Значение по умолчанию: 'Variant'

Отображает Condition для Различных средств управления, которые являются Simulink.Variant объекты. Создайте или измените Различное условие в Simulink.Variant диалоговое окно параметра или в глобальной рабочей области.

Для получения дополнительной информации смотрите, Создают Различные Средства управления Программно и Simulink.Variant.

Когда вы выбираете Variant control mode как Label, опция the Label mode active choice доступна. Можно выбрать активный Вариант из опций Label mode active choice. Можно также щелкнуть правой кнопкой по значку по блоку Variant Source и выбрать Label Mode Active Choice.

Выпадающий список Label mode active choice отображает все Различные средства управления, которые в настоящее время заданы в глобальной рабочей области или словаре данных. Используйте допустимые идентификаторы MATLAB®, чтобы задать Различные средства управления. Для получения дополнительной информации смотрите Simulink.Variant.

Примечание

Опция Label mode active choice не доступна в Expression режим.

Зависимости

Чтобы включить этот параметр, выберите Label режим.

Программируемое использование

Параметры блоков: LabelModeActivechoice
Ввод: символьный вектор
Значение: Заданный Различным выражением управления.
Значение по умолчанию: Choice_1

Чтобы симулировать модель (содержащий блок Variant) без активного Варианта, выберите опцию Allow zero active variant controls. Когда эта опция выбрана и нет никакого активного Варианта, Simulink отключает все блоки, соединенные с потоком ввода и вывода блока Variant Source. Удаленные блоки проигнорированы из схемы обновления или симуляции.

Если вы не выбираете эту опцию, Simulink генерирует ошибку, когда нет никакого активного Варианта.

Когда вы выбираете эту опцию, Различный значок указывает на изменение.

Зависимости

Expression опция от Variant control mode выбрана.

Программируемое использование

Параметры блоков: AllowZeroVariantControls
Ввод: символьный вектор
Значения: 'off' | 'on'
Значение по умолчанию: 'off'

Когда вы выбираете эту опцию, Simulink аннотирует каждое Различное управление (выражение условия) на портах блока Variant Source.

Программируемое использование

Параметры блоков: ShowConditionOnBlock
Ввод: символьный вектор
Значение: 'off' | 'on'
Значение по умолчанию: 'off'

Характеристики блока

Типы данных

Boolean | bus | double | enumerated | fixed point | half | integer | single | string

Прямое сквозное соединение

no

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Преобразование фиксированной точки
Спроектируйте и симулируйте системы фиксированной точки с помощью Fixed-Point Designer™.

Введенный в R2016a