Università degli studi di Pisa Facoltà di Ingegneria Tesi di Laurea Identificazione di modelli di...
-
Upload
maddalena-marconi -
Category
Documents
-
view
212 -
download
0
Transcript of Università degli studi di Pisa Facoltà di Ingegneria Tesi di Laurea Identificazione di modelli di...
Università degli studi di Pisa
Facoltà di Ingegneria
Tesi di Laurea
Identificazione di modelli di Hammerstein e di Wiener
Relatori: Candidato: Prof. Ing. Aldo Balestrino Alessio Campani
Prof. Ing. Alberto Landi
Obiettivi
Studiare il problema dell’identificazione dei
sistemi non lineari del tipo di Hammerstein e
di Wiener
Approccio basato sui filtri di Kautz e le reti
neurali artificiali per il modello di Wiener Approccio basato sulla tecnica delle funzioni
modulanti per i sistemi di Hammerstein
Identificazione
?
Modello (struttura, ordine)
Parametri
Modelli di Hammerstein e di Wiener
Approccio a blocchi
Dinamica lineare rappresentata con una funzione di
trasferimento
Non linearità statica (senza memoria) rappresentata
con una funzione algebrica
Modelli di Hammerstein e di Wiener
G(•) N.L.
N.L. G(•)
Wiener:
Hammerstein:
Identificazione del modello di Wiener
G(•) La dinamica lineare viene identificata con un filtro di Kautz
N.L. La non linearità viene identificata con una rete neurale artificiale
Filtro di Kautz
czcbz
bzc
1
12
2
czcbz
zcbcz
1
112
2
czcbz
zcbcz
1
112
2
czcbz
bc
1
)1)(1(2
22
czcbz
zcbcz
1
112
2
czcbz
zcbcz
1
112
2
g1
g3
g2k-1
g2
g4
g2k
Struttura dell’approssimatore
G(·) N.L.
Sistema da identificare
Filtro di Kautz Buffer N.N.
Approssimatore
Struttura dell’approssimatore
czcbz
bzc
1
12
2
czcbz
zcbcz
1
112
2
czcbz
bc
1
)1)(1(2
22
czcbz
zcbcz
1
112
2
f
w1,1
wn,1
N.N.
N.N.
SoftwareAmbiente Matlab® (ver. 6.5)
M-files, schemi Simulink, S-functions
Sistemi SISO tempo invarianti
Non linearità polinomiali e non
Dinamica lineare con poli reali e complessi coniugati
Sistemi in tempo discreto e tempo continuo
Software
Identificazione on line
Rete neurale addestrata in back propagation
Back propagation implementata con l’algoritmo di
Levenberg-Marquardt
Campioni memorizzati in un buffer gestito
a finestra mobile
eJIJJww TTkk
1
1
SoftwarereteK2.m
Costruzione del sistema da identificare
Impostazione della struttura del filtro di Kautz (numero di
blocchi, parametri per incorporare nel modello le
informazioni a priori)
Costruzione della rete neurale nello spazio di lavoro
(struttura, parametri per l’addestramento,...)
SoftwareapprendiK.m
Durata della simulazione
Lancio della simulazione sullo schema Simulink
schemaK.mdl
Invoca la funzione vedi
addestra_reteK.m (S-function)
Gestione del buffer
Algoritmo LM
Softwarevedi.m
Andamento dei parametri della rete neurale e dell’errore durante l’addestramento
valida_reteK.m (S-function)
Evoluzione della rete neurale addestrata
vedival.m
Andamento uscite misurata e approssimata
Errore
Indici di prestazione
Indici di prestazione
s
N
nkk
nN
e
MSE s
2
kk
eMaxAssErr max
s
N
nk k
k
nN
soglias
e
lMSE s
2
Re
sogliay
elErrMax
k
k
kmaxRe
Segnale
MSE
nN
Segnalee
lMSEEnds
N
nk
k
s
max
maxRe
2
Segnale
elErrMaxEnd
kk
max
maxRe
Esempio
5.05.05.05.0
1
jzjz xxy 3
Fase di addestramento:
Rumore bianco
Somma di sinusoidi
Somma di gradini
EsempioRisposta a un ingresso sinusoidale
Esempio
MSE MaxAssErr RelMSE MaxRelErr EndRelMSE MaxEndRelErr
0.7232 3.5670 0.0072 0.0590 0.0017 0.0083
Indici di prestazione
Fuzzy scheduling
Considerazione preliminare
Il nostro approssimatore risponde bene quando in ingresso diamo un segnale di tipo rumore bianco costruito con un generatore di numeri
casuali (potenza) in cascata ad un filtro di Butterworth (contenuto frequenziale)
Fuzzy scheduling
R costante +Rumore Bianco
Sistema Y=Ym+ γ
Idea
Addestrare la rete neurale con i segnali epurati dei rispettivi valori medi
Fuzzy schedulingConclusioni
Otteniamo un modello “alle variazioni”
Reiterando il procedimento per diversi valori
della componente costante otteniamo un
meccanismo di schedulazione che associa ad
ogni punto di lavoro (Rm, Ym) il modello che
meglio approssima il sistema in quel punto
Identificazione del modello di Hammerstein
Tecnica delle funzioni modulanti
altrimenti
Tttt
0
0
nidt
di
i
nidt
d
dt
d
Tti
i
ti
i
000
Moltiplicare entrambi i membri dell’equazione
differenziale che descrive il sistema per una funzione Φ
Integrare per parti in modo da ‘trasferire’ l’operazione
di derivazione dai segnali (che possono essere affetti
da rumore) alle funzioni modulanti
Si ottiene un sistema di equazioni algebriche che può
essere risolto col metodo della pseudoinversa
SoftwareAmbiente Matlab® (ver. 6.5)
Libreria basata sulle funzioni spline di
Maletinsky (Sani-Corsanini DSEA)
Aggiunti schemi Simulink per la raccolta dati e
la verifica
Sistemi SISO tempo invarianti Non linearità polinomiali
Dinamica lineare a guadagno statico unitario
Sistemi in tempo continuo
Softwaresistema.mdl
Simula l’evoluzione del sistema da identificare con un rumore bianco in ingresso; al termine della simulazione il
comando save workspace di Matlab crea il file con tutti i dati necessari all’identificazione
Softwarefunction [num,den,nlc]=fun_mod_ham(periodo,np,nz,g,nomefile)
Ampiezza della finestra di integrazione
Numero di poli della dinamica lineare
Numero di zeri della dinamica lineare
Grado della non linearità polinomiale
File contenente gli istanti di campionamento e i segnali di ingresso e di uscita misurati
Coefficienti del numeratore della f.d.t. approssimata
Coefficienti del denominatore della f.d.t. approssimata
Coefficienti della rappresentazione polinomiale della n.l.
Risolve col metodo della pseudo-inversa un sistema algebrico della dimensione
opportuna ottenuto a partire da una spline di ordine n_poli+2
I coefficienti di ordine 0 al numeratore e al denominatore della f.d.t. valgono sempre 1
(condizione sul guadagno statico); il coefficiente di ordine 0 della n.l. vale sempre 0
(non linearità passante per l’origine)
Softwarefun_mod_ham utilizza le seguenti funzioni:
simf_ham
Genera il sistema algebrico della dimensione opportuna
Invoca la funzione gen_fr_spline per generare la funzione modulante e
le sue derivate
Invoca gen_riga_s_ham per ricavare un’equazione del sistema alla
volta; l’integrazione viene fatta dalla funzione ausiliaria simpson che
implementa l’integrazione numerica di Cavalieri-Simpson
SoftwarePer verificare la correttezza dell’identificazione:
verifica.mdl
Simula l’evoluzione dei sistemi reale ed approssimato
vedi_verifica.m
Andamento delle uscite reale e approssimata
Andamento dell’errore
Indici di prestazione
Esempio
2ux 165
12 ss
Segnale in ingresso:
Rumore bianco limitato in banda (Noise Power = 1, Sample Time = 0.1)
Segnale in fase di verifica:
Rumore bianco limitato in banda (Noise Power = 0.1; Sample Time = 0.5)
Esempio
Esempio
MSE MaxAssErr RelMSE MaxRelErr EndRelMSE MaxEndRelErr
0.0040 0.0078 0.0197 0.0356 0.0190 0.0373
Conclusioni
Sistemi di Wiener
Le difficoltà incontrate con gli algoritmi tradizionali a causa della non disponibilità di una buona
rappresentazione per l’uscita non lineare possono essere superate grazie alle proprietà di semplificazione delle basi
di funzioni ortonormali e alla flessibilità dell’approccio con le reti neurali
Sistemi di Hammerstein
L’estensione della tecnica delle funzioni modulanti al caso di sistemi non lineari modellizzati alla Hammerstein
fornisce buoni risultati
Suggerimenti
Il nostro lavoro potrebbe essere integrato con algoritmi per l’identificazione dei sistemi misti e l’aggiunta di un’interfaccia grafica per semplificare l’utilizzo dei
programmi