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