Usar Triggered Subsystems
Un subsistema activado es un subsistema atómico ejecutado de forma condicional que se ejecuta cada vez que la señal de control (señal de activación):
Bien aumenta de un valor negativo a un valor positivo o a cero, o aumenta de un valor cero a un valor positivo.
Bien disminuye de un valor positivo a un valor negativo o a cero, o disminuye de un valor cero a un valor negativo.
Aumenta o disminuye por o hasta un valor cero.
A diferencia del bloque Enabled Subsystem, un bloque Triggered Subsystem siempre mantiene sus salidas en el último valor entre activaciones. Además, los subsistemas activados no pueden reiniciar los estados de los bloques cuando se ejecutan. Los estados de cualquier bloque discreto se mantienen entre activaciones.
Crear un Triggered Subsystem
Para crear un subsistema activado:
Añada un bloque Triggered Subsystem al modelo.
Copie un bloque de la biblioteca Ports & Subsystems de Simulink® al modelo.
Haga clic en el diagrama del modelo, comience a escribir
trigger
y, luego, seleccione Triggered Subsystem.
Establezca el valor inicial y el valor de desactivación de los bloques Outport. Consulte Conditional Subsystem Initial Output Values y Conditional Subsystem Output Values When Disabled.
Establezca cómo la señal de control activa la ejecución.
Abra el bloque Subsystem y, luego, abra el cuadro de diálogo del parámetro para el bloque de puerto Trigger. En la lista desplegable Trigger type, seleccione:
rising
: activa la ejecución del subsistema cuando la señal de control aumenta de un valor negativo o cero a un valor positivo, o de un valor negativo a un valor cero.falling
: activa la ejecución del subsistema cuando la señal de control disminuye de un valor positivo o cero a un valor negativo, o de un valor positivo a un valor cero.either
: activa la ejecución del subsistema con una señal de control tanto ascendente como descendente.
Aparecen diferentes símbolos en los bloques Trigger y Subsystem para indicar la activación ascendente y la activación descendente.
Obtenga como salida la señal de control de habilitación del bloque de puerto Trigger. Abra el bloque de puerto Trigger. Seleccione la casilla Show output port para pasar la señal de control al subsistema activado.
Puede usar esta señal con un algoritmo que dependa del valor de la señal de control.
En la lista desplegable Output data type, seleccione
auto
,int8
odouble
.La opción
auto
provoca que el tipo de datos de la señal de salida sea el tipo de datos (o bienint8
o biendouble
) del puerto del bloque conectado a la señal.
Activación con sistemas de tiempo discreto
En un sistema de tiempo discreto, se produce una activación cuando la señal de control tiene más de una unidad de tiempo de diferencia entre dos aumentos o dos disminuciones en el valor de la señal.
Se dan dos aumentos en el valor de la señal cuando la señal de control aumenta de un valor negativo a un valor cero seguido de un aumento en el valor de la señal de un valor cero a un valor positivo.
Se dan dos disminuciones en el valor de la señal cuando la señal de control disminuye de un valor positivo a un valor cero seguido de una disminución en el valor de la señal de un valor cero a un valor negativo.
Tenga en cuenta lo siguiente en relación con valores de señal ascendente:
En la unidad de tiempo t=1 s, el valor de la señal aumenta de -1 a 0, y en la unidad de tiempo t=2 s, el valor de la señal aumenta de 0 a 1. El subsistema solo se activa en la unidad de tiempo t=1 s y no en la unidad de tiempo t=2 s porque los dos valores de la señal ascendente no están separados por más de una unidad de tiempo.
En la unidad de tiempo t=4 s, el valor de la señal aumenta de 0 a 1 y el subsistema se activa porque más de una unidad de tiempo separan el valor de la señal ascendente en la unidad de tiempo t=4 s y el valor de la señal ascendente anterior en la unidad de tiempo t=2 s.
De forma similar, en lo que respecta a los valores de la señal descendente, en el diagrama siguiente:
En la unidad de tiempo t=1 s, el valor de la señal disminuye de 1 a 0, y en la unidad de tiempo t=2 s, el valor de la señal disminuye de 0 a -1. El subsistema solo se activa en la unidad de tiempo t=1 s y no en la unidad de tiempo t=2 s porque los dos valores de la señal descendente no están separados por más de una unidad de tiempo.
En la unidad de tiempo t=4 s, el valor de la señal disminuye de 0 a -1 y el subsistema se activa porque más de una unidad de tiempo separan el valor de la señal descendente en la unidad de tiempo t=4 s y el valor de la señal descendente anterior a la unidad de tiempo t=2 s.
Modelo activado en comparación con Triggered Subsystem
Puede colocar un bloque de puerto Trigger en un bloque Model (modelo referenciado) para simplificar el diseño del modelo en lugar de usar uno de estos bloques:
Un bloque Triggered Subsystem en un bloque Model.
Un bloque Model en un bloque Triggered Subsystem.
Para obtener más información sobre el uso de bloques de puerto Trigger en modelos referenciados, consulte Conditionally Execute Referenced Models.
Para convertir un subsistema para usar referencias de modelos, consulte Convert Subsystems to Referenced Models.
Bloques en un Triggered Subsystem
Todos los bloques en un subsistema activado deben tener Sample time establecido en heredado (-1
) o constante (inf
). Este requisito permite a los bloques de un subsistema activado ejecutarse solo cuando el subsistema activado se está ejecutando. Este requisito también significa que un subsistema activado no puede contener bloques continuos, como un bloque Integrator.
Ejemplos de modelo
Para ver ejemplos de modelo, consulte:
Consulte también
Enabled Subsystem | Triggered Subsystem | Enabled and Triggered Subsystem | Function-Call Subsystem