PID regulator G(s) = Kp+Ki/s+Kds. Tustin discretization

Defines

#define PID_COEFFS_LPF(kp, ki, kd, lpf, b0, b1, b2, a1, a2)
#define PID_REG_LPF(in, out, b0, b1, b2, a1, a2)   out[N] = - _IQmpy(a1,out[N1]) - _IQmpy(a2,out[N2]) + _IQmpy(b0,in[N]) + _IQmpy(b1,in[N1]) + _IQmpy(b2,in[N2])
#define PID_QD_REG_LPF(in, out, b0, b1, b2, a1, a2)   PID_REG(in.q,out.q,b0,b1,b2,a1,a2); PID_REG(in.d,out.d,b0,b1,b2,a1,a2)
#define PID_COEFFS(kp, ki, kd, b0, b1, b2)
#define PID_REG(in, out, k0, k1, k2)   out[N] = _IQmpy(k0,in[N]) + _IQmpy(k1,in[N1]) + _IQmpy(k2,in[N2]) + out[N2]
#define INV_PID_REG(in, out, k0, k1, k2)   in[N] = _IQdiv((out[N]-out[N2]- _IQmpy(k1,in[N1])- _IQmpy(k2,in[N2])),k0)
#define PID_QD_REG(in, out, k0, k1, k2)   PID_REG(in.d,out.d,k0,k1,k2); PID_REG(in.q,out.q,k0,k1,k2)
#define INV_PID_QD_REG(in, out, k0, k1, k2)   INV_PID_REG(in.d,out.d,k0,k1,k2); INV_PID_REG(in.q,out.q,k0,k1,k2)

Define Documentation

#define INV_PID_QD_REG ( in,
out,
k0,
k1,
k2   )     INV_PID_REG(in.d,out.d,k0,k1,k2); INV_PID_REG(in.q,out.q,k0,k1,k2)

Definition at line 232 of file FilterAndRotations.h.

#define INV_PID_REG ( in,
out,
k0,
k1,
k2   )     in[N] = _IQdiv((out[N]-out[N2]- _IQmpy(k1,in[N1])- _IQmpy(k2,in[N2])),k0)

Definition at line 220 of file FilterAndRotations.h.

#define PID_COEFFS ( kp,
ki,
kd,
b0,
b1,
b2   ) 
Value:
{\
                                                                                                    b0 = _IQmpy(ki,DTDIV2)+_IQdiv(kd,DTDIV2)+kp;\
                                                                                                    b1 = _IQmpy(ki,DT)    -_IQdiv(kd,DTDIV4);\
                                                                                                    b2 = _IQmpy(ki,DTDIV2)+_IQdiv(kd,DTDIV2)-kp;\
                                                                                                    }

PID Regulator (no lpf)

Definition at line 203 of file FilterAndRotations.h.

#define PID_COEFFS_LPF ( kp,
ki,
kd,
lpf,
b0,
b1,
b2,
a1,
a2   ) 
Value:
{\
                                                                                                                        b0 = _IQ(lpf*(kp*2*DTF+ki*DTF*DTF+4*kd)/(4+2*lpf*DTF));\
                                                                                                                        b1 = _IQ(lpf*(8*ki*DTF*DTF-8*kd)/(4+2*lpf*DTF));\
                                                                                                                        b2 = _IQ(lpf*(-kp*2*DTF+ki*DTF*DTF+4*kd)/(4+2*lpf*DTF));\
                                                                                                                        a1 = _IQ((-8)/(4+2*lpf*DTF));\
                                                                                                                        a2 = _IQ((4-2*lpf*DTF)/(4+2*lpf*DTF));\
                                                                                                                        }

numerator b0 = (Kp*2*T+Ki*T^2+4*Kd)/(4+2*lpf*T); b1 = (8*Ki*T^2-8*Kd)/(4+2*lpf*T); b2 = (-Kp*2*T+Ki*T^2+4*Kd)/(4+2*lpf*T); denominator a0 = 1; a1 = (-8)/(4+2*lpf*T); a2 = (4-2*lpf*T)/(4+2*lpf*T); difference equation: y[k] = -a1*y[k-1]-a2*y[k-2]+b0*u[k]+b1*u[k-1]+b2*u[k-2]

Definition at line 178 of file FilterAndRotations.h.

#define PID_QD_REG ( in,
out,
k0,
k1,
k2   )     PID_REG(in.d,out.d,k0,k1,k2); PID_REG(in.q,out.q,k0,k1,k2)

Definition at line 226 of file FilterAndRotations.h.

#define PID_QD_REG_LPF ( in,
out,
b0,
b1,
b2,
a1,
a2   )     PID_REG(in.q,out.q,b0,b1,b2,a1,a2); PID_REG(in.d,out.d,b0,b1,b2,a1,a2)

Definition at line 196 of file FilterAndRotations.h.

#define PID_REG ( in,
out,
k0,
k1,
k2   )     out[N] = _IQmpy(k0,in[N]) + _IQmpy(k1,in[N1]) + _IQmpy(k2,in[N2]) + out[N2]

Definition at line 214 of file FilterAndRotations.h.

#define PID_REG_LPF ( in,
out,
b0,
b1,
b2,
a1,
a2   )     out[N] = - _IQmpy(a1,out[N1]) - _IQmpy(a2,out[N2]) + _IQmpy(b0,in[N]) + _IQmpy(b1,in[N1]) + _IQmpy(b2,in[N2])

Definition at line 190 of file FilterAndRotations.h.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines
Generated on Sat Apr 16 11:42:45 2011 for TIMotorLIB by  doxygen 1.6.3