• Non ci sono risultati.

3.1 Introduzione B.L.T.

N/A
N/A
Protected

Academic year: 2021

Condividi "3.1 Introduzione B.L.T."

Copied!
12
0
0

Testo completo

(1)

CAPITOLO 3

B.L.T.

3.1 Introduzione

Una tecnica piuttosto semplice e molto comune per la taratura dei controllori P.I.D. nei sistemi multivariabili, consiste nella ricerca di un opportuno fattore di “detuning” di cui scalare i parametri dei controllori calcolati, per i vari anelli di controllo, senza tener conto delle interazioni, al fine di garantire la stabilità.

Friman e Waller, per esempio, suggeriscono l’utilizzo della ben nota procedura di “autotuning”, basata sull’introduzione di un relais nell’anello di controllo, per stabilire un modello del sistema multivariabile e l’uso di una procedura “trial and error” per determinare il fattore di detuning.

Una procedura più sistematica per determinare questo fattore, invece, è proposta da Luyben per la taratura di controllori P.I. multianello.

Quest’ultima tecnica, nota in letteratura con il nome di B.L.T., ovvero “biggest log modulus”, consiste nella semplice modifica delle ben note regole di Ziegler e Nichols, applicate considerando trascurabili le interazioni, attraverso un fattore calcolato in modo da realizzare un buon compromesso fra stabilità e prestazioni del sistema.

In particolare tale fattore viene determinato in modo da verificare la condizione:

(

)

max max 20 log /1 2 cm L = W +W = N dove: ( ) 1 det( ( ) ( )) W s = − + I+G s C s

ed N è l’ordine del sistema.

La quantità rappresenta una misura di quanto il sistema di controllo risulta essere lontano dalla instabilità.

max cm

L

Questa procedura riesce a fornire una adeguata predisposizione dei controllori con poco sforzo da parte del progettista ed un impiego limitato di risorse di calcolo; è stata provata su un gran numero di sistemi e ha fornito prestazioni accettabili anche se un poco conservative.

Dunque, questo metodo di taratura può essere visto come una tecnica capace di fornire una soluzione preliminare al problema della predisposizione dei controllori nei sistemi multivariabili e può essere usata come termine di paragone (benchmark) per studi comparativi.

(2)

3.2 Descrizione dettagliata

Si descrive ora più in dettaglio la procedura suggerita da Luyben. Il BLT tuning prevede quattro passi fondamentali.

1. Calcolo dei parametri di Ziegler e Nichols per ogni singolo loop. Tali parametri devono essere calcolati secondo le formule:

2.2

2

1.2

ui ZNi ZNi ui

K

k

π

τ

ω

=

=

dove Kui e ωui rappresentano rispettivamente il guadagno e la pulsazione critici relativi all’i-esimo loop considerato indipendentemente dagli altri.

Tali valori possono essere determinati mediante due tipologie di test.

La prima consiste nel chiudere ogni funzione di trasferimento diagonale in anello con un controllore puramente proporzionale e incrementare il guadagno fino a quando il sistema comincia ad oscillare. Il valore del guadagno tale per cui l’oscillazione risulta costante

( ) ii

G s

è noto come “ultimate gain” e denotato con mentre la frequenza dell’oscillazione generata è nota come “ultimate frequency” ed è denotata con

ui

k

ui ω .

Questo approccio è, in generale, rischioso in quanto porta l’impianto nelle vicinanze della condizione di instabilità, ed inoltre risulta difficile assicurare che l’ampiezza del controllo resti limitata in modo da non recare danni all’impianto.

La seconda prevede l’introduzione di un relais nell’anello di controllo, cosa che, nella maggior parte dei sistemi di interesse determina l’insorgere di una oscillazione permanente. Alla fine il segnale di controllo sarà un’onda quadra di ampiezza pari a quella del relais utilizzato ed avrà un periodo approssimativamente pari a quello critico considerato nella precedente versione del test.

L’uscita del sistema a regime sarà una sinusoide di ampiezza A. In questo caso è possibile ottenere il guadagno critico dalla formula:

4

ui

h

k

A

π

=

dove h è l’ampiezza del relais e A quella dell’onda sinusoidale generata in uscita.

Mediante questo tipo di test il segnale di controllo resta limitato per tutta la durata dell’esperimento, per cui il rischio di instabilità è notevolmente ridotto.

2. Si assume un valore iniziale per il fattore di detuning F.

Tale fattore deve essere sempre maggiore o uguale a 1. Valori tipici sono compresi fra 1.5 e 4.

I guadagni di tutti i controllori vengono calcolati dividendo i guadagni di Ziegler e Nichols

Ci

K

ZNi

K per il fattore di detuning:

