В Simulink® можно использовать различные блоки, чтобы создать одну модель, которая угождает нескольким различным требованиям. Такие модели имеют фиксированную общую структуру и конечное множество переменных компонентов. Переменные компоненты активируются в зависимости от варианта, который вы выбираете. Таким образом результирующая активная модель является комбинацией фиксированной структуры и переменных компонентов на основе варианта.
Использование различных блоков в модели помогает в возможности многократного использования модели для названных вариантов различных условных выражений. Этот подход помогает вам удовлетворить разнообразные потребительские требования на основе приложения, стоить, или операционные факторы.
Можно использовать эти различные блоки в зависимости от образцового проекта:
Различная Подсистема: Для иерархической образцовой структуры. Блок является шаблоном с двумя блоками Subsystem, чтобы использовать в качестве вариантных систем. Можно добавить блоки Subsystem, а также блоки Model, для вариантов.
Различная Модель: Для иерархической образцовой структуры. Блок является шаблоном с двумя блоками Model, чтобы использовать в качестве вариантных систем. Можно добавить блоки Model, а также блоки Subsystem, для вариантов.
Встроенные Варианты: Для плоской образцовой структуры.
Шаг расчета для одного входа Variant Source / Различные блоки Приемника может не согласиться с несколькими вход Variant Source / Различные блоки Приемника. Для получения дополнительной информации о шаге расчета смотрите то, Что Шаг расчета?
Использование Различного блока Subsystem обеспечивает эти преимущества:
Позволяет вам смешивать Модель и блоки Subsystem как вариантные системы
Поддерживает гибкий ввод-вывод, так, чтобы все варианты не должны были иметь того же количества портов ввода и вывода
Чтобы преобразовать блок Model, который содержит различные модели к Различному блоку Subsystem, который содержит блоки Model, которые ссылаются на различные модели, щелкните правой кнопкой по блоку Model и выберите Subsystems & Model Reference> Convert to> Variant Subsystem. Также можно использовать функцию Simulink.VariantManager.convertToVariant
. Задайте имя блока Model или указатель блока. Конвертированная модель приводит к тем же результатам как исходная модель.
Если вы хотите моделировать модель, которая представляет автомобиль с несколькими настройками. Эти настройки, несмотря на то, что подобный в нескольких аспектах, могут отличаться по свойствам, таким как расход топлива, объем двигателя или стандарт эмиссии. Вместо того, чтобы разработать многоуровневые модели, которые вместе представляют все возможные настройки, можно использовать варианты, чтобы смоделировать только переменные настройки. Этот подход сохраняет общие компоненты зафиксированными.
Эта модель содержит два варианта в одном Различном блоке Subsystem. Варианты являются двумя или больше настройками компонента в вашей модели.
Используя варианты в Модельно-ориентированном проектировании обеспечивает несколько преимуществ:
Варианты предоставляют вам способ разработать одну модель для многих систем.
Вы можете возможности проекта быстрого прототипирования как варианты, не имея необходимость комментировать разделы вашей модели.
Варианты помогают вам разработать платформы модульного проектирования, которые упрощают повторное использование и индивидуальную настройку. Этот подход улучшает скорость рабочего процесса путем сокращения сложности.
Если компонент модели имеет несколько альтернативных настроек, можно эффективно исследовать эти переменные альтернативы, не изменяя фиксированные, непеременные компоненты.
Можно использовать различные различные настройки для симуляции или генерации кода из той же модели.
Можно моделировать каждую возможность проекта комбинаторным способом для данного тестового набора.
Если вы работаете с крупномасштабными проектами, можно распределить процесс тестирования этих проектов на кластере многоядерных компьютеров. Также можно сопоставить различные тестовые наборы, чтобы разработать альтернативы для эффективно управления специфичные для проекта тесты.
Можно сгенерировать упрощенную модель с подмножеством настройки из основной модели со многими вариантами.
Варианты помогают вам задать несколько реализаций модели в одной, объединенной блок-схеме. Вот три сценария, где можно использовать варианты:
Модели, которые представляют несколько симуляция, генерация кода или рабочие процессы тестирования.
Модели, которые содержат несколько проектных решений на уровне компонента.
Блоки Subsystem, представляющие варианты, могут иметь импорт и выходные порты, которые отличаются по номеру от импорта и выходных портов в родительском Различном блоке Subsystem. Смотрите Отображение Inports и Выходные порты Вариантов.
Модели, которые в основном подобны, но имеют небольшие изменения, такой как в случаях, где вы хотите разделить тестовую модель от модели отладки.
Тестовая модель слева имеет фиксированный проект. Справа, та же тестовая модель включает вариант, который введен для отладки целей.
Simulink выбирает активный вариант в течение времени схемы обновления и в течение времени компиляции кода.
Можно представлять один или несколько вариантов как варианты в этих блоках.
Различный Источник и Различные блоки Приемника | Различная Подсистема и Различные блоки Model | |
---|---|---|
Представление варианта | Количество портов | Подсистема или блок Model |
Позволяет иерархию выбора | Нет | Да |
Несовпадающее количество импорта и выходных портов среди вариантов | Simulink отключает неактивные порты | Simulink отключает неактивные порты |
Опция, чтобы задать вариант по умолчанию | Да | Да |
Порты управления поддержек | Нет | Да |
Может быть сохранено как автономный файл | Нет | Нет |
Поддержки физические порты подключения моделирования | Нет | Частично |
Прокомментируйте выбор ( | Нет | Нет |
Кроме того, можно представлять варианты с помощью блока Variant Source и Variant Sink. Эти блоки включают распространение различных условий в модели и могут распространить условия через иерархию модели - ссылки.
Можно создать варианты на нескольких уровнях в иерархии модели.
Различная Подсистема является контейнером выбора вариантов, который представлен как Подсистема или блоки Model. Входные параметры, которые Различный блок Subsystem получает от восходящих компонентов моделей, сопоставляют с импортом и выходными портами вариантов.
Подсистема и блоки Model, представляющие варианты, могут иметь импорт и выходные порты, которые отличаются по номеру от импорта и выходных портов в родительском Различном блоке Subsystem. Однако следующие условия должны быть удовлетворены:
Имена импорта варианта являются подмножеством имен импорта, используемых родительской различной подсистемой.
Имена выходных портов варианта являются подмножеством имен выходного порта, используемых родительской различной подсистемой.
Если варианты имеют порт управления, имя порта ввода данных должно соответствовать с именем порта управления.
Во время симуляции Simulink отключает неактивные порты в Различном блоке Subsystem.
Каждому блоку Variant сопоставили значок с ним. Цвет и значок Различного значка указывают на состояние блока Variant. Это также обеспечивает быстрый доступ к немногим Различным командам. Можно щелкнуть правой кнопкой по Различному значку, чтобы получить доступ к этим командам.
Различный значок | Различный источник | Различный приемник | Различная подсистема |
---|---|---|---|
Различный значок по умолчанию, когда никакая опция не выбрана. | |||
Различный блок с |
|
|
|
Различный блок с выбранной опцией Allow zero active variant controls. |
|
|
|
Различный блок с выбранной опцией Analyze all choices during update diagram and generate preprocessor conditionals. |
|
|
|
Различный блок с выбранной опцией Propagate conditions outside of variant subsystem. | Не применяется | Не применяется |
|
Различный блок с Analyze all choices during update diagram and generate preprocessor conditionals и опцией Allow zero active variant controls выбран. |
|
|
|
Различный блок с Analyze all choices during update diagram and generate preprocessor conditionals и опцией Propagate conditions outside of variant subsystem выбран. | Не применяется | Не применяется |
|
Различный блок с Allow zero active variant controls и опцией 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, Выходной порт, Дублирующийся Порт, Порты подключения, Аргумент Inport, Выходной порт Аргумента, Память Хранилища данных, Генератор Сигнала, Видимость Тега Goto, поскольку, и В то время как блоки.