Vai al contenuto
PLC Forum


Spiegazione valori PID


sorecaro

Messaggi consigliati

Salve a tutti, vorrei chiedere alcune cose che purtroppo non riesco a capire. Premetto che ho letto più di una volta il tutorial del Sig. Livio Orsini ma alcuni concetti non li comprendo in pieno ( sicuramente per mia mancanza).  Il problema è che anche se ho capito a cosa servono le varie azioni (proporzionale, integrale,derivata) non riesco ad associare i valori numerici ad esse.

Provo a descrivere quello che ho capito.

 

Azione P è proporzionale all'errore, quindi se ipoteticamente impostiamo un valore P=2 in uscita abbiamo un segnale di comando che è pari allo scostamento dal set point x 2. 

Esempio. SetPoint =10   Variabile di processo =8 Segnale di comando PID=4

 

 Qui cominciano i problemi.

 

Azione I serve per annullare l'errore e portare a regime il sistema. Con un I=grande abbiamo un sistema stabile ma lento, con I=piccola abbiamo un sistema molto veloce ma poco stabile

 

Azione D si attiva solo quando c'è stato un scostamento dal setpoint ed proporzionale alla velocità dello scostamento dal setpoint

 

Quello che non riesco a capire sono i valori da dare a I e D. In termini pratici se imposto I=5 oppure D=15 cosa succede?? 

 

Grazie a tutti

 

Link al commento
Condividi su altri siti


Non è possibile risponderti, perchè i termini P, I e D sono dipendenti dal sistema controllato e dal sistema di controllo.

Ci sono casi in cui, e ne ho anche descritto qualcuno nel tutorial, in cui è necessario che i valori di correzione varino dinamicamente in funzione della variazione fisica del sistema controllato.

 

Conoscendo alcuni parametri del sistema è possibile calcolare "a tavolino" i valori dei coefficienti P, I e D ma questo procedimento non è possibile spiegarlo in poche righe di un messaggio sul furum.

Per arrivare a questo livello è indispensabile aver studiato in modo approfondito il sistema di controllo avvalendosi di testi specializzati.

 

Nei moderni azionamenti in alternata e in continua i convertitori e gli inverters hanno, oramai in modo generalizzato, algoritmi che permettono dopo l'introduzione dei dati elettrici e meccanici del motore di ipotizzare i coefficienti ottimali, coefficienti che sono poi affinati con verifiche automatiche nella fase detta di "auttuning".

Link al commento
Condividi su altri siti

Livio grazie per la risposta ma forse non mi sono espresso bene, se è cosi chiedo scusa. Provo a spiegare in un altro modo. 

 Se ipoteticamente abbiamo un sistema con questi valori P=2 I=1,5 D=0,8, l'1,5 dell'integrale cosa vuol dire??? Cosa succede al regolatore quando c'è 1,5 come tempo di integrazione??? 

Se abbiamo un valore di 0,8 come derivata cosa significa di preciso??  

E' questo che non riesco a capire. 

Purtroppo la mia difficoltà è nel capire l'integrale e la derivata

 

Grazie 

Link al commento
Condividi su altri siti

Non significa niente.

Dipende dal regolatore e dal sistema regolato.

L'unica cosa che vale sempre è che un coefficiente di integrazione di 1.5 rende il tempo di integrazione pari al doppio di quanto lo sarebbe con un coefficiente di 0.75.

Similmente per il coefficiente differenziale; a parità di variazione nel tempo un coefficiente di 0.8 provoca una variazione pari alla metà di un coefficiente pari ad 1.6.

 

Ma quanto incidano nel sistema reale è solo funzione del regolatore stesso e del sitema regolato.

Come scrivevo prima, conoscendo alcune caratteristiche fisiche del sistema si può capire l'influenza di questi parametri.

Link al commento
Condividi su altri siti

SandroCalligaro

