Main Content

Identificazione di modelli lineari utilizzando l’app System Identification

Introduzione

Obiettivi

Stimare e convalidare modelli lineari da dati a ingresso singolo/uscita singola (SISO) per trovare quello che descrive meglio la dinamica del sistema.

Dopo aver completato questo tutorial, si sarà in grado di eseguire le seguenti attività utilizzando l’app System Identification:

  • Importare array di dati dall’area di lavoro MATLAB® nell’app.

  • Tracciare i dati.

  • Elaborare i dati rimuovendo gli offset dai segnali in ingresso e in uscita.

  • Stimare, convalidare e paragonare modelli lineari.

  • Esportare i modelli nell’area di lavoro MATLAB.

Nota

Il tutorial utilizza i dati nel dominio del tempo per dimostrare come sia possibile stimare i modelli lineari. Lo stesso workflow si applica all’adattamento dei dati nel dominio della frequenza.

Questo tutorial si basa sull’esempio nella sezione 17.3 del System Identification: Theory for the User, Second Edition, by Lennart Ljung, Prentice Hall PTR, 1999.

Descrizione dei dati

Questo tutorial utilizza il file di dati dryer2.mat, che contiene dati nel dominio del tempo a ingresso singolo/uscita singola (SISO) dal Feedback Process Trainer PT326. Ogni segnale in ingresso e in uscita contiene 1000 campioni di dati.

Questo sistema riscalda l’aria in ingresso utilizzando una rete di resistenza a filo, simile a un asciugacapelli. L’ingresso è costituito dalla potenza fornita ai fili della resistenza e l’uscita è costituita dalla temperatura dell’aria in uscita.

Preparazione dei dati per System Identification

Caricamento dei dati nell’area di lavoro MATLAB

Caricare i dati in dryer2.mat digitando il seguente comando nella finestra di comando MATLAB:

load dryer2

Questo comando carica i dati nell’area di lavoro MATLAB come due vettori in colonna, rispettivamente u2 e y2. La variabile u2 sono i dati in ingresso e y2 sono i dati in uscita.

Apertura dell’app System Identification

Per aprire l’app System Identification digitare il seguente comando nella finestra di comando MATLAB:

systemIdentification

Il nome predefinito della sessione Untitled viene visualizzato nella barra del titolo.

Importazione di array di dati nell’app System Identification

È possibile importare dati a ingresso singolo/uscita singola (SISO) da un file di dati campione dryer2.mat nell’app dall’area di lavoro MATLAB.

È necessario che i dati di campionamento siano già stati caricati in MATLAB, come descritto in Caricamento dei dati nell’area di lavoro MATLAB e che l’app System Identification sia già stata aperta, come descritto in Apertura dell’app System Identification.

Se questi passaggi non sono ancora stati eseguiti, fare clic qui per completarli.

Per importare array di dati nell’app System Identification:

  1. Selezionare Import data > Time domain data. Questa azione apre la finestra di dialogo Importa dati.

  2. Nella finestra di dialogo Importa dati, specificare le seguenti opzioni:

    • Input: immettere u2 come nome della variabile in ingresso.

    • Output: immettere y2 come nome della variabile in uscita.

    • Data name: modificare il nome predefinito in data. Questo nome etichetta i dati nell’app System Identification dopo il completamento dell’operazione di importazione.

    • Starting time: immettere 0 come tempo di inizio. Questo valore designa il valore iniziale dell’asse del tempo nei grafici temporali.

    • Sample Time: immettere 0.08 come tempo in secondi tra campioni successivi. Questo valore è il tempo di campionamento effettivo dell’esperimento.

    La finestra di dialogo Importa dati assomiglia adesso alla figura seguente.

  3. Nell’area Data Information, fare clic su More per espandere la finestra di dialogo e specificare le seguenti opzioni:

    Input Properties

    • Intersample: accetta il zoh (blocco di ordine zero) predefinito ad indicare che il segnale in ingresso tra i campioni era costante a tratti durante l’acquisizione dei dati. Questa impostazione specifica il comportamento dei segnali in ingresso tra i campioni quando si trasformano i modelli risultanti tra rappresentazioni a tempo discreto e a tempo continuo.

    • Period: accetta l’inf predefinita per specificare un ingresso non periodico.

      Nota

      Per un ingresso periodico, immettere il numero intero di periodi del segnale in ingresso nell’esperimento.

    Channel Names

    • Input: immettere power.

      Suggerimento

      Nominare i canali aiuta a identificare i dati nei grafici. Per i segnali in ingresso e in uscita multivariabili, è possibile specificare i nomi dei singoli canali di Input e di Output, separati da virgole.

    • Output: immettere temperature.

    Physical Units of Variables

    • Input: immettere W per le unità di potenza.

      Suggerimento

      Quando si hanno più ingressi e uscite, immettere un elenco di unità di Input e di Output separate da virgole, corrispondenti a ciascun canale.

    • Output: immettere ^oC per le unità di temperatura.

    Notes: immettere commenti sull’esperimento o sui dati. Ad esempio, si potrebbe immettere il nome dell’esperimento, la data e una descrizione delle condizioni sperimentali. Quando si stimano i modelli da questi dati, i modelli ereditano le note immesse.

    La finestra di dialogo espansa Importa dati assomiglia adesso alla figura seguente.

  4. Fare clic su Import per aggiungere i dati all’app System Identification. L’app visualizza un’icona per rappresentare i dati.

  5. Fare clic su Close per chiudere la finestra di dialogo Importa dati.

Plottaggio ed elaborazione dei dati

