Измените модели, на которые ссылаются, для условного выполнения

conditionally executed referenced model или conditional model, позволяет вам управлять своим выполнением с внешним сигналом. Внешний сигнал, названный control signal, присоединен к control input port. Условные модели полезны, когда вы создаете иерархии сложной модели, которые содержат компоненты, выполнение которых зависит от других компонентов.

Условные модели

Можно настроить модели, на которые ссылаются так, чтобы они выполнились условно, похожий на условные подсистемы. Для получения информации об условных подсистемах см. Условно Выполняемый Обзор Подсистем.

Программное обеспечение Simulink® поддерживает эти условные типы модели:

Условная модельОписание
Enabled

Разрешать порт выполняет модель, на которую ссылаются, на каждом шаге симуляции, для которого управляющий сигнал имеет положительное значение. Чтобы добавить разрешать порт в блок Model, вставьте блок Enable в модель, на которую ссылаются.

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

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

Инициированный

Триггерный порт выполняет модель, на которую ссылаются, каждый раз, когда триггерное событие имеет место. Чтобы добавить триггерный порт в блок Model, вставьте блок Trigger в модель, на которую ссылаются.

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

Для примера инициированной модели см. модель sldemo_mdlref_datamngt.

Инициированный и Enabled

Блок Model может иметь и триггер и включить порты. Если разрешать управляющий сигнал имеет положительное значение в то время шаг, для которого триггерное событие имеет место, инициированный и включило модель, выполняется однажды.

Вызов функции

Порт вызова функции выполняет модель, на которую ссылаются, каждый раз, когда событие вызова функции имеет место. Чтобы добавить порт вызова функции в блок Model, вставьте блок Trigger в модель, на которую ссылаются. Затем откройте диалоговое окно Block Parameters и установите Trigger type на function-call.

График Stateflow®, блок Function-Call Generator или соответственно сконфигурированная пользовательская S-функция могут обеспечить события вызова функции. Смотрите Используя Подсистемы вызова функций.

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

Для примера модели вызова функции см. модель sldemo_mdlref_fcncall.

Требования для условных моделей

Условные модели должны удовлетворить требования для:

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

Условная модельТребования
Enabled
  • Многоскоростные активированные модели не могут использовать многозадачные решатели. Используйте однозадачность.

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

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

Инициированный

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

Инициированный и EnabledСмотрите требования для инициированных моделей, и включил модели.
Вызов функции
  • Модель вызова функции не может иметь выходного порта, управляемого только блоками Ground, включая скрытые блоки Ground, вставленные Simulink. Чтобы удовлетворить это требование, сделайте следующее:

    1. Вставьте блок Signal Conversion в сигнал, соединенный с выходным портом.

    2. Включите Исключение этого блока из 'Опции оптимизации' сокращения блока вставленного блока.

  • Родительская модель должна инициировать модель вызова функции на уровне, заданном Configuration Parameters> Solver 'Fixed-step size' опция, если модель вызова функции удовлетворяет обоим этим условиям:

    • Это задает решатель фиксированного шага.

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

    В противном случае родительская модель может инициировать модель вызова функции во всяком случае.

  • Модель вызова функции не должна иметь прямых внутренних связей между своими портами ввода и вывода корневого уровня. Simulink не соблюдает None и Warning настройки для диагностики Invalid root Inport/Outport block connection для модели вызова функции, на которую ссылаются. Это сообщает обо всех недопустимых связях корневого порта как об ошибках.

  • Если Sample time type является periodic, период шага расчета не должен содержать смещение.

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

Измените модель, на которую ссылаются, для условного выполнения

  1. На корневом уровне модели, на которую ссылаются вставьте один из следующих блоков:

    Тип моделиБлоки, чтобы вставить

    Enabled

    Enable

    Инициированный

    Trigger

    Инициированный и Enabled

    Инициируйте и включите

    Вызов функции

    Триггер

    Для активированной модели перейдите к Шагу 3.

  2. Для блока Trigger, установленного параметр Trigger type:

    Тип моделиИнициируйте установку параметра типа

    Инициированный

    Инициированный и включил

    Одно из следующего:

    • rising

    • falling

    • either

    Вызов функции

    function-call

  3. Используйте порты блока Model, чтобы соединить модель, на которую ссылаются, с другими портами в родительской модели.

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

Смотрите также

Блоки

Похожие темы