Jump to content
PLC Forum


Termoregolazione Semplice Con Plc


step-80
 Share

Recommended Posts

non è roba da apprendisti stregoni, ma solo buonsenso.

Solo questo breve commento, perchè ho poco tempo; più tardi approfondirò anche le parti rimanenti.

L'affermazione del Katz andrebbe inserita in tutto un ragionamento che ho molto sintetizzato per motivi di spazio.

Non è solo un problema di tempo, se fosse per quello, la similitudine ci starebbe anche. Il vero problema sono i limiti che ho riportato precedentemente.

Anche sulle quantizzazioni, sui troncamenti, sugli arrotondamenti, può sembrare una precauzione eccessiva però....

Per similitudine su un regolatore analogico potresti anche pensare che la deriva di tensione degli operazionali se ha un peso fondamentale per un controllo di una continua per carta, è praticamente ininfluente in controllo di ballerino perchè, al più vedi il ballerino che ha una posizione neutra leggermente spostata.

In effetti è vero, ma c'è una considerazione fondamentale: un conto è conoscere i limiti e decidere che comunque sono soddisfacienti per una certa applicazione, ben altro è decidere che quei limiti sono insignificanti.

Link to comment
Share on other sites


  • Replies 84
  • Created
  • Last Reply

Top Posters In This Topic

  • step-80

    29

  • Livio Orsini

    22

  • batta

    19

  • Giuseppe Signorella

    13

Pensa a quelli che pronunciano fancul per fan cooler :P

Di katz ce ne sono almno 2 di importanti, almeno io ne conosco 2. Uno è un violoncellista, l'altro è un eminente professore israeliano.

Link to comment
Share on other sites

  • 5 weeks later...

Buonasera a tutti,dopo aver aquistato il modulo per termocoppie,scritto il programma e imprecato un po,oggi sono riuscito a sostituire i miei termoregolatori con il pid del mio 1200 ed ho integrato il programma già esistente anche con questa funzione.

Dopo una giornata di prove e cablaggi,sembra funzionare tutto alla perfezione,ovvero la temperatura impostata viene mantenuta molto precisamente ma non sono completamente soddisfatto,questo perchè ho raggiunto il risultato empiricamente e non perchè sapevo cosa stavo cambiando.

Se si tratta della proporzionale,li non ci sono dubbi...correzzione=errorexcoefficente,chiaro come il sole. Dopo vari tentativi ho impostato kc=0.5 per favorire la stabilità del sistema in quanto non ho necessità di seguire repentine variazioni di setpoint.

Sempre empiricamente ho impostato anche il tempo integrale=10 s dopo aver provato vari valori ed il derivativo(si lo so che potevo fare a meno della derivata ma ho avuto l impressione che andasse meglio)impostato a 20 s. Magari ho fatto qualche baggianata,magari,fatto sta che il sistema funziona discretamente almeno per le mie esigenze.

Quello che non riesco a capire è a cosa corrisponda concretamente quel tempo che ho messo(10 e 20 sec)

Premetto che ho letto alla nausea vari tutorial,e tutti giustamente ripetono"il tempo integrale è il tempo impiegato dall azione integrale,con errore costante,ad eguagliare l'azione proporzionale".

Non capisco in soldoni cosa significhi.

Se alla derivata posso arrivarci(se l errore tende ad aumentare la correzzione aumenta,o viceversa)l integrale è per me un ossessione che non mi fa dormire!

Chiedo umilmente aiuto magari con un esempio concreto,vi prego non mi rimandate a vari link perchè ne ho giá letti parecchi ma la lampadina non mi si accende.

Grazie a tutti per la pazienza

Matteo

Link to comment
Share on other sites

l integrale è per me un ossessione che non mi fa dormire!

Eppure è più facile capire l'integrale che non la derivata.

Ma lasciamo perdere la derivata, e pensiamo a un controllo PI.

Anzi, partiamo da un controllo solo proporzionale. In un controllo proporzionale l'uscita è data dall'errore moltiplicato per la costante proporzionale (o guadagno).

È facile capire che un simile controllo non ci permetterebbe mai di arrivare al valore di set point perché, una volta raggiunto il set point, l'errore sarebbe pari a zero; ma se l'errore è zero, anche l'uscita sarà zero.

L'integrale serve proprio per poter raggiungere il valore di set point.

Mentre il proporzionale calcola il valore dell'uscita in base all'errore, l'integrale, ad ogni campionamento, somma un valore al valore di uscita precedente.

Con errore zero quindi, la parte proporzionale diventa zero, mentre la parte integrale rimane invariata.

Comunque, anche se hai chiesto di non essere rimandato ad altri link, non posso fare a meno di dirti che nel tutorial di Livio è tutto spiegato molto bene.

Link to comment
Share on other sites

Ti ringrazio moltissimo per la spiegazione Batta,qualcosa mi hai chiarito.

Ora, se osservo il mio sistema una volta arrivato in temperatura collegandomi online noto che con errore zero la parte integrale compie giustamente il suo lavoro,e da in uscita un valore percentuale di circa 10...dato che il tempo di ciclo pwm l ho impostato a 1 sec ,il 10% di 1 sec è 1/10 ed effettivamente se osservo i led posti sui relè statici essi effettuano una brevissima pulsazione(verosimilmente 100ms)ogni secondo.