In questa sezione del tutorial, si valutano ed elaborano i dati per l’identificazione del sistema. Si vedrà come:

  • Tracciare i dati.

  • Rimuovere gli offset dai dati sottraendo i valori medi dell’ingresso e dell’uscita.

  • Dividere i dati in due parti per utilizzare una parte per la stima del modello e l’altra parte per la convalida del modello.

Il motivo per cui si sottraggono i valori medi da ciascun segnale è dovuto al fatto che, usualmente, si costruiscono modelli lineari che descrivono le risposte per le deviazioni da un equilibrio fisico. Con dati allo stato stazionario, è ragionevole presumere che i livelli medi dei segnali corrispondano a tale equilibrio. Pertanto, è possibile cercare modelli intorno allo zero senza modellare i livelli di equilibrio assoluto in unità fisiche.

È necessario che i dati siano già stati importati nell’app System Identification, come descritto in Importazione di array di dati nell’app System Identification.

Se questo passaggio non è ancora stato eseguito, fare clic qui per completarlo.

Per tracciare ed elaborare i dati:

  1. Selezionare la casella di spunta Time plot per aprire il grafico temporale. Se la finestra del grafico è vuota, fare clic sull’icona data nell’app System Identification.

    Gli assi superiori mostrano i dati in uscita (temperatura) e gli assi inferiori mostrano i dati in ingresso (potenza). Sia i valori in ingresso sia i valori in uscita hanno valori medi diversi da zero.

  2. Sottrarre il valore medio in ingresso dai dati in ingresso e il valore medio in uscita dai dati in uscita. Nell’app System Identification, selezionare <--Preprocess > Remove means.

    Questa azione aggiunge un nuovo insieme di dati all’app System Identification con il nome predefinito datad (il suffisso d significa invertire la tendenza) e aggiorna la finestra del Grafico temporale per visualizzare sia i dati originali sia i dati con tendenza invertita. I dati con tendenza invertita hanno un valore medio di zero.

  3. Specificare i dati con tendenza invertita da utilizzare per la stima dei modelli. Trascinare l’insieme di dati datad sul rettangolo Working Data.

    In alternativa, fare clic con il tasto destro del mouse sull’icona datad per aprire la finestra di dialogo Informazioni sui dati/modello.

    Selezionare la casella di spunta Use as Working Data. Fare clic su Apply, quindi su Close. Questa azione aggiunge datad al rettangolo Working Data.

  4. Dividere i dati in due parti e specificare la prima parte per la stima del modello e la seconda parte per la convalida del modello.

    1. Selezionare <--Preprocess > Select range per aprire la finestra Seleziona intervallo.

    2. Nella finestra Seleziona intervallo, creare un insieme di dati contenenti i primi 500 campioni. Nel campo Samples specificare 1 500.

      Suggerimento

      È inoltre possibile selezionare i campioni di dati utilizzando il mouse, facendo clic e trascinando una regione rettangolare sul grafico. Se si selezionano campioni sugli assi del canale in ingresso, anche la regione corrispondente viene selezionata sugli assi del canale in uscita.

    3. Nel campo Data name digitare il nome data_est.

    4. Fare clic su Insert per aggiungere questo nuovo insieme di dati all’app System Identification, da utilizzare per la stima del modello.

    5. Ripetere questo processo per creare un secondo insieme di dati contenente un sottoinsieme dei dati da utilizzare per la convalida. Nella finestra Seleziona intervallo, specificare gli ultimi 500 campioni nel campo Samples. Digitare il nome data_val nel campo Data name. Fare clic su Insert per aggiungere questo nuovo insieme di dati all’app System Identification.

    6. Fare clic su Close per chiudere la finestra Seleziona intervallo.

  5. Nell’app System Identification, trascinare e rilasciare data_est sul rettangolo Working Data e trascinare e rilasciare data_val sul rettangolo Validation Data.

  6. Per ottenere informazioni su un insieme di dati, fare clic con il tasto destro del mouse sulla relativa icona. Ad esempio, fare clic con il tasto destro del mouse su data_est per aprire la finestra di dialogo Informazioni sui dati/modello.

    È inoltre possibile modificare determinati valori nella finestra di dialogo Informazioni sui dati/modello, tra cui:

    • Modificare il nome dell’insieme di dati nel campo Data name.

    • Modificare il colore dell’icona dei dati nel campo Color. I colori vengono specificati utilizzando i valori RGB (quantità relative di rosso, verde e blu). Ogni valore è compreso tra 0 e 1. Ad esempio, [1,0,0] indica che è presente solo il colore rosso e che il verde e il blu non sono mischiati nel colore complessivo.

    • Visualizzare o modificare i comandi eseguiti su questo insieme di dati nell’area Diary and Notes. Quest’area contiene la riga di comando equivalente all’elaborazione eseguita utilizzando l’app System Identification. Ad esempio, come mostrato nella finestra Informazioni sui dati/modello: finestra di stima, l’insieme di dati data_est è un risultato dell’importazione dei dati, dell’inversione di tendenza dei valori medi e della selezione dei primi 500 campioni di dati.

       % Import   data          
       datad = detrend(data,0)  
       data_est = datad([1:500])

      Per ulteriori informazioni su questi e altri comandi della toolbox, vedere le pagine di riferimento corrispondenti.

La finestra di dialogo Informazioni sui dati/modello visualizza inoltre il numero totale di campioni e i nomi e le unità dei canali in uscita e in ingresso. Queste informazioni non sono modificabili.

Suggerimento

Come scorciatoia alternativa, è possibile selezionare Preprocess > Quick start dall’app System Identification per eseguire tutti i passaggi di elaborazione dei dati descritti in questo tutorial.

