d9e5a92d

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


 

Назначение:

Обеспечивает формирование управляющих сигналов для подсистем If Action Subsystem. Блок является аналогом оператора if-else языка программирования C.

 

Параметры:

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

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

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

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; }

 

 

 




Содержание раздела