E fin qui direi tutto a posto. Ma su che base viene calcolato quel valore?dai manuali leggo"dal valore medio". E quando lo calcola questo valore medio?ed ogni quanto?

Coraggio ci sono quasi ... Grazie in anticipo.

Matteo

Link to comment
Share on other sites

Ma su che base viene calcolato quel valore?

Se intendi il valore della correzione integrale, lo calcola il regolatore ed è quel valore che serve per avere errrore zero a regime.

Se non è quello che intendevi tu, dovresti spiegare meglio cosa intendi.

Link to comment
Share on other sites

Se intendi il valore della correzione integrale, lo calcola il regolatore ed è quel valore che serve per avere errrore zero a regime.

Se non è quello che intendevi tu, dovresti spiegare meglio cosa intendi.

Proprio di quel valore stavo parlando. Che lo calcoli il regolatore nessun dubbio,ma su che base?sull integrale dell errore,cioè il suo valore medio?

Se è cosi,quando effettua questo calcolo,o meglio,quando effettua il campionamento dell errore medio?

Link to comment
Share on other sites

Se è cosi,quando effettua questo calcolo,o meglio,quando effettua il campionamento dell errore medio?

Il calcolo viene fatto ad ogni elaborazione del PID.

Vediamo come questo calcolo viene fatto, considerando che, ad errore costante, la parte integrale eguaglia la parte proporzionale dopo il tempo Ti.

Dato che la correzione proporzionale è data da LMN_P = Kp * Err, avremo che la correzione integrale LMN_I deve essere pari a Kp * Err dopo il tempo Ti.

Questo significa semplicemente che l'incremento dell'integrale per unità di tempo deve essere pari a Kp * Err / Ti.

Tenendo conto anche del tempo di campionamento, avremo che l'incremento dell'integrale ad ogni campionamento sarà pari a Kp * Err * Ts / Ti

Facciamo un semplice esempio usando i numeri.

Err = 30

Kp = 2

Ti = 20 s

Ts = 0.1 s (tempo di campionamento)

Per quanto riguarda la parte proporzionale, avremo:

LMN_P = Kp * Err = 2 * 30 = 60

Mentre per l'integrale avremo che, ad ogni campionamento, la correzione integrale viene incrementata come segue:

LMN_I = LMN_I + Kp * Err * Ts / Ti = LMN_I + 0.3

Ad ogni campionamento l'integrale aumenta di 0.3 unità. Dopo 200 campionamenti (20 secondi nel nostro esempio) avremo fatto 200 incrementi di 0.3 unità ciascuno. La correzione integrale sarà quindi pari alla correzione proporzionale.

Nel funzionamento reale l'errore non sarà costante. Se tutto funziona come si desidera, la variabile di processo si avvicinerà sempre di più al valore di set point (l'errore diminuisce).

Questo significa che la correzione proporzionale diminuirà, come diminuirà l'incremento della correzione integrale (ma non la correzione integrale).

Ovviamente in una funzione PID vengono fatti controlli sui limiti di ogni componente (P, I e D), oltre che sul valore totale dell'uscita.

Se l'integrale raggiunge il limite massimo impostato, non viene più incrementato.

Spero, anche se in modo piuttosto rozzo, di aver chiarito come viene calcolato l'integrale.

Edited by batta
Link to comment
Share on other sites

Il calcolo viene fatto ad ogni elaborazione del PID.

Vediamo come questo calcolo viene fatto, considerando che, ad errore costante, la parte integrale eguaglia la parte proporzionale dopo il tempo Ti.

Dato che la correzione proporzionale è data da LMN_P = Kp * Err, avremo che la correzione integrale LMN_I deve essere pari a Kp * Err dopo il tempo Ti.

Questo significa semplicemente che l'incremento dell'integrale per unità di tempo deve essere pari a Kp * Err / Ti.

Tenendo conto anche del tempo di campionamento, avremo che l'incremento dell'integrale ad ogni campionamento sarà pari a Kp * Err * Ts / Ti

Facciamo un semplice esempio usando i numeri.

Err = 30

Kp = 2

Ti = 20 s

Ts = 0.1 s (tempo di campionamento)

Per quanto riguarda la parte proporzionale, avremo:

LMN_P = Kp * Err = 2 * 30 = 60

Mentre per l'integrale avremo che, ad ogni campionamento, la correzione integrale viene incrementata come segue:

LMN_I = LMN_I + Kp * Err * Ts / Ti = LMN_I + 0.3

Ad ogni campionamento l'integrale aumenta di 0.3 unità. Dopo 200 campionamenti (20 secondi nel nostro esempio) avremo fatto 200 incrementi di 0.3 unità ciascuno. La correzione integrale sarà quindi pari alla correzione proporzionale.

Nel funzionamento reale l'errore non sarà costante. Se tutto funziona come si desidera, la variabile di processo si avvicinerà sempre di più al valore di set point (l'errore diminuisce).

Questo significa che la correzione proporzionale diminuirà, come diminuirà l'incremento della correzione integrale (ma non la correzione integrale).

Ovviamente in una funzione PID vengono fatti controlli sui limiti di ogni componente (P, I e D), oltre che sul valore totale dell'uscita.

Se l'integrale raggiunge il limite massimo impostato, non viene più incrementato.

Spero, anche se in modo piuttosto rozzo, di aver chiarito come viene calcolato l'integrale.

Perfetto,ora è tutto molto chiaro. Ti ringrazio davvero per l esauriente risposta.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...