Scusa il ritardo, mi ero ripromesso di scrivere qualcosa già prima della tua ultima risposta, ma mi ci voleva un momento di tempo per pensarci su.

Spero sia ancora utile...

 

Purtroppo non so che formazione hai, come diceva Livio per comprendere alcuni aspetti sarebbe necessario conoscere un po' di teoria.

Aggiungo comunque un esempio che credo sia abbastanza intuitivo (e speriamo istruttivo), e che con qualche analogia (e qualche attenzione) è applicabile a vari casi utili.

 

 

Prendiamo il caso (teorico) di un serbatoio cilindrico, in cui si vuole controllare il livello effettivo del liquido L [m] agendo sulla portata dell'ingresso, per portarlo ad un livello arbitrario (setpoint) L* [m].

Supponiamo che il serbatoio abbia sezione pari S [m2], e di avere a disposizione un dispositivo (attuatore) ideale, che sia in grado di portare istantaneamente la portata in ingresso al serbatoio Qin [m3/s] al valore che il nostro regolatore richiede. Avremo anche come feedback la misura del livello L [m].

 

Lo schema del sistema è quindi qualcosa del genere:

 

            +           _____  Qin    _____________   Qin    ____________             L

L* ------>O----->| Reg |-------->| Attuatore (=1) |-------->| Serbatoio (S) | -----o----->

            _ ^         --------            --------------------            --------------------        |

               |                                                                                                      |

         L    |                                                                                                      |

               | __________________________________________________ |

                                                                 

In questo caso, intuitivamente, si può fare un ragionamento: per riempire il serbatoio al livello di setpoint, potrebbe essere sufficiente un'azione proporzionale del regolatore, perché sappiamo che qualunque portata Qin positiva farà aumentare il livello, viceversa una portata negativa lo abbasserà.

Basterà quindi avere come uscita del regolatore

Qin = Kp · (L* - L)

con Kp>0, la quale farà variare il livello nel verso corretto, ed assumerà valore nullo quando si sarà raggiunto il livello desiderato.

 

Il sistema complessivo, controllato in questo modo, è sempre stabile, qualunque sia il valore di Kp. Questo solitamente non basta, perché vogliamo poter determinare la dinamica del controllo, cioè la velocità con la quale l'uscita L insegue il setpoint L*, che si esprime in termini di banda passante.

Si può dimostrare abbastanza facilmente che la risposta di questo sistema, controllato con un regolatore proporzionale, è un passa-basso del primo ordine, con guadagno unitario a regime (cioè errore nullo a regime), e che la banda passante del sistema Bw [Hz] è proporzionale al guadagno Kp, e inversamente proporzionale alla sezione S, che caratterizza il serbatoio:

Bw = Kp/(2·pi·S)

dove pi è pi greco.

 

Questo caso naturalmente è molto poco realistico, perché avrebbe poco senso controllare il livello di un serbatoio nel quale non ci sono uscite: una volta raggiunto il livello desiderato, con la portata Qin a zero questo si manterrebbe per sempre.

 

 

 

Modifichiamo il plant (il sistema da regolare) in modo che, rispetto a prima, il serbatoio abbia una perdita, di portata proporzionale al livello del liquido, con coefficiente costante P:

Qout = P · L

 

Il sistema diventa quindi come qui sotto:

 

            +           _____  Qin    _____________  Qin     +              ___________             L

L* ------>O----->| Reg |-------->| Attuatore (=1)  |---------->O------>| Serbatoio (S) | -----o----->

            _ ^         --------            --------------------            -   ^          -------------------        |

               |                                                                         |                ____                  |

           L  |                                                                         -------------|   P   |-------------o

               |                                                                     Qout            --------                 |

               |                                                                                                                    |

               |__________________________________________________________|

                                                                 

In questo caso, non avremmo più errore nullo a regime, se usassimo solamente un regolatore proporzionale, perché a livello costante ci occorre una portata Qin costante, per mantenere fisso il livello. Sappiamo già che possiamo risolvere il problema introducendo un guadagno integrale, ma come assegnare il guadagno?