Per Saperne Di Più.  Per informazioni sulle operazioni di elaborazione dei dati supportate, come il ricampionamento e il filtraggio dei dati, vedere Preprocess Data.

Salvataggio della sessione

Dopo aver elaborato i dati come descritto in Plottaggio ed elaborazione dei dati, è possibile eliminare nella finestra tutti gli insiemi di dati che non sono necessari per la stima e la convalida e salvare la sessione. È possibile aprire questa sessione successivamente e utilizzarla come punto di partenza per la stima e convalida del modello, senza dover ripetere questi passaggi preparatori.

È necessario che i dati siano già stati elaborati nell’app System Identification, come descritto in Plottaggio ed elaborazione dei dati.

Per eliminare insiemi di dati specifici da una sessione e salvarla:

  1. Nell’app System Identification:

    1. Trascinare e rilasciare l’insieme di dati data su Trash.

    2. Trascinare e rilasciare l’insieme di dati datad su Trash.

    In alternativa, è possibile premere il tasto Delete sulla tastiera per spostare gli insiemi di dati nel Trash.

    Nota

    Lo spostamento degli elementi nel Trash non li elimina. Per eliminare definitivamente gli elementi, selezionare Options > Empty trash.

    La figura seguente mostra l’app System Identification dopo aver spostato gli elementi nel Trash.

  2. Trascinare e rilasciare gli insiemi di dati data_est e data_val per riempire i rettangoli vuoti, come mostrato nella figura seguente.

  3. Selezionare File > Save session as per aprire la finestra di dialogo Salva sessione e accedere alla cartella in cui si desidera salvare il file della sessione.

  4. Nel campo File name, digitare il nome della sessione dryer2_processed_data e fare clic su Save. Il file risultante ha un’estensione .sid.

Suggerimento

È possibile aprire una sessione salvata all’avvio dell’app System Identification digitando il seguente comando nel prompt MATLAB:

systemIdentification('dryer2_processed_data')

Per ulteriori informazioni sulla gestione delle sessioni, vedere Starting and Managing Sessions.

Stima dei modelli lineari utilizzando Quick start

Come stimare i modelli lineari utilizzando Quick start

È possibile utilizzare la feature Quick start nell’app System Identification per stimare i modelli lineari. Quick start potrebbe produrre i modelli lineari finali che si decide di utilizzare o fornire le informazioni necessarie per configurare la stima di modelli parametrici accurati, come costanti temporali, ritardi in ingresso e frequenze di risonanza.

È necessario che i dati per la stima siano già stati elaborati, come descritto in Plottaggio ed elaborazione dei dati.

Se questo passaggio non è ancora stato eseguito, fare clic qui per completarlo.

Nell’app System Identification, selezionare Estimate > Quick start.

Questa azione genera grafici di risposta al gradino e di risposta in frequenza, nonché l’uscita dei modelli nello stato degli spazi e dei modelli polinomiali. Per ulteriori informazioni su questi grafici, vedere Convalida dei modelli Quick start.

Tipi di modelli lineari Quick start

Quick start stima i seguenti quattro tipi di modelli e aggiunge quanto segue all’app System Identification, con i seguenti nomi predefiniti:

  • imp: risposta al gradino per un periodo di tempo, utilizzando l’algoritmo impulseest.

  • spad: risposta in frequenza su un intervallo di frequenze, utilizzando l’algoritmo spa. La risposta in frequenza è la trasformata di Fourier di una risposta impulsiva di un sistema lineare.

    Per impostazione predefinita, il modello è valutato a 128 valori di frequenza, compresi tra la frequenza 0 e la frequenza Nyquist.

  • arxqs: modello auto-regressivo del quarto ordine (ARX), utilizzando l’algoritmo arx.

    Si tratta di un modello parametrico la cui struttura è la seguente:

    y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+e(t)

    y(t) rappresenta l’uscita al momento t, u(t) rappresenta l’ingresso al momento t, na è il numero di poli, nb è il numero di parametri b (pari al numero di zeri più 1), nk è il numero di campioni prima che l’ingresso influisca sull’uscita del sistema (chiamato ritardo o tempo morto del modello) ed e(t) è il disturbo del rumore bianco. Il software System Identification Toolbox™ stima i parametri a1an e b1bn utilizzando i dati in ingresso e in uscita dall’insieme di dati di stima.

    In arxqs, na=nb=4 e nk sono stimati dal modello di risposta al gradino imp.

  • n4s3: modello nello spazio degli stati, calcolato utilizzando n4sid. L'algoritmo seleziona automaticamente l'ordine del modello (in questo caso, 3).

    Si tratta di un modello parametrico la cui struttura è la seguente:

    dxdt=Ax(t)+Bu(t)+Ke(t)y(t)=Cx(t)+Du(t)+e(t)

    y(t) rappresenta l’uscita al momento t, u(t) rappresenta l’ingresso al momento t, x è il vettore di stato ed e(t) è il disturbo del rumore bianco. Il prodotto System Identification Toolbox stima le matrici nello spazio degli stati A, B, C, D e K.

Nota

L’opzione Quick start non crea un modello di funzione di trasferimento o un modello di processo ottimali per essere utilizzati come tipi di modelli di partenza.

Convalida dei modelli Quick start

Quick Start genera i seguenti grafici durante la stima dei modelli per aiutare a convalidarne la qualità:

  • Grafico di risposta al gradino

  • Grafico di risposta in frequenza

  • Grafico di uscita del modello

