• Non ci sono risultati.

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.

Documenti correlati