Impiego di differenziatori non lineari in algoritmi di tipo PID

Transcript

Impiego di differenziatori non lineari in algoritmi di tipo PID
TECNICA controllo
Impiego di differenziatori
non lineari in algoritmi
di tipo PID
Elio Usai, Massimiliano Veronesi, Simona Puddu
Nell’ambito della regolazione basata sugli algoritmi di tipo PID (Proporzionale-Integrale-Derivativo) l’azione
derivativa, che pure potrebbe dare un prezioso contributo in termini di anticipo di fase, viene spesso disabilitata a
causa della sua sensibilità al rumore sul segnale di misura che può causare un degrado delle prestazioni finanche
a risultare destabilizzante per il sistema in anello chiuso. Per ovviare all’inconveniente, accanto alle più o meno
raffinate tecniche di filtraggio, può trovare posto anche l’impiego di differenziatori non lineari che, in luogo del
normale operatore di derivata, forniscono migliori prestazioni in termini di robustezza contro il rumore senza
pagare un prezzo elevato in termini di sfasamento, come invece può accadere per i filtri. Scopo di questo
contributo è quello di illustrare alcune di queste tecniche, valutarne le prestazioni e mostrare come possano essere
facilmente implementate nei sistemi di controllo disponibili in commercio.
Keyword
PID, differenziatori non lineari.
I regolatori di tipo PID (Proporzionale, Integrale, Derivativo)
sono tuttora largamente utilizzati in ambito industriale a causa di un rapporto costi/benefici difficilmente ottenibile con
altre tecniche. Si veda ad esempio [1] per una trattazione
completa dell’argomento.
Nel seguito di questo contributo si farà riferimento alla versione (non interagente) semplificata di questo popolare algoritmo, senza tener conto dei tipici accorgimenti che ne migliorano le prestazioni quali il peso sul setpoint o l’anti-saturazione dell’azione integrale.
Sia dunque:
(1)
ove: u(t) è il valore della variabile di controllo all’istante t,
e(t) è il valore dell’errore (dato dalla differenza tra il segnale
di riferimento, o setpoint, e la variabile misurata) all’istante t.
L’azione di controllo è dunque generata dal contributo di tre
componenti. quella proporzionale all’errore (attraverso il
coefficiente Kp), quella proporzionale all’integrale dell’errore
(attraverso il coefficiente Ti) e quella proporzionale alla derivata dell’errore (attraverso il coefficiente Td).
Molto spesso, tuttavia, gli operatori addetti disabilitano
l’azione derivativa a causa della sua elevata sensibilità alla
E. Usai, Dipartimento di Ingegneria Elettrica ed Elettronica, Università
degli Studi di Cagliari; M. Veronesi, Product Manager Yokogawa Italia
Srl; S. Puddu, Università di Cagliari
100 - Automazione e Strumentazione - Marzo 2006
frequenza (e non solo all’ampiezza) dei rumori sulla catena
di misura e alla conseguente delicatezza della sua sintonizzazione (la taratura del tempo derivativo). Ad esempio, infatti,
un semplice rumore sinusoidale y(t)=a sin ωt, se derivato, introduce nell’azione di controllo un contributo proporzionale a
dy(t)/dt= aω cos ωt. Poiché l’errore di misura è solitamente
modellabile con un rumore bianco a banda limitata ma molto
alta, esso contiene componenti a frequenze molto maggiori
rispetto alla banda di interesse, che contribuiscono additivamente al deterioramento della azione derivativa.
Per questo motivo al derivatore viene generalmente applicato
un filtro del primo ordine la cui costante di tempo (normalmente pre-definita a Td /N con N=10÷20) determina la banda
al di fuori della quale i rumori vengono parzialmente filtrati.
Ciò però induce anche uno sfasamento temporale tra il valore
della derivata del segnale e quello effettivamente calcolato
dal derivatore che può non essere il benvenuto quando si vogliono ottenere elevate prestazioni da parte dell’algoritmo di
controllo.
Una evoluzione di tale tipo di derivatori realizzati in modo
approssimato mediante filtri lineari sono gli HGO (High
Gain Observer) utilizzati per la stima delle variabili di fase in
condizioni di incertezza di modello [2]. Tale tipo di osservatori è normalmente utilizzato nei sistemi di controllo non lineari per valutare le derivate della variabile da controllare in
schemi output-feedback [3], in questo senso possono pertanto
essere impiegati anche come differenziatori [2].
Indicando con z(t) la variabile di cui stimare la derivata, un
HGO del 2° ordine può essere descritto dalle equazioni
(2)
TECNICA controllo
Differenziatori non lineari
La funzione di trasferimento tra z e x2 vale allora:
(3)
Si vede dunque che quando e tende a zero questa funzione
tende a s mostrando che per una banda di frequenza più piccola di k⋅γ1 allora x2 approssima la derivata di z, a meno di
un ritardo di fase, e in ogni caso con un errore di stima che è
O(ε).
Dal momento che i poli di G(s) sono le radici di p(s/k), allora
variando k si può ottenere la risposta desiderata. Più k è
grande, più grande è il range di frequenze all’interno del
quale l’HGO approssima bene un differenziatore ideale.
Tuttavia così si ottiene solamente un derivatore filtrato, non
molto dissimile da quello del primo ordine (sTd /(1+sTd/N))
normalmente implementato sui regolatori in commercio, con
k che gioca un ruolo analogo a quello di N, e γ0 e γ1 che definiscono la “forma” della risposta armonica del filtro.
Nella figura 1 si nota come la presenza del secondo polo nel
HGO contribuisca al miglioramento delle proprietà di reiezione del disturbo in alta frequenza, ma introduca un ritardo
di fase che potrebbe essere critico per il sistema a ciclo chiuso. Inoltre, ritenendo trascurabile il ritardo di fase per frequenze inferiori a k⋅ γ1 /10 e facendo coincidere tale frequenza con la banda del segnale misurato, in ogni caso si ha un
non filtraggio, se non amplificazione, dell’eventuale rumore
di misura nella banda di frequenze compresa tra k⋅γ1 /10 e
γ1k2.
1/
2
1/
2
Migliori prestazioni si possono invece ottenere utilizzando
tecniche mutuate dal controllo a struttura variabile con “sliding modes” di ordine superiore [5,6], basato sull’idea di
rendere nullo l’errore e la sua derivata prima agendo con
un controllo discontinuo che commuta tra valori elevati, ma
di segno opposto, con frequenza (teoricamente) infinita
[7,8,9,10].
Tra i più efficaci tra questi algoritmi si segnalano il “SuperTwisting” (SPTW) [7] e il “Discontinuos HGO” (DHGO)
[10].
Il primo può essere formulato come:
(4)
I valori delle costanti in gioco, k0 e k1, devono essere scelti
in modo da assicurare la convergenza verso il regime di sliding mode del secondo ordine, ovvero la condizione
.
e=e=0, che avviene in un tempo finito [7]:
1/
2
(5)
Alcune scelte dei valori delle costanti in gioco k0 e k1 in
funzione della costante di Lipshitz Z2, meno restrittive rispetto a quelle su indicate, sono riportate in [7]; ad esempio
scelte possibili sono k1=1,1 Z2,k0=Z2 .
La variabile di sliding è in questo caso l’errore e(t) al convergere a zero del quale dunque la variabile x1(t) approssima la variabile z(t) e quindi dx1/dt la sua derivata. Nella figura 2 a) è riportato un andamento tipico delle traiettorie
nel piano di fase nel caso di derivatore SPTW.
In realtà la presenza di rumore e l’impossibilità di effettuare le commutazioni con frequenza infinita, rendono la convergenza verso lo sliding mode del secondo ordine solo
teorica.
Tuttavia, anche nel caso reale, la differenza tra x1(t) e z(t)
rimane comunque superiormente limitata da un valore che
dipende solo dalla radice quadrata della ampiezza, σ, del
rumore, e non dalla sua frequenza come invece accade per i
filtri ordinari, e dal periodo di campionamento, o dal ritardo di commutazione, τ.
In conclusione, una volta assicurate le condizioni di convergenza, l’errore di stima della derivata è:
O(τ,σ ) [7].
1/
2
Figura 1 - Risposta armonica del derivatore approssimato e del
HGO, per diversi valori dei parametri
Le considerazioni su riportate sono solitamente la causa del
raro utilizzo di un’azione derivativa in uno schema di controllo di processo. Una analisi delle prestazioni dei differenziatori basati su HGO è documentata in [4].
1/
2
Marzo 2006 - Automazione e Strumentazione - 101
TECNICA controllo
il valore assoluto sono differenti, dipendendo dal tipo di algoritmo e dal valore
dei suoi parametri.
La dipendenza dell’errore di stima della
derivata del segnale misurato dalla radice quadrata del rumore di misura sembra
un limite insito con l’operazione di differenziazione, infatti simili risultati sono
stati ottenuti anche utilizzando altre tipologie di differenziatori [11,12].
Alcune simulazioni
Figura 2 - Traiettorie tipiche di convergenza di differenziatori non
lineari
L’algoritmo DHGO si ottiene invece inserendo una non-linearità di “sliding” nel normale HGO visto in precedenza.
Esso è cioè formulato come:
(6)
ove W e k sono parametri positivi di ampiezza sufficiente a
garantire la convergenza verso la condizione di sliding, mentre γ0 e γ1 sono scelti in maniera tale che le radici del polinomio p1(s)=s2+γ0s+γ1 abbiano parte reale negativa.
Definito e=x1-z, la dinamica dell’errore è data dall’equazione
differenziale:
(7)
Se W è scelta rispettando la condizione:
Poiché una analisi completa delle differenze tra le prestazioni
ottenibili utilizzando diversi differenziatori è, oltre che estremamente complessa, al di là degli obiettivi del presente articolo, di seguito si vuole dare un’idea delle prestazioni ottenibili mediante i differenziatori non lineari sopra esposti, e con
il differenziatore approssimato solitamente implementato nei
controllori PID, confrontando le derivate di un semplice segnale sinusoidale z(t)=sen(πt).
Nella figura 3 sono riportati gli andamenti dei diversi errori
di differenziazione, ovvero le differenze tra la derivata reale
del segnale e quella ottenuta con i diversi algoritmi. Le simulazioni in Matlab-Simulink sono state fatte usando il metodo
di Runge-Kutta, con tempo di integrazione pari a 4 ms. Al fine di ottenere a regime un errore di stima dell’ordine di 0,05
(1,3%), la costante di tempo del derivatore approssimato è
τD/N=1/300, mentre i parametri del derivatore HGO sono
..
γ0=2, γ1=1, k=600. Tenendo conto che |z |<π2, i parametri
del derivatore DHGO sono γ0=2, γ1=1, k=25, W=12, mentre
k0=3,5 e k1=11 per il SPTW. Le variabili x2 dei derivatori
HGO e DHGO sono state considerate quali stime della derivata del segnale misurato z, mentre per il derivatore SPTW è
stata rilevata la variabile d’uscita dell’algoritmo Super
Twisting, ovvero dx1/dt.
(8)
.
allora il punto e=e=0 è globalmente stabile, ovvero x1(t) converge a z(t) (e quindi dx1/dt, e anche x2, alla sua derivata), come si può osservare dalla figura 2 b) in cui è riportato un andamento tipico delle traiettorie nel piano di fase nel caso di
derivatore DHGO. Le condizioni di convergenza su riportate
sono, come solito, estremamente conservative e quindi è possibile ottenere la convergenza verso la condizione di sliding
anche per valori inferiori, valutati, ad esempio, mediante test
di simulazione.
Anche in questo caso, come per il derivatore SPTW e altri
derivatori non lineari basati su algoritmi sliding mode, la presenza di un rumore sovrapposto al segnale utile e un ritardo
nella commutazione comportano che può instaurarsi solo uno
sliding mode approssimato in cui l’ordine di grandezza
dell’errore di stima della derivata è nel caso particolare
O(τ ,σ ) [10]. Ovviamente, le relazioni che ne determinano
1/
2
1/
2
102 - Automazione e Strumentazione - Marzo 2006
Figura 3 - Errori di stima della derivata ottenibili con i diversi
algoritmi
TECNICA controllo
Come si nota, fatte le opportune tarature per ottenere a regime circa lo stesso errore di stima, il derivatore DHGO ha un
transitorio più rapido di quello SPTW, ed entrambi presentano un fenomeno di peaking iniziale molto più limitato rispetto al derivatore basato sugli HGO. Deve inoltre essere evidenziato come per ottenere le stesse precisioni dei derivatori
non lineari è stato necessario spostare la pulsazione di rottura
dei derivatori approssimati lineari di due decadi rispetto la
banda del segnale.
Un importante aspetto favorevole ai derivatori non lineari è
che mentre il filtro lineare presenta sempre e inevitabilmente
un errore di stima diverso da zero, i derivatori non lineari
tendono ad assicurare un errore di stima teoricamente nullo e
praticamente legato al periodo di campionamento. Pertanto,
un miglioramento delle prestazioni nominali di un differenziatore non lineare è ottenibile semplicemente utilizzando un
hardware con migliori caratteristiche (clock e capacità di calcolo), come si può notare nella figura 4, dove sono riportati i
risultati delle simulazioni ripetute con i medesimi parametri,
ma con un passo di integrazione di 0,4 ms.
Figura 5 - Effetto di un rumore a 50 Hz sull’errore di stima
Figura 6 - Effetto di un rumore bianco sull’errore di stima
Figura 4 - Effetto del passo di integrazione sull’errore di stima
Tra i due derivatori non lineari quello SPTW si potrebbe far
preferire per una proporzionalità diretta tra errore di stima e
passo di integrazione.
Infine, anche nei confronti della reiezione del rumore di misura i differenziatori non lineari sembrano comportarsi meglio di quelli basati su approssimazioni lineari. Nella figura 5
sono riportati i risultati delle simulazioni in cui al segnale misurato è stato sovrapposto un disturbo a frequenza di rete (50
Hz) di ampiezza pari a 0,01 (1% del segnale misurato). Sono
evidenti le migliori prestazioni dei derivatori non lineari e
l’effetto di maggior distorsione di fase del derivatore HGO
rispetto al filtro del 1° ordine.
Le migliori caratteristiche di filtro passa-basso dei derivatori
basati su HGO e DHGO possono evidenziarsi considerando
il caso di rumore bianco (di ampiezza massima pari a 0,015)
sovrapposto alla misura. Nella figura 6 sono riportati i risultati corrispondenti, utilizzando un passo d’integrazione di 0,1
Figura 7 - Prestazioni di reiezione del rumore di misura nell’anello
di controllo
Marzo 2006 - Automazione e Strumentazione - 103
TECNICA controllo
ms al fine di garantire un contributo di rumore significativo
in alta frequenza.
Nella figura 7 sono messi a confronto gli andamenti delle variabili di controllo di tre regolatori PID, PI+SPTW e PI+DHGO alle prese con un semplice processo FOPDT (con guadagno e costante di tempo unitari e ritardo pari a 0,3) la cui misura, a partire da metà del periodo di simulazione, diviene affetta da rumore sinusoidale (ampiezza=0,1 e pulsazione 100
rad/s). Come si nota, fatte le opportune tarature, i differenziatori non lineari si rivelano in grado di trasmettere oscillazioni
più contenute sugli organi di comando.
Il vantaggio dei derivatori non lineari risulta quindi essenzialmente quello di saper fornire una approssimazione del derivatore ideale in una certa banda di pulsazioni, senza pagare
un prezzo elevato in termini di sfasamento introdotto dalla
necessità di filtrare i disturbi di frequenza più elevata.
Implementazione su DCS
Gli algoritmi PID disponibili sulla strumentazione in commercio dispongono di tutta una serie di utili funzionalità ma
in genere non sono liberamente personalizzabili da chi si occupa dell’ingegneria del sistema di controllo. Tipicamente
l’algoritmo è quello standard nella forma non interagente, e
gli unici parametri impostabili sono Kp, Ti e Td, rimanendo
invece l’anti-windup e la costante di tempo del filtro
sull’azione derivativa (N) determinate automaticamente.
Non deve stupire quindi se l’implementazione di algoritmi
non standard come i differenziatori non lineari debba essere
effettuata attraverso “blocchi funzione” esterni al PID.
Questo è anche il caso del DCS Yokogawa Centum CS3000,
ultimo erede di una lunga dinastia di sistemi realizzati dalla
nota multinazionale giapponese attiva nel settore del controllo di processo sin dai suoi inizi.
Il DCS fa uso di processori Risk duali (doppio micro-processore) dotati di 32 MB di Ram e capaci di farsi carico di migliaia di blocchi funzione dei tipi più svariati (logiche, sequenze, allarmi, controlli). Il sistema di controllo può comprendere fino a 256 tra stazioni operatore e di controllo, sulle
quali vengono normalmente installate due CPU, due alimentatori e il numero di schede I/O (eventualmente ridondate)
necessarie per acquisire i segnali dal campo e comandare i
relativi attuatori. Il numero di blocchi funzione complessivamente gestibili è di serie 100.000 ma può arrivare anche fino
a 1.000.000.
Il blocco di tipo CALCU è sostanzialmente un contenitore
vuoto di codice libero (linguaggio tipo C ma con sintassi custom per referenziare gli altri blocchi implementati) e risulta
pertanto particolarmente indicato per realizzare i differenziatori non lineari presentati nella prima parte dell’articolo.
Esso, come illustrato nella figura 8, ha alcune “porte” di ingresso (IN, Q01-08), alcune variabili interne (RVx e CPVx),
alcuni parametri accessibili dall’esterno (P01-08) e infine alcune “porte” di uscita (OUT, J01-08).
Trasformando le equazioni differenziali in equazioni alle differenze, e indicando per convenzione con zh=z(hTs) il valore
della variabile z dopo h volte il tempo di ciclo Ts, l’algoritmo
SPTW si può scrivere come:
(9)
Il codice relativo, omettendo i dettagli legati a dichiarazione
ed inizializzazione delle variabili, può pertanto essere scritto
come:
PID.D=0
/* annulla l’azione derivativa del PID */
k0=P01
/* legge k0 dal parametro P01 impostabile */
k1=P02
/* legge k1 dal parametro P02 impostabile */
e=CPV1-RV
/* calcola l’errore */
x2=CPV2-Ts*k1*sign(e)
Dx1=Ts*(x2-k0*sqrt(labs(e))*sign(e))
CPV1=CPV1+Dx1
/* restituisce CPV1 e CPV2 in modo che siano */
CPV2=x2
/* riutilizzabili al ciclo successivo */
CPV=Dx1
/* restituisce la derivata del segnale in INPUT */
/* NOTA: la funzione sign() non è presente in libreria e va */
/* costruita come sub-routine */
Analogamente l’algoritmo DHGO si può scrivere come:
(10)
Figura 8 - Il blocco di tipo CALCU
104 - Automazione e Strumentazione - Marzo 2006
Il codice relativo, omettendo i dettagli legati a dichiarazione
e inizializzazione delle variabili, può pertanto essere scritto
come:
TECNICA controllo
PID.D=0
/* annulla l’azione derivativa del PID */
k=P01
/* legge k dal parametro P01 impostabile */
W=P02
/* legge W dal parametro P02 impostabile */
g0=P03
/* legge g0 dal parametro P03 impostabile */
g1=P04
/* legge g1 dal parametro P04 impostabile */
e=CPV1-RV
/* calcola l’errore */
derati onde definire le regole per la taratura automatica dei loro
parametri.
Bibliografia
[1] M. Veronesi, Regolazione PID. Fondamenti di teoria, algoritmi di taratura, applicazioni di controllo, Ed. Franco
Angeli , 2002
CPV1=CPV1+Dx1 /* restituisce CPV1 e CPV2 in modo che siano */
[2] A. Dabroom, H. K. Khalil, “Numerical differentiation
CPV2=x2
/* riutilizzabili al ciclo successivo */
using high-gain observers”, Proceeding of the 36th IEEE CDC,
CPV=Dx1
/* restituisce la derivata del segnale in INPUT */
San Diego, Dec ‘97
/* NOTA: la funzione sign() non è presente in libreria e va */
[3] A.N. Atassi, H.K. Khalil, “A Separation Principle for the
/* costruita come sub-routine */
Control of a Class of Nonlinear
La figura 9 mostra come viene imSystems”, IEEE Trans. on Autom.
plementato il blocco CALCU
Control, vol. 46, no. 5, pp. 742nell’ambito della configurazione del
746, may 2001.
[4] J.H. Ahrens, H.K. Khalil,
loop di regolazione: il significato
“Output Feedback Control Using
dei termini pare sufficientemente
High-Gain-Observers in the
auto-esplicativo. Si noti come
Presence of Measurement Noise”,
l’uscita del differenziatore non liProceedings of the 2004 American
neare (CPV) venga ricevuta in inControl Conference, pp. 4114gresso dal blocco di tipo PID attra4119, Boston, July 2004.
verso la porta BIN che serve nor[5] A.Levant, ”Sliding order and
malmente per la compensazione
sliding accuracy in sliding mode
dell’uscita (feedforward): essendo
control”, Int. J. of Control, vol. 58,
l’algoritmo del tipo non interagente
no. 6, pp. 1247-1263, 1993.
ciò equivale alla normale azione
[6] G. Bartolini, A.Ferrara, A.
derivativa calcolata sulla variabile
Levant, E. Usai, “On Second Order
di processo (come normalmente si
Sliding Mode Controllers”, in
fa per evitare di trasmettere all’atVariable Structure Systems, sliding
tuatore bruschi comandi dovuti al
mode and non-linear control, K.D.
semplice cambio a gradino del setYoung, U. Özgurer eds, pp. 329point). Il guadagno Ck del PID fa
350, LNCIS 247, London,
da moltiplicatore per la variabile
(VN) ricevuta sulla porta BIN, poSpringer, 1999.
tendo così giocare un ruolo analogo Figura 9 - Implementazione del derivatore non lineare e
[7] A.Levant, “Robust exact diffea quello del tempo derivativo (D) finestra di Tuning del PID
rentiation via sliding mode technidell’algoritmo tradizionale.
que”, Automatica, vol.34, no. 3, pp.379-384,1998.
[8 G. Bartolini, A. Pisano, E. Usai, “First and second derivative estimation by sliding mode technique”, Journal of signal
Conclusioni
processing, special issue Nonlinear signal processing (3),
M.Tanaka ed., ISSN 1342-6230, vol. 4, no. 2, pp. 167-176,
I derivatori non lineari di tipo “sliding-mode”, quali quelli bamarch 2000, Research Institute of Signal Processing, Tokyo,
sati sull’algoritmo Super-Twisting (SPTW) e il Discontinuous
2000.
High Gain Observer (DHGO), sono in grado di restituire la de[9] A. Levant, “Higher-order sliding modes, differentiation and
rivata di un segnale in modo accurato, introducendo uno errore
output-feedback control”, Int. J. of Control, vol. 76, no. 9/10,
contenuto e rimanendo sufficientemente robusti nei confronti
pp. 924-941, 2003.
del rumore sulla misura (in particolare rispetto al contenuto ar[10] N. Orani, A. Pisano, E. Usai, On a new sliding-mode difmonico del rumore).
ferentiation scheme, submitted, 2006.
Per questi motivi essi rappresentano una valida alternativa alla
[11] S. Diop, J. W. Grizzle, P.E. Moraal, A. Stefanopoulou,
semplice azione derivativa normalmente disponibile (con o sen“Interpolation and numerical differentiation for observer desiza filtro) negli algoritmi di tipo PID, che spesso si trova infatti
gn”, Proceedings of the 19994 American Control Conference,
disabilitata a causa della sua delicatezza nei confronti dei dipp. 1329-1333, Baltimore, June 1994.
sturbi. Gli algoritmi illustrati possono essere implementati sui
[12] M. Braci, S. Diop, “On numerical differentiation algodispositivi e sistemi in commercio (come ad es. DCS) in modo
rithms for nonlinear estimation”, Proceeding of the 42nd IEEE
relativamente agevole. Ulteriori studi vanno comunque consi■
CDC, pp. 2896-2901, Maui, Dec 2003.
x2=CPV2-Ts*(g1*k^2*e+W*sign(e))
Dx1=Ts*(x2-g0*k*e)
Marzo 2006 - Automazione e Strumentazione - 105