Обеспечивает формирование управляющих сигналов для подсистем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