Ovviamente ci sarebbero infiniti criteri di dimensionamento, ma ce n'è uno interessante, sia perché è semplice e (teoricamente) sempre stabile, sia perché credo che aiuti a capire quello che chiedevi, cioè il "significato" dei vari guadagni.

 

Se manteniamo il guadagno proporzionale come lo avevamo dimensionato sopra:

Kp = 2·pi·Bw · S

e scegliamo un guadagno integrale proporzionale alla banda passante desiderata in Hz (Bw) e al coefficiente proporzionale della perdita P:

Ki = 2·pi·Bw · P

avremo che il sistema complessivamente è sempre stabile, ed ha una risposta passa-basso del primo ordine, con guadagno unitario a regime (in continua), e banda passante pari Bw.

 

Quindi, un dimensionamento semplice e "sicuro" (stabile) è quello di un regolaore PI che ha Kp proporzionale alla grandezza del serbatoio (sezione S), e Ki proporzionale al coefficiente che rappresenta la perdita (P).

Si potrebbe quindi dire che, in un sistema del genere, il guadagno proporzionale va a "riempire" la parte dinamica del plant, cioè quella che accumula (il livello del serbatoio è l'integrale della portata in ingresso meno quella in uscita), mentre il guadagno integrale "copre" la perdita.

Ragionando in frequenza, infatti, se definiamo la costante di tempo del serbatoio con la sua perdita, che sarà

tau = S / P

questa sarà uguale alla costante di tempo del regolatore

Kp/Ki = 2·pi·Bw · S / 2·pi·Bw · P = S / P

cioè con lo zero del regolatore abbiamo compensato il polo del plant.

 

 

Questo esempio è, ovviamente, una banalizzazione di un caso reale che è già di per sé piuttosto semplice.
Nella realtà non si conosce con esattezza il modello del plant, tanto meno gli esatti valori dei parametri (in questo caso S e P), addirittura questi possono cambiare nel tempo.

Nella realtà l'attuatore non attua esattamente esattamente la portata Qin richiesta dal regolatore, o per lo meno lo fa con un certo "ritardo" (è tipicamente un passa-basso con una certa banda), ed ha dei limiti (non può realizzare una portata infinita).

Nella realtà ci saranno altre "perdite", non proporzionali al livello, addirittura "casuali", cioè ad esempio l'apertura o la chiusura di un rubinetto da parte di un utilizzatore.

In un sistema di questo tipo, aumentare il guadagno integrale, a parità del proporzionale, tende a migliorare poco la risposta alle variazioni del setpoint (anzi la rende più oscillatoria), ma invece migliora sensibilmente le prestazioni del controllo rispetto a questi "disturbi". Per "coprire" le non-idealità e i disturbi può essere utile assegnare al guadagno integrale un valore un po' più alto di quello della formula qui sopra (leggermente a scapito della stabilità).

 

Nella realtà anche il feedback non è ideale, in particolare anche il sensore sarà più o meno un passa-basso con una certa banda passante.

Quest'ultima non-idealità, in particolare, è il maggior limite alla banda passante della regolazione, in pratica il sistema complessivo non potrà avere banda passante superiore a quella del sensore (pena l'instabilità).

 

 

 

Nonostante sia un caso semplice, la necessità di regolare plant del tipo che ho descritto (un "integratore" ed una "perdita") è molto frequente, sia perché molti sistemi naturali sono (in prima approssimazione) dei passa-basso del primo ordine, sia perché spesso sistemi più complessi si possono scomporre in sistemi del primo ordine.

Un esempio interessante di quest'ultimo caso è il controllo di velocità di un motore (DC, brushless, asincrono in vettoriale), dove con un regolatore PI si va a regolare la corrente (coppia) su un circuito resistenza-induttanza, e tramite la coppia si controlla la velocità in un sistema meccanico che, approssimativamente, è composto da inerzia e attrito volvente (entrambi i "sottosistemi" sono passa-basso del primo ordine).

 