Per generare questi tre grafici, è necessario che i modelli siano già stati stimati utilizzando Quick start, come descritto in Come stimare i modelli lineari utilizzando Quick start.

Se questo passaggio non è ancora stato eseguito, fare clic qui per completarlo.

Grafico di risposta al gradino.  Il seguente grafico di risposta al gradino mostra una concordanza tra le diverse strutture del modello e i dati misurati, ad indicare che tutte queste strutture hanno dinamiche simili.

Suggerimento

Se la finestra del grafico è stata chiusa, selezionare la casella di spunta Transient resp per riaprirla. Se il grafico è vuoto, fare clic sulle icone del modello nella finestra dell’app System Identification per visualizzare i modelli nel grafico.

Risposta al gradino per imp, arxqs e n4s3

Suggerimento

È possibile utilizzare il grafico della risposta al gradino per stimare il tempo morto dei sistemi lineari. Ad esempio, il grafico di risposta al gradino precedente mostra un ritardo di tempo di circa 0,25 s prima che il sistema risponda all’ingresso. Questo ritardo di risposta o, tempo morto, è uguale approssimativamente a circa tre campioni, in quanto il tempo di campionamento per questo insieme di dati è di 0.08 s.

Grafico di risposta in frequenza.  Il seguente grafico di risposta in frequenza mostra una concordanza tra le diverse strutture del modello e i dati misurati, ad indicare che tutte queste strutture hanno dinamiche simili.

Suggerimento

Se questa finestra del grafico è stata chiusa, selezionare la casella di spunta Frequency resp per riaprirla. Se il grafico è vuoto, fare clic sulle icone del modello nella finestra dell’app System Identification per visualizzare i modelli nel grafico.

Risposta in frequenza per i modelli imp, spad, arxqs e n4s3

Grafico di uscita del modello.  La finestra di Uscita del modello mostra una concordanza tra le diverse strutture del modello e l’uscita misurata nei dati di convalida.

Suggerimento

Se la finestra di Uscita del modello è stata chiusa, selezionare la casella di spunta Model output per riaprirla. Se il grafico è vuoto, fare clic sulle icone del modello nella finestra dell’app System Identification per visualizzare i modelli nel grafico.

Uscita misurata e uscita del modello per i modelli imp, arxqs e n4s3

Il grafico di uscita del modello mostra la risposta del modello all’ingresso nei dati di convalida. I valori di adattamento per ciascun modello sono riepilogati nell’area Best Fits della finestra di Uscita del modello. I modelli ricompresi nell’elenco Best Fits sono ordinati in modo discendente dal migliore al peggiore. L’adattamento tra due curve è calcolato in modo che 100 indichi un adattamento perfetto e 0 indichi un adattamento scarso (ossia, l’uscita del modello ha lo stesso adattamento all’uscita misurata della media in uscita misurata).

In questo esempio, l’uscita dei modelli corrisponde all’uscita dei dati di convalida, indicando che il modello sembra acquisire la dinamica principale del sistema e che la modellazione lineare è sufficiente.

Suggerimento

Per paragonare l’uscita prevista del modello anziché l’uscita simulata, selezionare questa opzione dal menu Options nella finestra di Uscita del modello.

Stima di modelli lineari

Strategia per la stima di modelli accurati

I modelli lineari stimati in Stima dei modelli lineari utilizzando Quick start hanno dimostrato che un modello lineare rappresenta sufficientemente la dinamica del sistema.

In questa sezione del tutorial, si ottengono modelli parametri accurati eseguendo le seguenti attività:

  1. Identificazione degli ordini e dei ritardi del modello iniziale dai dati, utilizzando una struttura del modello polinomiale semplice (ARX).

  2. Scoperta di strutture del modello più complesse con ordini e ritardi prossimi ai valori iniziali trovati.

I modelli risultanti sono modelli a tempo discreto.

Stima dei possibili ordini del modello

Per identificare i modelli black-box, è necessario specificare l’ordine del modello. Tuttavia, come è possibile determinare quali siano gli ordini del modello da specificare per i modelli black-box? Per rispondere a questa domanda, si possono stimare modelli polinomiali semplici (ARX) per un intervallo di ordini e di ritardi e paragonare la prestazione di questi modelli. Per una modellazione maggiormente accurata, scegliere come ipotesi iniziale gli ordini e i ritardi che corrispondono al miglior adattamento del modello utilizzando diverse strutture del modello, come i modelli di funzione di trasferimento e i modelli nello spazio degli stati.

Informazioni sui modelli ARX.  Per un sistema a ingresso singolo/uscita singola (SISO), la struttura del modello ARX è:

y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+e(t)

y(t) rappresenta l’uscita al momento t, u(t) rappresenta l’ingresso al momento t, na è il numero di poli, nb è il numero di zeri più 1, nk è il ritardo in ingresso: il numero di campioni prima che l’ingresso influisca sull’uscita del sistema (chiamato ritardo o tempo morto del modello) ed e(t) è il disturbo del rumore bianco.

Specificare gli ordini del modello na, nb e nk per stimare i modelli ARX. Il prodotto System Identification Toolbox stima i parametri a1an e b1bn dai dati.

