Tecniche di Controllo
.
Progetti d’esame
Ingg. Silvio Simani e Marcello Bonfè
Dipartimento di Ingegneria
Università di Ferrara
+39 0532 9748 44/39
(silvio.simani,marcello.bonfe)@unife.it
Capitolo 1
Generatore elettrico sincrono
1.1
Modellazione matematica
Si consideri un generatore di energia elettrica, costituito da una macchina sincrona, collegato ad
una rete elettrica di potenza infinita, per la quale cioè si possono considerare costanti la tensione di
esercizio e la frequenza sinusoidale.
La macchina sincrona (v. Figura 1.1.a) è costituita da un rotore, sul quale sono installati dei
magneti permanenti o un avvolgimento di eccitazione (più comune per generatori di potenza elevata),
e da uno statore, sul quale è installato un sistema di avvolgimenti trifase (R, S e T in Figura 1.1.a). In
questi ultimi, se la macchina ruota a velocità costante e l’avvolgimento di rotore F è alimentato con
corrente opportuna per generare il flusso magnetico di eccitazione, sono indotte tensioni sinusoidali.
Quando i terminali della macchina sono collegati ad una rete elettrica che ne assorbe la potenza
prodotta (v. Figura 1.1.b), gli avvolgimenti di statore sono percorsi da correnti sinusoidali le quali, a
loro volta, generano un flusso magnetico che interagisce con quello di rotore, determinando una coppia
elettromagnetica (Te in Figura 1.1.b) opposta a quella meccanica (Tm ) impressa alla macchina ad
esempio da una turbina idraulica. In condizioni stazionarie, le due coppie meccaniche si equivalgono
e la macchina ruota, appunto, a velocità costante (ωm ) erogando una potenza costante (Pe ) alla rete
elettrica, pari alla potenza meccanica (Pm ) entrante a meno degli inevitabili effetti dissipativi nella
macchina stessa.
a)
b)
Figura 1.1: Generatore sincrono: sezione schematica e grandezze elettro-meccaniche
Nell’ipotesi di tensioni e correnti puramente sinusoidali, è possibile analizzare le grandezze considerate dal punto di vista vettoriale, con il metodo detto dei fasori. In particolare, se il generatore
1-1
è connesso ad una rete elettrica in grado di assorbire potenza (teoricamente) infinita (v. Figure
1.2 e 1.3), l’angolo del fasore della tensione di rete (avente appunto modulo e fase costanti) si può
considerare come l’angolo nullo di riferimento.
Figura 1.2: Schema di interconnessione di un generatore sincrono ad una rete di potenza infinita
Figura 1.3: Circuito equivalente per un generatore sincrono connesso ad una rete di potenza infinita
Definendo come Xd e Xq le reattanze nella macchina della parte attiva e reattiva, l’equazione dei
fasori descritti in Figura 1.4 (nel piano d − q il cui asse d è orientato come il flusso di rotore) è:
E = U + jXd I
o, in forma polare:
Eq (cos θ + j sin θ) = U + Xd I(sin ϕ + j cos ϕ)
nella quale θ è l’angolo tra la tensione indotta E e l’asse reale (allineato con U ), mentre ϕ è l’angolo
tra la corrente di macchina I e l’asse reale. Poichè la potenza attiva generata è:
Pe = U I cos ϕ
confrontando quest’ultima con la parte immaginaria dell’equazione in forma polare si può scrivere:
Pe =
U Eq
sin θ
Xd
Inoltre, per una macchina con una sola coppia di poli di statore, l’angolo elettrico θ tra il fasore
della tensione di rete e quello della tensione indotta nella macchina è pari all’angolo meccanico θm tra
il flusso magnetico di rotore e quello di statore, che determina la coppia elettromagnetica. Tale angolo
1-2
Figura 1.4: Diagramma dei fasori di tensione di rete e indotta nel generatore sincrono
viene anche definito angolo di carico. Pertanto, è possibile scrivere l’equazione fondamentale della
dinamica elettromeccanica del generatore sincrono, quella appunto dell’angolo di carico, partendo
dal bilancio delle coppie:
J θ̈m = J θ̈ = Tm − Te − Td
nella quale J è il momento di inerzia del rotore e Td = bθ̇ è la coppia di attrito. Moltiplicando il
tutto per la velocità di rotazione ωm (= ω):
ωJ θ̈ = Pm − Pe − Pd
(1.1)
essendo in generale P = T ω. Richiamando l’espressione della potenza generata vista in precedenza
e considerando i valori numerici dei parametri normalizzati rispetto alla tensione di rete U , alla
potenza nominale della macchina P0 e alla velocità nominale ω0 , è possibile esprimere l’equazione
1.1 come segue:
M θ̈ = Pm − Dθ̇ − η1 Eq sin θ
(1.2)
nella quale M (coefficiente inerziale), D (coefficiente di smorzamento) e η1 sono costanti adimensionali. L’equazione 1.2 è detta anche swing equation nell’analisi degli impianti di generazione elettrica,
in quanto descrive le oscillazioni del rotore di un generatore sincrono in funzione di disturbi sulle
linee di trasmissione o sui carichi elettrici e meccanici. Si può notare come tale equazione sia analoga all’equazione dinamica di un pendolo. Tuttavia, a differenza del pendolo, il generatore sincrono
può essere controllato unicamente variando la tensione Eq (ipotizzando che la potenza meccanica
entrante Pm sia costante). Tuttavia, anche la Eq non può essere manipolata direttamente, ma è
necessario agire sul flusso di eccitazione, tramite la tensione di alimentazione EF . L’effetto della variazione di flusso sulla tensione Eq può essere descritto in modo semplificato con la seguente
equazione differenziale del primo ordine:
τ Ėq = −η2 Eq + η3 cos θ + EF
(1.3)
nella quale τ è una costante di tempo, η2 ed η3 sono costanti adimensionali (sempre nell’ipotesi di
grandezze normalizzate rispetto a valori nominali) che tengono conto delle reattanze nel circuito e
della corrente Iq (ipotizzata costante).
Imponendo le seguenti scelte sulle variabili di stato, ingresso ed uscita: x1 = θ, x2 = θ̇, x3 = Eq ,
y = x1 e u = EF , si ottiene il seguente modello nonlineare nello spazio degli stati, affine nel controllo
e SISO:
1-3
dx1
dt
dx2
dt
dx3
dt
= x2
Pm
D
η1
−
x2 −
x3 sin x1
M
M
M
η2
η3
1
= − x3 +
cos x1 + u
τ
τ
τ
=
(1.4)
del tipo:
ẋ
y
con x = [ x1
x3 ]T = [ θ
x2
f
=
b =
h
1.2
[0
Eq ]T e
θ̇
Pm
M
[ x2
0
= f (x) + b(x)u
= h(x)
−
D
M x2
−
η1
M x3
−
sin x1
η2
τ x3
+
η3
τ
cos x1 ]T
1 T
τ ]
= x1
Analisi dell’equilibrio
L’obiettivo di controllo per un generatore sincrono è solitamente il mantenimento di una certa tensione ai terminali della macchina (x3 = Eq ). Pertanto, si può ipotizzare che venga fissato un valore
di riferimento x3d e che, ponendo f (x) = 0, si determini di consequenza il valore di riferimento per
x1d (= θ), che dipenderà dal valore della potenza meccanica in ingresso, essendo infatti:
Pm
η1
−
x3d sin x1d = 0
M
M
e pertanto:
x1d = arcsin
Pm
η1 x3d
Il valore di equilibrio di x2 sarà sempre pari a zero, pertanto la famiglia di punti che soddisfa la
condizione di equilibrio è del tipo:
xe =
arcsin
Pm
η1 x3d
T
0
x3d
Si noti che in tale contesto applicativo, essendo x1 = θ l’angolo di carico del generatore, non sono
in genere ammissibili (dal punto di vista pratico) soluzioni di equilibrio per le quali x1 > π/2. Nel
punto di equilibrio considerato, il valore di riferimento dell’ingresso è:
ue =
η2 Pm 1
− η3 cos x1d = η2 x3d − η3 cos x1d
η1 sin x1d
Il calcolo della linearizzazione approssimata permette di ottenere le seguenti matrici:
⎛
0
⎜
⎜ η
1
A=⎜
⎜− M x3d cos x1d
⎝
− ητ3 sin x1d
1
D
−M
0
η1
−M
⎟
⎟
sin x1d ⎟
⎟
⎠
− ητ2
0
1-4
⎞
;
⎛ ⎞
0
⎜ ⎟
⎜ ⎟
⎟
B=⎜
⎜0⎟
⎝ ⎠
1
τ
1.3
Feedback Linearization
Si può dimostrare con alcuni passaggi che il sistema ha grado relativo pari a 3 rispetto all’uscita
y = x1 , pertanto la feedback linearization ingresso-uscita porta anche ad una linearizzazione completa
ingresso-stato. Ponendo come nuove variabili di stato:
D
Pm
η1
−
x2 −
x3 sin x1 ]T
M
M
M
e come uscita y = z1 il sistema è riconducibile ad una forma canonica la cui ultima “riga” è:
z = [z1
z2
z2 ]T = [x1 − x1d
x2
...
ż3 = y = f1 (x) + b1 (x)u
nella quale:
f1
= −
η1
D
x2 x3 cos x1 −
M
M
b1
= −
η1
sin x1
Mτ
Pm
D
η1
−
x2 −
x3 sin x1
M
M
M
−
η
η3
η1
2
sin x1 − x3 +
cos x1
M
τ
τ
...
che può essere trasformata in y = v tramite la legge di controllo u = b−1
1 (v − f1 ), cioè:
Mτ
u=−
η1 sin x1
D
η1
x2 x3 cos x1 +
v+
M
M
D
Pm
η1
−
x2 −
x3 sin x1
M
M
M
η
η3
η1
2
sin x1 − x3 +
cos x1
+
M
τ
τ
o anche in forma più compatta (ricordando che cot(x) = cos(x)/ sin(x)):
u=−
D τ x3
D 2 τ x2
M vτ
DP τ
+
− τ cot(x1 ) x2 x3 −
+
+ x3 η2 − cos(x1 ) η3
η1 sin(x1 )
M
M η1 sin(x1 ) M η1 sin(x1 )
Si noti che imporre una condizione di regime y = 0, che corrisponde anche a portare nell’origine
il vettore di stato z, equivale a portare il sistema originario nella condizione di equilibrio imposta
dal set-point x1d .
NOTA BENE: la linearizzazione è valida nell’intervallo 0 < x1 < π.
1.4
COMPITI DI PROGETTO
1. Controllo LQ: realizzare simulazioni in ambiente Matlab/Simulink del sistema considerato
con controllo di tipo LQ, progettato per l’approssimazione lineare definita da x3d e con matrice
di penalizzazione dello stato Q (3 × 3), scalare di penalizzazione dell’ingresso R e matrice di
penalizzazione stato-ingresso N (3 × 1) a piacere. Verificare inoltre l’effetto di variazioni di tali
matrici sulle prestazioni del controllore.
N.B.: si ricordi che essendo ue = 0 nel punto di equilibrio, lo schema di controllo da
implementare è quello della slide 6 nelle “Note Applicative” presentate a lezione.
2. Controllo con Feedback Linearization: implementare la legge di controllo linearizzante
descritta alla sezione 1.3 e sfruttare l’ingresso fittizio v per realizzare un ulteriore anello di
controllo per la regolazione in y = 0, utilizzando un semplice controllore lineare oppure un
controllore Sliding Mode.
...
N.B.: si ricordi che y = v, pertanto una superficie di sliding idonea può essere:
S = ÿ + 2λẏ + λ2 y
1-5
in base alla ...
quale la legge di controllo per l’ingresso fittizio v sarà del tipo (il termine di
feedforward y d non si considera in quanto identicamente nullo):
v = −2λÿ − λ2 ẏ − Ksign(s)
3. Controllo con Reti Neurali OPPURE Logica Fuzzy (A SCELTA LIBERA): una volta
ottenute buone prestazioni per almeno uno dei due controllori richiesti ai punti precedenti, lo
studente può scegliere se impostare il progetto di una Rete Neurale in grado di stabilizzare
il sistema, almeno entro determinati limiti sulle condizioni di funzionamento, oppure di un
controllore Fuzzy.
Per quanto riguarda la Rete Neurale, si suggerisce di provare con il metodo del Supervised
Learning, acquisendo dati di training con uno dei due modelli ottenuti in precedenza, al quale
siano applicate delle variazioni random (di entità percentuale tale da non rendere il sistema
instabile) sul set-point. NOTA BENE: tali variazioni devono essere applicate con un blocco
Simulink Random Number, la cui varianza sia non troppo grande da rendere instabile il sistema e non troppo piccola da non avere influenza sulle variazioni dell’uscita; inoltre, il tempo di
campionamento di tale blocco deve essere non troppo piccolo e non troppo grande: le variazioni devono permettere all’uscita di riportarsi ad un valore di regime prossimo al set-point.
Verificare inoltre l’effetto di modifiche al numero di neuroni della rete o ai dati di training sulle
prestazioni del controllore.
In alternativa, lo studente può scegliere di impostare il progetto di un controllore con Logica
Fuzzy, utilizzando ad esempio un sistema adattativo di tipo ANFIS, in base a quanto supportato
dal Fuzzy Logic Toolbox di Matlab. Qualora il metodo ANFIS non ottenga buone prestazioni o
l’algoritmo adattativo non converga, si può provare ad implementare un Fuzzy Gain Scheduling,
che prevede di sfruttare tecniche di progetto per controllori lineari (es. LQ) per ottenere i
parametri di alcuni regolatori validi per rispettive approssimazioni lineari con diversi valori
del set-point. Tali valori del set-point corrisponderanno poi ai valori centrali delle funzioni
membership per la fuzzificazione dell’ingresso del regolatore Fuzzy, il quale potrà combinare i
controllori lineari grazie all’approccio Sugeno, con regole del tipo:
IF x1d is x1d THEN u = Ki (xd − x) + ud,i
NOTA BENE: si noti che nel Fuzzy Logic Toolbox di Matlab, i sistemi Sugeno hanno funzioni
di output del tipo:
out = a · in1 + b · in2 + · · · + c
Pertanto, per implementare i vari regolatori lineari, sarà necessario che il sistema Fuzzy abbia
come ingressi tutti gli elementi di xd e di x e che i parametri a, b . . . siano determinati correttamente in base agli elementi delle varie matrici Ki (es. se il primo ingresso in1 viene associato
a x1d , il parametro a dovrà essere Ki,1 , cioè il primo elemento della matrice, mentre se in1
viene associato a x1 , a dovrà essere −Ki,1 . La costante c sarà invece sempre pari a ud,i ).
4. ESPERIMENTI COMPARATIVI: verificare le prestazioni e la robustezza di tutti i sistemi
di controllo progettati, rispetto a variazioni (considerate separatamente):
• di ± 0.05 sulla potenza meccanica entrante Pm
• di ± 0.05 sul set-point x3d
• di ± 10 % sul coefficiente inerziale M .
Tali variazioni possono essere applicate come gradini durante la simulazione, oppure modificando i valori iniziali della simulazione, purchè sia riportato nella relazione finale un grafico
comparativo che evidenzi la differenza di comportamento tra la condizione nominale e quella
perturbata.
NOTA BENE: le variazioni sui parametri devono essere applicate solo al modello fisico, NON
al sistema di controllo, che deve rimanere con gli stessi parametri di progetto ottenuti nel caso
nominale.
1-6
1.5
PARAMETRI NUMERICI DA UTILIZZARE
Dato il numero di matricola dello studente con sei cifre m1 m2 m3 m4 m5 m6 , fissare i parametri del
modello come segue:
• Coefficiente inerziale: M = 0.m1 m2 m3
• Coefficiente di smorzamento: D = M × 3. m6 (se m6 = 0 sostituirla con 5)
• Coefficiente η1 = 1. m5 (se m5 = 0 sostituirla con 8)
• Coefficiente η2 = 2. m4 (se m4 = 0 sostituirla con 4)
• Coefficiente η3 = 1. m3 (se m3 = 0 sostituirla con 6)
• Costante di tempo τ = m4 . m5 (se sia m4 che m5 sono nulle, impostare τ = 5.5)
Indipendentemente da questi parametri invece, fissare:
• Potenza meccanica entrante (nominale): Pm = 0.75
• Condizioni iniziali:
x0 = [x10 x20 x30 ]T = [π/4
• Set-point:
xd = [x1d x2d x3d ]T = [arcsin
1-7
0
0.75
η1 0.88
0.84]T
0 0.88]T
Capitolo 2
Reattore chimico a serbatoio
agitato in continuo (CSTR)
2.1
Modellazione matematica
Un reattore chimico CSTR (Continuous Stirred-Tank Reactor, in italiano reattore a serbatoio agitato
in continuo) è un reattore continuo ideale costituito da un serbatoio alimentato da flusso (generalmente costante) di reagenti e dotato di un sistema di agitazione, come schematizzato in Figura
2.1.
Figura 2.1: Continuous Stirred-Tank Reactor (CSTR)
Nel modellare matematicamente questo tipo di sistemi, gli effetti dinamici che è necessario
considerare sono in generale:
1. Conservazione di massa ed energia: le quantità entranti ed uscenti sono bilanciate dalle variazioni sulle quantità immagazzinate.
2. Meccanismi di trasporto: massa o energia nei composti chimici si trasferiscono per effetto delle
differenze nelle variabili termodinamiche (temperature, pressione o concentrazione).
2-1
3. Reazioni chimiche: le masse dei componenti e dei reagenti si trasformano in masse di prodotto
chimico risultante. Tale processo è inoltre correlato alla produzione o al consumo di entalpia
(o energia).
4. Cambiamenti di fase: evaporazione, condensamento, fusione, ebbollizione, cristallizzazione, ecc.
sono correlati alla produzione o al consumo di entalpia (o energia).
Nel seguito, verrà considerato un reattore biologico, nel quale si desidera produrre una determinata massa di un micro-organismo, la cui produzione richiede il consumo di un determinato composto
di substrato (es. sostanze zuccherine). Il tasso di crescita del micro-organismo dipende in modo fortemente nonlineare e nonmonotono dalla concentrazione del substrato. Pertanto, anche ipotizzando
che la reazione organica sia isoterma, cosı̀ che non sia necessario modellare il bilancio energetico,
il modello matematico anche di un semplice CSTR per processi organici è caratterizzato da una
significativa nonlinearità.
Considerando che il reattore venga alimentato in modo continuo con un flusso F di una soluzione
nella quale la concentrazione del substrato SF sia costante, si possono definire come variabili di stato
la concentrazione X del micro-organismo nel volume del reattore e la concentrazione del substrato
S. Imponendo la legge di conservazione della masse ad entrambe le quantità X e S, si ottengono le
equazioni:
dX
dt
= µ(S)X −
dS
dt
= −
XF
V
µ(S)X
(SF − S)F
+
Y
V
nella quale V è il volume complessivo (ipotizzato costante), Y è il coefficiente di resa del prodotto organico e µ(S) è il tasso di crescita del micro-organismo in funzione della concentrazione del
substrato. Quest’ultima funzione è generalmente descritta da una relazione del tipo
µ(S) =
µmax S
K1 + S + K 2 S 2
Considerando come variabili di stato, ingresso e uscita:
x = [x1
x2 ]T = [X
S]T
u=F
y = x1
si ottiene il seguente modello nonlineare nello spazio degli stati, affine nel controllo e SISO:
dx1
dt
dx2
dt
µmax x2 x1
x1 u
−
K1 + x2 + K2 x22
V
µmax x2 x1
(SF − x2 ) u
= −
+
(K1 + x2 + K2 x22 ) Y
V
=
del tipo:
ẋ
y
= f (x) + b(x)u
= h(x)
con:
2-2
(2.1)
f
=
b =
h
2.2
−
max x2 x1
[ K1µ+x
2
2 +K2 x
2
[ − xV1
µmax x2 x1
(K1 +x2 +K2 x22 )Y
]T
(SF −x2 ) T
]
V
= x1
Analisi dell’equilibrio
Nel determinare gli stati di equilibrio di un sistema come quello considerato, si prevede solitamente
di imporre le condizioni per le quali la produttività del reattore è massimizzata. In particolare,
nel caso considerato si può considerare che come parametro da ottimizzare la quantià XF . Poichè
tale quantità è soggetta al vincolo dato dalle equazioni dinamiche 2.1 all’equilibrio (f (x) = 0), la
procedura di selezione del punto di equilibrio ottimo richiede la soluzione di un problema di ottimo,
che non verrà descritto esplicitamente. Il risultato di questa ottimizzazione è la seguente scelta per
il punto di equilibrio:
√
2 K K +S K1
−2K1 +2 K12 +SF
1 2
F
S0 = 12
SF K2+1
(SF − S0 )Y
X0
=
F0
= µ(S0 )V
Pertanto il punto di equilibrio corrisponde a:
xe = [ X 0
S0 ]
T
e:
u e = F0
Il calcolo della linearizzazione approssimata nel punto considerato permette di ottenere le seguenti
matrici:
⎛
⎞
µ
X0 (K2 S02 −K1 )
0
− max
2 +S +K )2
(K
S
2
0
1
0
⎜
⎟
⎟
A=⎜
⎝
⎠
2
S
(Y
+K
(Y
S
−X
))+K
(Y
S
+X
)
µ
( 0
2
0
0
1
0
0 ) m
S0
− (K2 Sµ2 max
−
2
+S0 +K1 )Y
Y (K +S +K S 2 )
0
⎛
− XV0
B=⎝
⎞
1
0
2
0
⎠
SF −S0
V
2.3
Feedback Linearization
Rispetto all’ingresso considerato, il sistema ha grado relativo pari a 1, pertanto la feedback linearization ingresso-uscita non equivale ad una linearizzazione completa ingresso-stato. Sarebbe possibile
ottenere la linearizzazione completa ponendo come uscita la seguente combinazione degli stati:
V (x2 − SF )
x1
Tuttavia, con questa scelta la struttura completa del controllo linearizzante risulta molto complessa. Infatti, le nuove variabili di stato sarebbero:
y = h (x) =
z = [z1
z2 ]T = [
V (x2 − SF )
x1
−
2-3
x2 µm V (−Y SF + x2 Y + x1 ) T
]
x1 Y (K2 x22 + K1 + x2 )
e la legge di controllo, in grado di trasformare la dinamica in modo che sia ż1 = z2 e ż2 = v, sarebbe:
V x2 µ2m x22 (K2 (x2 Y − x1 ) + Y ) + K1 (x2 Y + x1 ) (−Y SF + x2 Y + x1 ) − vx1 Y 2 K2 x22 + K1 + x2 3
u=
Y (K2 x22 − K1 ) (K2 x22 + K1 + x2 ) µm (SF − x2 ) (Y SF − x2 Y − x1 )
(2.2)
Peranto, la procedura di linearizzazione ingresso-uscita, a partire dall’uscita di riferimento di
maggiore interesse y = x1 , rimane una scelta di progetto più ragionevole. In questo caso, non
essendo possibile determinare una trasformazione di coordinate completa in base alle sole derivate
successive di y, verrà descritta nel seguito solamente la legge di controllo linearizzante, più semplice
da realizzare rispetto alla precedente:
u=−
Vv
V x2 µm
+
x1
K1 + x2 + K2 x2 2
(2.3)
Con questa legge di controllo, si ottiene ẏ = v, la cui dinamica dovrà essere stabilizzata da una
legge di controllo lineare (o Sliding Mode) che imponga una condizione di regime y = X0 per il punto
di equilibrio considerato.
2.4
COMPITI DI PROGETTO
1. Controllo LQ: realizzare simulazioni in ambiente Matlab/Simulink del sistema considerato
con controllo di tipo LQ, progettato per l’approssimazione lineare, definita da X0 , S0 e F0 ,
e con matrice di penalizzazione dello stato Q (2 × 2), scalare di penalizzazione dell’ingresso
R e matrice di penalizzazione stato-ingresso N (2 × 1) a piacere. Verificare inoltre l’effetto di
variazioni di tali matrici sulle prestazioni del controllore.
N.B.: si ricordi che essendo ue = 0 nel punto di equilibrio, lo schema di controllo da
implementare è quello della slide 6 nelle “Note Applicative” presentate a lezione.
2. Controllo con Feedback Linearization: implementare una legge di controllo linearizzante
a scelta tra le due possibili descritte rispettivamente dalla Equazione 2.2 e 2.3, sfruttando
l’ingresso fittizio v per realizzare un ulteriore anello di controllo per la regolazione in y = h(xe ),
utilizzando un semplice controllore lineare oppure un controllore Sliding Mode.
3. Controllo con Reti Neurali OPPURE Logica Fuzzy (A SCELTA LIBERA): una volta
ottenute buone prestazioni per almeno uno dei due controllori richiesti ai punti precedenti, lo
studente può scegliere se impostare il progetto di una Rete Neurale in grado di stabilizzare
il sistema, almeno entro determinati limiti sulle condizioni di funzionamento, oppure di un
controllore Fuzzy.
Per quanto riguarda la Rete Neurale, si suggerisce di provare con il metodo del Supervised
Learning, acquisendo dati di training con uno dei due modelli ottenuti in precedenza, al quale
siano applicate delle variazioni random (di entità percentuale tale da non rendere il sistema
instabile) sul set-point. NOTA BENE: tali variazioni devono essere applicate con un blocco
Simulink Random Number, la cui varianza sia non troppo grande da rendere instabile il sistema e non troppo piccola da non avere influenza sulle variazioni dell’uscita; inoltre, il tempo di
campionamento di tale blocco deve essere non troppo piccolo e non troppo grande: le variazioni devono permettere all’uscita di riportarsi ad un valore di regime prossimo al set-point.
Verificare inoltre l’effetto di modifiche al numero di neuroni della rete o ai dati di training sulle
prestazioni del controllore.
In alternativa, lo studente può scegliere di impostare il progetto di un controllore con Logica
Fuzzy, utilizzando ad esempio un sistema adattativo di tipo ANFIS, in base a quanto supportato
dal Fuzzy Logic Toolbox di Matlab. Qualora il metodo ANFIS non ottenga buone prestazioni o
l’algoritmo adattativo non converga, si può provare ad implementare un Fuzzy Gain Scheduling,
che prevede di sfruttare tecniche di progetto per controllori lineari (es. LQ) per ottenere i
2-4
parametri di alcuni regolatori validi per rispettive approssimazioni lineari con diversi valori
del set-point. Tali valori del set-point corrisponderanno poi ai valori centrali delle funzioni
membership per la fuzzificazione dell’ingresso del regolatore Fuzzy, il quale potrà combinare i
controllori lineari grazie all’approccio Sugeno, con regole del tipo:
IF x1d is x1d THEN u = Ki (xd − x) + ud,i
N.B.: si noti che nel Fuzzy Logic Toolbox di Matlab, i sistemi Sugeno hanno funzioni di output
del tipo:
out = a · in1 + b · in2 + · · · + c
Pertanto, per implementare i vari regolatori lineari, sarà necessario che il sistema Fuzzy abbia
come ingressi tutti gli elementi di xd e di x e che i parametri a, b . . . siano determinati correttamente in base agli elementi delle varie matrici Ki (es. se il primo ingresso in1 viene associato
a x1d , il parametro a dovrà essere Ki,1 , cioè il primo elemento della matrice, mentre se in1
viene associato a x1 , a dovrà essere −Ki,1 . La costante c sarà invece sempre pari a ud,i ).
4. ESPERIMENTI COMPARATIVI: verificare le prestazioni e la robustezza di tutti i sistemi
di controllo progettati, rispetto a variazioni (considerate separatamente):
• di ± 5 % sul set-point X0
• di ± 5 % sulla concentrazione di substrato SF
• di ± 5 % sul coefficiente di resa Y
Tali variazioni possono essere applicate come gradini durante la simulazione, oppure modificando i valori iniziali della simulazione, purchè sia riportato nella relazione finale un grafico
comparativo che evidenzi la differenza di comportamento tra la condizione nominale e quella
perturbata.
NOTA BENE: le variazioni sui parametri devono essere applicate solo al modello fisico, NON
al sistema di controllo, che deve rimanere con gli stessi parametri di progetto ottenuti nel caso
nominale.
2.5
PARAMETRI NUMERICI DA UTILIZZARE
Dato il numero di matricola dello studente con sei cifre m1 m2 m3 m4 m5 m6 , fissare i parametri del
modello come segue:
• Volume del reattore: V = m6 litri (se m6 = 0 sostituirla con 5)
• Concentrazione di substrato nel flusso in ingresso: SF = m4 m5 grammi/litro (se sia m4 che
m5 sono nulle, impostare SF = 45)
• Coefficiente di resa: Y = 0.m3 (se m3 = 0 sostituirla con 6)
• K1 = 0.m1 m2 (se sia m1 che m2 sono nulle, impostare K1 = 0.06)
• K2 = 0.m5 (se m5 = 0 sostituirla con 4)
• Massimo tasso di crescita: µmax = m3 .m4 litri/ora (se sia m1 che m2 sono nulle, impostare
µmax = 2.56)
In funzione di questi parametri, calcolare il punto di equilibrio come descritto in Sezione 2.2:
• Condizioni iniziali:
x0 = [X0 × 1.1
• Set-point:
xd = [X0
2-5
S0 × 1.1]T
S0 ]T