Подсистема, выполнение которой включено Если блок
Simulink / Ports & Subsystems
Блок If Action Subsystem является блоком Subsystem, предварительно сконфигурированным как начальная точка для создания подсистемы, выполнением которой управляет блок If. Если блок выполняет логическое выражение и затем, в зависимости от результата оценки, выводит сигнал действия.
Simulink игнорирует приоритетный набор на блоке If Action Subsystem. Вместо этого установите приоритет на блоке If, который инициирует выполнение подсистемы.
В этом примере показано, как объединить сигналы, которыми управляют Если блок. Если блок выбирает выполнение Если блок Subsystem Действия от набора подсистем. Независимо от которой подсистемы, Если блок выбирает, можно создать один сигнал с блоком Merge. Open model
.
Все блоки в, Если блок Subsystem Действия должен выполниться на том же уровне как управление Если блок. Можно удовлетворить этому требованию путем установки параметра шага расчета для каждого блока или к наследованному (-1) или к то же значение как Если шаг расчета блока.
Блок If непосредственно не поддерживает типы данных с фиксированной точкой. Однако можно использовать блок Compare To Constant, чтобы работать вокруг этого ограничения.
Рассмотрите следующую модель с плавающей точкой без типов данных с фиксированной точкой:
В этой модели блоки If Action Subsystem используют свои настройки по умолчанию. Параметры симуляции устанавливаются на свои значения по умолчанию за исключением параметров, перечисленных в следующей таблице.
Панель параметра конфигурации | Параметр | Установка |
---|---|---|
Решатель | Время начала | 0.0 |
Время остановки | 1.0 | |
Ввод |
| |
Решатель |
| |
Размер фиксированного шага | 0.1 |
Параметры блоков установлены в свои значения по умолчанию за исключением параметров, перечисленных в следующей таблице.
Блок | Параметр | Установка |
---|---|---|
Повторение ступеньки последовательности | Вектор выходных значений | [-2 -1 1 2].' |
Повторение последовательности Stair1 | Вектор выходных значений | [0 0 0 0 1 1 1 1].' |
Если | Количество входных параметров | 2 |
Если выражение |
| |
Еще покажите условие | Выбранный | |
Постоянный | Постоянное значение | -4 |
Constant1 | Постоянное значение | 4 |
Осциллограф | Количество осей | 3 |
Временной диапазон | 1 |
Для этой модели, когда вход u1
больше 0
или вход u2
больше 0.5
, выходом является 4
. В противном случае выходом является -4
. Блок Scope отображает вывод от блока Merge с входными параметрами u1
, и u2
.
Можно реализовать эту блок-схему как модель с типами данных с фиксированной точкой:
Repeating Sequence Stair блокирует выходные типы данных с фиксированной точкой.
Блоки Compare To Constant реализуют две части, Если выражение, которое используется в блоке If в версии с плавающей точкой модели, (u1 > 0)
и (u2 > 0.5)
. OR
операция, (u1|u2)
, может все еще быть реализован в блоке If. Для модели фиксированной точки выражение должно быть частично реализовано за пределами блока If, как это находится в этой модели.
Блок и параметры симуляции для модели фиксированной точки эквивалентны для модели с плавающей точкой за следующими исключениями и сложениями:
Блок | Параметр | Установка |
---|---|---|
Сравните с постоянным | Оператор |
|
Постоянное значение | 0 | |
Выходные данные вводят режим |
| |
Включите обнаружение пересечения нулем | 'off' | |
Сравните с Constant1 | Оператор |
|
Постоянное значение | 0.5 | |
Выходные данные вводят режим |
| |
Включите обнаружение пересечения нулем | 'off' | |
Если | Количество входных параметров | 2 |
Если выражение |
|