Come stimare gli ordini del modello

  1. Nell’app System Identification, selezionare Estimate > Polynomial Models per aprire la finestra di dialogo dei Modelli polinomiali.

  2. Dall’elenco Structure, selezionare ARX: [na nb nk]. Per impostazione predefinita, questa impostazione è già selezionata.

  3. Modificare il campo Orders per provare tutte le combinazioni di poli, zeri e ritardi, dove ogni valore è compreso tra 1 e 10:

    [1:10 1:10 1:10]

  4. Fare clic su Estimate per aprire la finestra di Selezione della struttura del modello ARX che visualizza la prestazione del modello per ciascuna combinazione di parametri del modello.

    Utilizzare questo grafico per selezionare il modello più adatto.

    • L’asse orizzontale è il numero totale di parametri — na + nb.

    • L’asse verticale, chiamato Unexplained output variance (in %), è la porzione di uscita non spiegata dal modello: l’errore di previsione del modello ARX per il numero di parametri mostrati sull’asse orizzontale.

      L’errore di previsione è la somma dei quadrati delle differenze tra l’uscita dei dati di convalida e l’uscita prevista uno step in avanti del modello.

    • nk è il ritardo.

    Nel grafico sono evidenziati tre rettangoli in verde, blu e rosso. Ogni colore indica un tipo migliore di criterio di adattamento, come segue:

    • Rosso: il miglior adattamento minimizza la somma dei quadrati della differenza tra l’uscita dei dati di convalida e l’uscita del modello. Questo rettangolo indica il miglior adattamento complessivo.

    • Verde: il miglior adattamento minimizza il criterio MDL di Rissanen.

    • Blu: il miglior adattamento minimizza il criterio AIC di Akaike.

    In questo tutorial, il valore Unexplained output variance (in %) rimane approssimativamente costante per il numero combinato di parametri da 4 a 20. Tale costanza indica che la prestazione del modello non migliora a ordini superiori. Pertanto, i modelli di ordine inferiore potrebbero adattarsi ugualmente bene ai dati.

    Nota

    Quando si utilizza lo stesso insieme di dati per la stima e la convalida, utilizzare i criteri MDL e AIC per selezionare gli ordini del modello. Questi criteri compensano il sovradattamento risultante dall’utilizzo di troppi parametri. Per ulteriori informazioni su questi criteri, vedere la pagina di riferimento selstruc.

  5. Nella finestra di Selezione della struttura del modello ARX, fare clic sulla barra rossa (corrispondente a 15 sull’asse orizzontale) e su Insert. Questa selezione inserisce na=6, nb=9 e nk=2 nella finestra di dialogo Modelli polinomiali ed esegue la stima.

    Questa azione aggiunge il modello arx692 all’app System Identification e aggiorna i grafici per includere la risposta del modello.

    Nota

    Il nome predefinito del modello parametrico contiene il tipo di modello e il numero di poli, zeri e ritardi. Ad esempio, arx692 è un modello ARX con na=6, nb=9 e un ritardo di due campioni.

  6. Nella finestra di Selezione della struttura del modello ARX, fare clic sulla terza barra, corrispondente ai parametri 4 sull’asse orizzontale (l’ordine più basso che fornisce comunque un buon adattamento), quindi fare clic su Insert.

    • Questa selezione inserisce na=2, nb=2 e nk=3 (un ritardo di tre campioni) nella finestra di dialogo dei Modelli polinomiali ed esegue la stima.

    • Il modello arx223 viene aggiunto all’app System Identification e i grafici vengono aggiornati per includere la risposta e l’uscita del modello.

  7. Fare clic su Close per chiudere la finestra di Selezione della struttura del modello ARX.

  8. Fare clic su Close per chiudere la finestra di dialogo dei Modelli polinomiali.

Identificazione dei modelli di funzione di trasferimento

Stimando i modelli ARX per diverse combinazioni di ordini come descritto in Stima dei possibili ordini del modello, si identifica il numero di poli, zeri e ritardi che forniscono un buon punto di partenza per la scoperta sistematica di modelli diversi.

Il miglior adattamento complessivo per questo sistema corrisponde a un modello con sei poli, nove zeri e un ritardo di due campioni. È stato inoltre mostrato che anche un modello di ordine basso con na = 2 (due poli), nb = 2 (uno zero) e nk = 3 (ritardo in ingresso-in uscita) fornisce un buon adattamento. Pertanto, si dovrebbero scoprire ordini del modello vicini a questi valori.

In questa sezione del tutorial, si stima un modello di funzione di trasferimento.

Informazioni sui modelli di funzione di trasferimento.  La struttura generale del modello di funzione di trasferimento è:

Y(s)=num(s)den(s)U(s)+E(s)

Y(s), U(s) e E(s) rappresentano rispettivamente le trasformate di Laplace dell’uscita, dell’ingresso e dell’errore. num(s) e den(s) rappresentano i polinomi numeratore e denominatore che definiscono la relazione tra l’ingresso e l’uscita. Si fa riferimento alle radici del polinomio denominatore come ai poli del modello. Si fa riferimento alle radici del polinomio numeratore come agli zeri del modello.

È necessario specificare il numero di poli e di zeri per stimare un modello di funzione di trasferimento. Il prodotto System Identification Toolbox stima i polinomi numeratore e denominatore e i ritardi in ingresso/in uscita dai dati.

La struttura del modello di funzione di trasferimento è una buona scelta per la stima rapida poiché richiede che vengano specificati solo 2 parametri per iniziare: np è il numero di poli e nz è il numero di zeri.

