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 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 | ) |
{\ 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 | ) |
{\ 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.