ZNi Ci K k F =

I parametri relativi alla componente integrale di tutti i controllori PI,

τ

Iivengono calcolati

moltiplicando i corrispondenti parametri di Ziegler e Nichols per F:

Ii ZNi

F

(3)

Dunque il medesimo fattore F viene applicato a tutti gli anelli.

Maggiore è il valore di , più il sistema è stabile, ma la risposta al gradino diventa più lenta. I parametri che si ottengono in questo modo realizzano un compromesso fra robustezza e velocità nei sistemi multivariabili.

F

3. Si considera il diagramma di Nyquist multivariabile della funzione scalare: ( ) 1 det( ( ) ( )

W j

ω

= − + I+G j

ω

C j

ω

)

Il sistema è tanto più vicino all’instabilità quanto più questo diagramma risulta essere vicino al punto (-1,0) sul piano di Nyquist.

La quantità:

1

W W

+

è analoga alla funzione di trasferimento in ciclo chiuso di un sistema S.I.S.O. Perciò si definisce la funzione:

10 20 log 1 cm W L W = +

Il valore corrispondente al picco nel grafico di Lcm sull’intero intervallo di frequenze considerato, rappresenta il B.L.T., indicato con Lmaxcm .

4. Si fa variare il fattore di detuning Ffinché risulti verificata la condizione:

max

2 cm

L = N

Dunque nel caso di un sistema 2x2 tale valore deve risultare pari a 4dB.

Questa procedura garantisce che il sistema con tutti i controllori in funzionamento automatico sia stabile, ed anche che ogni singolo loop sia stabile quando tutti gli altri sono aperti.

Infatti, poiché il fattore di detuning è vincolato ad assumere valori maggiori di 1, le costanti di tuning che vengono determinate con questa procedura risultano essere più conservative rispetto ai corrispondenti valori di Ziegler e Nichols.

(4)

3.3 Implementazione

Nel seguito si riporta il codice Matlab contenuto nello script BLTLuy.

%realizza il BLT tuning in accordo alla tecnica di Luyben

ZN=zntune; %effettua il test del relais per il calcolo

%dei parametri di Ziegler-Nichols

F=getf(ZN); %calcola il fattore di detuning opportuno e lo inserisce % nel corrispondente parametro del modello

%inserisce i valori di Ziegler-Nichols nei parametri %del modello utilizzato per la simulazione

kp1=ZN(1,1); ki1=ZN(1,2); kp2=ZN(2,1); ki2=ZN(2,2); g1=0; g2=0;

%stabilisce il risolutore e il workspace in cui effettuare la simulazione

opt=simset('solver','ode15s','SrcWorkspace','Current');

%effettua la simulazione

[tout,xout,yout]=sim('LuybenW2',[0,100],opt);

%mostra il grafico delle due uscite

plot(L1(:,1),L1(:,2),'k','linewidth',2); hold on

plot(L2(:,1),L2(:,2),'k','linewidth',2);

La prima funzione invocata nel precedente codice è la zntune, che restituisce una matrice 2x3 contenente nella prima riga le costanti K ,P1 KI1 e KD1 corrispondenti ai guadagni proporzionale, integrale e derivativo relativi al primo anello, e nella seconda le costanti KP2, KI2 e KD2 relative al secondo anello.

Se ne riporta il codice, per maggior chiarezza:

function ZN=zntune

%effettua il test del relais su tutti i loops

%si stabilisce il risolutore e il workspace in cui eseguire la simulazione

opt=simset('solver','ode15s','SrcWorkspace','Current');

%si eseguono le simulazioni e si memorizzano i risultati nelle variabili kzn1 e kzn2

[tout,xout,yout]=sim('WBg11',[0 100],opt); s=size(yout,1);

kzn1=yout(s,:);

[tout,xout,yout]=sim('WBg22',[0 100],opt); s=size(yout,1);

(5)

kzn2=yout(s,:); ZN=[kzn1; kzn2];

Lo scopo di questa funzione è di effettuare il test del relais su tutti gli anelli, considerati indipendentemente dalle interazioni, per ottenere, come spiegato in precedenza, una prima approssimazione delle costanti di tuning.

A tal fine è stato utilizzato, per ciascun anello, un diagramma realizzato in Matlab Simulink, di cui si riporta in figura 3.1 il top level.

Figura 3.1

Questo diagramma, utilizzato per calcolare i parametri di Ziegler-Nichols relativi ad ogni anello, chiude un relais di ampiezza h=1 in ciclo con l’elemento diagonale della matrice di trasferimento corrispondente al loop in questione.

