Используя инициированные подсистемы

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

Триггерные события могут иметь место когда управляющий сигнал:

  • Или повышения от отрицательной величины до положительного значения или нуль или повышения от нулевого значения до положительного значения.

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

  • Повышения или проваливаются или к нулевому значению.

В отличие от блока Enabled Subsystem, блок Triggered Subsystem всегда содержит свои выходные параметры в последнем значении между инициирующими событиями. Кроме того, инициированные подсистемы не могут сбросить блочные состояния, когда инициировано; состояния любого дискретного блока сохранены между триггерными событиями.

Создайте инициированную подсистему

Создать инициированную подсистему:

  1. Добавьте блок Triggered Subsystem к своей модели.

    • Скопируйте блок от библиотеки Simulink Ports & Subsystems до вашей модели.

    • Кликните по образцовой схеме, начните вводить trigger, и затем выберите Triggered Subsystem.

  2. Установите начальные и отключенные значения для блоков Выходного порта. Смотрите Условные Выходные значения Начальной буквы Подсистемы и Условные Выходные значения Подсистемы, Когда Отключено.

  3. Установите, как управляющий сигнал инициировал выполнение.

    Откройте блок подсистемы, и затем откройте диалоговое окно параметра для Триггерной блокировки порта. От Триггера введите выпадающий список, выберите:

    • rising — Инициируйте выполнение подсистемы, когда управляющий сигнал повысится с отрицательной величины или нулевого значения к положительному значению.

    • falling — Инициируйте выполнение подсистемы, когда управляющий сигнал упадет от положительного или нулевого значения до отрицательной величины.

    • either — Инициируйте выполнение подсистемы или с повышением или с падающим управляющим сигналом.

    Различные символы, кажется, на блоках Триггера и Подсистемы указывают на возрастающие и падающие триггеры.

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

    Можно использовать этот сигнал с алгоритмом, который зависит от значения управляющего сигнала.

  5. От Выходных данных вводят выпадающий список, выбирают auto, int8 или double.

    Опция auto заставляет тип данных выходного сигнала быть типом данных (или int8 или double) блочного порта, соединенного с сигналом.

Инициирование с системами дискретного времени

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

В следующей схеме синхронизации для дискретной системы возрастающее триггерное событие (R) не происходит на временном шаге 3. Триггерный сигнал остается в нуле только для одного временного шага, прежде чем сигнал увеличится с нуля.

Инициированная модель по сравнению с инициированной подсистемой

Можно поместить Триггерную блокировку порта в Блок модели (модель, на которую ссылаются), чтобы упростить образцовый дизайн вместо того, чтобы использовать один из этих блоков:

  • Блок Triggered Subsystem в Блоке модели.

  • Блок модели в блоке Triggered Subsystem.

Для получения информации об использовании Триггерных блокировок порта в моделях, на которые ссылаются смотрите, Изменяют Модели, на которые Ссылаются, для Условного Выполнения.

Чтобы преобразовать подсистему, чтобы использовать образцовую ссылку, смотрите, Преобразовывают Подсистемы в Модели, на которые Ссылаются.

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

Всем блокам в инициированной подсистеме нужно было установить Частоту дискретизации на наследованный (-1) или постоянный (inf). Это требование позволяет блокам в инициированной подсистеме запускаться только, когда сама инициированная подсистема запускается. Это требование также означает, что инициированная подсистема не может содержать непрерывные блоки, такие как блок Integrator.

Образцовые примеры

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

Блоки

Связанные примеры

Больше о

Была ли эта тема полезной?