• Non ci sono risultati.

METODO SEQUENZIALE

N/A
N/A
Protected

Academic year: 2021

Condividi "METODO SEQUENZIALE"

Copied!
15
0
0

Testo completo

(1)

METODO SEQUENZIALE

2.1 Introduzione

Il concetto di “sequential design” fu proposto, a partire dagli anni ’70, da Mayne, Bhalodia e Weber, Bernstein, Chiu e Arkun.

L’idea di base è molto semplice: trattare un problema di design multivariabile n come una sequenza di n problemi S.I.S.O.

n

×

Pertanto, possono essere utilizzate le familiari tecniche sviluppate per la taratura dei controllori per sistemi ad un ingresso ed una uscita.

Shen e Yu presentano una tecnica di taratura di controllori S.I.S.O. per sistemi multivariabili, basata sulla tecnica del relais sviluppata precedentemente da Astrom e Hagglund.

La caratteristica fondamentale è che questo metodo non richiede alcuna conoscenza a priori del processo in questione. Infatti l’identificazione del processo e la taratura dei controllori vengono effettuate simultaneamente. Viene utilizzato un relais per perturbare un anello alla volta, mentre tutti gli altri sono chiusi, in modo tale da portare il sistema in condizioni critiche, ovvero di marginale stabilità. L’identificazione del processo e la taratura dei controllori sono basati sulle condizioni critiche. La procedura viene poi ripetuta fino alla convergenza.

Questa procedura ha il vantaggio di consentire l’identificazione delle reali dinamiche dell’impianto in quanto tiene conto delle interazioni provenienti dagli altri anelli.

Un ulteriore vantaggio è rappresentato dal fatto che, considerando un sistema di dimensioni n n× , si rende necessario identificare soltanto funzioni di trasferimento. n

Come già accennato, questa procedura prevede la predisposizione dei controllori su ciascun loop in sequenza; più precisamente, si effettua il test del relais sul primo loop mentre il secondo è aperto e si sintonizza il controllore relativo, in accordo alle regole di Ziegler-Nichols o altro tipo di regole, sfruttando la conoscenza del guadagno e della frequenza critici, derivante dal test con il relais. Posto, quindi, in automatico il primo loop, si effettua il test del relais sul secondo, e quando anche il secondo controllore è stato opportunamente tarato, si riparte dal primo loop reiterando la procedura. Generalmente si trova un nuovo insieme di valori per le costanti di tuning del controllore sul primo anello. La procedura viene ripetuta fino alla convergenza dei coefficienti dei P.I.D. su entrambi gli anelli. In genere questa si verifica dopo tre o quattro cicli.

Appare evidente come l’approccio appena descritto per grandi linee, renda il problema semplice, in quanto tratta il sistema M.I.M.O. come una sequenza di sistemi S.I.S.O. per i quali l’utilità e l’affidabilità della tecnica del relais è garantita.

(2)

2.2 Descrizione dettagliata

Si descrive in dettaglio la procedura di autotuning sequenziale per sistemi multivariabili.

Si considera, per semplicità, un sistema 2 2× , in quando l’estensione della procedura a sistemi di ordine maggiore è immediata.

1. Si effettua il test del relais sul primo loop, mentre il secondo è aperto e si calcolano i valori del guadagno e della frequenza critici Ku1 e ωu1.

2. Si procede alla taratura dei parametri del controllore P.I. presente sul primo anello in accordo alle equazioni:

1 1 1 1 2.2 2 1.2 u C I u K K π τ ω = =

che rappresentano le regole di Ziegler e Nichols.

3. Si effettua il test del relais sul secondo anello mentre il primo è in funzionamento automatico, determinando così i valori di Ku2 e ωu2.

4. Si procede alla taratura dei parametri del controllore P.I. presente sul secondo anello in accordo alle equazioni:

2 2 2 2 2.2 2 1.2 u C I u K K π τ ω = =

5. Si effettua il test del relais sul primo anello mentre il secondo è in automatico.

6. Si riparte dal passo 2 e si continua il ciclo fino alla convergenza delle costanti di tuning.

In figura 2.1 sono rappresentate le fasi principali dell’algoritmo, al fine di comprendere meglio quanto appena esposto.

Si parte da uno stato iniziale indicato con Init e si prosegue con gli stati S1 e S2. Se non si è ancora ottenuta la convergenza dei parametri, si ripete il ciclo partendo da S1.

