Utilizzare l'attività Convert Model Rate (Converti velocità del modello) nel Live Editor per convertire un modello a tempo continuo in un modello a tempo discreto in modo interattivo. Sperimentate diversi metodi, opzioni e grafici di risposta. L'attività genera automaticamente il codice che rispecchia le selezioni effettuate. Aprire questo esempio per vedere uno script preconfigurato nel quale è presente l'attività Convert Model Rate (Converti velocità del modello).
Creare un modello di una funzione di trasferimento a tempo continuo.
Per discretizzare questo modello, aprire l'attività Convert Model Rate (Converti velocità del modello) nel Live Editor. Nella scheda Live Editor, selezionare Task > Convert Model Rate (Attività > Converti velocità del modello). Nell'attività, selezionare G come modello da convertire.
L'attività discretizza automaticamente il modello utilizzando il tempo di campionamento predefinito 0,2 s e il metodo di conversione predefinito Zero-order hold. Crea inoltre un grafico di Bode che consente di confrontare le risposte dei modelli originali e di quelli convertiti.
La linea verticale sul grafico mostra la frequenza di Nyquist associata al tempo di campionamento predefinito. Si ipotizzi di voler utilizzare un tempo di campionamento di 0,15 secondi. Modificare il tempo di campionamento inserendo il nuovo valore nel campo Sample Time (Tempo di campionamento). Il grafico della risposta si aggiorna automaticamente per rispecchiare il nuovo tempo di campionamento.
Se la dinamica precisa della risonanza è importante per l'applicazione, è possibile migliorare la corrispondenza nel dominio della frequenza utilizzando un metodo di conversione diverso. Nell'attività, provare a sperimentare diversi metodi e osservare il loro effetto sul grafico delle risposte.
Il metodo di Tustin può produrre una migliore corrispondenza nel dominio della frequenza rispetto al metodo di mantenimento di ordine zero predefinito. (Vedere Continuous-Discrete Conversion Methods.) In Select Conversion Method (Seleziona il metodo di conversione), selezionare Bilinear (Tustin) approximation. Inizialmente, la corrispondenza nel dominio della frequenza risultante è meno soddisfacente di quella ottenuta con il metodo di mantenimento di ordine zero.
È possibile migliorare la corrispondenza utilizzando una frequenza di predistorsione. Questa opzione forza la risposta a tempo discreto a corrispondere alla frequenza specificata. La risonanza di G ha un picco a circa 14 rad/s. Inserire tale valore come frequenza di predistorsione. La corrispondenza migliora intorno alla risonanza. Tuttavia, la risonanza è molto vicina alla frequenza di Nyquist per il tempo di campionamento di 0,15 s, che limita quindi l'approssimazione della corrispondenza.
L'attività Convert Model Rate (Converti velocità del modello) può generare altri tipi di grafici di risposta. Ad esempio, per confrontare le risposte nel dominio del tempo del modello originale e di quello convertito, in Output Plot (Grafico di output), selezionare step o impulse.
L'attività genera il codice nello script live. Il codice generato rispecchia i parametri e le opzioni selezionate e include il codice per generare il grafico di risposta specificato. Per vedere il codice generato, fare clic su
Show code (Mostra codice) nella parte inferiore dell'area dei parametri dell'attività. L'attività si espande per visualizzare il codice generato.
Per impostazione predefinita, il codice generato utilizza sysConverted come nome della variabile di output, che è il modello convertito. Per specificare un nome diverso per la variabile di output, inserire il nuovo nome nella riga di riepilogo all'inizio dell'attività. Ad esempio, modificare il nome in sys_d.
L'attività aggiorna il codice generato per rispecchiare il nuovo nome della variabile e il nuovo modello convertito sys_d compare nel workspace di MATLAB. Il modello può essere utilizzato per ulteriori analisi o per la progettazione di controllo, come si farebbe con qualsiasi altro oggetto del modello. Ad esempio, simulare la risposta del sistema convertito a un input a onda quadra. Utilizzare il tempo di campionamento specificato nell'attività.
[u,t] = gensig('square',4,10,0.15);
lsim(sys_d,u,t)