Vai al contenuto
PLC Forum


Avviamento PID


Colonial54

Messaggi consigliati

Ho recentemente partecipato ad una diatriba sulla messa a regime di regolatori PID legati per lo piu' a scambiatori termici;

Per evitare variazioni "impetuose" dell'uscita col rischio di danni agli apparati (vapore a 180C su guarnizioni di gomma) veniva consigliato di aumentare con una rampa l'uscita del regolatore monitorando contemporaneamente il feedback, poi in prossimita' del setpoint, avviare la regolazione;

Altri sostenevano che con parametri adatti tutto questo non era necessario, ed anzi la messa a regime era anche piu' rapida;

Quale dei due sistemi sarebbe preferibile?

Quello della rampa di avviamento e' qualcosa che puo' essere usato in tutti i tipi di regolazione, tralasciando ovviamente il motion?

Link al commento
Condividi su altri siti


Quote

veniva consigliato di aumentare con una rampa l'uscita del regolatore

 

Non è molto chiaro. Io ho compreso che intendi dare una feedforward a rampa, tenendo bloccato il regolatore sino a che l'errore è minore di un certo valore, dopo di che si sblocca il regolatore in feed back.

 

E' una tecnica possibile che, se eseguita correttamente, da ottimi risultati sia di precisione sia di rapidità di andata a regime, eliminando quasi totalmente le sovra-sotto elongazoni.

 

In teoria un feedforward perfetto non necessita di regolazione a reazione negativa. Ma questo è solo teorico.

Nella pratica si sovrappone al feedforward l'uscita del regolatore a reazione; si può abilitare il regolatore solo in proporzionale ed aggiungere l'integrale solo quando l'errore rientra entro un determinata soglia. Bisogna prestare attenzione a questo livello di soglia perchè se fatto troppo piccolo, o se il feedforward è poco precisio, si rischia di non far intervenire mai l'integrale con la conseguenza di non azzerare l'errore.

Link al commento
Condividi su altri siti

SandroCalligaro

Un'alternativa che io preferirei è quella di far variare a rampa il riferimento del regolatore.

Ovviamente, per fare le cose bene la rampa dovrebbe partire dal valore iniziale dell'uscita.

 

Al di là del problema della corretta impostazione dei guadagni, spesso problemi come quelli che descrivi (sovraelongazioni esagerate a seguito di una variazione ampia e rapida del riferimento) sono dovuti alla mancanza o ad una cattiva gestione dell'anti-windup.

In sistemi dove il riferimento può avere variazioni veloci (ad es. a gradino) e molto ampie è (secondo me) obbligatorio avere l'anti-windup.

Tra l'altro il costo di implementazione di un anti-windup in un sistema digitale è molto basso, e c'è la possibilità di realizzarlo in modo che non ci sia alcun parametro da tarare oltre ai guadagni del regolatore classico, e dove non dovesse servire non ha "effetti collaterali".

Link al commento
Condividi su altri siti

Quote

Un'alternativa che io preferirei è quella di far variare a rampa il riferimento del regolatore.

 

Son due cose differenti e di molto.

L'una prevede un uso corretto del feedforward con tutti i benefici che ne derivano, l'altra prevede solo un addomesticamento del riferimento.

 

Quote

In sistemi dove il riferimento può avere variazioni veloci (ad es. a gradino) e molto ampie è (secondo me) obbligatorio avere l'anti-windup.

 

Anche qui un corretto uso del feed forward elimina le oscillazioni dovute alla variazione a gradino del riferimento. Se poi si usa un'anticipo di reazione in luogo della derivata sull'errore le cose migliorano ancora. Specialmente se associato al blocco delle azioni integrale e derivativa.

 

Il sistema a cui si riferisce Colonial54 sembra essere una regolazione di temperatura a mezzo vapore, processo di per se molto lento, almeno se paragonato ad un controllo di motore. In questi processi il feed forward non da notevolissimi vantaggi.

Link al commento
Condividi su altri siti

Ciao a tutti. 

 

Come spiega in maniera esaustiva Livio i sistemi sono vari. In linea teorica, dopo una ottima sintonizzazione e su un sistema deterministico, nulla di accessorio al regolatore PI (o PID) sarebbe necessario. Ma ovviamente, rimanendo nella realtà, poi si deve agire di conseguenza al problema rilevato.

 

Di solito agisco su tre livelli a seconda di dove sia più semplice intervenire o dove si abbia un migliore riscontro "prestazionale". 

 