Il blocco valutak (level 1) che compare nel diagramma sopra descritto, prende in ingresso l’uscita del sistema ed un segnale di trigger che scandisce il raggiungimento della condizione di regime sull’uscita stessa, cosa che si assume avvenga entro 100 secondi.

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

In figura 3.2 viene rappresentata la sua realizzazione interna.

(6)

Il blocco indicato in figura 3.2 con il nome di calcap (level2), prende in ingresso l’uscita del sistema e ne calcola, istante per istante, il periodo e l’ampiezza di picco, che rappresentano le sue uscite.

A questo scopo, è stato realizzato come riportato in figura 3.3.

Figura 3.3

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.

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 3.4.

(7)

Il blocco kpid (level 2) che compare all’interno del blocco valutak sopra descritto, 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 P.I. Il raggiungimento della condizione di regime sull’uscita è scandita dal segnale di trigger che rappresenta un ulteriore ingresso del blocco.

Figura 3.5

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

La seconda funzione invocata nel programma che realizza il BLT tuning è rappresentata dalla getf che, ricevendo in ingresso le costanti di Ziegler e Nichols calcola il fattore di detuning opportuno in accordo alla tecnica di Luyben.

Prima di procedere alla descrizione dettagliata di tale funzione, se ne riporta il codice:

function f=getf(ZN)

%calcola il fattore di detuning in accordo alla tecnica di Luyben

k=ZN; i=sqrt(-1); w=logspace(-1,0.8,200); nwtot=length(w); s=i*w; f=2.54; df=0.01; loop=0; flagm=-1; flagp=-1; dbmax=-100; while abs(dbmax-4)>0.05 k=k./f;

(8)

for nw=1:nwtot

%calcola il valore assunto dal “log modulus” in corrispondenza della pulsazione s(nw)

dbc(nw)=logeval(gc,s(nw)); end [dbmax,nmax]=max(dbc); loop=loop+1; if loop>10 break end if dbmax>4 if flagp>0 df=df/2; end flagm=1; f=f+df; else if flagm>0 df=df/2; end flagp=1; f=f-df; if f<1 f=1; end end end

Si definisce un intervallo di frequenze su cui valutare il valore della funzione 10 20 log 1 cm W L W =

+ al variare di F e lo si memorizza nel vettore s. Si assegna ad F un valore iniziale plausibile e quindi comincia un ciclo “while” che termina quando il valore di risulta circa uguale a quattro, o quando si è effettuato un numero di cicli pari a 10.

max cm

L

Nel corpo di tale ciclo:

1. Si effettua la divisione dei parametri di Ziegler-Nichols per l’attuale valore del fattore di detuning f.

2. Si costruisce la matrice di trasferimento del sistema costituito dalla serie del processo e del controllore P.I. i cui parametri sono stati assegnati al punto 1., utilizzando la funzione Matlab mca.

3. Si calcolano i valori assunti dalla funzione in corrispondenza di ciascuna delle frequenze dell’intervallo e si memorizzano nel vettore dbc facendo uso della funzione

logeval.

cm

L

4. Si calcola il massimo di tale vettore, che rappresenta il “biggest log modulus” e lo si confronta con il valore desiderato (4).

(9)

Si descrive ora la funzione mca.

Come già accennato, essa prende in ingresso una matrice 2x3 contenente per ogni riga i guadagni relativi al controllore presente nel loop di indice pari all’indice di riga, e restituisce la matrice di trasferimento del sistema globale in anello aperto.

function CA= mca(k)

%calcola la matrice di trasferimento del sistema di Wood e Berry in ciclo aperto %si calcolano per i ritardi le loro approssimazioni di Pade al secondo ordine

[nrit1,drit1]=pade(1,2); [nrit3,drit3]=pade(3,2); [nrit7,drit7]=pade(7,2);

NUM={12.8*nrit1,18.9*nrit3; 6.6*nrit7,19.4*nrit3};

DEN={conv([16.7 1],drit1),conv([21 1],drit3); conv([10.9 1],drit7),conv([14.4 1],drit3)}; G=tf(NUM,DEN);

NUMC={[k(1,1) k(1,2)],0; 0, [k(2,1) k(2,2)]}; DENC={[1 0],1; 1, [1 0]};

C=tf(NUMC,DENC); CA=G*C;

Il processo preso in considerazione è quello noto come sistema di “Wood e Berry”.

Dopo aver ottenuto, mediante il comando Matlab pade, delle approssimazioni di Pade’ al secondo ordine dei ritardi che compaiono nel sistema, si costruiscono le matrici di trasferimento rispettivamente del processo e del controllore e se ne calcola il prodotto.

La funzione logeval calcola il valore assunto dalla funzione in corrispondenza della frequenza che riceve in ingresso insieme con la matrice di trasferimento del sistema globale a ciclo aperto.

