Main Content

If

Selezionare l'esecuzione del sottosistema utilizzando una logica simile alla dichiarazione if-else

  • If block

Librerie:
Simulink / Ports & Subsystems

Descrizione

Il blocco If, insieme ai blocchi If Action Subsystem che contengono un blocco Action Port implementa la logica if-else per controllare l'esecuzione del sottosistema. Per un esempio che utilizza il blocco If, vedere Select Subsystem Execution.

Model ex_if_block

Limitazioni

Il blocco If presenta le seguenti limitazioni:

  • Non supporta parametri sincronizzabili. I valori di un'espressione if o elseif non possono essere sincronizzati durante una simulazione in modalità normale o di accelerazione, né durante l'esecuzione del codice generato.

    Per implementare espressioni if-else sincronizzabili, sincronizzare l'espressione al di fuori del blocco If. Ad esempio, utilizzare il blocco Relational Operator per valutare l'espressione al di fuori del blocco If o aggiungere il parametro sincronizzabile come input al blocco If.

  • Non supporta classi di archiviazione personalizzate. Vedere Organize Parameter Data into a Structure by Using Struct Storage Class (Embedded Coder).

  • If expression e Elseif expressions non possono accettare determinati operatori, come +, -, * e /.

Porte

Input

espandi tutto

Gli input u1,u2,...,un devono avere lo stesso tipo di dati. Gli input non possono essere di un tipo definito dall'utente, come ad esempio di tipo enumerato.

Il blocco If non supporta direttamente i tipi di dati in virgola fissa. Tuttavia, è possibile utilizzare il blocco Compare To Constant per aggirare questa limitazione. Vedere Supporto del tipo di dati in virgola fissa in Select Subsystem Execution.

Il blocco If non supporta un tipo di dati booleano. Se si desidera inserire un segnale booleano in un blocco If, convertire il segnale in un tipo intero utilizzando il blocco Data Type Conversion.

Tipi di dati: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Output

espandi tutto

Gli output delle porte if, else e elseif sono segnali di azione per i blocchi If Action Subsystem.

Parametri

espandi tutto

1

Specificare una porta di input.

intero

Specificare il numero di porte di input. Le porte del blocco sono etichettate con un carattere 'u' seguito da un numero 1,2,...,n, dove n corrisponde al numero di input specificati dall'utente.

Utilizzo programmatico

Parametro dei blocchi: NumInputs
Tipo: vettore di caratteri
Valori: '1' | '<integer>'
Impostazione predefinita: '1'

If Action Subsystem collegato alla porta if viene eseguito quando l'espressione associata restituisce true.

u1 > 0

Specificare l'invio di un segnale di azione sulla porta di output quando l'input u1 è maggiore di 0.

espressione logica

Specificare l'espressione logica. Questa espressione appare sul blocco If adiacente alla porta di output if.

L'espressione può includere solo gli operatori <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus. Operatori come +, -, *, / e ^ non sono consentiti. L'espressione non deve contenere espressioni del tipo di dati, ad esempio int8(6) e non deve fare riferimento a variabili del workspace il cui tipo di dati sia diverso da double o single.

Utilizzo programmatico

Parametro dei blocchi: IfExpression
Tipo: vettore di caratteri
Valori: 'u1 > 0' | '<logical expression>'
Impostazione predefinita: 'u1 > 0'

If Action Subsystem collegato a una porta elseif viene eseguito quando la relativa espressione restituisce true e tutte le espressioni if e elseif sono false.

vuoto

Espressioni logiche non specificate.

elenco delle espressioni logiche

Specificare un elenco di espressioni logiche delimitate da virgole. Le espressioni appaiono sul blocco If sotto la porta if e sopra la porta else quando si seleziona la casella Show else condition.

Le espressioni possono includere solo gli operatori <, <=, ==, ~=, >, >=, &, |, ~, (), unary-minus. Operatori come +, -, *, / e ^ non sono consentiti. Le espressioni non devono contenere espressioni del tipo di dati, ad esempio int8(6) e non devono fare riferimento a variabili del workspace il cui tipo di dati sia diverso da double o single.

Utilizzo programmatico

Parametro dei blocchi: ElseIfExpressions
Tipo: vettore di caratteri
Valori: '' | '<list of logical expressions>'
Impostazione predefinita: ''

Quando la porta if e tutte le espressioni della porta elseif sono false, la porta else invia un segnale di azione per eseguire il blocco If Action Subsystem collegato.

on

Mostra la porta else.

off

Nasconde la porta else.

Utilizzo programmatico

Parametro dei blocchi: ShowElse
Tipo: vettore di caratteri
Valori: 'on' | 'off'
Impostazione predefinita: 'on'

Controllare il rilevamento dello zero-crossing.

on

Rilevare gli zero-crossing.

off

Non rilevare gli zero-crossing.

Utilizzo programmatico

Parametro dei blocchi: ZeroCross
Tipo: vettore di caratteri
Valori: 'on' | 'off'
Impostazione predefinita: 'on'

Caratteristiche del blocco

Tipi di dati:

Boolean | double | integer | single

Passaggio diretto

Segnali multidimensionali

no

Segnali di dimensioni variabili

no

Rilevamento zero-crossing

Funzionalità estese

Generazione di codice C/C++
Genera codice C e C++ con Simulink® Coder™.

Cronologia versioni

Introduzione prima di R2006a