Vai al contenuto
PLC Forum


Controllore P.i.d.


visedragon

Messaggi consigliati

Ti ricordo che con la banda proporzionale, la grandezza regolante e' proporzionale all'errore da correggere ..

Con l'azione integrale,la grandezza regolante e' proporzionale all'ammontare di tempo l'errore e' presente.

Da quanto hai descritto sopra, il tempo integrale non funziona propio.

Link al commento
Condividi su altri siti


Non credo sia questo tipo di regolazione di cui necessiti,

ma se proprio ritieni che una logica fuzzy o similare sia quella che ti risolve il problema direi che

necessiti di una logica autoadattativa, ovvero che si auto-adatta alle situazioni

di regolazione, campionando nel tempo i valori dalla PV e autoregolando vari parametri/interventi (funzioni) di controllo

secondo un ben preciso schema logico, ma per fare questo non basta premere il tasto "Autotuning" di un qualsiasi regolatore..... :blink:

Dovresti cominciare ad utilizzare un regolatore liberamente programmabile tipo questo...

http://www.ascon.it/dbAscon/intro.php?idla...pcmD=&pcmE=

Link al commento
Condividi su altri siti

Ciao a tutti,

allora ecco gli ultimi sviluppi: ho mantenuto il controllore pid per avvicinarmi a setpoint, una volta arrivati a quest'ultimi (naturalmente entro una certa tolleranza..) il pid viene disabilitato e il sw entra in modalità fuzzy eseguendo il mantenimento della misura appena raggiunta. Devo ammettere che sul sistema simulato funziona mooolto bene (ho introdotto una banda morta entro cui non viene eseguita nessuna regolazione, inferiore alla tolleranza assegnatami) e non vedo l'ora di andare in fabbrica a testarlo!!!

Cos'altro potrebbe mancare che non ho pensato???

Grazie

VD

Link al commento
Condividi su altri siti

Salve, secondo me il tuo PID non sta riuscendo ad annullare l'errore, ossia la differenza tra la variabile controllata e il riferimento o setpoint.

A mio avviso, o stai acquisendo male la variabile controllata quindi il sensore non è adatto(si riccordi che la precisione del sistema dipende dall'organo di trasduzione) quindi il controllo non stabilizza mai l'errore a zero, oppure dovresti utilizzare un PID con Auto-Self Tuning ossia Tuning continuativo!

Che ne dite? :D

Link al commento
Condividi su altri siti

Il pid funziona abbastanza bene, così come la fua FBK di autotuning, il problema è che dovendo mantenere due setpoint contemporaneamente con un solo controllore (purtroppo la tecnologia utilizzata non permette di fare in altro modo), il segnale di regolazione dell'attuatore in uscita dal pid fa si che questo sia soggetto a forse stress meccanico.

Per ovviare a ciò, ho introdotto un mantenmento delle misure più dolce, tramite la logica fuzzy e come accennavo stamattina, dopo mezza giornata di test, devo ammettere che è la soluzione che funziona meglio che abbia mai trovato. E lavoro a questo progetto da 10 mesi circa...

Il pid è ideale per arrivare a setpoint e mantenerlo, ma in quest'ultima modalità di funzionamento, introduce troppo stres meccanico sull'attuatore. Il fuzzy invece funziona meglio del pid, e in più non stressa l'attuatore (naturalmente tutto ciò vale per il simulato, spero sia così anche per il sistema reale...).

Quello che volevo sapere, era se qualcuno ha esperienza della fuzzy logic e mi può dire se è sufficente implementare la regolazione t.c. il controllo sia proporzionale alla variazione da correggere...

Link al commento
Condividi su altri siti

Io resto dell'idea che non è un problema di strategia di regolazione (fuzzy o PID classico), ma di implementazione del regolatore, dei sensori e del trasduttore.

Purtroppo un'analisi a distanza, per di più in assenza di informazioni sulle prestazioni dei trasduttori e dei sensori, è molto difficile.

Il fatto che introducendo un banda morta di regolazione il sistema migliori potrebbe essere fondamentale per l'analisi del problema.

Io evitere, comunque, una regolazione mista. Probabilmente basterebbe un uso corretto del feed forward unito ad un controllo fuzzy per avere i migliori risultati. Sempre che si tengano in debito conto le esatte prestazioni dei sensori e dei trasduttori.

Link al commento
Condividi su altri siti

tutto ciò vale per il simulato, spero sia così anche per il sistema reale...).

Un proverbio dice chi vive sperando....

Io al contrario penso che se chiedi informazioni su una regolazione PID, ma stai lavorando su un simulatore software

tu sia molto lontano dalla realtà operativa del regime che troverai dopo nell'applicazione reale, e che a questo punto le domande ti conviene

farle a chi a programmato il simulatore, perchè dovremmo capire prima cosa questo riesca a simulare realmente....

Purtroppo il PID nasce per correggere una serie di perturbazioni reali e quindi costruire e settare un simulatore per una reale perturbazione non penso

sia cosa molto semplice e difficilmente equiparabile alla realtà del processo originale specialmente se in regime critico.

Comunque Buona fortuna!!

Link al commento
Condividi su altri siti

...regolazione t.c. il controllo sia proporzionale alla variazione da correggere...

Cos'è una nuova tecnica di regolazione??? Non so affatto che sia, spiegati meglio.

Io evitere, comunque, una regolazione mista.

Concordo.

Probabilmente basterebbe un uso corretto del feed forward unito ad un controllo fuzzy per avere i migliori risultati. Sempre che si tengano in debito conto le esatte prestazioni dei sensori e dei trasduttori.

