Vai al contenuto
PLC Forum


Regolazione Pid Con Valvola Motorizzata


arbez

Messaggi consigliati

Ciao,

sto realizzando un sistema di regolazione di temperatura che utilizza come attuatore una valvola motorizzata che accetta semplicemente due segnali digitali uno per incrementare e uno per diminuire la potenza di un bruciatore.

Il sistema in realtà è già funzionante ma essendo la prima volta che devo risolvere un problema di questo tipo vorrei un parere per eventualmente migiorare ciò che ho fatto:

il sistema utilizza come controllore un PLC, ho impementato un PID la cui uscita viene memorizzata e a intervalli di tempo fissi viene comparata con il valore precedente, il risultato della comparazione, positivo o negativo viene usato per attivare il relativo segnale della valvola motorizzata.

come vi sembra?

Grazie

Link al commento
Condividi su altri siti


ok Livio, mi sono anche accorto di aver commesso un errore nella descrizione del funzionamento.

Si tratta di un sistema di regolazione di un bruciatore composto da una sonda PT100, un algoritmo pid e una valvola motorizzata che modula la potenza del bruciatore.

Esistono in commercio dei termoregolatori fatti apposta per il pilotaggio di valvole motorizzate aventi due uscite, una per l'incremento e una per il decremento della potenza in sostanza i due sensi di marcia del motore della valvola. In questo impianto non viene utilizzato un termoregolatore ma viene fatto tutto via software, come ho scritto prima l'uscita del pid viene "campionata" e confrontata sottratta al suo valore precedente il valore ottenuto viene scalato e usato per in un temporizzatore per pilotare le uscite proporzionalmente al valore prodotto dal PID che in caso di valore positivo si aziona l'uscita di incremento di potenza se negativo viene azionata l'altra uscita.

Il sistema funziona ma mi chiedo se esiste un modo più corretto per implementare l'algoritmo di gestione della valvola.

Grazie

Modificato: da arbez
Link al commento
Condividi su altri siti

Vediamo se ho capito esattamente

Il regolatore PID ha in ingresso un valore di temperatura che compara con il valore misurato tramite sonda PT1000.

L'uscita del PID corrisponde alla correzione eventuale da fornire al sistema.

A questo punto il segno stabilirà quale comando dare alla valvola, ovvero se aprire o chiudere; mentre la grandezza della correzione stabilirà il tempo totale di attivazione del comando.

Se il valore di temperatura è quello voluto la correzione sarà pari a 0.

Se si fa il confronto tra valore di correzione attuale e valore precedente si ricava la derivata della correzione, che è un modo piuttosto...singolare di effettuare la regolazione.

Ma probabilmente non ho capito bene io di cosa si tratta in realtà, anche perchè per questo tipo di regolazione un regolatore PID non certo il più adatto.

Link al commento
Condividi su altri siti

Provo a tradurre, interpretando l'uso del temporizzatore per l'uscita ...

Il tuo blocco PID produce un segnale ingegnerizzato 0:100 e il problema è passarlo ad un blocco (o logica che dir si voglia) per determinare il tempo di comando di ciascun "impulso" di modo che corrisponda al valore richiesto per incrementare o diminuire la valvola in funzione della richiesta dell'algoritmo.

Risultato : comparatore con isteresi, in aggiunta ad un posizionatore virtuale. I termoregolatori hanno o la funzione open loop o closed loop, giusto per il fatto di usare o meno la ritrasmissione del servomotore. Se non l'hai, come il tuo caso, dal tempo di apertura 0:90 ° ti ricavi il valore minimo di comando o per cosi dire la tua risoluzione di comando (ipotizziamo un servo da 60 s da 0:90 , avremo per un incremento di 1 unità, 90/60).

Da questo punto, deduci che dovrai incrementare la tua posizione virtuale sulla base di questa costante, per aver il tuo incremento fin tanto che si approssimi al valore calcolato dall'algoritmo entro la tua isteresi.

Se ho capito bene (spero di si), non ci sono sistemi alternativi, alla fine il principio base è poi solo che questo.