Come stimare i modelli di funzione di trasferimento

  1. Nell’app System Identification, selezionare Estimate > Transfer Function Models per aprire la finestra di dialogo delle Funzioni di trasferimento.

  2. Nella finestra di dialogo delle Funzioni di trasferimento, specificare le seguenti opzioni:

    • Number of poles: lasciare il valore predefinito 2 per specificare una funzione di secondo ordine per due poli.

    • Number of zeros: lasciare il valore predefinito 1.

    • Continuous-time: lasciare questa opzione selezionata.

  3. Fare clic su Delay per espandere l’area di specifica del ritardo in ingresso/in uscita.

    Stimando i modelli ARX per diverse combinazioni di ordini, come descritto in Stima dei possibili ordini del modello, si identifica un ritardo di 3 campioni (nk = 3). Questo ritardo si traduce in un ritardo a tempo continuo di (nk-1)*Ts , che è uguale a 0,16 secondi.

    Specificare Delay in 0.16 secondi. Lasciare Fixed selezionato.

    Utilizzare le opzioni di stima predefinite. Per impostazione predefinita, l’app assegna il nome tf1 al modello. La finestra di dialogo dovrebbe apparire come questa.

  4. Fare clic su Estimate per aggiungere un modello di funzione di trasferimento chiamato tf1 all’app System Identification. È possibile visualizzare l’uscita della stima del modello di funzione di trasferimento rispetto alle stime degli altri modelli, nella finestra di Uscita del modello.

    Suggerimento

    Se la finestra Uscita del modello è stata chiusa, è possibile rigenerarla selezionando la casella di spunta Model output nell’app System Identification. Se il nuovo modello non viene visualizzato nel grafico, fare clic sull’icona del modello nell’app System Identification per rendere il modello attivo.

  5. Fare clic su Close per chiudere la finestra di dialogo delle Funzioni di trasferimento.

Per saperne di più.  Per saperne di più sull’identificazione dei modelli delle funzioni di trasferimento, vedere Transfer Function Models.

Identificazione di modelli nello spazio degli stati

Stimando i modelli ARX per diverse combinazioni di ordini come descritto in Stima dei possibili ordini del modello, si identifica il numero di poli, zeri e ritardi che forniscono un buon punto di partenza per la scoperta sistematica di modelli diversi.

Il miglior adattamento complessivo per questo sistema corrisponde a un modello con sei poli, nove zeri e un ritardo di due campioni. È stato inoltre mostrato che anche un modello di ordine basso con na=2 (due poli), nb=2 (uno zero) e nk=3 (ritardo in ingresso-in uscita) fornisce un buon adattamento. Pertanto, si dovrebbero scoprire ordini del modello vicini a questi valori.

In questa sezione del tutorial, si stima un modello nello spazio degli stati.

Informazioni sui modelli nello spazio degli stati.  La struttura generale del modello nello spazio degli stati (forma dell’innovazione) è:

dxdt=Ax(t)+Bu(t)+Ke(t)y(t)=Cx(t)+Du(t)+e(t)

y(t) rappresenta l’uscita al momento t, u(t) rappresenta l’ingresso al momento t, x(t) è il vettore di stato all’istante t ed e(t) è il disturbo del rumore bianco.

É necessario specificare un singolo intero come ordine del modello (dimensione del vettore di stato) per stimare un modello nello spazio degli stati. Il prodotto System Identification Toolbox stima le matrici nello spazio degli stati A, B, C, D e K dai dati.

La struttura del modello nello spazio degli stati è una buona scelta per la stima rapida poiché richiede che venga specificato solo il numero di stati (che è uguale al numero di poli). Come opzione, è possibile anche specificare i ritardi e il comportamento passante.

Come stimare i modelli nello spazio degli stati

  1. Nell’app System Identification, selezionare Estimate > State Space Models per aprire la finestra di dialogo dei Modelli nello spazio degli stati.

  2. Nel campo Specify value della scheda Model Structure, specificare l’ordine del modello. Digitare 6 per creare un modello di spazio negli stati di sesto ordine.

    Questa scelta si basa sul fatto che il modello ARX più adatto ha sei poli.

    Suggerimento

    Sebbene questo tutorial stimi un modello nello stato degli spazi di sesto ordine, si potrebbe voler scoprire se un modello di ordine inferiore rappresenta adeguatamente la dinamica del sistema.

    La finestra di dialogo dovrebbe apparire come questa:

  3. Selezionare la scheda Estimation Options per visualizzare le ulteriori opzioni.

  4. Modificare Estimation Focus in Simulation per ottimizzare il modello da usare per la simulazione in uscita.

    La finestra di dialogo dei Modelli nello stato degli spazi appare come la figura seguente.

  5. Fare clic su Estimate per aggiungere un modello di spazio negli stati chiamato ss1 all’app System Identification.

    È possibile visualizzare l’uscita della stima del modello nello stato degli spazi rispetto alle stime degli altri modelli, nella finestra di Uscita del modello.

    Suggerimento

    Se la finestra Uscita del modello è stata chiusa, è possibile rigenerarla selezionando la casella di spunta Model output nell’app System Identification. Se il nuovo modello non viene visualizzato nel grafico, fare clic sull’icona del modello nell’app System Identification per rendere il modello attivo.

  6. Fare clic su Close per chiudere la finestra di dialogo dei Modelli nello spazio degli stati.

Per saperne di più.  Per saperne di più sull’identificazione dei modelli nello spazio degli stati, vedere State-Space Models.

Identificazione dei modelli ARMAX

Stimando i modelli ARX per diverse combinazioni di ordini come descritto in Stima dei possibili ordini del modello, si identifica il numero di poli, zeri e ritardi che forniscono un buon punto di partenza per la scoperta sistematica di modelli diversi.

Il miglior adattamento complessivo per questo sistema corrisponde a un modello con sei poli, nove zeri e un ritardo di due campioni. È stato inoltre mostrato che anche un modello di ordine basso con na=2 (due poli), nb=2 (uno zero) e nk=3 fornisce un buon adattamento. Pertanto, si dovrebbero scoprire ordini del modello vicini a questi valori.