(3)

(Init)

+ e2

+ e2

+ e2

+ e1

-

u

1

+

+

+

y

2

+

u

2

y

2

y

1

r

1

+ e1

r

2

+

+

+

+

u

1

-

u

2

-

-

r

1

r

2

y

2

y

1

+

+

+

+

u

1

u

2

-

r

1 controllore g11 g21 g12 g22 g11 g21 g12 g22 Controllore g11 g21 g12 g22

(S1)

y

1

(S2)

Figura 2.1

(4)

2.3 Implementazione

La tecnica di autotuning descritta in precedenza è stata implementata a mezzo del diagramma Simulink riportato in figura 2.2.

Si ha, su ogni canale, un blocco switch che consente di commutare tra il relais ed il controllore.

Figura 2.2

Il blocco indicato con valutak1 (level 1) che compare nel diagramma sopra descritto, prende in ingresso la prima uscita del sistema, indicata con y, un segnale rel1 che vale uno 1 quando sul primo anello è presente il relais e un segnale di trigger rel2 che scandisce il raggiungimento della condizione di regime sull’uscita stessa mentre si sta effettuando il test con il relais, ovvero vale 1 quando l’oscillazione in uscita è stabile. Si assume che ciò avvenga entro 80 secondi. Tale istante coincide con l’istante di commutazione fra controllore e relais nel secondo anello.

Le uscite sono rappresentate dai guadagni proporzionale, integrale e derivativo del controllore PID relativo all’anello considerato.

Il blocco valutak2 è del tutto analogo al precedente con le uniche differenze che l’uscita del sistema che prende in ingresso è la seconda e che i segnali rel1 e rel2 sono scambiati: infatti in questo caso il raggiungimento della condizione di regime sulla seconda uscita è scandito dal fronte in salita di rel1.

È quindi sufficiente osservare la realizzazione interna di uno solo dei due blocchi, riportata in figura 2.3.

(5)

Figura 2.3

Il blocco indicato in figura 2.3 con il nome di calcap (level2), prende in ingresso il segnale rel1 sopra descritto e l’uscita del sistema relativa al canale in questione e di quest’ultima calcola, istante per istante, il periodo e l’ampiezza di picco, che rappresentano le sue uscite.

A questo scopo, è stato realizzato come mostrato in figura 2.4.

Figura 2.4

Il blocco amp (level 3) è abilitato dal segnale rel1, ovvero ogni volta che nel loop considerato viene inserito il relais, fino alla commutazione da questo al controllore.

(6)

La Matlab function ampiezza, restituisce istante per istante il valore massimo assunto dal segnale di uscita del sistema globale y. A questo scopo confronta il valore attuale di y con il valore che al passo precedente rappresentava il massimo e aggiorna quest’ultimo solo se il primo risulta essere maggiore del secondo.

Figura 2.5

Il blocco periodo (level 3), si occupa del calcolo del periodo del segnale di uscita y. A tal fine calcola la lunghezza dell’intervallo di tempo compreso fra due istanti consecutivi in cui il segnale y attraversa lo zero sul fronte in salita.

Si tratta infatti di un sottosistema dotato di trigger, costituito appunto dal segnale y, che ha come ulteriori ingressi l’istante di tempo corrente e quello relativo al colpo di trigger precedente e come uscite quest’ultimo e la differenza fra i due, ovvero il periodo.

Quanto detto risulta più chiaro dall’osservazione della struttura interna del blocco appena descritto, riportata in figura 2.6.

Figura 2.6

Il blocco kpid (level 2) che compare all’interno di entrambi i blocchi valutak1 e valutak2 sopra descritti, prendendo in ingresso l’ampiezza e il periodo del segnale di uscita y del sistema globale, calcola, nell’istante in cui tale segnale è a regime, le costanti di tuning in accordo alle regole di Ziegler-Nichols per controllori PI.

La sua realizzazione interna è riportata in figura 2.7.

L’istante in cui si raggiunge la condizione di regime sull’uscita coincide con l’istante di commutazione da controllore a relais sull’altro loop, ed è per questo che il segnale di trigger, che scandisce il verificarsi di tale evento, coincide con rel2.

Si noti che i segnali indicati, nel diagramma di figura 2.7, con pu1 e con ku1 rappresentano rispettivamente il periodo e la frequenza critici.