Non ti crucciare poi se il sistema potrà anche presentare una discrepanza col tempo, tra l'uscita virtuale e quella reale, tanto non è un tuo problema, dato che l'equilibrio è dato dalla temperatura. Eventualmente predisponi un azzeramento o un preset da effettuare in particolari condizioni (bruciatore spento = 0 ° dopo 60 sec). Da questo punto poi, puoi ripartire.

Ciao

Link al commento
Condividi su altri siti

Il tuo blocco PID produce un segnale ingegnerizzato 0:100...

Con questo tipo di regolazione è megli omusare un regolatore P o PD.

Poi c'è da memorizzare quanto si è aperto la valvola, tramite una reazione virtuale sui tempi di comando, altrimenti si rischia un'inutile saturazione.

Link al commento
Condividi su altri siti

[at]Etr, hai interpretato correttamente, anche l'isteresi che non avevo inserito nella descrizione è presente nel sistema infatti senza di quella il motore della valvola non avrebbe avuto "tregua".

[at]Livio, non ho capito perchè giudichi "singolare" l'utilizzo di un algoritmo PID del resto si tratta di una semplice termoregolazione, non saprei cos'altro usare, la componente integrativa è indispensabile anche se sono d'accordo che si rischia di saturare il sistema.

Grazie, volevo essere certo di non essermi inventato cose "strane". :)

Modificato: da arbez
Link al commento
Condividi su altri siti

Livio, non ho capito perchè giudichi "singolare" l'utilizzo di un algoritmo PID del resto si tratta di una semplice termoregolazione, non saprei cos'altro usare, la componente integrativa è indispensabile anche se sono d'accordo che si rischia di saturare il sistema.

E' singolare non il regolatore ma l'uso dell'uscita del regolatore.

Ovviamente dalla descrizione non si può comoscere bene il problema come de visu, ma ho l'impressione che l'integrale sul PID ti serva per correggere l'errore che fai usando la derivata dell'uscita del regolatore.

Tu hai chiesto se esisteva un modo più semplice di effettuare la regolazione. La risposta è: il modo esiste, è sufficiente un regolatore PD.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Tu hai chiesto se esisteva un modo più semplice di effettuare la regolazione. La risposta è: il modo esiste, è sufficiente un regolatore PD.

Senza contestare Livio, che ha esperienza da vendere, ma l'applicazione è la classica offerta da qualsiasi regolatore con uscita 3 punti (ipotizziamo Ascon, ma potremmo anche dire Ero). In questi casi l'impostazione della terna classica, non mi ha mai dato problemi.

E' vero che la saturazione dell'integrale è una gran rogna, perché rischia di mandare in stallo l'algoritmo. A questo punto, però se è possibile è utile manipolare il FB (function block) se dispone di una segnalazione di saturazione e disporre le contromisure adeguate.

Mi smentisco dando di nuovo ragione piena a Livio, nel caso in cui il tuo sistema abbia una latenza estrema (dato che non hai specificato se si tratta di una miscelazione di acqua, un forno, un sistema di condizionamento o altro). In questo caso, troverai molte considerazione di Livio in altre discussioni, che presuppongono approcci completamente diversi (ijn queste discussioni di solito trovi alcune volte anche le mie, di considerazioni :smile: )

PS : Volevo chiedere a Livio cosa ne pensava dell'acquisizione di Eurotherm da parte di Schnaider, ma ho provato a trovare una collocazione, senza esito, per una discussione.

Scusate.

Ciao

Modificato: da ETR
Link al commento
Condividi su altri siti

come ho scritto prima l'uscita del pid viene "campionata" e confrontata sottratta al suo valore precedente il valore ottenuto viene scalato e usato per in un temporizzatore

Forse ti è sfuggito quanto sopra.

Questo è un bel derivativo discretizzato del'uscita del regolatore PID.

In pratica usa la derivata del regoaltore per aprire o chiudere la valvola.

I regolatori ASCON o ERO o GEFRAN, tanto per citare 3 regolatori che vanno per la maggiore da noi, non usano questa tecnica, stando almeno ai miei ricordi. Tecnica che considero alquanto singolare.

Ammesso di saper evitare una saturazione dell'attuatore, la tecnica corretta aprire/chiudere la valvola in funzione dell'errore.

Si usa il derivativo, oltre al proporzionale, per evitare fenomeni di elevata sovra/sotto elongazione.