cm

L

function dbc=logeval(CA,w)

% calcola il valore del “log modulus” in corrispondenza della pulsazione % che riceve in ingresso

% estrae la funzione di trasferimento tra il primo ingresso % e la prima uscita

h11=CA(1,1); n11=h11.num{1}; d11=h11.den{1};

GC(1,1)=polyval(n11,w)/polyval(d11,w);

% estrae la funzione di trasferimento tra il secondo ingresso % e la prima uscita

h12=CA(1,2); n12=h12.num{1}; d12=h12.den{1};

GC(1,2)=polyval(n12,w)/polyval(d12,w);

% estrae la funzione di trasferimento tra il primo ingresso % e la seconda uscita

h21=CA(2,1); n21=h21.num{1};

(10)

d21=h21.den{1};

GC(2,1)=polyval(n21,w)/polyval(d21,w);

% estrae la funzione di trasferimento tra il secondo ingresso % e la seconda uscita h22=CA(2,2); n22=h22.num{1}; d22=h22.den{1}; GC(2,2)=polyval(n22,w)/polyval(d22,w); W=-1+det(eye(2,2)+GC); L=W/1+W; dbc=20*log10(abs(L));

Vengono estratti i vari elementi dalla matrice di trasferimento e valutati in corrispondenza della pulsazione di ingressoin modo tale da costruire la matrice numerica GC, che rappresenta appunto la matrice di trasferimento del sistema globale in anello aperto valutata nella pulsazione di ingresso w. A tal punto è immediato ottenere il valore del “log modulus”.

Infine, avendo ottenuto, a mezzo delle procedure descritte in dettaglio, il fattore di detuning con cui modificare opportunamente le costanti del controllore multiloop, non rimane altro che eseguire la simulazione che consente di visualizzare le uscite del sistema T.I.T.O in questione quando sul primo ingresso si ha una variazione di set-point.

Il diagramma Simulink atto a questo scopo è riportato in figura 3.6.

(11)

3.4 Simulazioni e confronti

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 − − − − ⎛ − ⎞ ⎜ + + ⎟ ⎜ ⎟ = ⎜ − ⎟ ⎜ + + ⎟ ⎝ ⎠

Nelle figure 3.7 e 3.8 sono mostrate le uscite di tale sistema controllato con un controllore P.I., quando sul primo canale viene applicato un gradino di ampiezza unitaria.

Si pongono a confronto le risposte ottenute utilizzando un controllore P.I. multiloop i cui parametri sono stati assegnati in accordo alla tecnica di Luyben e secondo la tecnica sequenziale descritta nei precedenti capitoli.

(12)

Figura 3.8

Nel primo caso, i valori dei guadagni proporzionale e integrale sui due canali risultano essere:

1 0.77953 P K = 1 0.24019 I K = 2 2 0.18006 0.019626 P I K K = − = −

Tali valori sono stati ottenuti dividendo i corrispondenti parametri calcolati con le regole di Ziegler e Nichols per il fattore di detuning F =2.56.

Nel caso sequenziale, invece, le costanti di tuning risultavano essere:

1 1 0.6641 0.2017 P I K K = = 2 2 0.08271 0.007514 P I K K = − = −

Come appare evidente dai grafici, le risposte presentano un miglioramento in termini di sovraelongazione, ma risultano peggiorate dal punto di vista della velocità di risposta e del tempo di assestamento.

Riferimenti

Documenti correlati

In sostanza, è noto che gli impegni finora sottoscritti da quasi tutti i Paesi del mondo, per lo più prima della COP21 di Parigi, non sono sufficienti per rag- giungere

Corso di Laurea in Scienze Fisiche Prova finale del

dal settembre 2008 Responsabile della Chirurgia Pro- tesica dell’Istituto Clinico Humanitas di Rozzano (MI) Professore a contratto c/o Università di Catania già direttore tecnico

Si consideri la catena di Markov le cui probabilit´ a di transizione sono quelle riportate nella figura.. Sia dato il sistema discreto (A, B, C) ad un ingresso ed una

Motiva la risposta. d) Calcola, se possibile, la pressione nei due punti e motiva la risposta. Tre cariche elettriche sono disposte come in figura. b) Trova l’espressione del

Supponendo µ s abbastanza grande da impedire strisciamenti, determinare il valo- re minimo di v 0 affinchè il pendolo percorra un giro completo (il vincolo del filo si

al blocco k lo stato s k rappresenta la capacità residua dello zaino una volta prese le decisioni relative agli. oggetti

Affinché questo aumento della pressione di sistema tramite la portata non sia superiore al 10% della pressione di intervento determinata, è necessario ridurre la portata