If

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

  • Библиотека:
  • Simulink/Порты и подсистемы

  • If block

Описание

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

Ограничения

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

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

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

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

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

Порты

Вход

расширить все

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

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

Блок 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 port выполняется, когда связанное с ним выражение вычисляется как true.

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 выражения false.

пустой

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

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

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

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

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

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

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

на

Отобразите else порт.

прочь

Скрыть else порт.

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

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

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

на

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

прочь

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

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

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

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

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

Типы данных

Boolean | double | integer | single

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

yes

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

no

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

no

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

yes

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

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

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