Что такое варианты и когда их использовать

Что такое варианты?

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

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

Можно использовать эти варианты блоков в зависимости от проекта модели:

  • Variant Subsystem: Для иерархической структуры модели. Блок является шаблоном с двумя блоками Subsystem для использования в качестве вариантных систем. Можно добавить блоки Subsystem, а также блоки Model для вариантов.

  • Variant Model: Для иерархической структуры модели. Блок является шаблоном с двумя блоками Model для использования в качестве вариантных систем. Можно добавить блоки Model, а также блоки Subsystem для вариантов.

  • Встроенные варианты для плоской структуры модели.

Примечание

Время расчета для одиночных входных Variant Source/ Variant Sink блоков может отличаться несколькими входными Variant Source/ Variant Sink блоками. Для получения дополнительной информации о шаге расчета, см. Что такой шаг расчета?

Использование блока Variant Subsystem обеспечивает следующие преимущества:

  • Позволяет вам смешивать Model и Subsystem блоки как вариантные системы

  • Поддерживает гибкие вводы-выводы, так что все варианты не должны иметь одинаковое количество входа и выходных портов

Чтобы преобразовать Model, блок, который содержит различные модели к Variant Subsystem блок, который содержит Model, блокирует ту ссылку различные модели, щелкните правой кнопкой мыши Model по блоку и выберите Subsystems & Model Reference> Convert to> Variant Subsystem. Кроме того, можно использовать Simulink.VariantManager.convertToVariant функция. Задайте имя блока Model или указатель на блок. Преобразованная модель дает те же результаты, что и исходная модель.

Если вы хотите симулировать модель, которая представляет автомобиль с несколькими строениями. Эти строения, хотя и сходные в нескольких аспектах, могут отличаться по таким свойствам, как расход топлива, размер двигателя или стандарт выбросов. Вместо разработки нескольких моделей, которые вместе представляют все возможные строения, можно использовать варианты, чтобы смоделировать только различные строения. Этот подход сохраняет общие компоненты фиксированными.

Эта модель содержит два варианта выбора внутри одного блока Variant Subsystem. Варианты выбора - эти два или более строений компонента в вашей модели.

Преимущества использования вариантов

Использование вариантов в Модельно-ориентированное Проектирование обеспечивает несколько преимуществ:

  • Варианты обеспечивают вам способ разработки одной модели для многих систем.

  • Можно быстро прототипировать возможности проекта как варианты, не комментируя разделы своей модели.

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

  • Если компонент модели имеет несколько альтернативных строения, можно эффективно исследовать эти меняющиеся альтернативы, не изменяя фиксированные, не изменяющиеся компоненты.

  • Можно использовать различные строения вариантов для симуляции или генерации кода из одной модели.

  • Можно симулировать каждую возможность проекта комбинаторным способом для данного тестового набора.

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

  • Можно сгенерировать сокращенную модель с подмножеством строения из мастер-модели с многими вариантами.

Когда использовать варианты

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

  • Модели, которые представляют несколько рабочих процессов симуляции, генерации кода или проверки.

  • Модели, которые содержат несколько вариантов проекта на уровне компонента.

    Subsystem блоки, представляющие варианты выбора, могут иметь входные и выходные порты, которые отличаются по количеству от входных и выходных портов в родительском блоке Variant Subsystem. Смотрите Отображение Входные и Выходные порты Вариантов.

  • Модели, которые в основном похожи, но имеют небольшие изменения, например, в тех случаях, когда вы хотите отделить экспериментальную модель от модели отладки.

    Экспериментальная модель слева имеет фиксированный проект. Справа та же экспериментальная модель включает вариант, который вводится в целях отладки.

Simulink выбирает активный вариант во время схемы обновления и во время компиляции кода.

Опции для представления вариантов в Simulink

Можно представлять один или несколько вариантов как варианты выбора внутри этих блоков.

 

Variant Source и Variant Sink блоки

Variant Subsystem и Variant Model блоки

Представление варианта выбора

Количество портов

Subsystem или Model блок

Позволяет иерархию выбора

Нет

Да

Несоответствующее количество входных и выходных портов среди вариантов выбора

Simulink отключает неактивные порты

Simulink отключает неактивные порты

Опция для задания варианта по умолчанию

Да

Да

Поддерживает порты управления

Нет

Да

Может быть сохранен как автономный файл

Нет

Нет

Поддерживает порты соединения физического моделирования

Нет

Частично

Выбор комментария (%)

Нет

Нет

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

Можно создать варианты на нескольких уровнях внутри иерархии модели.

Отображение входных и выходных портов вариантов выбора

