Neway Inserito: 18 marzo 2012 Segnala Share Inserito: 18 marzo 2012 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 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 19 marzo 2012 Segnala Share Inserita: 19 marzo 2012 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. Link al commento Condividi su altri siti More sharing options...
Neway Inserita: 19 marzo 2012 Autore Segnala Share Inserita: 19 marzo 2012 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. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 19 marzo 2012 Segnala Share Inserita: 19 marzo 2012 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? Link al commento Condividi su altri siti More sharing options...
Neway Inserita: 19 marzo 2012 Autore Segnala Share Inserita: 19 marzo 2012 E' un semplice servocomando per modellismo, che però deve limitare la sua corsa a +/- 12° Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 19 marzo 2012 Segnala Share Inserita: 19 marzo 2012 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..... Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora