after
Eseguire il grafico dopo la trasmissione dell'evento o dopo un tempo specificato
Descrizione
after( restituisce n,E)true se l'evento E si è verificato almeno n volte da quando lo stato associato è diventato attivo. Altrimenti, l'operatore restituisce false.
after( restituisce n,tick)true se il grafico si è attivato almeno n volte da quando lo stato associato è diventato attivo. Altrimenti, l'operatore restituisce false.
L'evento implicito tick non è supportato quando un grafico Stateflow® in un modello di Simulink® presenta eventi di input.
after( restituisce n,time_unit)true se sono trascorse almeno n unità di tempo da quando lo stato associato è diventato attivo. Altrimenti, l'operatore restituisce false.
Nei grafici in un modello di Simulink, specificare time_unit in secondi (sec), millisecondi (msec) o microsecondi (usec). Se si specifica n come espressione, il grafico regola il ritardo temporale al variare del valore dell'espressione durante la simulazione.
Nei grafici autonomi in MATLAB®, specificare n con un valore maggiore o uguale a 0.001 e time_unit come secondi (sec). L'operatore crea un oggetto MATLAB timer che genera un evento implicito per attivare il grafico. Gli oggetti MATLAB timer sono caratterizzati da una precisione limitata a 1 millisecondo. Per ulteriori informazioni, vedere Events in Standalone Charts.
L'oggetto
timerviene creato quando il grafico termina l'esecuzione delle azionientrydello stato associato e dei relativi stati secondari. Se si specificancome un'espressione il cui valore cambia durante l'esecuzione del grafico, il grafico non regola il ritardo temporale dell'oggettotimer.L'oggetto
timerinizia l'esecuzione alla fine del passo del grafico quando lo stato associato diventa attivo. Tale passo può includere l'esecuzione di altri stati paralleli nel grafico.Se il grafico sta elaborando un'altra operazione quando riceve l'evento implicito dall'oggetto
timer, il grafico mette in coda l'evento. Il grafico elabora l'evento quando il passo corrente è completato.Se lo stato associato all'operatore logico temporale diventa inattivo prima che il grafico elabori l'evento implicito, l'evento non attiva il grafico.
Esempi
Suggerimenti
È possibile utilizzare le virgolette per racchiudere le parole chiave
'tick','sec','msec'e'usec'. Ad esempio,after(5,'tick')equivale aafter(5,tick).Il grafico Stateflow azzera il contatore utilizzato dall'operatore
afterogni volta che lo stato associato si riattiva.La tempistica degli operatori logici temporali a tempo assoluto dipende dal tipo di grafico Stateflow:
I grafici in un modello di Simulink definiscono la logica temporale a tempo assoluto in termini di tempo di simulazione.
I grafici autonomi in MATLAB definiscono la logica temporale a tempo assoluto in termini di wall time, la cui precisione è limitata a 1 millisecondo.
La differenza di tempistica può influire sul comportamento di un grafico. Ad esempio, si supponga che questo grafico stia eseguendo l'azione
duringdello statoA.
In un modello di Simulink, la chiamata di funzione a
fviene eseguita in un singolo passo temporale e non contribuisce al tempo di simulazione. La transizione dallo statoAallo statoBsi verifica la prima volta che il grafico si attiva e lo statoAè attivo da almeno 2 secondi. Il valore visualizzato dall'azioneentrynello statoBdipende solo dalla grandezza del passo utilizzata dal risolutore di Simulink.In un grafico autonomo, la chiamata di funzione
fpuò richiedere diversi secondi di wall time per essere completata. Se la chiamata dura più di due secondi, il grafico mette in coda l'evento implicito associato all'operatoreafter. La transizione dallo statoAallo statoBsi verifica quando la funzioneftermina l'esecuzione. Il valore visualizzato dall'azioneentrynello statoBdipende da quanto tempo impiega ad essere completata la chiamata di funzione af.
Cronologia versioni
Introdotto in R2014b




