Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Simulink Matlab.doc
Скачиваний:
197
Добавлен:
09.05.2015
Размер:
2.39 Mб
Скачать

9.9.4. Управляемая уровнем и фронтом сигнала подсистема Enabled and Triggered Subsystem

Подсистема Enabled and Triggered Subsystem(в дальнейшемET-подсистема) включается фронтом сигнала поступающего наT-вход системы при наличии положительного сигнала наE-входе системы. Так же как иTriggered Subsystemэта подсистема выполняет вычисления только на том шаге моделирования, где произошло изменение управляющего сигнала наT-входе. ПараметрStates when enabling блокаEnable не оказывает влияния на работуET-подсистемы.

Оба управляющих сигнала могут быть векторными.

Пример ET-подсистемы дан на рис. 9.9.6.

Рис. 9.9.6 Модель, использующая ET-подсистему

9.9.5. Управляемая s-функцией подсистема Function-call subsystem

Function-call subsystem (в дальнейшемFC-подсистема) являетсяT-подсистемой, предназначенной для использования совместно сS-функцией написанной на языкеC. Используя специальные средства, можно обеспечить выполнение подсистемы во время выполненияS-функции. На время выполненияFC-подсистемы работаS-функции останавливается, а по окончании выполненияFC-подсистемы работаS-функции возобновляется. Таким образом,FC-подсистема обеспечивает созданиеS-функций, запускающих подсистемы составленные изSimulink-блоков. Механизм создания такихS-функций описан в документацииSimulink, посвященной созданиюS-функций.

Для работы с FC-подсистемой можно использовать такжеFunction-Call Generator и средства пакета событийного моделированияStateflow.

9.9.6. Блок условного оператора If

Назначение:

Обеспечивает формирование управляющих сигналов для подсистем If Action

Subsystem. Блок является аналогом оператораif-elseязыка программированияC.

Параметры:

  1. Number of inputs – Количество входов.

  2. If expression – Условное выражение. Условное выражение может включать в себя следующие знаки: <. <=, ==, ~=, >, >=, &, |, [ ], а также унарный минус. Если записанное условное выражение истинно, то на выходном If-порту блока формируется управляющий сигнал.

  3. Elseif expressions – Одно или список альтернативных условных выражений разделенных запятыми, вычисляющихся, если условное выражение If expression ложно. Каждому условному выражению, записанному в списке Elseif expressions соответствует выходной Elseif-порт на котором формируется управляющий сигнал, если соответствующее условное выражение истинно. При этом алгоритм вычисления альтернативных условных выражений таков, что если одно из альтернативных условных выражений окажется истинным, то следующие в списке выражения не проверяются. Альтернативное условное выражение может включать в себя те же знаки, что и выражение If expression.

  4. Show else condition (флажок) – Показать Else-порт. На Else-порту формируется управляющий сигнал, если условное выражение и все альтернативные условные выражения ложны.

На пиктограмме блока отображаются условные выражения, записанные в его параметрах. Добавление каждого нового альтернативного условного выражения приводит к появлению нового Elseif выходного порта.

Если входные сигналы блока являются скалярами, то для их обозначения в выражениях используется запись вида u1,u2,u3и т.д. Если входные сигналы векторные, то для обозначения элементов вектора используются выражения видаu1(1),u1(2),u2(1),u2(2)и т.д.

На рис. 9.9.7 показан пример использования блока If совместно с подсистемами If Action Subsystem. В примере первая подсистема пропускает через себя входной сигнал если входной сигал блокаIf больше1, вторая – если входной сигнал меньше –1(минус один), и третья – если входной сигнал лежит в интервале от-1до+1.

С-код, соответствующий алгоритму работы блокаIfв приведенном примере выглядит следующим образом:

if (u1 > 1) { If Action Subsystem 1; } elseif (u1 < -1){ If Action Subsystem 2; } else { If Action Subsystem 3; }

Рис. 9.9.7 Использование блока If совместно с подсистемами If Action Subsystem

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]