Sei sulla pagina 1di 21

SCUOLA POLITECNICA E DELLE SCIENZE DI BASE

COMPLEMENTI DI CONTROLLI

Controllo di un reattore
chimico

Gianluca D’Anna Andrea Gelli


M58/281 M58/270

Anno Accademico 2019/2020


INDICE

1. Introduzione
1.1 Modello linearizzato
2. Controllo in retroazione di stato

3. Osservatore dello stato


4. Controllo LQ
5. Controllo LQG
1. Introduzione

In questo elaborato si è voluto applicare le principali tecniche di controllo apprese durante il corso
di Complementi di Controlli Automatici sul modello linearizzato di un reattore chimico.
In particolare si è scelto di simulare i risultati ottenibili attraverso le seguenti tecniche di controllo :
- State feedback con assegnamento autovalori ;
- State feedback con osservatore ;
- Controllo LQ
- Controllo LQG

Figura 1 : rappresentazione grafica del reattore chimico

Un reattore chimico CSTR è un reattore continuo ideale all’interno del quale avviene la reazione
esotermica di una generica sostanza A nella generica sostanza B.
Nel seguito si considera un sistema alimentato da un flusso entrante di sostanza A ad una
concentrazione 𝑐𝑖 e temperatura 𝑇𝑖 . Si assuma, a titolo semplificativo, che all’interno del sistema
considerato siano presenti condizioni omogenee di temperatura 𝑇, calore specifico 𝑐𝑝 , densità 𝜌.
Si indicano con 𝑐 la concentrazione della specie di interesse all’interno del reattore, V il volume
totale del reattore, A l’area di scambio con le pareti, U il coefficiente di scambio convettivo
termico, 𝑇𝑐 la temperatura della camicia esterna.
Supponendo che il sistema sia in condizioni di bilancio idraulico, e che quindi le portate in ingresso
ed in uscita 𝑞𝑖 e 𝑞𝑢 siano entrambe pari a q, le equazioni di bilancio di massa ed energia sono le
seguenti :

𝑑𝑐(𝑡) 𝑞 𝐸

= (𝑐𝑖 (𝑡) − 𝑐(𝑡)) − 𝑐(𝑡)𝑘𝑒 𝑅𝑇(𝑡) (1.1)
𝑑𝑡 𝑉
𝑑𝑇(𝑡) 𝑈𝐴 𝑞 ΔH 𝐸

= ( 𝑇𝑐 (𝑡) − 𝑇(𝑡)) + (𝑇𝑖 (𝑡) − 𝑇(𝑡)) − 𝑘𝑐(𝑡)𝑒 𝑅𝑇(𝑡) (1.2)
𝑑𝑡 𝑉𝜌𝑐𝑝 𝑉 𝜌𝑐𝑝

In cui ΔH indica l’entalpia di reazione (o calore di reazione ), E l’energia di attivazione, k


un’opportuna costante.
Dati relativi al sistema e alle condizioni operative considerate:
𝑉 = 100 𝑙
𝑞 = 100 𝑙⁄𝑚𝑖𝑛
𝑘 = 7.2 ∗ 1010 𝑚𝑖𝑛−1
𝐸
( ) = 8750 𝐾
𝑅
𝑇𝑖 = 350 𝐾
𝑔
𝜌 = 1000
𝑙
𝐽
𝑐𝑝 = 0.239
𝑔𝐾
𝐽
𝑈𝐴 = 5 ∗ 104
min 𝐾
Δ𝐻 = −5 ∗ 104 𝐽/𝑚𝑜𝑙
1.1 Modello linearizzato

Per progettare il sistema di controllo, le sclete riguardo agli stati ed agli ingressi sono le seguenti :
𝑥1 = 𝑐, concentrazione della sostanza A nel reattore;
𝑥2 = 𝑇, temperatura all’interno del reattore;
𝑢1 = 𝑐𝑖 , concentrazione della sostanza A in ingresso al reattore;
𝑢2 = 𝑇𝑐 , temperatura della camicia esterna;
L’uscita del sistema in esame risulta essere 𝑦 = [𝑥1 𝑥2 ]′.
Per poter applicare le tecniche di controllo precedentemente indicate è stato necessario dapprima
sviluppare il modello linearizzato del sistema.
Innanzitutto si è considerato un ingresso costante 𝑢𝑒𝑞 = [𝑢1 𝑢2 ]′ = [1 300]′. Attraverso il seguente
script Matlab :

[S1,S2]=solve((q/V)*(u1-x1)-x1*k*exp(-(ER)/x2)==0,((UA)/(V*ro*cp))*(u2-
x2)+(q/V)*(Ti-x2)-(deltaH/(ro*cp))*k*x1*exp(-(ER)/x2)==0,u1,u2);

