В рабочих процессах Модельно-ориентированного проектирования создание нескольких изменений проекта для компонентов системы важно, чтобы соответствовать различным наборам требований. Эти требования могут угодить разнообразным потребностям рынка, потребительским настройкам или географическим функциям. В течение жизненного цикла разработки, от требований до развертывания, вы, возможно, должны переключиться между этими проектными решениями.
Simulink® различные возможности позволяют вам представлять все альтернативы проекта для системы в одной модели. Каждое проектное решение включено в модель как вариант. Такие модели имеют фиксированную общую структуру и конечное множество переменных компонентов, которые активируются в зависимости от варианта. Эта модель показывает, как блоки Variant Source помогают вам реализовать варианты для входных сигналов к системе. Неактивный выбор кажется увядшим.
Для примера смотрите Варианты Использования, чтобы Создать Одну Модель для Многих Систем.
Используя варианты в Модельно-ориентированном проектировании обеспечивает несколько преимуществ:
Варианты позволяют вам проектировать одну модель для многих систем.
Вы можете возможности проекта быстрого прототипирования как варианты, не имея необходимость комментировать разделы вашей модели.
Варианты помогают вам разработать платформы модульного проектирования для повторного использования и индивидуальной настройки. Этот подход улучшает скорость рабочего процесса путем сокращения сложности.
Если компонент модели имеет несколько альтернативных настроек, можно исследовать альтернативы, не изменяя фиксированные компоненты.
Можно использовать различные различные настройки для симуляции или генерации кода из той же модели.
Можно симулировать каждую возможность проекта для данного тестового набора.
Если вы работаете с крупномасштабными проектами, можно распределить процесс тестирования этих проектов в кластере многоядерных компьютеров. В качестве альтернативы можно сопоставить различные тестовые наборы, чтобы спроектировать альтернативы для эффективного управления специфичными для проекта тестами.
Можно сгенерировать упрощенную модель для подмножества различных настроек из модели со многими вариантами.
Вот три сценария, где можно использовать варианты.
Модели, которые представляют несколько симуляция, генерация кода или рабочие процессы тестирования. |
|
Модели, которые содержат несколько проектных решений на уровне компонента. |
|
Модели, которые в основном подобны, но имеют небольшие изменения, такой как в случаях, где вы хотите разделить тестовую модель от модели отладки. Тестовая модель слева имеет фиксированный проект. Справа, та же тестовая модель включает вариант, который введен для отладки целей. |
|
Справка Variant blocks вы представляете несколько структурных или алгоритмических реализаций компонента системы в одной модели и позволяете вам переключаться между ними согласно требованиям. Для обзора типов различных блоков в Simulink смотрите Различные Блоки в Simulink.
Справка Variant parameters вы реализуете изменения проекта, которые требуют различных значений для параметров блоков. Для получения дополнительной информации смотрите Параметры Варианта Использования к Параметрам блоков Повторного использования с Различными Значениями.
Variant transitions позволяет вам переходу к нескольким настройкам проекта в рамках того же Stateflow® график. Для получения дополнительной информации смотрите, что Генерация кода Использует Различные Переходы (Stateflow).
Dimension variants позволяет вам задавать символьные размерности, которые варьируются на основе различных условий. Смотрите Варианты Размерности Реализации для Размеров Массивов в Сгенерированном коде (Embedded Coder).
AUTOSAR variants позволяет вам использовать различные блоки, чтобы реализовать компоненты программного обеспечения AUTOSAR с точками изменения. Смотрите Варианты AUTOSAR Модели (AUTOSAR Blockset).
Совет
Для списка примеров, что возможности варианта show в Simulink, см. Модели Вариантов В качестве примера.
Чтобы видеть определения для ключевых терминов и параметров, используемых с вариантами, смотрите Различную Терминологию.
Для примеров, что возможности генерации кода варианта show, смотрите Вариантные системы (Embedded Coder).
Используйте эти различные блоки в зависимости от проекта модели:
Hierarchical variant blocks, чтобы создать несколько реализаций компонента в отдельной иерархии в модели.
Inline variant blocks, чтобы представлять все различные реализации на том же уровне в модели.
Event-based variants, чтобы использовать варианты, чтобы смоделировать контекстно-зависимое поведение системы.
Тип варианта | Различный блок | Использование |
---|---|---|
Иерархические различные блоки | Variant Subsystem | Блок Variant Subsystem является шаблоном, предварительно сконфигурированным с блоками Subsystem, чтобы представлять варианты. Блок Variant Subsystem позволяет комбинацию блоков Subsystem, блоков Model или блоков Subsystem Reference как варианты. |
Variant Model | Блок Variant Model является шаблоном, предварительно сконфигурированным с двумя блоками Model, чтобы представлять варианты. Блок Variant Model позволяет комбинацию блоков Subsystem, блоков Model или блоков Subsystem Reference как варианты. | |
Встройте различные блоки | Variant Source | Блок Variant Source позволяет вам задавать варианты как области блока, соединенные с каждым его импортом. Блок обеспечивает изменение на источнике сигнала. |
Variant Sink | Блок Variant Sink позволяет вам задавать варианты как области блока, соединенные с каждым из его выходных портов. Блок обеспечивает изменение на месте назначения сигнала. | |
Manual Variant Source | Блок Manual Variant Source является переключателем переключателя, который позволяет вам задавать несколько вариантов в его импорте. | |
Manual Variant Sink | Блок Manual Variant Sink является переключателем переключателя, который позволяет вам задавать несколько вариантов в его выходных портах. | |
Variant Connector (Simscape) | Блок Variant Connector позволяет вам задать варианты в физической сети. Можно переключиться между компонентами в сеть в процессе моделирования, не имея необходимость физически удалять компоненты или исключать их из симуляции. | |
Основанные на событии варианты | Simulink Function | Различная функциональность в блоке Simulink Function позволяет блоку быть условно доступным. Можно задать различные условия на блокировке порта вызова функции, или блок может наследовать условие от своих функциональных блоков вызывающей стороны. |
Initialize Function, Reset Function и блоки Terminate Function | Различная функциональность в Initialize, Reset и блоках Terminate позволяет блокам быть условно доступными. Можно задать различные условия на блоке прослушивателя события. |
Эта таблица показывает сравнение между иерархическими и встроенными различными блоками.
Функция | Variant Source и блоки Variant Sink | Variant Subsystem и блоки Variant Model |
---|---|---|
Представление варианта | Количество портов | Subsystem, Model или блоки Subsystem Reference |
Позволяет реализовывать варианты в отдельной иерархии | Нет | Да |
Поддерживает гибкое количество вводов и выводов среди вариантов (выбор не имеет подобного интерфейса), | Нет | Да, если параметр Propagate conditions outside of variant subsystem устанавливается на |
Опция, чтобы задать вариант по умолчанию | Да | Да |
Порты управления поддержек | Нет | Да |
Может быть сохранено как автономный файл | Нет | Нет |
Поддержки Connection Port используются для моделирования линий физического соединения | Нет | Только, когда параметр Variant activation time устанавливается на |
Прокомментируйте вариант (путем добавления | Нет | Да |
Этот пример показывает различный проект в модели Simulink. Полагайте, что требование моделирует систему, которая представляет автомобиль несколькими настройками. Эти настройки, несмотря на то, что подобный в нескольких аспектах, могут отличаться по свойствам, таким как расход топлива, моторный тип или стандарт эмиссии.
Вместо того, чтобы проектировать отдельные модели для каждой настройки, можно представлять настройки как варианты в одной модели. Можно принять решение активировать любой из вариантов на основе требований. Этот подход сохраняет общие компоненты зафиксированными.
Эта модель содержит блок Variant Subsystem, Motor Variant Subsystem
, это представляет двигатель транспортного средства. Двигатель имеет две возможных настройки, Gas
и Electric
, это представлено как варианты в блоке Variant Subsystem. Блок Variant Subsystem адаптирует свой интерфейс согласно состоянию базовых блоков. Здесь, Electric
двигатель не имеет exhaust temperature
входной параметр. Когда вы активируете Electric
вариант, Simulink автоматически отключает соответствующий порт на Motor Variant Subsystem
и любые другие компоненты модели сопоставлены с тем входом.
Для exhaust temperature
датчик для этой модели, рассмотрите потребность переключиться между пятью различными датчиками, обеспеченными двумя поставщиками. Можно использовать блоки Variant Source, чтобы представлять весь выбор в той же модели и активировать только один выбор за один раз.
Визуальный элемент | Использование |
---|---|
Различная легенда условия | Диалоговое окно Variant Condition Legend помогает вам визуализировать различные условия, примененные на модель. Simulink аннотирует компоненты модели, которые имеют различные условия, и Различная Легенда Условия отображает условия для каждой аннотации. Смотрите Визуализируют Распространенные Различные Условия Используя Различную Легенду Условий. |
Различные значки | Каждый различный блок отображает значок, который изменяется с различным набором значений параметров на блоке. Смотрите Различные Значки. |
Исчезновение варианта и выделение сигнала | Цвет неактивных вариантов исчезает по умолчанию. Можно принять решение отключить исчезающий эффект при помощи Различной Исчезающей опции в информационном меню Overlays на вкладке Debug Редактора Simulink. Выделение сигнала, который проходит через различные блоки, подсвечивает путь активного варианта. Смотрите Сигнал Подсветить в Вариантных системах. |
Каждый различный блок отображает значок. Цвет и значок различных изменений значка согласно значениям этих параметров устанавливают на блоке:
Variant activation time
Variant control mode
Allow zero active variant controls (для Variant Source и блоков Variant Sink)
Propagate conditions outside of variant subsystem (для блока Variant Subsystem)
Различные Значки также обеспечивают быстрый доступ к некоторым различным командам. Щелкните правой кнопкой по различному значку, чтобы получить доступ к этим командам.
Различные значки значка для различных настроек на различных блоках
Необходимо сопоставить каждый вариант в модели с variant control, который используется, чтобы определить, активен ли выбор или неактивен. Для различных блоков можно выбрать режим, в котором вы хотите задать различные средства управления с помощью параметра Variant control mode. Для получения дополнительной информации смотрите Введение в Различные Средства управления.
Simulink определяет компоненты модели, которые активны в процессе моделирования процессом variant condition propagation. Этот процесс оценивает различные средства управления, заданные на различных блоках, и автоматически распространяет различные условия с соединяющимися блоками. Различные условия могут распространить через сигнальные линии, шины и вызовы функции. Процесс деактивировал компоненты модели, сопоставленные с неактивным выбором, и они не включены в симуляцию. Можно остановить распространение условия в области варианта define в модели. См. Различный Обзор Распространения Условия.
Можно также выбрать, когда активный вариант определяется с помощью параметра Variant activation time. Этот параметр также определяет, как активный и неактивный выбор участвует в рабочих процессах генерации кода и симуляции. Смотрите Активируют Вариант Во время Различных Этапов Рабочего процесса Симуляции и Генерации кода.
Примечание
Можно выбрать различное время активации для различного блока только, когда Variant control mode установлен в expression
.
Manual Variant Source и блоки Manual Variant Sink не поддерживают различные средства управления и различное время активации. Они определяют активный вариант на основе активного импорта и выходных портов, соответственно.
Блоки Variant Connector не поддерживают различное время активации.
Различный менеджер является центральным инструментом, который позволяет вам управлять всеми точками изменения в модели. Инструмент помогает вам визуализировать иерархию модели и использование вариантов на всех уровнях. См. Различный Обзор менеджера.
Создайте и активируйте различные настройки:
Иерархия модели может содержать несколько различных блоков, каждого со многими вариантами. Комбинации этих вариантов соответствуют определенным настройкам системы. Переключение между этими настройками и проверка их вручную могут быть сложными и могут ввести ошибки. Можно использовать Различного менеджера, чтобы создать предопределенные настройки для модели и запустить модель под любой из настроек. Можно также подтвердить настройки против набора ограничений.
Анализируйте и уменьшайте различные настройки:
Можно использовать инструмент Variant Configuration Analysis в Различном менеджере, чтобы сравнить различные настройки для модели и определить, какие блоки используются в каждой настройке. Инструмент помогает в рабочих процессах верификации и валидации модели, потому что он может идентифицировать неиспользованные области в модели.
Можно использовать инструмент Variant Reducer в Различном менеджере, чтобы автоматически сгенерировать упрощенную модель для подмножества различных настроек и анализировать упрощенную модель в подробном отчете. Процесс сокращения удаляет неактивные компоненты для заданных различных настроек. Различный Редуктор уменьшает сопоставленные модели - ссылки, ссылки подсистемы и библиотеки в модели. Инструмент также уменьшает любые зависимые артефакты, такие как MAT или .sldd
файлы и пакеты все уменьшаемые артефакты в заданной выходной папке. Вариант использования в качестве примера для инструмента является рабочим процессом поставщика-поставщика.
Можно использовать Simulink Coder™ или Embedded Coder® сгенерировать код из различных моделей. Смотрите Готовят Содержащую Вариант Модель к Генерации кода.
Для примеров, что возможности генерации кода варианта show, смотрите Вариантные системы (Embedded Coder).