Блок Variant Subsystem является контейнером вариантов выбора, которые представлены в виде Subsystem или Model блоков. Входы, которые блок Variant Subsystem получает от компонентов восходящих моделей, сопоставляются с входным и выходным портами вариантов выбора.

Subsystem и Model блоки, представляющие варианты выбора, могут иметь входные и выходные порты, которые отличаются по количеству от входных и выходных портов в родительском блоке Variant Subsystem. Однако должны быть удовлетворены следующие условия:

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

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

  • Если варианты имеют порт управления, имя входного порта данных должно совпадать с именем порта управления.

Во время симуляции Simulink отключает неактивные порты в блоке Variant Subsystem.

Эмблемы вариантов

С каждым блоком Variant связан значок. Цвет и значок значка «Вариант» указывают на статус блока «Вариант». Это также обеспечивает быстрый доступ к нескольким командам вариант. Для доступа к этим командам можно щелкнуть правой кнопкой мыши значок «Вариант».

Эмблема варианта

Источник варианта

Вариантный приемник

Альтернативная подсистема

Значок варианта по умолчанию, если опция не выбрана.

Блок с Label выбран как Variant control mode, и выбор активного варианта выбран из Label mode active choice опции.

Блок с Allow zero active variant controls опцией.

Блок с expression выбран как Variant control mode и update diagram выбран как Variant activation time.

Блок с expression выбран как Variant control mode и update diagram analyze all choices выбран как Variant activation time.

Блок с expression выбран как Variant control mode и code compile выбран как Variant activation time.

Блок с sim codegen switching выбран как Variant control mode и update diagram выбран как Variant activation time.

Блок с sim codegen switching выбран как Variant control mode и update diagram analyze all choices выбран как Variant activation time.

Блок с Propagate conditions outside of variant subsystem опцией.

Не применяется

Не применяется

Блок с update diagram выбран как Variant activation time, и Allow zero active variant controls выбран опция.

Блок с update diagram analyze all choices выбран как Variant activation time, и Allow zero active variant controls выбран опция.

Блок с code compile выбран как Variant activation time, и Allow zero active variant controls выбран опция.

Блок с update diagram выбран как Variant activation time, и Propagate conditions outside of variant subsystem выбран опция.

Не применяется

Не применяется

Блок с update diagram analyze all choices выбран как Variant activation time, и Propagate conditions outside of variant subsystem выбран опция.

Не применяется

Не применяется

Блок с code compile выбран как Variant activation time, и Propagate conditions outside of variant subsystem выбран опция.

Не применяется

Не применяется

Блок с Allow zero active variant controls и Propagate conditions outside of variant subsystem опцией.

Не применяется

Не применяется

Блок с sim codegen switching выбран как Variant control mode, и Propagate conditions outside of variant subsystem выбран опция.

Не применяется

Не применяется

Закомментируйте и закомментируйте

Примите во внимание, когда вы хотите симулировать модель Simulink, исключив некоторые из ее блоков из симуляции и не удаляя физически блоки из модели. Команды Comment Out и Comment Through в Simulink предоставляют вам опцию исключить блоки из симуляции. В зависимости от вашего требования моделирования, можно использовать следующие опции:

  • Comment Out: Исключает выбранный блок из симуляции. Сигналы завершаются и заземляются.

  • Comment Through: Исключает выбранный блок из симуляции. Сигналы передаются. Чтобы прокомментировать через блок, количество портов входа и портов выхода для блока должно быть одинаковым.

Чтобы получить доступ к Comment Out или опциям Comment Through, щелкните правой кнопкой мыши блок и в контекстном меню выберите Comment Out или Comment Through на основе вашего требования моделирования.

Кроме того, можно также выбрать блок и нажать Ctrl+Shift+X, чтобы прокомментировать или нажать Ctrl+Shift+Y, чтобы прокомментировать.

Можно использовать get_param и set_param команды для программного просмотра или изменения комментируемого состояния блока. Для примера,

  • get_param(gcb,'commented'); % To view the commented state of the block

  • set_param(gcb,'commented','on'); % To comment out a block

  • set_param(gcb,'commented','through'); % To comment through a block

  • set_param(gcb,'commented','off'); % To uncomment a block

Когда вы комментируете блок, имена сигналов в выход порту блока игнорируются. Чтобы включать такие сигналы во время симуляции, имя сигнала должно быть добавлено к входу порту блока.

Comment Out и Comment Through не поддержаны с этими блоками: Inport, Outport, Дапликэйт-Порт, Connection ports, Argument Inport, Argument Outport, Data Store Memory, Signal Generator, Goto Tag Visibility, поскольку, и В то время как блоки.

Похожие примеры

Подробнее о