en:software:qview:qview_6:qcl_library:ot21pidreg

This translation is older than the original page and might be outdated. See what has changed.

OT21PidReg

O = Digital Output

T = Control functions

The OT21PidReg function implements a generic PID controller. In addition to providing the regulation value, the function operates two digital signals are modulated pulse width to handle positive and negative representation of control output.

OT21PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, aglOutReg )

Parametri:

IN/OUTVARIABLE TYPEEXAMPLE NAMEDIM
INARRSYSaswParReg [1]WSample time PID controller (msec) [0÷32767].
INARRSYSaswParReg [2]WMaximum scale limit of process variable (UM) [-32768÷32767]
INARRSYSaswParReg [3]WMinimum scale limit of process variable (UM) [-32768÷32767]
INARRSYSaswParReg [4]WMaximum value control output [-32768 ÷32767]
INARRSYSaswParReg [5]WMinimum value control output [-32768 ÷32767]
INARRSYSaswParUsr [1]WProportional gain.()[0÷9999]
INARRSYSaswParUsr [2]WIntegral time (msec) [0÷9999]
INARRSYSaswParUsr [3]WDerivative time (msec) [0÷9999]
INARRSYSaswParUsr [4]WSample time of the derivative [0÷255]
0=sample time PID controller
1=2*sample time PID controller


n=(n+1)*sample time PID controller
INARRSYSaswParUsr [5]WDerived filter time constant (msec.) [0÷9999]
INARRSYSaswParUsr [6]WFeed Forward (‰) [0÷2000]
INGLOBALgwSetPointWAdjustment setpoint (UM)
INGLOBALgwMeasureWValue of the process variable (UM)
INGLOBALgfEnaRegFEnabling regulation [0÷1]
0=regulator disabled
1=regulator enabled
OUTARRGBLaglOutReg[1]LPID output log
OUTARRGBLaglOutReg[2]LProportional output log
OUTARRGBLaglOutReg[3]LIntegral output log
OUTARRGBLaglOutReg[4]LDerivative output log
OUTARRGBLaglOutReg[5]LFeedforward output log
OUTARRGBLaglOutReg[6]LError log
OUTARRGBLaglOutReg[7]LRegulator states:
bit 0 = State pwm output for positive adjustment
bit 1 = State pwm output for negative regulation
bit 2 = positive saturation state
bit 3 = negative saturation state
bit 4 + executing state regulation
OUTARRGBLaglOutReg[8]LError code

Once call the function, the “Error Code” variable in aglOutReg[8] assumes certain values, the meaning of these values is summarized below:
0: No error
1: Error setting sampling time
2: Error setting lower limit and/or greater of scale
3: Error setting value proportional gain
4: Error setting integral time
5: Error setting derivative time
6: Error setting feed-forward percentage value
7: Error setting minimum and/or maximum value regulator output
8: Error setting sampling time derivative
9: Error setting derived filter time constant

Example

;---------------------------------------------
;	Example
;---------------------------------------------
	aswParReg [0]=500			; Sampling time = 500ms
	aswParReg [1]=10000			; full scale over  = 10000
	aswParReg [2]=0			        ; full scale less  = 0
	aswParReg [3]=500			; Maximum value output regulator
	aswParReg [4]=0			        ; Minimum value output regulator
 
        aswParUsr[1] = 100			; Proportional gain = 0.1
        aswParUsr[2] = 200			; Integral time = 0.2 sec.
 
        gfEnaReg = 1				;Enable regulation
MAIN:
	gwSetPoint = 800
        OT20PidReg ( aswParReg , aswParUsr, gwSetPoint, gwMeasure, gfEnaReg, aslOutReg )
        ofOutPow = aslOutReg[7] ANDB &H01
WAIT 1
JUMP MAIN

A regulator reads an (gwMeasure) input variable, compares with to a reference signal (gwSetPoint) and change the value of the (aslOutReg[7]) output to achieve equality of the variable with the reference.

One of the most popular types of regulator is the PID (Proportional, Integral, Derivative).

Proportional action

This control action establishes a relationship of direct proportionality between the error (aglOutReg[6]) and the value at the regulator output. The gain proportional parameter (aswParUsr [1]) defines the degree of proportional controller; It's expressed in milliseconds for which to set a gain of 0.5 it should enter the value 500.
The rule that establishing the output value (aslOutReg[7]) defines: with unity gain (1000), the control output will be maximum when the error is equal to the difference between “Maximum scale limit” and “Maximum scale limit” that is the result between aswParReg [2] - aswParReg [3].

Integral action

The integral action of the PID regulator calculates the integral of the error on a user-settable time interval through the aswParUsr [2] parameter (in ms). The output signal is updated in a particular way: whenever the Integrator give an output value This is added to the value that is on the register, then it will continue to increase or decrease (Depending on the sign of the error). The output value is calculated as follows: with unit proportional gain, the integration time (aswParUsr [2]) is the time it takes for the integral log (aglOutReg[3]) reaches the registry value proportional (aglOutReg[2]). From this last statement shows that the integral action is related to the proportional action.

Derivative action

The derivative action try to “anticipate” the behavior of the system being monitored. The output produced is proportional to the change of the input signal. The amount of the derivative effect is adjustable via the time derivative (aswParUsr [3]) parameter. Computing the derivative action is based on the following convention: the derivative time is the time it takes for, with constant error variation, the derivative log (aglOutReg[4]) reaches a value equal to the proportional log (aglOutReg[2]). As for the integral action is understood that for the derivative action is there a link with the proportional action. The higher the time of derivation of error and the faster the transient error recovery system. It is evident that the derivative action may never be used alone because in the presence of constant mistakes its effect would be null.

Feed-forward action

In addition to the PID controller is also the feed-forward action: it generates an output proportional to the setpoint value (as can be inferred from the name doesn't exploit any error feedback). Its function is to reduce the system response time providing an output already close to what the regulator should reach. The contribution of this action is adjustable via the feed forward parameter (aswParUsr [6]): This parameter is expressed as a portion to one thousandth (for example, to introduce 98.5% you must set the value 985).

DIFFERENCES FROM THE OLDER RELEASES

  • (from 20 to 21) Added a running state regulation. (Avoided an error“ “division by zero” the first time you run) Avoided to reset the integral output OUTI if ti=0. This enables you to suspend execution of pid and return without the full log is altered.
  • Last modified: 2019/08/29 17:01