Dalle formule si capiva, comunque, che spetta a chi fa il dimensionamento il compito di scegliere il valore della banda passante Bw.

Per tener conto dei vari limiti imposti dalle non-idealità, si dovrà imporre un valore "ragionevole", che significa dettato dall'esperienza, dalla conoscenza del sistema (ad esempio conoscendo la banda passante del feedback) o determinato a tentativi, magari partendo dal basso, andando a cercare un valore "limite".

 

Penso che parecchie di queste informazioni ci siano anche nel tutorial di Livio.

Link al commento
Condividi su altri siti

Il mio tutorial è impostato in modo eminentemente pratico, però qualche formula indispensabile c'è.

L'esempio della regolazione proporzionale per regolare il livello di un serbatoio (io solitamente uso l'esempio pratico del serbatoi dello sciacquone) non sempre è applicabile. A esempio su di un regolatore di velocità il controllo solo proporzionale non annulla l'errore, così come in quasi tutti i controlli di temperatura. Questo perchè il guadagno proporzionale avrà un valore ben minore di infinito. Non per niente gli yankee chiamano "reset" l'azione integrale.

Anche nella realtà il controllo di livello in puro proporzionale non annulla l'errore; questo perchè la portata in genere si annulla quando l'errore c'è ma è relativamente piccolo. Nella pratica si fissa un livello maggiore di quello desisderato, per cui l'errore diventa ininfluente. :smile:

Link al commento
Condividi su altri siti

SandroCalligaro

Per questo, a proposito del primo caso (senza perdita) avevo scritto:

Quote

Questo caso naturalmente è molto poco realistico

:)

 

Il secondo caso, invece, è utilizzabile anche in pratica. La mia idea è che dare intuitivamente un senso al guadagno proporzionale ed integrale (almeno per un certo genere di casi, che però è molto frequente) sia utile. Al derivativo ho ancora difficoltà a dare un "volto".

Link al commento
Condividi su altri siti

Il derivativo.....è meglio non usarlo.:smile:

Scherzo ovviamaente, però usando saggiamente il feedforward se ne riduce notevolmente l'utilità.

Poi io preferisco usare un anticipo sulla reazione, piuttosto che il drivativo, oppure usare il derivativo in modi alternativi, ma qui il discorso diventa lungo e complicato.
 

Quote


Questo caso naturalmente è molto poco realistico

 

 

Si ma ho voluto ribadire il concetto perchè ogni tanto c'è qualcuno che pretende di fare un regolatore ad errore zero usando il solo proporzionale.

Link al commento
Condividi su altri siti

Buongiorno, come prima cosa ringrazio entrambi per il tempo che avete speso per soddisfare la mia domanda. Purtroppo sto studiando "da solo" i regolatori PID e molte cose non mi sono chiare per via di mancanze che ho verso la matematica. Le varie azioni di un PID mi sono molto chiare grazie a voi ma non comprendo bene le due azioni INTEGRALE e DERIVATA. Quello che non capisco è cosa succede a livello di attuatore avere  un I=2 oppure I=5. E' difficile da spiegare :lol:

Faccio un esempio banale e sicuramente sbagliato

 

 Se ho un regolatore con I=2 questo significa che l'attuatore......

 

Perdonatemi se ho detto/scritto castronerie ma sto cercando di capire, sto anche leggendo 2 libri sui PID ma devo dire che sono molto teorici e poco pratici

Link al commento
Condividi su altri siti

Parti dal concetto di tempo d'integrazione.

Cosa è il tempo di integrazione? E' il tempo necessario all'azione integrale, con errore costante, per eguaglaire l'azione proporzionale.

Cerco di chiarire con un esempio.

Ho un sistema che ha un guadagno proporzionale pari a 5, significa che con un errore di 1 la correzione proporzionale è 5.

