software:qview:qview_6:qcl_library:ot11pidreg

Questa è una vecchia versione del documento!


OT11PidReg

O = Output digitale

T = Funzioni di Controllo

La funzione OT11PidReg implementa un regolatore PID di temperatura (solo caldo) con funzione di selftuning.

OT11PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, agwOutReg )

Parametri:

IN/OUTTIPOVARIABILENOME DI ESEMPIODIM
INARRSYSaswParReg [1]WTempo di campionamento regolatore PID (msec) [0÷32767].
INARRSYSaswParReg [2]WLimite massimo di scala della variabile da regolare(UM) [-32768÷32767]
INARRSYSaswParReg [3]WLimite minimo di scala della variabile da regolare(UM) [-32768÷32767]
INARRSYSaswParReg [4]WValore massimo uscita di regolazione [1÷32767]
INARRSYSaswParReg [5]WValore minimo uscita di regolazione [0÷32767]
INARRSYSaswParUsr [1]WBanda proporzionale.( )[0÷1000]
INARRSYSaswParUsr [2]WTempo integrale (min x 100) [0÷9999]
INARRSYSaswParUsr [3]WTempo derivativo (min x 100) [0÷9999]
INARRSYSaswParUsr [4]WTempo 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
INARRSYSaswParUsr [5]RWTuning mode[0÷2]
0=nessuno
1=selftuning al prossimo riavvio strumento
2=selftuning al prossimo avvio regolazione
INGLOBALgwSetPointWSetpoint di temperatura (UM)
INGLOBALgwMeasureWValore della variabile da regolare(UM)
INGLOBALgwEnaRegFAbilitazione regolazione [0÷1]
0=regolatore disabilitato
1=regolatore abilitato
OUTARRGBLagwOutReg[1]WRegistro uscita PID
OUTARRGBLagwOutReg[2]WRegistro uscita proporzionale
OUTARRGBLagwOutReg[3]WRegistro uscita integrale
OUTARRGBLagwOutReg[4]WRegistro uscita derivativa
OUTARRGBLagwOutReg[5]WStato uscita digitale di regolazione
OUTARRGBLagwOutReg[6]WCodice Errore

Una volta richiamata la funzione la variabile “Codice Errore” in agwOutReg[6] assume determinati valori, il significato di tali valori è riassunto di seguito:

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

;---------------------------------------------
; Project           : REG_012
; Module Name  : PIDREG
; Author            : 
; Description     : PID regulator
;---------------------------------------------
	aswParReg [0]=500			; tempo campionamento = 500ms
	aswParReg [1]=10000			; fondo scala superiore temperatura = 1000.0 °C
	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				;Abilita Regolazione
MAIN:
	gwSetPoint = 800
        gwMeasure = glTemperatura		;Passa la temperatura misurata in UM
        OT11PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, agwOutReg )
	IF agwOutReg[5] EQ 0
		RESOUT ofOutPow
	ELSE
		SETOUT ofOutPow
	ENDIF		
 
WAIT 1
JUMP MAIN

Un regolatore legge un segnale di ingresso (variabile di processo / misura), lo confronta con un segnale di riferimento(setpoint) e modifica il valore dell'uscita per ottenere l'uguaglianza della variabile di processo con il setpoint.

Uno dei più diffusi tipi di regolatori è il PID (Proportional, Integral, Derivative).

Azione proporzionale

Fornisce un contributo, all'uscita, proporzionale all'errore tra il set point e la misura. Il coefficiente di proporzionalità è detto “costante proporzionale” (Kp)
OutP(t) = Kp*err(t)
Molto spesso, al posto del coefficiente proporzionale viene usato il parametro di “Banda proporzionale” definito come:
Kp=100/PB
Esprimendo le variabili in percentuale rispetto al fondo scala, PB rappresenta l'ampiezza del segnale di errore (setpoint-misura) in grado di portare l'uscita proporzionale al 100%.

La sola azione proporzionale non riesce ad annullare l'errore a regime, rimane sempre una piccola differenza tra il set point e la misura. Quando PB aumenta l'errore a regime aumenta, quando PB diminuisce l'errore a regime diminuisce. Valori troppo piccoli di PB possono portare il sistema in oscillazione.

Azione integrale

Fornisce un contributo, all'uscita, proporzionale all'integrale dell'errore. In ipotetiche condizioni di errore costante, l'uscita integrale aumenta linearmente e raggiunge il valore dell'uscita proporzionale dopo il tempo integrale.

OutI(t) = 1/Ti*∫err(t)

L'integrale è utilizzato, in abbinamento al proporzionale, per eliminare l'errore a regime.

Azione derivativa

Fornisce un contributo, all'uscita, proporzionale alla derivata dell'errore. In ipotetiche condizioni di errore crescente linearmente (quindi la sua derivata è costante), l'uscita proporzionale aumenta linearmente e raggiunge il valore dell'uscita derivativa dopo il tempo derivativo.

OutD(t) = Td*Δerr(t)/Δt

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'ambiente (temperatura di equilibrio in assenza di potenza).
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, dall'ampiezza della sovraelongazione e dal tempo che intercorre tra l'azzeramento della potenza ed il picco di temperatura, calcola i parametri PID.
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'accensione):
  1. Disabilitare la regolazione (variabile gwEnaReg=0)
  2. Impostare il setpoint al valore desiderato
  3. Assicurarsi che la temperatura sia prossima alla temperatura ambiente
  4. Abilitare la funzione di selftuning impostando il parametro aswParUsr [5] al valore 1
  5. Spegnere lo strumento (oppure eseguire un RESTART)
  6. Riaccendere lo strumento (oppure mandare in RUN l'applicativo)
  7. Abilitare la regolazione
Come attivare la funzione di selftuning (modo 2 attivazione all'inizio della regolazione):
  1. Disabilitare la regolazione (variabile gwEnaReg=0)
  2. Impostare il setpoint al valore desiderato
  3. Assicurarsi che la temperatura sia prossima alla temperatura ambiente
  4. Abilitare la funzione di selftuning impostando il parametro aswParUsr [5] al valore 2
  5. Abilitare la regolazione
    N.B Durante il selftuning il valore del parametro aswParUsr [5] assume i seguenti valori per indicare lo stato:
  6. Attesa temperatura al setpoint
  7. Attesa che la temperatura finisca di crescere
  8. Attesa che la temperatura inizi a decrescere
  9. Fasi finali di calcolo
  • Ultima modifica: 2019/08/29 17:01