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. Hammerstein: N.L. G(•)
Identificazione del modello di Wiener La dinamica lineare viene identificata con un filtro di Kautz G(•) La non linearità viene identificata con una rete neurale artificiale N.L.
Filtro di Kautz g1 g3 g2k-1 g2 g4 g2k
Struttura dell’approssimatore Sistema da identificare G(·) N.L. Approssimatore Filtro di Kautz Buffer N.N.
Struttura dell’approssimatore w1,1 N.N. N.N. wn,1
Software Ambiente Matlab® (ver. 6.5) Sistemi SISO tempo invarianti 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
Identificazione on line 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
Software reteK2.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,...)
addestra_reteK.m (S-function) Software apprendiK.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
Software vedi.m valida_reteK.m (S-function) vedival.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
Esempio Fase di addestramento: Rumore bianco Somma di sinusoidi Somma di gradini
Risposta a un ingresso sinusoidale Esempio Risposta a un ingresso sinusoidale
Esempio Indici di prestazione 0.7232 3.5670 0.0072 0.0590 0.0017 MSE MaxAssErr RelMSE MaxRelErr EndRelMSE MaxEndRelErr 0.7232 3.5670 0.0072 0.0590 0.0017 0.0083
Considerazione preliminare 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 Idea R costante + Y=Ym+ γ Rumore Bianco Sistema Addestrare la rete neurale con i segnali epurati dei rispettivi valori medi
Fuzzy scheduling Conclusioni 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 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
Software Ambiente Matlab® (ver. 6.5) Sistemi SISO tempo invarianti 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
Software sistema.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
Software function [num,den,nlc]=fun_mod_ham(periodo,np,nz,g,nomefile) 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) Coefficienti del numeratore della f.d.t. approssimata Ampiezza della finestra di integrazione File contenente gli istanti di campionamento e i segnali di ingresso e di uscita misurati Risolve col metodo della pseudo-inversa un sistema algebrico della dimensione opportuna ottenuto a partire da una spline di ordine n_poli+2 Coefficienti del denominatore della f.d.t. approssimata Numero di poli della dinamica lineare Numero di zeri della dinamica lineare Coefficienti della rappresentazione polinomiale della n.l. Grado della non linearità polinomiale
fun_mod_ham utilizza le seguenti funzioni: Software fun_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
Software verifica.mdl vedi_verifica.m Per 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 Segnale in ingresso: Segnale in fase di verifica: 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 0.0040 0.0078 0.0197 0.0356 0.0190 0.0373 MSE MaxAssErr RelMSE MaxRelErr EndRelMSE MaxEndRelErr 0.0040 0.0078 0.0197 0.0356 0.0190 0.0373
Sistemi di Hammerstein 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 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 Sistemi di Hammerstein L’estensione della tecnica delle funzioni modulanti al caso di sistemi non lineari modellizzati alla Hammerstein fornisce buoni risultati