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