Utilizzo dei sottosistemi attivati
Un sottosistema attivato è un sottosistema atomico ad esecuzione condizionata che viene eseguito ogni volta che il segnale di controllo (segnale di attivazione):
O passa da un valore negativo a un valore positivo o a zero, o passa da un valore zero a un valore positivo.
O passa da un valore positivo a un valore negativo o a zero, o passa da un valore zero a un valore negativo.
Aumenta o diminuisce fino a un valore pari a zero.
A differenza di un blocco Enabled Subsystem, un blocco Triggered Subsystem mantiene sempre i propri output all'ultimo valore tra le attivazioni. Inoltre, i sottosistemi attivati non possono ripristinare gli stati dei blocchi quando vengono eseguiti; gli stati di qualsiasi blocco discreto vengono mantenuti tra le attivazioni.
Creazione di un sottosistema attivato
Per creare un sottosistema attivato:
Aggiungere un blocco Triggered Subsystem al modello.
Copiare un blocco dalla libreria Porte e sottosistemi di Simulink® nel modello.
Fare clic sul diagramma del modello, iniziare a digitare
trigger
, quindi selezionare Triggered Subsystem.
Impostare i valori iniziali e disabilitati per i blocchi Outport. Vedere Conditional Subsystem Initial Output Values e Conditional Subsystem Output Values When Disabled.
Imposta il modo in cui il segnale di controllo attiva l'esecuzione.
Aprire il blocco subsystem, quindi aprire la finestra di dialogo dei parametri del blocco della porta Trigger. Dall'elenco a discesa Trigger type, selezionare:
rising
: attivare l'esecuzione del sottosistema quando il segnale di controllo passa da un valore negativo o zero a un valore positivo.falling
: attivare l'esecuzione del sottosistema quando il segnale di controllo passa da un valore positivo o zero a un valore negativo.either
: attivare l'esecuzione del sottosistema con un segnale di controllo ascendente o discendente.
Appaiono diversi simboli nei blocchi Trigger e Subsystem ad indicare le attivazioni ascendenti o discendenti.
Generare il segnale di controllo di abilitazione dal blocco della porta Trigger. Aprire il blocco della porta Trigger. Selezionare la casella Show output port per passare il segnale di controllo nel sottosistema attivato.
È possibile utilizzare questo segnale con un algoritmo che dipende dal valore del segnale di controllo.
Dall'elenco a discesa Output data type, selezionare
auto
,int8
odouble
.L'opzione
auto
determina che il tipo di dati del segnale di output sia il tipo di dati (int8
odouble
) della porta del blocco collegata al segnale.
Attivazione con sistemi a tempo discreto
Per un sistema a tempo discreto, il segnale di controllo di attivazione deve rimanere a zero per più di un passo temporale. Questa strategia di attivazione elimina le false attivazioni causate dal campionamento del segnale di controllo.
Nel seguente diagramma di temporizzazione per un sistema discreto, un segnale di attivazione ascendente (R) non si verifica al passo temporale 3. Il segnale di attivazione rimane a zero per un solo passo temporale prima che il segnale si incrementi da zero.
Modello attivato rispetto a un sottosistema attivato
Per semplificare la progettazione del modello, è possibile inserire un blocco della porta Trigger in un blocco Model (modello di riferimento) invece di utilizzare uno di questi blocchi:
Un blocco Triggered Subsystem in un blocco Model.
Un blocco Model in un blocco Triggered Subsystem.
Per informazioni sull'utilizzo dei blocchi della porta Trigger nei modelli di riferimento, vedere Conditionally Execute Referenced Models.
Per convertire un sottosistema in un modello di riferimento, vedere Convert Subsystems to Referenced Models.
Blocchi in un sottosistema attivato
Tutti i blocchi di un sottosistema attivato devono avere Sample time impostato su ereditato (-1
) o costante (inf
). Questo requisito consente ai blocchi di un sottosistema attivato di essere eseguiti solo quando il sottosistema attivato stesso è in esecuzione. Questo requisito indica anche che un sottosistema attivato non può contenere blocchi continui, come un blocco Integrator.
Esempi del modello
Per degli esempi del modello, vedere:
Vedi anche
Enabled Subsystem | Triggered Subsystem | Enabled and Triggered Subsystem | Function-Call Subsystem