Jump to content
PLC Forum


Sign in to follow this  
Neway

Controllore Pid In C18. Implementazione Anti Windup

Recommended Posts

Neway

Mi accingo per la prima volta a implementare su un pic un classico controllore PID come spiegato da Livio Orsini nel suo manuale sulle tecniche di regolazione. Grazie Livio!

Vorrei aggiungere la funzione anti windup, in modo da non accumulare ulteriore carica integrale se l'attuatore è già arrivato al limite. Avevo pensato di aggiungere un istruzione del tipo:


if ((out < lower_limit) OR (out > upper_limit)) {

   non aggiornare la carica integrale

}

E' corretto o mi sta sfuggendo qualcosa?

Grazie

Share this post


Link to post
Share on other sites

Livio Orsini

Son passati anni da quando ho scritto quel tutorial però, se ricordo correttamente, i limiti ci alle varie componenti dovrebbero già esserci, almeno c'è una versione in pseudo "C" che ha i limiti.

Share this post


Link to post
Share on other sites
Neway

Si, ci sono quattro limitazioni: Sulle tre azioni P, D, I e sull'uscita, però non svolgono nessuna funziona anti windup. Vero è che c'è una limitazione sul'azione integrale, ma credo sia pensata per evitare eventuali overflow della variabile. Io devo invece bloccare l'integrazione quando l'attuatore è saturo, cosa che non accade a un valore di I predeterminato.

Share this post


Link to post
Share on other sites
Livio Orsini

Il sistema non cambia. E' solo un problema di rilevare la saturazione dell'attuatore e usare il valore attuale dell'azione integrale come limite per lo stesso.

Per esperienza diretta, però, queste metodologie dano più problemi che vantaggi.

Per curiosità a che tipo di atuatore fai riferimento?

Share this post


Link to post
Share on other sites
Neway

E' un semplice servocomando per modellismo, che però deve limitare la sua corsa a +/- 12°

Share this post


Link to post
Share on other sites
Livio Orsini

Se devi fare un posizionatore fai attenzione: spesso l'integrale è più di danno che di utilità. Non per niente gli Yankee lo chiamano "reset", perchè la sua funzione è azzerare l'errore, ma se controlli la velocità in funzione dell'errore di posizione integrare l'errore di posizione.....

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...