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

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

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

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

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

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

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

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

  1. Добавьте Инициированный блок Subsystem в свою модель.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • Инициированный блок Subsystem в блоке Model.

  • Блок Model в Инициированном блоке Subsystem.

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

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

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

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

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

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

Блоки

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

Больше о