Richiami di Identificazione Parametrica Modellistica e gestione dei sistemi ambientali Corso di Laurea in Ingegneria Gestionale Corso di Laurea Specialistica in Ingegneria Informatica Emiliano Sparacino [email protected] Procedura di identificazione • • • • • Raccolta dati Selezione di una classe di modelli Criterio di selezione Calcolo del modello ottimo Validazione Validazione Procedura di identificazione • • • • • Raccolta dati Selezione di una classe di modelli Criterio di selezione Calcolo del modello ottimo Validazione Classi di modelli LTI Black-box (i.e. ARX) ODE Fisici (i.e. logistica) Modelli LTI Modelli ARX Modelli ODE Lineare rispetto ai parametri Esempio: Non Lineare rispetto ai parametri Esempio: Procedura di identificazione • • • • • Raccolta dati Selezione di una classe di modelli Criterio di selezione Calcolo del modello ottimo Validazione Errore di predizione Per modelli lineari nei parametri (black-box e fisici) il valore che minimizza l’errore di predizione può essere ottenuto calcolando: Dove U è il vettore dei regressori. Errore di predizione (ARX) Errore di predizione (fisici 1) Errore di predizione (fisici 2) Errore di simulazione vettore delle misure al tempo vettore delle uscite del modello al tempo vettore dei parametri Procedura di identificazione • • • • • Raccolta dati Selezione di una classe di modelli Criterio di selezione Calcolo del modello ottimo Validazione Risultati Percentuale della variazione dell’uscita riprodotta dal modello un modello con F I T = 0 significa che ha un fitting uguale al modello con uscita uguale alla media dei dati Errore quadratico medio Identificazione Ingressi Dati misurati 0 Simulazione Minimizzazione di F ( ) Validazione Ok No Identificazione (matlab) Obiettivo: risolvere un problema di data-fitting nonlineare utilizzando i minimi quadrati Dato un vettore di ingressi (xdata) ed un vettore di osservazioni (ydata), trovare i coefficienti “x” che meglio “adattano” la funzione F(x,xdata) alle osservazioni. lsqcurvefit Identificazione (matlab) [x,resnorm] = lsqcurvefit(‘myfun’,x0,xdata,ydata,lb,ub,options,P1,P2,…) Output: x: valore dei parametri resnorm: MSE Input: x0: valore iniziale di x lb: lower bound di x ub: upper bound di x options: opzioni di minimizzazione (vedi help optimset) P1,P2,…: parametri extra per la funzione ‘myfun’ Identificazione (matlab) ‘myfun’: funzione matlab memorizzata in un M-file (myfun.m) function F = myfun(x,xdata,P1,P2,…) % Inizializzazione variabili, costanti, ecc… F = ode23(‘odefun’,tspan,y0,options,x,xdata,P1,P2,…) ‘myfun’ richiama un solver ‘ode’ per risolvere equazioni differenziali ‘odefun’ contiene le equazioni da risolvere function dy = odefun(t,y,x,xdata,P1,P2,…) dy = x(1)*xdata(1)*y + … Identificazione (matlab) lsqcurvefit myfun solver odefun Identificazione xdata Ingressi 0 x ydata Dati misurati lsqcurvefit resnorm Simulazione ode23 Minimizzazione di F ( ) Validazione Ok No