è stato possibile determinare il corrispondente stato di equilibrio 𝑥𝑒𝑞 = [0.5 350]′.


Ottenuti tali parametri è quindi possibile operare la linearizzazione del sistema dinamico, ricavando
le seguenti matrici:
−1.9999 −0.0357
𝐴=[ ]
209.1908 4.3790
1.0 0
𝐵=[ ]
0 2.092
1 0
𝐶=[ ]
0 1
0 0
𝐷=[ ]
0 0

Al fine di valutare le proprietà di stabilità del punto di equilibrio, sono stati analizzati gli autovalori
della matrice A: 𝜆1 = 2.8334 , 𝜆2 = 2.8334 ; il punto di equilibrio considerato (e quindi il sistema
linearizzato) risultano instabili per la presenza di un autovalore a parte reale positiva.
2. Controllo in retroazione di stato

Figura 2: Controllo in retroazione di stato

In questo capitolo ci prefiggiamo l’obiettivo di progettare un controllore tramite la retroazione di


stato, e quindi non attraverso l’usuale tecnica di sintesi diretta del controllore.
Scegliendo l’ingresso di controllo nella forma 𝑢 = −𝐾𝑥 + 𝑣, dove v rappresenta l’ingresso esterno,
ossia il riferimento da inseguire, e dove K rappresenta la matrice di feedback utilizzata per
modificare la matrice dinamica del sistema a ciclo chiuso, si ottengono le seguenti equazioni

