Подсистема, выполнение которой включено блоком If
Simulink/Порты и подсистемы
Блок If Action Subsystem является блоком Subsystem, предварительно сконфигурированным в качестве начальной точки для создания подсистемы, выполнение которой управляется блоком If. Блок If вычисляет логическое выражение и затем, в зависимости от результата вычисления, выдает сигнал действия.

Simulink игнорирует приоритет, установленный для блока подсистемы If Action. Вместо этого установите приоритет в блоке If, который инициирует выполнение подсистемы.
В этом примере показано, как объединить сигналы, управляемые блоком If. Блок If выбирает выполнение блока If Action Subsystem из набора подсистем. Независимо от того, какую подсистему выбирает блок If, можно создать один сигнал с блоком Merge. Open model.

Все блоки в блоке подсистемы If Action должны выполняться с той же скоростью, что и управляющий блок If. Это требование можно удовлетворить, установив параметр времени выборки для каждого блока наследуемым (-1) или равным значению времени выборки блока If.
Блок If не поддерживает непосредственно типы данных с фиксированной точкой. Однако для обхода этого ограничения можно использовать блок «Сравнить с константой».
Рассмотрим следующую модель с плавающей запятой без типов данных с фиксированной запятой:

В этой модели в блоках подсистемы действий If используются их конфигурации по умолчанию. Для параметров моделирования установлены значения по умолчанию, за исключением параметров, перечисленных в следующей таблице.
Панель параметров конфигурации | Параметр | Настройка |
|---|---|---|
Решающее устройство | Время начала |
|
Время остановки |
| |
Напечатать |
| |
Решающее устройство |
| |
Фиксированный размер шага |
|
Параметры блока устанавливаются в значения по умолчанию, за исключением параметров, перечисленных в следующей таблице.
Блок | Параметр | Настройка |
|---|---|---|
Повторяющаяся лестница последовательности | Вектор выходных значений |
|
Повторяющаяся последовательность Stair1 | Вектор выходных значений |
|
Если | Количество входов |
|
Если выражение |
| |
Показать другое условие | Отобранный | |
Постоянный | Постоянное значение |
|
Constant1 | Постоянное значение |
|
Объем | Количество осей |
|
Временной диапазон |
|
Для этой модели при вводе u1 больше, чем 0 или ввод u2 больше, чем 0.5, выходной сигнал: 4. В противном случае выходные данные будут -4. В блоке «Область» отображаются выходные данные блока «Объединение» с входными данными. u1, и u2.

Эту блок-схему можно реализовать в виде модели с фиксированными типами данных:

Лестница повторяющейся последовательности (Repeating Sequence Stair) блокирует вывод данных с фиксированной точкой.
Блоки сравнения с константой реализуют две части выражения If, которое используется в блоке If в версии модели с плавающей запятой. (u1 > 0) и (u2 > 0.5). OR работа, (u1|u2), все еще может быть реализован внутри блока If. Для модели с фиксированной точкой выражение должно быть частично реализовано вне блока If, как в этой модели.
Параметры блока и моделирования для модели с фиксированной точкой те же, что и для модели с плавающей точкой, со следующими исключениями и дополнениями:
Блок | Параметр | Настройка |
|---|---|---|
Сравнить с константой | Оператор |
|
Постоянное значение |
| |
Режим типа выходных данных |
| |
Включить обнаружение пересечения нулей | прочь | |
Сравнить с Constant1 | Оператор |
|
Постоянное значение |
| |
Режим типа выходных данных |
| |
Включить обнаружение пересечения нулей | прочь | |
Если | Количество входов |
|
Если выражение |
|
Типы данных |
|
Прямой проход |
|
Многомерные сигналы |
|
Сигналы переменного размера |
|
Обнаружение пересечения нулей |
|
[a] Фактический тип данных или поддержка возможностей зависит от реализации блока. | |