Документация Engee

If

Выбор подсистемы по условию if-else.

Тип: If

Путь в библиотеке:

/Basic/Ports & Subsystems/If

Описание

Блок If реализует логику if-else для управления выполнением подсистемы.

Ограничения

Блок If имеет следующие ограничения:

  • Блок не поддерживает настраиваемые на лету параметры. Значения для параметров If expression (e.g., u1 ~= 0) и Elseif expressions (comma-separated list, e.g., u2 ~= 0, u3(2) < u2) нельзя настраивать во время моделирования в обычном режиме или режиме ускорителя, а также при выполнении сгенерированного кода.

  • Чтобы реализовать настраиваемые на лету выражения if-else, настраивайте выражение вне блока If. Например, используйте блок Relational Operator для оценки выражения вне блока If или добавьте настраиваемый параметр в качестве входа в блок If.

Порты

Вход

# u — входные сигналы для оценки логических выражений
скаляр

Details

Входы u1,u2,…​,un должны иметь одинаковый тип данных.

Блок If не поддерживает булев тип данных.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, UInt128

Поддержка комплексных чисел

Нет

Выход

# if — сигнал действия для условия if
скаляр

Details

Cигнал действия для условия if последующих блоков.

Типы данных

Bool

Поддержка комплексных чисел

Нет

# else — сигнал действия для условия else
скаляр

Details

Cигнал действия для условия else последующих блоков.

Зависимости

Чтобы использовать этот порт, установите флажок Show else condition

Типы данных

Bool

Поддержка комплексных чисел

Нет

Параметры

Основные

# Number of inputs — количество входных портов
Int64 integer

Details

Количество портов ввода. Порты блока маркируются u1, u2,…​, un, где n равно количеству указанных входов.

Значение по умолчанию

1

Имя для программного использования

NumInputs

Настраиваемый

Нет

Вычисляемый

Да

# If expression (e.g., u1 ~= 0) — логическое выражение if
String

Details

Блоки, подключенные к порту if, выполняются, когда связанное с портом выражение принимает значение true (1):

  • u1 > 0 — отправка сигнала действия на выходной порт, если входное значение на порту u1 больше 0.

  • <логическое выражение> — логическое выражение. Это выражение отображается на значке блока рядом с выходным портом if.

Значение по умолчанию

u1 > 0

Имя для программного использования

IfExpression

Настраиваемый

Нет

Вычисляемый

Нет

# Elseif expressions (comma-separated list, e.g., u2 ~= 0, u3(2) < u2) — логическое выражение elseif
String

Details

Блоки, подключенные к порту elseif, выполняются, если связанное с портом выражение принимает значение true (1), а все выражения if и elsefalse (0):

  • по умолчанию логические выражения не указаны и порт elseif скрыт.

  • <список логических выражений> — список логических выражений, разделенных запятыми. Эти выражения отображаются на значке блока рядом с выходным портом elseif.

Значение по умолчанию

Имя для программного использования

ElseIfExpressions

Настраиваемый

Нет

Вычисляемый

Нет

# Show else condition — управление отображением порта else
Logical

Details

Если выражение на порту if и все выражения на порту elseif ложны, то порт else посылает сигнал для выполнения подключенных блоковю

  • Если этот флажок установлен, то порт else отображается на значке блока.

  • Если этот флажок снят, то порт else скрыт.

Значение по умолчанию

true (включено)

Имя для программного использования

ShowElse

Настраиваемый

Нет

Вычисляемый

Нет

# Enable zero-crossing detection — опция пересечения нуля

Details

Установите этот флажок, чтобы включить обнаружение пересечения нуля.

Значение по умолчанию

true (включено)

Имя для программного использования

ZeroCross

Настраиваемый

Нет

Вычисляемый

Нет

Дополнительные возможности

Генерация Си кода: Да