If

Выберите выполнение подсистемы с помощью логики оператора if-else

  • Библиотека:
  • Simulink / Ports & Subsystems

  • If block

Описание

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

Ограничения

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

  • Это не поддерживает настраиваемые параметры. Значения для if или elseif выражение не может быть настроено во время симуляции в нормальном или режиме Accelerator, или при выполнении сгенерированного кода.

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

  • Это не поддерживает пользовательские классы памяти. Смотрите Организуют Данные о Параметре в Структуру при помощи Класса памяти Struct (Embedded Coder).

  • If expression и Elseif expressions не могут принять определенные операторы, такие как +, -, *, и /.

Порты

Входной параметр

развернуть все

Входные параметры u1,u2,...,un должен иметь совпадающий тип данных. Входные параметры не могут иметь пользовательского типа, такого как перечислимый тип.

Блок If непосредственно не поддерживает типы данных с фиксированной точкой. Однако можно использовать блок Compare To Constant, чтобы работать вокруг этого ограничения. Смотрите Поддержку Типа данных с фиксированной точкой в Если Подсистемы Действия.

Блок If не поддерживает булев тип данных. Если вы хотите ввести булев сигнал с блоком If, преобразуйте сигнал в целочисленный тип с помощью блока Data Type Conversion.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Вывод

развернуть все

Выходные параметры от if, else, и elseif порты являются сигналами действия с блоками If Action Subsystem.

Поддержка типа данных с фиксированной точкой

Параметры

развернуть все

1

Задайте один входной порт.

целое число

Задайте количество входных портов. Блокируйтесь порты помечены 'u' символ сопровождается номером, 1,2,...,n, где n равняется количеству входных параметров, которые вы задаете.

Программируемое использование

Параметры блоков: NumInputs
Ввод: символьный вектор
Значения: '1' | '<integer>'
Значение по умолчанию: '1'

If Action Subsystem присоединяется к if порт выполняется, когда его связанное выражение оценивает к истине.

u1 > 0

Задайте отправку сигнала действия на выходном порте когда вход u1 больше 0.

логическое выражение

Задайте логическое выражение. Это выражение появляется на блоке If, смежном с выходным портом if.

Выражение может включать только операторы <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus. Операторы, такие как +, -, *, /, и ^ не позволены. Выражение не должно содержать выражения типа данных, например, int8(6), и не должен ссылаться на переменные рабочей области, тип данных которых отличается от double или single.

Программируемое использование

Параметры блоков: IfExpression
Ввод: символьный вектор
Значения: 'u1 > 0' | '<logical expression>'
Значение по умолчанию: 'u1 > 0'

If Action Subsystem, присоединенный к порту elseif, выполняется, когда его выражение оценивает к true и весь if и elseif выражения являются ложными.

пустой

Логические выражения, не заданные.

список логических выражений

Задайте список логических выражений, разграниченных запятыми. Выражения появляются на блоке If ниже порта if и выше порта else, когда вы устанавливаете флажок Show else condition.

Выражения могут включать только операторы <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus. Операторы, такие как +, -, *, /, и ^ не позволены. Выражения не должны содержать выражения типа данных, например, int8(6), и не должен ссылаться на переменные рабочей области, тип данных которых отличается от double или single.

Программируемое использование

Параметры блоков: ElseIfExpressions
Ввод: символьный вектор
Значения: '' | '<list of logical expressions>'
Значение по умолчанию: ''

Когда портом if и всеми выражениями порта elseif является false, порт else отправляет сигнал действия выполнить присоединенный блок If Action Subsystem.

on

Порт Display else.

off

Порт Hide else.

Программируемое использование

Параметры блоков: ShowElse
Ввод: символьный вектор
Значения: 'on' | 'off'
Значение по умолчанию: 'on'

Управляйте обнаружением пересечения нулем.

on

Обнаружьте нулевые пересечения.

off

Не обнаруживайте нулевые пересечения.

Программируемое использование

Параметры блоков: ZeroCross
Ввод: символьный вектор
Значения: 'on' | 'off'
Значение по умолчанию: 'on'

Примеры модели

Характеристики блока

Типы данных

Boolean | double | integer | single

Прямое сквозное соединение

yes

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулем

yes

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Смотрите также

Блоки

Представлено до R2006a