Implementar lógica if-else en modelos de Simulink
R2026bEn este ejemplo se muestra cómo implementar lógica if-else en modelos de Simulink®. Para implementar la lógica if-else, utilice una combinación de bloques If y If Action Subsystem. El bloque If evalúa las condiciones lógicas y el correspondiente subsistema If Action se ejecuta según el resultado de la evaluación. En el modelo sldemo_ifsub, se ejecuta un conjunto de operaciones aritméticas en una onda sinusoidal. Las condiciones lógicas definidas con la onda de impulso determinan la operación específica que se ejecuta en cada momento.
Abra el modelo.

Condiciones if-else
El bloque If implementa las condiciones if-else. Estas condiciones comparan el valor de la señal de una onda de impulso con cero y envían señales de acción a los bloques If Action Subsystem. Un bloque Pulse Generator genera la señal de impulso.
Operaciones aritméticas
Si la señal de impulso es positiva, según lo especificado por la condición if, entonces se activa el If Action Subsystem denominado Abs, que genera como salida el valor absoluto de la señal de entrada de onda sinusoidal.

Si el valor de la señal de impulso es cero, según lo indicado por la condición else, el If Action Subsystem denominado Saturation se activa. El subsistema pasa la onda sinusoidal como está o la recorta cuando el valor de la onda sinusoidal supere los límites de saturación especificados en el bloque Saturation.

Las salidas de los dos subsistemas nunca están activas al mismo tiempo y se fusionan en una señal con un bloque Merge. A continuación, la señal de salida se sesga en +2.
Simulación y resultados
El scope muestra la señal de onda sinusoidal de entrada, la señal de impulso y la señal de salida. Cuando el impulso está activado (indicado por un valor de 1), la salida es el valor absoluto de la onda sinusoidal. Cuando el impulso está desactivado (valor 0), el subsistema genera la onda sinusoidal como está o la recorta cuando el valor de la onda sinusoidal supere los límites especificados en el bloque Saturation. En ambos casos, la salida está sesgada en +2.

Consulte también
If | If Action Subsystem | Pulse Generator | Merge | Bias