Ora tolgo la correzione, ovvero sconnetto l'uscita del regolatore PI, l'errore, se non intervengono fenomeni esterni a variarlo, continuerà ad essere sempre 1.

Con un coefficiente integrale di 2, ad esempio, l'uscita dell'integrale sarà pari a 5 dopo 100ms. Se ora porto il coefficiente al valore di 5, azzero l'integrale e misuro il tempo per arrivare ad un valore di 5 noterò che il tempo impiegato corrisponderà a 250ms proprio perchè il rapporto tra i 2 coefficienti è 0.4 .

Ti è chiaro il significato fisico del coefficiente integrale?

Link al commento
Condividi su altri siti

Buongiorno a tutti, l'argomento è interessante, in quanto ho un pò lo stesso problema di @sorecaro.

Livio ti reputo qui sul forum un GURU della regolazione, senza nulla togliere agli altri amici, la domanda da parte mia è:

Se dovessimo avere una scatola tipo pacchetto di sigarette con dei connettori per IN, OUT e FEEDBACK, faccio un esempio molto banale, e un display con pulsanti dove vai a regolare  IN, OUT e i tre guadagni, si può capire l'effetto dei guadagni senza doversi buttare  in calcoli spinti ai livelli di funzioni integrali e derivate?

In quello che facevo fino a poco fa, messa in servizio di sistemi di sollevamento, sugli azionamenti ABB, regolavo il guadagno integrale fino ad inizio di instabilità e poi tornavo qualche passo indietro, guardando comunque le curve di corrente e   le sovraelongazioni, fino a che non avevo la risposta del sistema voluta e curve abbastanza pulite; poi ovviamente dipende anche da come il sistema doveva rispondere e dall'entità delle forze in gioco.

 

Uno che non è un matematico, può sapere quali sono i canoni per la messa a punto di un regolatore PID e cosa accade agendo sui tre guadagni e capire fin dove ci si può spingere?

Link al commento
Condividi su altri siti

La derivata ha un concetto simile al proporzionale.

Nel proporzionale si moltiplica l'errore per un coefficiente e si ottiene la correzione.

Nel derivativo classico, non si considera l'errore, ma la derivata dell'errore ovvero al velocità della variazione. In un sistema analogico è continuo nel tempo. In un sistema digitale viene campionato ad intervalli regolari.

Usiamo un sistema discreto, ovvero digitale, per semplificare i concetti.

Poiniamo, sempre per esemplificare, un coefficiente proporzionale di 4 ed un coefficiete derivativo di 2

Al primo campionamento misuro un certo valore di errore, poniamo 5. La correzione sarà data dal valore proporzionale, 20, a cui si somma la parte di derivativo, che in questo caso vale 10, perchè si è passati da errore 0 a errore 5; quindi la correzione totale sarà pari a 30.

Al compionamento successivo l'errore puo essere uguale, maggiore o minore.

  1. Errore costante. La correzione vale solo per la parte proporzionale, ovvero 20. La parte derivativa è nulla perchè non c'è stata variazione di errore.
  2. Errore maggiore, poniamo 6. La componen te proporzionale varrà 24; la componente derivativa varrà d = (6-5)*2 = 2, così la correzione totale è pari a 26. Nonostante l'errore sia più grande del precedente la correzione derivativa è diminuita perchè è diminuita la velocità con cui cresce l'errore.
  3. Errore minore, poniamo 4. La componente proporzionale vale 16, mentre la componente derivativa varrà: d=(4-5)*2 = -1; la correzione totale varrà 15.

Notare come l'effetto derivativo enfatizza le variazioni di errore.

Lo scopo dele derivativo è quello di rafforzare l'azione correttiva aumentandola o diminuendola in funzione del comportamento dell'errore.

E' sempre da usarsi con molta prudenza perchè è facile che possa provocare instabilità o comunque enfatizzare i transitori.

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