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 oppure quando passa da un valore negativo a un valore zero.falling
: attivare l'esecuzione del sottosistema quando il segnale di controllo passa da un valore positivo o zero a un valore negativo oppure quando passa da un valore positivo a un valore zero.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, si verifica un'attivazione quando il segnale di controllo presenta una differenza di più di un passo temporale tra due aumenti o due diminuzioni del valore del segnale.
Due aumenti del valore del segnale si verificano quando il segnale di controllo passa da negativo a zero, seguito da un aumento del valore del segnale da zero a positivo.
Due diminuzioni del valore del segnale si verificano quando il segnale di controllo passa da positivo a zero, seguito da una diminuzione del valore del segnale da zero a negativo.
Per i valori dei segnali crescenti, considerare quanto segue:
A t = 1 s, il valore del segnale aumenta da -1 a 0 e a t = 2 s il valore del segnale aumenta da 0 a 1. Il sottosistema si attiva solo a t = 1 s e non si attiva a t = 2 s poiché i due valori crescenti del segnale non sono separati da più di un passo temporale.
A t = 4 s, il valore del segnale aumenta da 0 a 1 e il sottosistema viene attivato perché più di un passo temporale separa l'aumento del valore del segnale a t = 4 s dal precedente aumento del valore del segnale a t = 2 s.
In modo analogo, per i valori dei segnali decrescenti, considerare il diagramma seguente:
A t = 1 s, il valore del segnale scende da 1 a 0 e a t = 2 s il valore del segnale scende da 0 a -1. Il sottosistema si attiva solo a t = 1 s e non si attiva a t = 2 s poiché i due valori decrescenti del segnale non sono separati da più di un passo temporale.
A t = 4 s, il valore del segnale diminuisce da 0 a -1 e il sottosistema viene attivato perché più di un passo temporale separa la diminuzione del valore del segnale a t = 4 s dalla precedente diminuzione del valore del segnale a t = 2 s.
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