Non sembra il caso di Colonial, ma limitare le escursioni del set point è ormai uno standard da anni nei regolatori (da ciò l'implementazione nei blocchi PLC diventa una comodità e prassi), ma lo uso assai poco a meno di regolazioni in cascata o regolazioni di rapporto con l'antifumo.

 

Per quanto riguarda la parte di calcolo, ha già detto tutto Livio. 

 

Poi sull'uscita, si possono eseguire rampe, creare curve ad hoc per punti morti della regolazione dell'attuatore ecc...

 

Mi fu insegnato anni fa ad intervenire "esternamente" al calcolo il meno possibile, per avere maggior corrispondenza possibile tra l'azione supposta (dal blocco PID) e quella ottenuta sul processo. Ma gli strumenti a disposizione con i primi blocchi e con i primi regolatori programmabili non erano cosi "flessibili" come i blocchi software attuali.

 

Buona giornata, Ennio

Link al commento
Condividi su altri siti

SandroCalligaro
Quote
Quote

Un'alternativa che io preferirei è quella di far variare a rampa il riferimento del regolatore.

Son due cose differenti e di molto.

L'una prevede un uso corretto del feedforward con tutti i benefici che ne derivano, l'altra prevede solo un addomesticamento del riferimento.

Certo, sono diverse, ma potrebbero essere entrambe funzionali allo scopo (a seconda delle situazioni). E' probabile che "addomesticare" il riferimento sia più semplice che attivare dei feed-forward nel modo descritto da Colonial54.

Potrebbe però non essere accettabile, perché magari il riferimento proviene dall'esterno ed il controllo deve fare il meglio possibile per inseguire il riferimento.

 

Quote

Anche qui un corretto uso del feed forward elimina le oscillazioni dovute alla variazione a gradino del riferimento.

Non sono d'accordo nel senso che, per lo meno, esistono casi in cui l'anti-windup è necessario per il fatto che i limiti fisici del sistema non permettono di raggiungere il setpoint in "poco tempo" (indipendentemente quindi dalla presenza o meno di un feed-forward).

Per "poco tempo" intendo un tempo comparabile con il tempo di salita in assenza di limitazioni dell'ingresso di controllo (= in risposta a piccole variazioni del riferimento).

 

Se ho capito bene il caso in questione (come molti altri casi di regolazioni termiche) potrebbe essere uno di questi, in cui anche imponendo all'ingresso di controllo il massimo valore, l'uscita varia lentamente, e l'eventuale errore accumulato dalla parte integrale potrebbe diventare molto grande (= windup).

 

Con questo non voglio dire che il feed-forward non sia utile, ci mancherebbe! Dipenderà dai casi.

Per quella che è la mia esperienza l'anti-windup è non solo utile, ma spesso indispensabile per ottenere il meglio da un regolatore (ed evitare alcuni problemi subdoli).

 

PS: Scusate se ho scritto delle cose magari ovvie, ma cercavo di essere il più possibile chiaro.

Link al commento
Condividi su altri siti

SandroCalligaro
Quote

Mi fu insegnato anni fa ad intervenire "esternamente" al calcolo il meno possibile, per avere maggior corrispondenza possibile tra l'azione supposta (dal blocco PID) e quella ottenuta sul processo.

Immagino che per "calcolo" tu intenda l'aggiornamento del PID in sé. Se è così sono d'accordo, a patto che il "calcolo" sia fatto bene. :)

 

A questo proposito, quando ho iniziato ad occuparmi di controllo abbastanza seriamente, per me è stato interessante dare un'occhiata a questo documento. Lo schema indicato come "migliore" ha solo un piccolo difetto (nel caso i limiti abbiano lo stesso segno), ma in generale è una buona "ispirazione".

Link al commento
Condividi su altri siti

Quote

l'uscita varia lentamente, e l'eventuale errore accumulato dalla parte integrale potrebbe diventare molto grande (= windup)

 

Il feedforward ha come effetto collaterale anche la minimizzazione della correzione integrale, quindi è intrisecamente anti windup. Ovviamente deve essere corretto altrimenti risulta dannoso-;)

 

Quote

Lo schema indicato come "migliore" ha solo un piccolo difetto (nel caso i limiti abbiano lo stesso segno), ma in generale è una buona "ispirazione".

 

Si usa dire "Regolatore PID", ma ne esistono infinite variazioni di configurazioni e, a mio parere, non esiste la configurazione ottimale in assoluto, ma solo quella che meglio si adatta la tipo di problema trattato.

Link al commento
Condividi su altri siti

SandroCalligaro
Quote

Il feedforward ha come effetto collaterale anche la minimizzazione della correzione integrale, quindi è intrisecamente anti windup. Ovviamente deve essere corretto altrimenti risulta dannoso-;)

Questo effetto del feed-forward non basta nei casi in cui, per limiti fisici dell'attuatore e/o del processo (o per "opportunità"), non si riesce (o non si può) inseguire rapidamente il setpoint, anche con un controllo ideale.

In tutti quei casi l'anti-windup è necessario o comunque molto utile, secondo me (e non solo secondo me, ci mancherebbe, non sono io ad averlo "inventato" :)).

Link al commento
Condividi su altri siti

Quote

Questo effetto del feed-forward non basta nei casi in cui, per limiti fisici dell'attuatore e/o del processo (o per "opportunità"), non si riesce (o non si può) inseguire rapidamente il setpoint, anche con un controllo ideale.

 

Qui stiamo entrando in un campo dove si potrebbero scrivere libri:)

Molto poi dipende dalla filosofia di approccio al problema.

Forse molto dipende dalle nostre 2 differenti origini: eminentemente legata ai problemi pratici la mia, più basata sulla teoria la tua.

 

Comunque, a parer mio, alla fine sono i risultati che contano.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...