𝑥̇ = (𝐴 + 𝐵𝐾)𝑥 + 𝐵𝑢
{
𝑦 = 𝐶𝑥

Per poter controllare il sistema con a tecnica della retroazione di stato, al fine di stabilizzare il
sistema ed imporvi determinate caratteristiche dinamiche, è necessario dapprima andare a verificare
che la coppia (A, B) risulti completamente controllabile, e che il rango della matrice B sia pari al
numero di ingressi m.
Nel caso di sistemi MIMO, si può dimostrare che se la coppia (A, B) è completamente controllabile,
allora la coppia (A+BK, Bv) è anch’essa completamente controllabile, pertanto è possibile scegliere
K e v arbitrariamente.

Definita la matrice 𝒞 = [𝐵 𝐴𝐵 … 𝐴𝑛−1 𝐵] , attraverso i comandi Matlab

è stato possibile osservare che risulta 𝜌(𝒞) = 2 .

Inoltre risulta anche 𝜌(𝐵) = 2 .

Tali risultati consentono quindi di progettare una legge di controllo del tipo 𝑢 = −𝐾𝑥 , in maniera
tale da assegnare ad arbitrio gli autovalori del sistema a ciclo chiuso.
I requisiti scelti per il progetto del controllore sono i seguenti :
- Stabilizzazione del sistema a ciclo chiuso, facendo in modo che il sistema abbia poli a parte
reale negativa;
- Test del controllore in presenza di uno stato iniziale pari al 5% in meno rispetto allo stato di
equilibrio, richiedendo che l’uscita del sistema si stabilizzi entro al più 5s.

Scelti i poli del sistema a ciclo chiuso come 𝑃 = [−3 − 1], attraverso il comando

è stato possibile ottenere gli autovalori della matrice del sistema a ciclo chiuso [𝐴 − 𝐵𝐾] nelle
posizioni desiderate.

Lo schema di controllo è stato progettato come illustrato in figura :

Figura 3: Schema di controllo State-feedback

I risultati ottenuti sono presentati nelle seguenti pagine:


Figura 4: x1= concentrazione

Figura 5: x2 = temperatura esterna


Figura 6 : u1 = concentrazione in ingresso

Figura 7 : u2= temperatura camicia esterna


3. Osservatore dello stato

Il controllo in retroazione dello stato richiede, ovviamente, che sia disponibile una misura di tutti gli
stati del sistema. Ciò può rappresentare un problema, in particolar modo per sistemi di ordine molto
elevato : in alcuni sistemi reali, la misura di alcune variabili può risultare molto costosa, poco
accurata se non addirittura impossibile.
In questi casi si può ricorrere ad un osservatore dello stato che, a partire da una misura degli
ingressi di controllo e delle uscite del sistema, riesce a stimare il valore delle variabili di stato. Il
progetto di un osservatore può essere realizzato per assegnamento degli autovalori sul sistema
duale.
Un osservatore è un sistema dinamico caratterizzato dalle equazioni

𝑥̂̇ (𝑡) = 𝐴𝑥̂(𝑡) + 𝐵𝑢(𝑡) − 𝐿(𝑦(𝑡) − 𝑦̂(𝑡))

𝑦̂(𝑡) = 𝐶𝑥̂(𝑡) + 𝐷𝑢(𝑡)


Come già detto il progetto della matrice L può essere effettuate mediante assegnamento degli
autovalori sul sistema duale

𝑥̇ (𝑡) = 𝐴𝑇 𝑥(𝑡) + 𝐶 𝑇 𝑢(𝑡)

In virtù di ciò, poiché lo spazio di raggiungibilità del sistema duale coincide col sottospazio di
osservabilità del sistema originale, è necessario verificare che la coppia (A,C) sia completamente
osservabile, ossia che
𝐶
𝐶𝐴
𝜌(𝒪) = [ ]=𝑛

𝐶𝐴𝑛−1

Si è ipotizzato di avere a disposizione una sola delle due uscite per andare a stimare lo stato.
Anche tale condizione è stata opportunamente verificata in Matlab attraverso le istruzioni :

Verificata la condizione sul rango di 𝒪, poiché risultano essere di rango pieno sia essa che C, allor
vale il principio di separazione, per cui è possibile progettare separatamente osservatore e matrice K
di retroazione di stato.
Dai seguenti grafici si può osservare che, pur partendo osservatore ed impianto con stesse
condizioni iniziali, l’errore di stima dello stato risulta essere leggermente polarizzato, ma tale
polarizzazione risulta avere un valor medio nell’ordine di 10−3per il primo stato, 10−6 per il
secondo , di conseguenza sembra risultare accettabile
Lo schema di controllo è il seguente:
I risultati ottenuti, in termini di errore di stima sono riportati nei seguenti grafici :
4. Controllo LQ

Definite le matrici di costo Q e R la matrice di retroazione K può essere agilmente definita in


Matlab, attraverso il comando lqr.
In tal modo si ottiene una matrice 𝐾 = −𝑅 −1 𝐵 𝑇 𝑃̃, dove 𝑃̃ è soluzione dell’ ARE (poiché si
considera il problema su orizzonte infinito) :
𝐴𝑇 𝑃̃ + 𝑃̃𝐴 + 𝑄 − 𝑃̃ 𝐵𝑅 −1 𝐵 𝑇 𝑃̃ = 0
Obiettivo di tale controllo è quello di limitare il più possibile l’ampiezza dell’ingresso di controllo,
in maniera tale da ottenere i risultati desiderati.
Si ipotizza che il sistema si trovi in condizioni iniziali perturbate

0.4750
𝑥0 = [ ]
332.50
Ossia con uno scostamento iniziale pari a -5% del valore di equilibrio.
Poiché il sistema, come precedentemente verificato, risulta essere completamente osservabile e
raggiungibile, risulta possibile progettare K in maniera da rendere il sistema a ciclo chiuso
asintoticamente stabile.
Sono state scelte le seguenti matrici
0.1 0 10 0
𝑄=[ ] 𝑅=[ ]
0 0.01 0 0.01

Risolvendo il problema LQ è stata ottenuta la matrice K:

Ed i poli a ciclo chiuso :

Analizzando i grafici che seguiranno, si vede che il controllo assume valori


𝑢1 ∈ [0.9, 1.8] 𝑢2 ∈ [ 298 , 340]
Ed entrambi si assestano al valore di equilibrio dopo ca. 2 s.
5. Controllo LQG
La sintesi di un controllore LQ prevede che lo stato sia misurabile, nel caso tale ipotesi venisse a
cadere è necessario progettare un osservatore che fornisca una stima dello stato del sistema. Inoltre,
nell’ipotesi in cui sia presente rumore bianco di processo e di misura, lo stimatore ottimo che è
possibile utilizzare è il filtro di Kalman. La sintesi di un controllore LQG prevede, quindi, l’utilizzo
di un osservatore in ambiente stocastico; la stima dello stato viene, poi, utilizzata per il calcolo di
una legge del tipo 𝑢 = −𝐾𝑥̂, dove la matrice di guadagno 𝐾 è stata ottenuta risolvendo un problema
di controllo ottimo.
Verranno ora elencate le diverse ipotesi da verificare per l’utilizzo di tale tecnica di controllo:
𝑥̇ = 𝐴𝑥 + 𝐵𝑢 + 𝑣𝑥 , 𝑥(0) = 𝑥0
{
𝑦 = 𝐶𝑥 + 𝑣𝑦

𝑣𝑥 e 𝑣𝑦 sono segnali aleatori di rumore bianco gaussiano, caratterizzati da valore atteso nullo e
matrici di covarianza 𝑄̃ ≥ 0 ed 𝑅̃ > 0 note. I due segnali aleatori sono inoltre sempre incorrelati;
𝑥0 è una variabile aleatoria gaussiana con valore atteso nullo e matrice di covarianza nota, lo stato
iniziale e i segnali di rumore sono, inoltre, incorrelati;
La funzione obbiettivo da considerare per risolvere il problema LQ è la seguente:
1 𝑇
𝐽 = lim 𝑇 𝐸[∫0 (𝑥 𝑇 𝑄𝑥 + 𝑢𝑇 𝑅𝑢)𝑑𝑡, con 𝑄 ≥ 0 ed 𝑅 > 0;
𝑇→∞

𝑄 = 𝐻 𝑇 𝐻 ≥ 0 tale che la coppia (𝐴, 𝐻) sia rivelabile;


La coppia (𝐴, 𝐵) deve essere stabilizzabile;
𝑄̃ = 𝑀𝑀𝑇 tale che la coppia (𝐴, 𝑀) sia stabilizzabile;
La coppia (𝐴, 𝐶) deve essere rivelabile.
Se tutte le ipotesi sono rispettate, vale il principio di separazione: è, cioè, possibile risolvere il
problema LQ, supponendo che lo stato sia accessibile, e progettare l’osservatore in maniera del tutto
indipendente l’uno dall’altro.
In particolare l’equazione dinamica del filtro di Kalman risulta essere:

𝑥̂̇ = 𝐴𝑥̂ + 𝐵𝑢 + 𝐿̅(𝑦 − 𝐶𝑥̂), con 𝐿̅=Σ̅𝐶 𝑇 𝑅̃ −1, dove Σ̅ ≥ 0 è soluzione dell’equazione algebrica di
Riccati:
𝐴Σ̅ + Σ̅𝐴𝑇 + 𝑄̃ − Σ̅𝐶 𝑇 𝑅̃ −1 𝐶Σ̅ = 0
̅ 𝑥̂, con K
La legge di controllo risulta essere u = −K ̅ = 𝑅 −1 𝐵 𝑇 𝑃̅, dove ̅
P ≥ 0 è soluzione
dell’equazione algebrica di Riccati:
𝐴𝑇 𝑃̅ + 𝑃̅𝐴 + 𝑄 − 𝑃̅ 𝐵𝑅 −1 𝐵 𝑇 𝑃̅ = 0
Le matrici 𝑄 ed 𝑅 sono le stesse considerate nel problema LQ risolto in precedenza, discutiamo
quindi la scelta delle matrici di covarianza del rumore:

deltau1=0.01*u_eq(1);
deltau2=0.01*u_eq(2);
deltax1=0.01*x_eq(1);
deltax2=0.01*x_eq(2);

Q_noise = [deltau1^2 0;
0 deltau2^2];
R_noise = [deltax1^2 0;
0 deltax2^2];

Per prima cosa è stato necessario introdurre una certa deviazione standard, calcolata come l’1%
degli stati (o uscite) e degli ingressi di equilibrio. I quadrati di tali deviazioni standard sono stati
utilizzati come varianze dei segnali di rumore bianco presentati in precedenza.
È stato, poi, necessario verificare le ipotesi elencate sopra: quelle relative alla sintesi del controllo
LQ risultano verificate poiché le matrici di peso sono le stesse utilizzate nella precedente
simulazione. Per quanto riguarda la stabilizzabilità della coppia (𝐴, 𝑀), con 𝑄̃ = 𝑀𝑀𝑇 :
M=[deltax1 0;
0 deltax2];

Mr_2 = ctrb(A,M);
r2 = rank(Mr_2) ;

Il rango della matrice di raggiungibilità risulta essere pari a 2, quindi l’ipotesi è verificata.
Per calcolare la matrice 𝐿̅ è stato utilizzato il comando lqr(), in questo modo è stato possibile
ricavare le matrici dinamiche dell’osservatore da inserire in un blocco simulink del tipo state-space.
Per valutare le prestazioni del sistema di controllo si è supposto che il sistema parta da una
condizione iniziale dx = -x_eq*1/100, cioè con uno scostamento relativo dello stato iniziale
pari a −1%.
Come è possibile notare dalle immagini seguenti, lo stato del sistema linearizzato, nonostante la
presenza del rumore, si mantiene limitato da un certo istante in poi: in particolare 𝛿𝑥1 ∈ [−6, 6] ∗
10−2, mentre 𝛿𝑥2 ∈ [−0.7, 0.7]. Lo stesso vale per l’ampiezza del segnale di controllo: dopo il
transitorio iniziale (necessario a portare lo stato del sistema vicino allo stato di equilibrio), entrambe
le componenti del segnale di controllo si mantengono limitate ad un valore prossimo al valore
assunto all’equilibrio.
L’effetto del rumore sul sistema è evidente: le oscillazioni su stato e ingresso di controllo non si
estinguono mai.

Potrebbero piacerti anche