In questa sezione del tutorial, si stima un modello polinomiale ARMAX in ingresso-in uscita.

Informazioni sui modelli ARMAX.  Per un sistema a ingresso singolo/uscita singola (SISO), la struttura del modello polinomiale ARMAX è:

y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+         e(t)+c1e(t1)++cnce(tnc)

y(t) rappresenta l’ingresso al momento t, u(t) rappresenta l’uscita al momento t, na è il numero di poli per il modello dinamico, nb è il numero di zeri più 1, nc è il numero di poli per il modello di disturbo, nk è il numero di campioni prima che l’ingresso influisca sull’uscita del sistema (chiamato ritardo o tempo morto del modello) ed e(t) è il disturbo del rumore bianco.

Nota

Il modello ARMAX è più flessibile del modello ARX in quanto la struttura ARMAX contiene un polinomio aggiuntivo per modellare il disturbo additivo.

È necessario specificare gli ordini del modello per stimare i modelli ARMAX. Il prodotto System Identification Toolbox stima i parametri del modello a1an, b1bn e c1cn dai dati.

Come stimare i modelli ARMAX

  1. Nell’app System Identification, selezionare Estimate > Polynomial Models per aprire la finestra di dialogo dei Modelli polinomiali.

  2. Dall’elenco Structure, selezionare ARMAX: [na nb nc nk] per stimare un modello ARMAX.

  3. Nel campo Orders, impostare gli ordini na, nb, nc e nk sui seguenti valori:

    [2 2 2 2]

    L’app assegna il nome al modello amx2222 per impostazione predefinita, visibile nel campo Name.

  4. Fare clic su Estimate per aggiungere il modello ARMAX all’app System Identification.

  5. Ripetere i passaggi 3 e 4 utilizzando gli Orders 3 3 2 2 superiori. Il risultato di questi ordini è un modello che si adatta ai dati quasi quanto il modello ARX di ordine superiore arx692.

    Suggerimento

    Se la finestra Uscita del modello è stata chiusa, è possibile rigenerarla selezionando la casella di spunta Model output nell’app System Identification. Se il nuovo modello non viene visualizzato nel grafico, fare clic sull’icona del modello nell’app System Identification per rendere il modello attivo.

  6. Fare clic su Close per chiudere la finestra di dialogo dei Modelli polinomiali.

Per Saperne Di Più.  Per saperne di più sull’identificazione dei modelli polinomiali in ingresso-in uscita, come ARMAX, vedere Input-Output Polynomial Models.

Scelta del modello migliore

Si possono paragonare i modelli per scegliere il modello che le migliori prestazioni.

È necessario che i modelli siano già stati stimati, come descritto in Stima di modelli lineari.

Se questo passaggio non è ancora stato eseguito, fare clic qui per completarlo.

Riepilogo dei modelli.  La figura seguente mostra l’app System Identification app, che include tutti i modelli stimati in Stima di modelli lineari.

Esame dell’uscita del modello.  Esaminare il grafico di uscita del modello per verificare in che misura l’uscita del modello corrisponde all’uscita misurata nell’insieme dei dati di convalida. Un buon modello è il modello più semplice che descrive meglio la dinamica e simula o predice correttamente l’uscita per diversi ingressi. I modelli sono elencati per nome nell’area Best Fits del grafico di Uscita del modello. Si noti che uno dei modelli più semplici, l’amx3322, ha prodotto un adattamento simile al modello di ordine più elevato che è stato creato, l’arx692.

Suggerimento

Se la finestra Uscita del modello è stata chiusa, è possibile rigenerarla selezionando la casella di spunta Model output nell’app System Identification. Se il nuovo modello non viene visualizzato nel grafico, fare clic sull’icona del modello nell’app System Identification per rendere il modello attivo.

Per convalidare i modelli utilizzando un insieme di dati diverso, si può trascinare e rilasciare questo insieme di dati sul rettangolo Validation Data nell’app System Identification. Se si trasformano i dati di convalida nel dominio della frequenza, il grafico di Uscita del modello si aggiorna per mostrare il paragone del modello nel dominio della frequenza.

Per osservare nel dettaglio come questi modelli si adattano ai dati, ingrandire una parte del grafico facendo clic e trascinando un rettangolo intorno all’intervallo di interesse, come mostrato nella figura seguente.

Rilasciando il mouse, l’intervallo si ingrandisce e mostra che l’uscita di tutti i modelli corrisponde bene ai dati di convalida.

Visualizzazione dei parametri del modello

Visualizzazione dei valori dei parametri del modello

È possibile visualizzare i valori dei parametri numerici per ciascun modello stimato.

È necessario che i modelli siano già stati stimati, come descritto in Stima di modelli lineari.

Se questo passaggio non è ancora stato eseguito, fare clic qui per completarlo.

Per visualizzare i valori dei parametri del modello amx3322, fare clic con il tasto destro del mouse sull’icona del modello nell’app System Identification. Si apre la finestra di dialogo Informazioni sui dati/modello.

L’area non modificabile della finestra di dialogo Informazioni sui dati/modello elenca i valori dei parametri che corrispondono alla seguente equazione alle differenze del sistema:

y(t)1.502y(t1)+0.7193y(t2)0.1179y(t3)=       0.003956u(t2)+0.06245u(t3)+0.02673u(t4)+e(t)0.5626e(t1)+0.2355e(t2)

Nota

Il coefficiente di u(t-2) non è significativamente diverso da zero. Questa mancanza di differenza spiega perché i valori del ritardo sia di 2 sia di 3 diano buoni risultati.

