delle prestazion
4.2 fase 2: identificazione
4.2.1 Introduzione: modelli strutturati
Uno dei più importanti risultati ottenuti da De Luca è stato quello di aver esteso la procedura di diagnostica a modelli del processo strut- turati, cioè modelli in cui matrici e vettori sono organizzate in una struttura a blocchi. Ciò permette di ottenere dei risultati migliori in termini di diagnostica (come dimostrato da De Luca [3]), nonché la
possibilità di effettuare la reidentificazione soltanto di alcuni blocchi e non dell’interno modello2
. Appare evidente che questo approccio risulta tanto più vantaggioso quanto più complesso (in termini di nu-
mero di MV e CV) è il modello dinamico del processo. Alla luce Si ricorda che il processo scelto come caso studio è caratterizzato da 14 MV e 25 CV. di queste considerazioni si è quindi deciso di procedere all’identifi-
cazione del modello organizzandolo in una struttura a blocchi. La procedura seguita può essere così schematizzata:
1. organizzazione di CV ed MV in una struttura a blocchi; 2. raccolta dati per ciascun blocco;
3. identificazione delle matrici del modello relative ciascun blocco (Ak, Bk, Ck, Dk);
4. ricomposizione delle matrici del modello complessivo (A, B, C, D).
4.2.2 Organizzazione di CV ed MV
Utilizzando l’interfaccia di collegamento MATLAB-UNISIM si sono andate a muovere, una alla volta, ciascuna delle 14 MV del processo con una sequenza di GBN, registrando i valori di tutte le 25 CV ad ogni tempo di campionamento. Successivamente, dopo aver indivi- duato tutte le uscite influenzate in maniera significativa da ciascun ingresso, si sono organizzate le CV e le MV nella struttura a blocchi3 riassunta in Tabella7.
Dalla Tabella 7 si nota che nel complesso sono stati individuati 5
blocchiottenibili dalla combinazione di 5 gruppi di CV e 3 gruppi di
MV. La principale caratteristica di questa struttura è che ogni blocco non ha uscite comuni ad altri blocchi, cioè:
CV(i)∩ CV(j) ={∅} i6= j [
CV(i) = CV i = 1, . . . , 5 (4.1)
La scelta di organizzare i blocchi secondo le condizioni descritte dalla eq. 4.1 si è rivelata particolarmente utile nello sviluppo di un
2 Con notevole riduzione dei tempi operativi e di calcolo.
3 Ogni blocco può essere visto come la matrice delle Funzioni di Trasferimento da un determinato gruppo di ingressi ad un determinato gruppo di uscite.
Tabella 7: Organizzazione di CV ed MV per ciascun blocco
Blocco MV CV
Blocco 1
TIC TESTA SP ASTM BAL
TIC FORNO SP TIC FORNO OP
PIC TESTA SP FIC BAL OP
Q PAI SP RR
FEED SP Q PAM SP
Blocco 2
TIC TESTA SP ASTM KERO
TIC FORNO SP LIC H2OOP
PIC TESTA SP ASTM HGO
Q PAI SP ASTM LGO
FEED SP FIC RA OP
Q PAM SP VAPfondo/RA
Q PAS SP SFIATO OP
FIC LGO SP FIC REFLUX OP
FIC KERO SP FIC HGO SP FIC VRA SP
Blocco 3
Q PAS SP LIC SLGO OP
FIC LGO SP FIC LGO OP
FIC KERO SP FIC KERO OP
FIC HGO SP LIC SKERO OP
FIC VRA SP LIC SHGO OP
FICHGOOP FICVRAOP
Blocco 4
Q PAS SP VAPhgo/HGO
FIC LGO SP VAPkero/KERO
FIC KERO SP VAPlgo/LGO
FIC HGO SP FIC VRA SP FIC VHGO SP FIC VKERO SP FIC VLGO SP Blocco 5
FIC VHGO SP FIC VHGOOP
FIC VKERO SP FIC VKEROOP
FIC VLGO SP FIC VLGOOP
algoritmo generale per l’identificazione e la diagnostica di modelli strutturati.
4.2.3 Raccolta dati ed identificazione
L’algoritmo di raccolta dati ed identificazione sviluppato in questa fase può essere schematizzato come mostrato in Figura14.
I dati che l’utente deve fornire prima di avviare la simulazione sono i seguenti:
• Nblocks: numero di blocchi del modello4 ;
• CVcell, MVcell: cell array contenenti le coordinate delle cel- le dello spreadshhet definito in UNISIM relative rispettivamente alle CV e alle MV per ciascun blocco;
4 Si sottolinea che seNblocks= 1l’algoritmo è come se operasse su un modello non strutturato.
Inizio Dati iniziali (blockvars) k = 1 Raccolta dati GBN (data_coll.m) data.U data.Y k = Nblocks? k = k+1 NO SI Data, par (Id_array) k = 1 k = Nblocks? SI mod_array obs_array MAP Ridefinire par |λ(A)|<1 Ident. (Id.m) Ident. (Id.m) k = k+1 NO
Ricomposizione matrici globali modello (e filtro se richiesto).
Fine Raccolta dati GBN (data_coll.m) DATA par Identificazione (ssinew.m) MODEL (A,B,C,D) Andamenti soddisfacenti? NO SI NO SI Calcolare filtro ottimale? Calcolo via SQP di Lx e Ld NO SI model_k (Ak,Bk,Ck) Fine
Figura 14: Programma globale per la raccolta dati e l’identificazione del
modello del processo simulato in UNISIM.
• tin,tfin: tempi di inizio e fine della simulazione per la raccolta dati di ciascun blocco
• Agbn: cell array contenente i valori delle ampiezze dei gbn asse- gnati alle varie MV per ogni blocco;
Le informazioni relative ad ogni blocco sono quindi memorizzate automaticamente all’interno del cell arrayblockvarscostituito da un numero di righe pari al valore assegnato adNblocks. La raccolta dati
viene quindi effettuata un blocco per volta all’interno di un ciclofor registrando, di volta in volta, i dati di impianto relativi ad ingressi ed uscite (data.U e data.Y). Di fondamentale importanza, ai fini di una buona identificazione del modello, è la scelta delle ampiezze dei gbn relativi ad ogni ingresso. Il criterio di scelta dipende molto dal- l’esperienza e dalla conoscenza delle dinamiche del processo; come approccio generale si sono assegnate delle ampiezze in modo tale da ottenere variazioni significative nelle temperature ASTM 95% dei va- ri tagli ma entro dei limiti ragionevoli5
. Un ulteriore parametro che caratterizza un gbn è la probabilità di cambio di segno della sequen- za (pswitch); valori tipici possono essere nell’intervallo 0.02 ÷ 0.05; in questo lavoro sono stati generati gbn conpswitch= 0.04.
Terminata l’operazione di raccolta dati si passa all’identificazione del- le matrici dei vari blocchi; Anche quest’ultima operazione viene con- dotta un blocco alla volta all’interno di un ciclofor. Il metodo di iden- tificazione6
impiegato in questo lavoro di tesi è la tecnica PARSIM-K descritta alla fine del Capitolo 2. Oltre ai dati di impianto raccolti, i parametri che l’utente deve fornire per ogni blocco sono:
• orizzonte futuro (par.f): scelto sufficientemente lungo; un va- lore di primo tentativo può essere par.f = 25;
• orizzonte passato (par.p): scelto in genere uguale o comunque vicino all’orizzonte futuro;
• ordine del modello (par.order): se non si ha un’idea dell’ordine del modello l’utente può scegliere un par.order<1; in questo caso il valore assegnato è utilizzato dall’algoritmo di identifica- zione come criterio di soglia per il calcolo dell’ordine del mo- dello; un valore di primo tentativo può esserepar.order= 0.05. Nel caso dipar.order> 1l’unico accorgimento è stato quello di assegnare un ordine (e quindi un numero di stati) pari almeno al numero di CV del blocco corrispondente.
Una volta che le matrici corrispondenti al k-esimo blocco sono state determinate vengono effettuati i seguenti controlli:
1. stabilità asintotica: gli autovalori della matrice A devono essere all’interno del cerchio unitario;
2. confronto grafico tra le risposte ottenute con il modello calcola- to7
e quelle relative ai dati di impianto raccolti (data.Y).
5 Ai fini dell’applicazione ad uno schema MPC, i dati relativi a variazioni nelle ASTM 95% superiori a 10◦C sono da ritenersi poco informativi (se non fuorvianti) per l’identificazione del modello.
6 Il programma che è stato sviluppato in questo lavoro di tesi permette all’utente di scegliere tra alcune tecniche subspace da utilizzare nell’identificazione.
7 Assegnando come ingressi le medesime sequenze di gbn impiegate nella raccolta dati.
Se entrambe le condizioni sono soddisfatte il programma passa al- l’identificazione del blocco successivo, altrimenti viene restituito il prompt dei comandi per permettere all’utente di modificare i para- metri assegnati. In Figura15 è mostrato, a titolo di esempio, un caso in cui la risposta ottenuta con il modello è in ottimo accordo con i dati di impianto relativi alla stessa CV. Terminata l’identificazione di un blocco, l’utente può inoltre decidere se effettuare il calcolo delle matrici Lx e Ld del filtro ottimale associate al blocco stesso; si preci-
sa che queste matrici sono determinate mediante un algoritmo SQP in modo da minimizzare la norma dell’errore tra i valori delle uscite calcolate dal modello e i dati di impianto registrati durante le simu- lazioni. In questa fase del lavoro si è ritenuto ragionevole bypassare tale operazione.
Figura 15: Confronto tra dati ottenuti del modello e dati di impianto relativi
alla ASTM 95% della benzina.
4.2.4 Ricomposizione del modello complessivo e del filtro
Una volta che i vari blocchi sono stati identificati si procede alla ricom- posizione delle matrici del modello complessivo; nel caso in esame queste sono organizzate come segue:
A = A1 0 0 0 0 0 A2 0 0 0 0 0 A3 0 0 0 0 0 A4 0 0 0 0 0 A5 , B = B1 0 0 B2 . . . 0 0 B3 0 0 B4 . . . 0 0 B5
C = C1 0 0 0 0 0 C2 0 0 0 0 0 C3 0 0 0 0 0 C4 0 0 0 0 0 C5
La ricomposizione del modello è effettuata in automatico dal pro- gramma per qualsiasi struttura a blocchi purché siano rispettate le ipotesi definite in4.1. In accordo con queste condizioni le matrici A e Cdel modello e le matrici Lxed Lddel filtro risultano sempre diago-
nali a blocchi in quanto vi sono tanti blocchi quanti sono i gruppi di
CV. L’unica matrice che può risultare strutturata in maniera diversa In MATLAB la ricomposizione di A e C è stata effettuata con il comando
blkdiag.
a seconda dell’organizzazione delle MV è la matrice B. Per la costru- zione di quest’ultima è stato implementato un codice che utilizza una variabile ausiliaria (MAP) contenente informazioni sull’organizzazione delle MV per ciascun blocco.
Il modello di riferimento complessivo identificato in questa fase ha un ordine n = 80. In Figura16è possibile apprezzare qualitativamen- te la struttura a blocchi del sistema a seguito dell’identificazione e della ricomposizione delle matrici del modello. Come si osserva essa è in accordo con l’organizzazione di CV ed MV definita in Tabella7.
f a s e 2 : id e n t if ic a z io n e
Figura 16: MOdello di riferimento: matrice dei guadagni e ampiezze GBN imposte per la raccolta dati.