(7)

Figura 2.7

Il blocco controllo (level1), che compare sulla destra nel diagramma di figura 2.2, genera quattro segnali di controllo. I primi due sono i già descritti rel1 e rel2, che valgono 1 per tutta la durata del test del relais rispettivamente sul primo e sul secondo loop. Il terzo va a 1 nella fase iniziale, dopo il primo test del relais sul primo anello, effettuato con il secondo aperto, e tale rimane per tutta la durata della simulazione.

Il quarto e ultimo segnale va a 1 quando i parametri ottimali per i due controllori P.I.D. sono stati determinati, per generare un ingresso a gradino sul secondo loop, al fine di osservare le risposte del sistema. Il blocco Simulink appena menzionato è realizzato al suo interno come mostrato in figura 2.8.

Figura 2.8

Sui segnali val1 e val2 viene generato un fronte in salita ogni volta che si raggiunge la condizione di regime rispettivamente sulla prima e sulla seconda uscita del sistema globale durante il test con il relais. Avendo assunto che tale condizione venga raggiunta entro 80 secondi dalla introduzione del relais nel loop in questione, si utilizzano due blocchetti Simulink Pulse Generator. Il primo genera un’onda quadra di periodo pari a 160 secondi e ampiezza unitaria sfasata di 80 secondi, il secondo un’onda analoga, ma sfasata di 160 secondi.

(8)

Sul segnale indicato con c viene generato un gradino nell’istante t=400 secondi, assumendo che dopo un tale intervallo di tempo la convergenza dei parametri di tuning sia avvenuta su entrambi i canali. Si vedrà come tale segnale determini la generazione del gradino in ingresso al secondo loop.

Il blocco indicato con Chart è un diagramma Stateflow che consente di commutare opportunamente tra gli stati descritti nel paragrafo precedente.

Ciò risulta più chiaro se si osserva in figura 2.9 la sua realizzazione interna. sequential/controllo/Chart P End stato=9 S1 stato=1 cond=cond+1 Step stato=10 S2 stato=2 cond=cond+1 Init stato=0 cond=0 [val1>0]

[cond==3 && val2>0] [val1>0 && cond<3]

[c==1] [val2>0 && cond<3]

ri nted 10-Apr-2004 22:18:14

Figura 2.9

Si è assunto che la convergenza dei parametri sia ottenibile con 3 sole iterazioni dell’algoritmo. La variabile cond effettua il conteggio delle iterazioni. Gli stati indicati con Init, S1, S2 sono quelli raffigurati in figura 2.1 nel precedente paragrafo.

Più precisamente, il primo corrisponde allo stato di partenza in cui sul primo anello abbiamo un relais, mentre il secondo è aperto; il secondo corrisponde alla situazione in cui sul primo anello abbiamo il controllore tarato con i parametri calcolati al passo precedente, mentre nel secondo anello viene introdotto un relais; il terzo rappresenta il caso opposto in cui sul primo anello viene reintrodotto il relais al fine di effettuare un nuovo test, stavolta tenendo conto delle interazioni provenienti dall’altro anello, mentre su questo è presente il controllore.

Lo stato End viene raggiunto in seguito alla convergenza dei parametri e rappresenta lo stato in cui su entrambi i loop è presente il controllore P.I. tarato con i coefficienti appena calcolati.

Lo stato Step corrisponde alla fase finale in cui viene generato un ingresso a gradino al fine di osservare le risposte del sistema su entrambi i canali.

Come è facilmente deducibile leggendo le condizioni sulle frecce, il passaggio dallo stato Init allo stato S1 avviene sul fronte in salita di val1, ovvero quando il test del relais sul primo anello giunge al termine.

Il passaggio dallo stato S1 allo stato S2 si ha sul fronte in salita di val2, ovvero al termine del test del relais sul secondo anello, a patto che il numero delle iterazioni già effettuate sia inferiore a 3.

(9)

Il passaggio dallo stato End allo stato Step si ha sul fronte della variabile c, la quale viene posta ad 1 dopo un intervallo di tempo oltre il quale si assume la conclusione dell’intera procedura.