Io spero che si tratti di un controlo in feedback, se no, non capisco l'utilità del PID!

Ecco perchè non riesci a stabilizzare questo sitema ad un errore nullo con l'autotuning, hai due riferimenti diversi!

Riccorda che l'autotuning è una procedura che viene attivata su esplicito comando dell'operatore atta a determinare i parametri del regolatore adatti al tipo di sistema preso in esame, quindi ogni qualvolta varia il riferimento devi attivare nuovamente la procedura di autotartura, il che non mi pare tanto conveniente.

Io opterei per l'autoselftuning.

Modificato: da Bender83
Link al commento
Condividi su altri siti

Secondo me non riesci a regolare col pid semplicemente perché il pid è regolato male.

Le seguenti tue affermazioni

si passa da uno stato di condotta dell'aria completamente aperta o completamente chiuso.
il segnale di regolazione dell'attuatore in uscita dal pid fa si che questo sia soggetto a forse stress meccanico.

fanno pensare entrambe ad un guadagno esageratamente alto.

Se poi risolvi con un controllo fuzzy, bene, ma sono convinto che il pid, ben regolato, sarebbe in grado di svolgere egregiamente il compito.

Al limite, piuttosto che passare da pid a fuzzy al superamento di determinate soglie, potresti usare queste soglie per modificare i parametri del pid.

Potresti ottenere un comportamento più veloce (ma instabile) quando sei lontano dal setpoint ed un comportamento molto più tranquillo quando invece sei vicino al setpoint.

Senza bisogno di complicarsi la vita col doppio controllo pid/fuzzy.

Link al commento
Condividi su altri siti

Io spero che si tratti di un controlo in feedback, se no, non capisco l'utilità del PID!

Ahi, ahi, :) Mai sentito che per migliorare le prestazioni di un controllo in feed back è necessario lavorare sul feed forward?

Questo indipendentemente dal fatto che il regolatore in feedback sia di tipo classico (PID) o fuzzy, o altro. Prevenire è sempre più efficace che correggere.

..potresti usare queste soglie per modificare i parametri del pid.

A suo tempo anch'io ho fatto qualche "porcata" del genere, però sono cose che è meglio evitare, specialmente se non is domina bene il problema.

..naturalmente tutto ciò vale per il simulato, spero sia così anche per il sistema reale.

Sarebbe interessante capire come hai simulato il sistema. Non è che forse quel comportamento anomalo dell'attuatore dipenda dalla simulazione?

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

A questo punto direi che per fare un controllo sia richiesto un trend temporale della regolazione

cosi vediamo quello che svolgi veramente nel tempo...

perchè a forza di presupposti il livello trabocca....e la rosa non si marita.... :lol:

Link al commento
Condividi su altri siti

CITAZIONE

..potresti usare queste soglie per modificare i parametri del pid.

A suo tempo anch'io ho fatto qualche "porcata" del genere, però sono cose che è meglio evitare, specialmente se non is domina bene il problema.

Non è un sistema che uso abitualmente, anzi, non lo uso quasi mai. Non è comunque peggio che passare da pid a fuzzy ;)

In ogni caso, variare al volo i parametri del pid talvolta può essere utile, soprattutto quando lo stesso pid, senza intervento da parte dell'operatore, deve adeguarsi a condizioni di lavoro estremamente diverse.

Meglio poi se invece che modificare semplicemente i parametri in base a soglie si utilizzano formule matematiche per il calcolo dei parametri stessi.

Tornando al problema, resto sempre dell'idea che si tratta solo di utilizzo non corretto del pid.

Link al commento
Condividi su altri siti

Non è comunque peggio che passare da pid a fuzzy

Sono talmente d'accordo che è un'operazione che ho sconsigliato da subito.

Spesso un buon uso del feedforward da effetti migliori del cambio dei parametri.

Ci sono però regolazioni dove il sistema stesso muta le costanti nel corso della lavorazione, in questi casi è indispensabile cambiare automaticamente qualche cosatnte del regolatore. Un caso tipico sono i controli di avvolgitura in velocità, se il rapporto diametri è elevato è necessario ricalibrare i guadagni in funzione dle diametro, ma questa è tutta un'altra questione.

Link al commento
Condividi su altri siti

  • 3 weeks later...

....."agisce aprendo del tutto o chiudendo completamente la valvola, lavorando praticamente sempre da un fondoscala all'altro".....

...il comando della tua valvola è in 0-10volts o simili oppure in un'altro modo?

Link al commento
Condividi su altri siti

Salve a tutti,

scusate per la lunga assenza ma ho lavorato molto... Dunque, ho risolto molti problemi e ora riusciamo a lavorare anche se le prestazioni non sono ancora soddisfacenti: ho abbandonato il Pid e vari annessi e connessi e ho semplificato molto ilo sistema rendendo la cpu molto più agile nelle sue operazioni; ora utilizzo un Fuzzy con banda morta in cui non eseguo regolazioni e la cui reazione dipende dall'ampiezza della variazione dal setpoint di banda morta da correggere. Ho lavorato anche molto sulle acquisizioni: ora ne faccio 2 al secondo e ho ottenuto così un segnale molto pulito e più facile da gestire. Questa settimana vado a provare le ultime modifiche...

Purtroppo mi sono reso conto che ho lavorato troppo da ingegnere perdendo una marea di tempo prezioso: invece di soffermarmi tanto sul codice, avrei dovuto buttare giù una prima stesura e poi andare a provarlo subito sulla macchina! Solo sul campo infatti ci si può rendere conto di dove si sbaglia e di cosa è utile veramente...

Vabbè, ciao a tutti!

VD

PS: la valvola è uno 0-10 V

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