Se poi si usasse un anticipo sulla reazione, in luogo della derivata dell'errore, le prestazioni migliorerebbero in termini di inifluenza di over/ under shutting al variare del set point.

In questo caso l'integrale è da usarsi con molta, ma molta, attenzione, anzi non si dovrebbe usare per alcun motivo perchè la valvola stessa fa da elemento di tenuta.

Bisogna sempre pensare all'integrale come al "reset" come lo chiamano, a ragion veduta, gli yankee, perchè azzera l'errore tenendo un riferimento tale da compensare l'errore.

Questo sarebbe valido se, ad esempio, io avessi una valvola proporzionale che necessita di un riferimento proporzionale all'apertura della valvolam stessa. Ma questa valvola, da come la descrive l'autore della discussione, è una classica valvola motorizzata che sta nella posizioni in cui è stata portata; per variarne la posizione è necessario comandarne l'attuatore. QUindi una volta azzerato l'errore nessun comando farà modificare la valvola,

Come ho scritto in precedenza l'integrale viene usato per compensare l'effetto derivativo sull'uscita del regoaltore.

In pratica si fanno 2 operazuioni che si annullano a vicenda, introducendo però errori e ritardi, oltre che a complicanze inutili.

in quanto ad Eurotherm credo sia la classica acquisizione per "succhiare" il potenziale mercato di un concorrente.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

E' interessante quello che leggo, la mia discussione voleva essere focalizzata più che altro sull'applicazione "valore di uscita del PID su valvola motorizzata" non mi ero preoccupato della parte PID.

Livio, ciò che scrivi mi offre un punto di riflessione che però ancora mi sfugge e mi riservo di fare delle prove, non ho ancora compreso senza la componente integrale come azzerare l'errore del sistema.

Link al commento
Condividi su altri siti

Livio, ciò che scrivi mi offre un punto di riflessione che però ancora mi sfugge e mi riservo di fare delle prove, non ho ancora compreso senza la componente integrale come azzerare l'errore del sistema.

La prima cosa da fare è togliere il derivativo sull'uscita del regolatore.

Poi bisogna fare la scalatura come ha scritto ETR.

Poi bisogna totalizzare i tempi di attuazione dell'elettrovalvalvola per sapere quando è arrivata, all'incirca, a fondo corsa.

L'integrale, come ho scritto in precedenza serve per azzerare l'errore.

COme azzera l'errore? generando un valore di riferimento equivalente al feedforward. Questo è vero per un sistema che ha sempre necessità di avevere un feedforward come, ad esempio, una valvola proporzionale. Se dai riferimento zero la valvola è chiusa (in eoria), se dai il 50% del riferimento la valvola è aperta al 50% circa. Così via.

Quindi se, per esempio, il tuo sistema necessita di avere la valvola aperta al 30% se tu avessi una valvola proporzionale dovresti mantenere il 30% del riferimento per avere errore zereo. Senza integrale questo non si può ottenere.

Nel tuo caso invece non è così.

Sempre secondo l'esempio precedente, per avere un'apertura del 30% della valvola devi comandarla per un tempo pari al 30% del tempo corrispondente all'apertura totale.

Quindi non necessiti di avere un'azione integrale del regolatore perchè la valvola che funge da integrale, ovvero da memoria.

Il tuo sistema comunque avrà un'inerzia quindi lavorando di solo proporzionale o si tiene un guadagno bassissimo con tempi di asstamento lunghissimi; oppure si accettano sovra e sotto elongazioni molto pesanti.

Per ovviare a questi inconvenienti si inserisce un contollo più sofisticato.

Si genera un feedforward proporzionale al set point a cui si somma algebricamente una correzione proporzionale all'errore, per velocizzare l'andata a regime si corregge il guadagno proporzionale in base alla derivata della reazione.

Comunque ti consiglio di leggere il mio tuturial sulle regolazioni. E' scritto in modo piano, senza eccessi analitici teorici ed ha parecchi esempi pratici, può contribuire a chiarire alcuni dubbi. Lo trovi nella sezione didattica, sottosezione elettrotcnica; il link è nella mia firma.

Modificato: da Livio Orsini
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...