I valori dei parametri sono visualizzati nel formato seguente:

A(z)=1+a1z1++anaznaB(z)=b1znk++bnbznbnk+1C(z)=1+c1z1++cncznc

I parametri nella struttura del modello ARMAX sono visualizzati come segue:

A(q)y(t)=B(q)u(t)+C(q)e(t)

che corrisponde a questa equazione alle differenze generale:

y(t)+a1y(t1)++anay(tna)=         b1u(tnk)++bnbu(tnknb+1)+         e(t)+c1e(t1)++cnce(tnc)

y(t) rappresenta l’ingresso al momento t, u(t) rappresenta l’uscita al momento t, na è il numero di poli per il modello dinamico, nb è il numero di zeri più 1, nc è il numero di poli per il modello di disturbo, nk è il numero di campioni prima che l’ingresso influisca sull’uscita del sistema (chiamato ritardo o tempo morto del modello) ed e(t) è il disturbo del rumore bianco.

Visualizzazione delle incertezze dei parametri

È possibile visualizzare le incertezze dei parametri dei modelli stimati.

È necessario che i modelli siano già stati stimati, come descritto in Stima di modelli lineari.

Se questo passaggio non è ancora stato eseguito, fare clic qui per completarlo. Per visualizzare i valori dei parametri del modello amx3322, fare clic con il tasto destro del mouse sull’icona del modello nell’app System Identification. Si apre la finestra di dialogo Informazioni sui dati/modello.

Per visualizzare le incertezze dei parametri, fare clic su Present nella finestra di dialogo Informazioni sui dati/modello e visualizzare le informazioni del modello nel prompt MATLAB.

amx3322 =                                                                     
Discrete-time ARMAX model:  A(z)y(t) = B(z)u(t) + C(z)e(t)                    
                                                                              
  A(z) = 1 - 1.502 (+/- 0.05982) z^-1 + 0.7193 (+/- 0.0883) z^-2             
                                   - 0.1179 (+/- 0.03462) z^-3                
                                                                              
                                                                              
  B(z) = 0.003956 (+/- 0.001551) z^-2 + 0.06245 (+/- 0.002372) z^-3           
                                 + 0.02673 (+/- 0.005651) z^-4                
                                                                              
                                                                              
  C(z) = 1 - 0.5626 (+/- 0.07322) z^-1 + 0.2355 (+/- 0.05294) z^-2            
                                                                              
Name: amx3322                                                                 
Sample time: 0.08 seconds                                                     
                                                                              
Parameterization:                                                             
   Polynomial orders:   na=3   nb=3   nc=2   nk=2                             
   Number of free coefficients: 8                                             
   Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
                                                                              
Status:                                                                       
Termination condition: Near (local) minimum, (norm(g) < tol).                 
Number of iterations: 5, Number of function evaluations: 11                   
                                                                              
Estimated using POLYEST on time domain data "data_est".                       
Fit to estimation data: 95.3% (prediction focus)                              
FPE: 0.001596, MSE: 0.001546                                                   
More information in model's "Report" property. 

L’incertezza alla deviazione standard di 1 per i parametri del modello è racchiusa tra parentesi, accanto a ciascun valore del parametro.

Esportazione del modello nell’area di lavoro MATLAB

I modelli creati nell’app System Identification non sono disponibili automaticamente nell’area di lavoro MATLAB. Affinché un modello sia disponibile per i comandi di altre toolbox, di Simulink® e della System Identification Toolbox è necessario esportarlo dall’app System Identification all’area di lavoro MATLAB. Ad esempio, se il modello è un impianto che richiede un controller, è possibile importare il modello dall’area di lavoro MATLAB nel prodotto Control System Toolbox™.

È necessario che i modelli siano già stati stimati, come descritto in Stima di modelli lineari.

Se questo passaggio non è ancora stato eseguito, fare clic qui per completarlo.

Per esportare il modello amx3322, trascinarlo sul rettangolo To Workspace nell’app System Identification. In alternativa, fare clic su Export nella finestra di dialogo Informazioni sui dati/modello.

Il modello viene visualizzato nel browser dell’area di lavoro MATLAB.

Nota

Questo modello è un oggetto del modello idpoly.

Dopo che il modello si trova nell’area di lavoro MATLAB, è possibile eseguire altre operazioni sul modello. Ad esempio, se il prodotto Control System Toolbox è installato, si potrebbe trasformare il modello in un oggetto nello spazio degli stati utilizzando:

ss_model=ss(amx3322)

Esportazione del modello nell’Analizzatore di sistema lineare

Se il prodotto Control System Toolbox è installato, il rettangolo To Linear System Analyzer è visualizzato nell’app System Identification.

L’Analizzatore di sistema lineare è un'interfaccia utente grafica per visualizzare e manipolare i grafici di risposta dei modelli lineari. Visualizza i seguenti grafici:

  • Risposta al gradino e risposta impulsiva

  • Bode, Nyquist e Nichols

  • Valori singolari di risposta in frequenza

  • Polo/zero

  • Risposta ai segnali in ingresso generali

  • Risposta non forzata partendo da determinati stati iniziali (solo per i modelli nello spazio degli stati)

Per tracciare un modello nell’Analizzatore di sistema lineare, trascinare e rilasciare l’icona del modello sul rettangolo To Linear System Analyzer nell’app System Identification. In alternativa, fare clic su Show in Linear System Analyzer nella finestra di dialogo Informazioni sui dati/modello.

Per ulteriori informazioni sull’utilizzo dei grafici nell’Analizzatore di sistema lineare, vedere Linear System Analyzer Overview (Control System Toolbox).