Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
COMPLEMENTI DI CONTROLLI
Controllo di un reattore
chimico
1. Introduzione
1.1 Modello linearizzato
2. Controllo in retroazione di stato
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
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)
𝑑𝑡 𝑉𝜌𝑐𝑝 𝑉 𝜌𝑐𝑝
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);
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
𝑥̇ = (𝐴 + 𝐵𝐾)𝑥 + 𝐵𝑢
{
𝑦 = 𝐶𝑥
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.
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.
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
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
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
𝑣𝑥 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;
𝑇→∞
𝑥̂̇ = 𝐴𝑥̂ + 𝐵𝑢 + 𝐿̅(𝑦 − 𝐶𝑥̂), 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.