Забезпечує формування керуючих сигналів для підсистем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) і т.д.
На Рис. 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; }
Рис. 7 Використання блоку Ifразом з підсистемамиIf Action Subsystem