Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente | ||
software:qview:qview_6:qcl_library:ot11pidreg [2014/11/24 14:24] – [Esempio] qem207 | software:qview:qview_6:qcl_library:ot11pidreg [2024/09/02 16:46] (versione attuale) – qem214 | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | ====== OT11PidReg ====== | ||
+ | |||
+ | **O = **//Output digitale// | ||
+ | |||
+ | **T = **// | ||
+ | |||
+ | La funzione OT11PidReg __implementa un regolatore PID di temperatura (solo caldo) con funzione di selftuning__. | ||
+ | |||
+ | ===== IMPLEMENTAZIONE ===== | ||
+ | |||
+ | **OT11PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, agwOutReg )** | ||
+ | |||
+ | Parametri: | ||
+ | |||
+ | ^IN/ | ||
+ | |IN|ARRSYS|aswParReg [1]|W|Tempo di campionamento regolatore PID (msec) [0÷32767].| | ||
+ | |IN|ARRSYS|aswParReg [2]|W|Limite massimo di scala della variabile da regolare(UM) [-32768÷32767]| | ||
+ | |IN|ARRSYS|aswParReg [3]|W|Limite minimo di scala della variabile da regolare(UM) [-32768÷32767]| | ||
+ | |IN|ARRSYS|aswParReg [4]|W|Valore massimo uscita di regolazione [1÷32767]| | ||
+ | |IN|ARRSYS|aswParReg [5]|W|Valore minimo uscita di regolazione [0÷32767]| | ||
+ | |IN|ARRSYS|aswParUsr [1]|W|Banda proporzionale.('' | ||
+ | |IN|ARRSYS|aswParUsr [2]|W|Tempo integrale (min x 100) [0÷9999]| | ||
+ | |IN|ARRSYS|aswParUsr [3]|W|Tempo derivativo (min x 100) [0÷9999]| | ||
+ | |IN|ARRSYS|aswParUsr [4]|W|Tempo di campionamento della derivata [0÷255]\\ 0=tempo di campionamento regolatore PID\\ 1=2*tempo di campionamento regolatore PID\\ .\\ .\\ n=(n+1)*tempo di campionamento regolatore PID| | ||
+ | |IN|ARRSYS|aswParUsr [5]|RW|Tuning mode[0÷2]\\ 0=nessuno\\ 1=selftuning al prossimo riavvio strumento\\ 2=selftuning al prossimo avvio regolazione| | ||
+ | |IN|GLOBAL|gwSetPoint|W|Setpoint di temperatura (UM)| | ||
+ | |IN|GLOBAL|gwMeasure|W|Valore della variabile da regolare(UM)| | ||
+ | |IN|GLOBAL|gwEnaReg|F|Abilitazione regolazione [0÷1]\\ 0=regolatore disabilitato\\ 1=regolatore abilitato| | ||
+ | |OUT|ARRGBL|agwOutReg[1]|W|Registro uscita PID| | ||
+ | |OUT|ARRGBL|agwOutReg[2]|W|Registro uscita proporzionale| | ||
+ | |OUT|ARRGBL|agwOutReg[3]|W|Registro uscita integrale| | ||
+ | |OUT|ARRGBL|agwOutReg[4]|W|Registro uscita derivativa| | ||
+ | |OUT|ARRGBL|agwOutReg[5]|W|Stato uscita digitale di regolazione| | ||
+ | |OUT|ARRGBL|agwOutReg[6]|W|Codice Errore| | ||
+ | |||
+ | ==== Errori ==== | ||
+ | |||
+ | Una volta richiamata la funzione la variabile " | ||
+ | |||
+ | 0: Nessun errore\\ | ||
+ | 1: errore impostazione tempo di campionamento\\ | ||
+ | 2: errore impostazione limite inferiore e/o superiore di scala\\ | ||
+ | 3: errore impostazione banda proporzionale\\ | ||
+ | 4: errore impostazione tempo integrale\\ | ||
+ | 5: errore impostazione tempo derivativo\\ | ||
+ | 6: errore impostazione valore minimo e/o valore massimo uscita regolatore\\ | ||
+ | 7: errore impostazione tempo di campionamento derivativa | ||
+ | |||
+ | === Esempio === | ||
+ | |||
+ | <code QCL> | ||
+ | ; | ||
+ | ; Project | ||
+ | ; Module Name : PIDREG | ||
+ | ; Author | ||
+ | ; Description | ||
+ | ; | ||
+ | aswParReg [0]=500 ; tempo campionamento = 500ms | ||
+ | aswParReg [1]=10000 ; | ||
+ | aswParReg [2]=0 ; fondo scala inferiore temperatura = 0.0 °C | ||
+ | aswParReg [3]=500 ; Valore massimo uscita regolatore= 500 | ||
+ | aswParReg [4]=0 ; Valore minimo uscita regolatore= 0 | ||
+ | |||
+ | gfEnaReg = 1 ; | ||
+ | MAIN: | ||
+ | gwSetPoint = 800 | ||
+ | gwMeasure = glTemperatura ; | ||
+ | OT11PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, agwOutReg ) | ||
+ | IF agwOutReg[5] EQ 0 | ||
+ | RESOUT ofOutPow | ||
+ | ELSE | ||
+ | SETOUT ofOutPow | ||
+ | ENDIF | ||
+ | |||
+ | WAIT 1 | ||
+ | JUMP MAIN | ||
+ | </ | ||
+ | |||
+ | ==== Definizione di regolatore ==== | ||
+ | |||
+ | Un regolatore legge un segnale di ingresso (variabile di processo / misura), lo confronta con un segnale di riferimento(setpoint) e modifica il valore dell' | ||
+ | |||
+ | ==== Regolatore PID ==== | ||
+ | |||
+ | Uno dei più diffusi tipi di regolatori è il PID (Proportional, | ||
+ | |||
+ | === Azione proporzionale === | ||
+ | Fornisce un contributo, all' | ||
+ | OutP(t) = Kp*err(t)\\ | ||
+ | Molto spesso, al posto del coefficiente proporzionale viene usato il parametro di "Banda proporzionale" | ||
+ | Kp=100/PB\\ | ||
+ | Esprimendo le variabili in percentuale rispetto al fondo scala, PB rappresenta l' | ||
+ | |||
+ | {{: | ||
+ | |||
+ | La sola azione proporzionale non riesce ad annullare l' | ||
+ | |||
+ | === Azione integrale === | ||
+ | Fornisce un contributo, all' | ||
+ | |||
+ | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | L' | ||
+ | |||
+ | === Azione derivativa === | ||
+ | Fornisce un contributo, all' | ||
+ | |||
+ | | ||
+ | |||
+ | === Funzione di Self-Tuning === | ||
+ | Il regolatore PID comprende anche la procedura di self-tuning che permette di calcolare in maniera automatica il valore ottimale dei parametri di regolazione PID in fase di avviamento del processo. E' perciò importante eseguire la procedura quando la temperatura misurata è prossima a quella dell' | ||
+ | La funzione attiva il massimo di potenza impostata fino al raggiungimento del valore intermedio tra la temperatura iniziale ed il set-point, quindi azzera la potenza. La funzione valuta la risposta del sistema, quindi, | ||
+ | Al termine della valutazione della risposta la funzione si autodisabilita ed il regolatore inizia la regolazione con i nuovi parametri per il raggiungimento del set-point impostato. | ||
+ | |||
+ | == Come attivare la funzione di selftuning (modo 1 attivazione all' | ||
+ | - Disabilitare la regolazione (variabile gwEnaReg=0) | ||
+ | - Impostare il setpoint al valore desiderato | ||
+ | - Assicurarsi che la temperatura sia prossima alla temperatura ambiente | ||
+ | - Abilitare la funzione di selftuning impostando il parametro aswParUsr [5]** **al valore 1 | ||
+ | - Spegnere lo strumento (oppure eseguire un RESTART) | ||
+ | - Riaccendere lo strumento (oppure mandare in RUN l' | ||
+ | - Abilitare la regolazione | ||
+ | |||
+ | == Come attivare la funzione di selftuning (modo 2 attivazione all' | ||
+ | - Disabilitare la regolazione (variabile gwEnaReg=0) | ||
+ | - Impostare il setpoint al valore desiderato | ||
+ | - Assicurarsi che la temperatura sia prossima alla temperatura ambiente | ||
+ | - Abilitare la funzione di selftuning impostando il parametro aswParUsr [5]** **al valore 2 | ||
+ | - Abilitare la regolazione\\ N.B Durante il selftuning il valore del parametro aswParUsr [5] assume i seguenti valori per indicare lo stato: | ||
+ | - Attesa temperatura al setpoint | ||
+ | - Attesa che la temperatura finisca di crescere | ||
+ | - Attesa che la temperatura inizi a decrescere | ||
+ | - Fasi finali di calcolo | ||