Tornando al diagramma di figura 2.8, la Matlab Function mask, prendendo in ingresso lo stato attuale, non fa altro che tradurlo negli opportuni comandi di abilitazione dei vari blocchi switch che compaiono nel diagramma Simulink di figura 2.2, allo scopo di ottenere la situazione corrispondente allo stato in questione, in accordo a quanto appena descritto.

Per completezza se ne riporta il semplice codice. function M= mask(stato) M=zeros(1,4); switch stato case 0 M(1)=1; M(3)=1; case 1 M(2)=1; case 2 M(1)=1; case 9 M(1)=0; M(2)=0; M(4)=0; case 10 M(1)=0; M(2)=0; M(4)=1; end

(10)

2.4 Simulazioni

Esempio 1

Si prende in considerazione il seguente sistema, noto come processo di Wood e Berry:

3 7 3 12.8 18.9 16.7 1 21 1 ( ) 6.6 19.4 10.9 1 14.4 1 s s s s e e s s G s e e s s − − − − ⎛ − ⎞ ⎜ + + ⎟ ⎜ ⎟ = ⎜ − ⎟ ⎜ + + ⎟ ⎝ ⎠

I valori per i coefficienti di tuning dei due controllori P.I. calcolati con la procedura sopra descritta risultano essere: 1 1 2 2 0.6641 0.2017 0.08271 0.007514 p i p i k k k k = = = − = −

Nelle figure 2.10 e 2.11 sono mostrate le uscite che si ottengono applicando al sistema la procedura descritta.

Le oscillazioni iniziali che si osservano su entrambe le uscite sono dovute ai tests effettuati, con il relais, alternativamente sull’uno e sull’altro canale.

(11)

Figura 2.10

Figura 2.11

Nelle figure 2.12 e 2.13 e’ possibile osservare in dettaglio le uscite che si ottengono rispettivamente sul primo e sul secondo canale assumendo che il gradino sul primo canale venga generato nell’ istante t=0.

(12)

Ovviamente i controllori P.I. utilizzati sono stati tarati con i coefficienti calcolati con la procedura di autotuning sopra descritta.

Figura 2.12

(13)

Si consideri, quale secondo esempio, il modello della torre di separazione del metanolo dall’acqua, che risulta essere il seguente:

0.3 1.8 0.35 2.2 1.3 7 1 7 1 ( ) 2.8 4.3 9.5 1 9.2 1 s s s s e e s s G s e e s s − − − − ⎛ − − ⎞ ⎜ + + ⎟ ⎜ ⎟ = ⎜− ⎟ ⎜ + + ⎟ ⎝ ⎠

I valori calcolati per le costanti di tuning dei due controllori P.I. risultano essere:

1 1 2 2 1.165 0.2515 3.491 3.078 p i p i k k k k = − = − = =

Nelle figure 2.14 e 2.15 sono mostrate le uscite del sistema globale.

Le oscillazioni iniziali che si osservano su entrambe le uscite sono dovute ai tests del relais effettuati, alternativamente, sull’uno e sull’altro canale.

Nell’istante t=200 viene generato un ingresso a gradino sul primo canale.

(14)

Figura 2.15

Nelle figure 2.16 e 2.17 sono mostrate in dettaglio le uscite che si ottengono sui due canali assumendo che il gradino sul primo canale venga generato nell’ istante t=0.

Ovviamente i controllori P.I. utilizzati sono stati tarati in accordo ai valori sopra riportati.

(15)

Riferimenti

Documenti correlati

„ Diffusione del metodo a livello nazionale e internazionale. „ Lavoro

Coniche: curve che si possono ottenere come intersezione di un cono con un piano; al variare dell’inclinazione del piano rispetto al cono si possono ottenere

[r]

I protagonisti attivi in Italia all'inizio Novecento erano quelli di cui arrivava più facilmente notizia anche a Parigi. Come si è visto, alcuni di essi partecipavano attivamente

La risoluzione di disequazioni di grado superiore al secondo è possibile se si scompone in fattori il polinomio associato.. In tal caso si studia il segno dei diversi fattori e

ORDINARE LE IDEE DI UN DISCORSO ORDINARE LE IDEE DI UN DISCORSO primo, secondo • in primo luogo, in secondo. luogo da

“inv.norm” di Excel sia per posizionare i punti sulla carta probabilistica normale (precedente passo ii) che per valutare i limiti delle classi del test del  2. Infine, per tutti

Procediamo ora con il calcolo