Main Content

Utilizzo di sottosistemi abilitati

Un sottosistema abilitato è un sottosistema eseguito in modo condizionato che viene eseguito una volta a ciascun passo temporale principale, mentre il segnale di controllo ha un valore positivo. Se il segnale attraversa lo zero durante un passo temporale minore, il sottosistema non viene abilitato o disabilitato fino al passo temporale maggiore successivo.

Il segnale di controllo può essere scalare o vettoriale.

  • Se un valore scalare è maggiore di zero, il sottosistema viene eseguito.

  • Se uno qualsiasi dei valori degli elementi del vettore è maggiore di zero, il sottosistema viene eseguito.

Creazione di un sottosistema abilitato

Per creare un sottosistema abilitato:

  1. Aggiungere un blocco Enabled Subsystem al modello.

    • Copiare un blocco dalla libreria Porte e sottosistemi di Simulink® nel modello.

    • Fare clic sul diagramma del modello, iniziare a digitare enabled, quindi selezionare Enabled Subsystem.

  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. Specificare come vengono gestiti gli stati del sottosistema quando il sottosistema è abilitato.

    Aprire il blocco subsystem, quindi aprire la finestra di dialogo dei parametri del blocco della porta Enable. Dall'elenco a discesa States when enabling, selezionare:

    • held: gli stati conservano i valori più recenti.

    • reset: se il sottosistema è disabilitato per almeno un passo temporale, gli stati tornano alle condizioni iniziali.

      Nota

      Se il sottosistema contiene un grafico Stateflow® che contiene un blocco Simulink Function, i blocchi all'interno del blocco Simulink Function non tornano alle condizioni iniziali. Per una funzionalità di re-inizializzazione più generica, si può considerare di utilizzare il blocco Reinitialize Function.

      In modalità di inizializzazione semplificata (impostazione predefinita), il tempo impiegato dal sottosistema viene sempre ripristinato durante la prima esecuzione dopo essere stato abilitato. Questo ripristino avviene indipendentemente dal fatto che il sottosistema sia configurato per ripristinarsi al momento dell'abilitazione. Vedere Underspecified initialization detection.

    Per i sottosistemi annidati i cui blocchi Enable hanno impostazioni dei parametri diverse, le impostazioni del sottosistema figlio sovrascrivono quelle ereditate dal sottosistema padre.

  4. Generare il segnale di controllo dal blocco Enable.

    Nella finestra di dialogo dei parametri del blocco Enable, selezionare la casella di spunta Show output port.

    La selezione di questo parametro consente di passare il segnale di controllo nel sottosistema abilitato. È possibile utilizzare questo segnale con un algoritmo che dipende dal valore del segnale di controllo.

Blocchi nei sottosistemi abilitati

Blocchi discreti

I blocchi discreti di un sottosistema abilitato vengono eseguiti solo quando il sottosistema viene eseguito e solo quando i loro tempi di campionamento sono sincronizzati con il tempo di campionamento della simulazione.

Si consideri questo modello che contiene quattro blocchi discreti e un segnale di controllo. I blocchi discreti sono:

  • Blocco A, con tempo di campionamento di 0,25 secondi

  • Blocco B, con tempo di campionamento di 0,5 secondi

Il segnale E è il segnale di controllo di abilitazione generato da un Pulse Generator con un tempo di campionamento di 0,125. Il suo output modifica il valore da 0 a 1 a 0,375 secondi e ritorna a 0 a 0,875 secondi.

I blocchi discreti del sottosistema abilitato sono:

  • Blocco C, all'interno del sottosistema abilitato, con tempo di campionamento di 0,125 secondi

  • Blocco D, sempre all'interno del sottosistema abilitato, con tempo di campionamento di 0,25 secondi

I blocchi discreti vengono eseguiti nei tempi di campionamento indicati.

I blocchi A e B vengono eseguiti indipendentemente dal segnale di controllo di abilitazione in quanto non fanno parte del sottosistema abilitato. Quando il segnale di controllo di abilitazione diventa positivo, i blocchi C e D vengono eseguiti alle rispettive velocità di campionamento assegnate fino a quando il segnale di controllo di abilitazione non torna a zero. Il blocco C non viene eseguito a 0,875 secondi quando il segnale di controllo di abilitazione passa a zero.

Blocchi Goto

I sottosistemi abilitati possono contenere blocchi Goto. Tuttavia, solo le porte di output dei blocchi con stato possono collegarsi ai blocchi Goto. Per un esempio di utilizzo dei blocchi Goto in un sottosistema abilitato, vedere il sottosistema Locked nel modello sldemo_clutch.

Esecuzione alternata dei blocchi Enabled Subsystem

È possibile utilizzare i sottosistemi condizionali con i blocchi Merge per creare insiemi di sottosistemi che vengono eseguiti alternativamente, a seconda dello stato corrente del modello.

Si consideri un modello che utilizza due blocchi Enabled Subsystem e un blocco Merge per modellare un raddrizzatore a onda intera, ossia un dispositivo che converte la corrente alternata in corrente continua pulsante.

Aprire il modello dell'esempio ex_alternately_executing_model.

Aprire il sottosistema denominato pos.

Questo sottosistema è abilitato quando la forma d'onda CA è positiva e passa la forma d'onda invariata all'output.

Aprire il sottosistema denominato neg.

Questo sottosistema è abilitato quando la forma d'onda è negativa e inverte la forma d'onda.

Il blocco Merge passa l'output del sottosistema attualmente abilitato e la forma d'onda originale al blocco Scope.

Simulare il modello. Quindi, aprire il blocco Scope.

Esempi del modello

Per degli esempi del modello, vedere:

Vedi anche

| | |

Argomenti complementari