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

Инициированная подсистема является условно выполняемой атомарной подсистемой, которая запускает каждый раз управляющий сигнал (триггерный сигнал):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. От Output data type выпадающий список выберите autoint8, или double.

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

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

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

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

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

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

  • Блок Triggered Subsystem в блоке Model.

  • Блок Model в блоке Triggered Subsystem.

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

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

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

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

Примеры модели

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

Блоки

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

Больше о