Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

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.

Model uses a Triggered Subsystem that executes each time it receives a positive trigger signal at its Trigger port.

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:

  1. 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.

    Add a Triggered Subsystem block to your model.

  2. Impostare i valori iniziali e disabilitati per i blocchi Outport. Vedere Conditional Subsystem Initial Output Values e Conditional Subsystem Output Values When Disabled.

  3. 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.

    Triggered Subsystem blocks with different trigger symbols for different types of trigger signals.

  4. 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.

  5. Dall'elenco a discesa Output data type, selezionare auto, int8 o double.

    L'opzione auto determina che il tipo di dati del segnale di output sia il tipo di dati (int8 o double) 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

| | |

Argomenti