Macros for filter, rotations and discrete PI, PID regulators. More...
#include "Constants.h"
Go to the source code of this file.
Defines | |
#define | ROTATE_POS(in, out, t) out.q[N]=_IQmpy(in.q[N],_IQcos(t))-_IQmpy(in.d[N],_IQsin(t));out.d[N]=_IQmpy(in.q[N],_IQsin(t))+_IQmpy(in.d[N],_IQcos(t)); |
#define | ROTATE_NEG(in, out, t) out.q[N]=_IQmpy(in.q[N],_IQcos(t))+_IQmpy(in.d[N],_IQsin(t));out.d[N]=-_IQmpy(in.q[N],_IQsin(t))+_IQmpy(in.d[N],_IQcos(t)); |
#define | SROTATE_POS(in, out, t) out.q=_IQmpy(in.q,_IQcos(t))-_IQmpy(in.d,_IQsin(t));out.d=_IQmpy(in.q,_IQsin(t))+_IQmpy(in.d,_IQcos(t)); |
#define | SROTATE_NEG(in, out, t) out.q=_IQmpy(in.q,_IQcos(t))+_IQmpy(in.d,_IQsin(t));out.d=-_IQmpy(in.q,_IQsin(t))+_IQmpy(in.d,_IQcos(t)); |
#define | ROTATE_POS_ESC(in, out, t) out.q[N]=_IQmpy(in,_IQcos(t));out.d[N]=_IQmpy(in,_IQsin(t)); |
#define | ROTATE_NEG_ESC(in, out, t) out.q[N]=_IQmpy(in,_IQcos(t));out.d[N]=-_IQmpy(in,_IQsin(t)); |
#define | SROTATE_POS_ESC(in, out, t) out.q=_IQmpy(in,_IQcos(t));out.d=_IQmpy(in,_IQsin(t)); |
#define | SROTATE_NEG_ESC(in, out, t) out.q=_IQmpy(in,_IQcos(t));out.d=-_IQmpy(in,_IQsin(t)); |
#define | PI_REG(in, out, Kp, Ki) out[N]=out[N1]+_IQmpy(Kp,_IQmpy(in[N],(_IQ(1)+_IQmpy(DTDIV2,Ki))) + _IQmpy(in[N1],(_IQmpy(DTDIV2,Ki)-_IQ(1)))) |
#define | PI_QD_REG(in, out, Kp, Ki) PI_REG(in.q,out.q,Kp,Ki); PI_REG(in.d,out.d,Kp,Ki) |
#define | PI_QD_REG_NOSYM(in, out, Kp_q, Ki_q, Kp_d, Ki_d) PI_REG(in.q,out.q,Kp_q,Ki_q); PI_REG(in.d,out.d,Kp_d,Ki_d) |
#define | PI_REG_DT(in, out, Kp, Ki, dTDiv2) out[N]=out[N1]+_IQmpy(Kp,_IQmpy(in[N],(_IQ(1)+_IQmpy(dTDiv2,Ki))) + _IQmpy(in[N1],(_IQmpy(dTDiv2,Ki)-_IQ(1)))) |
#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_PI_REG(in, out, Kp, Ki) |
#define | INV_PI_QD_REG(in, out, Kp, Ki) INV_PI_REG(in.q,out.q,Kp,Ki); INV_PI_REG(in.d,out.d,Kp,Ki) |
#define | INV_PI_QD_REG_NOSYM(in, out, Kp_q, Ki_q, Kp_d, Ki_d) INV_PI_REG(in.q,out.q,Kp_q,Ki_q); INV_PI_REG(in.d,out.d,Kp_d,Ki_d) |
#define | PI_REG_WR(in, out, Kp, Ki) out[N]=out[N1]+_IQmpy(Kp,_IQmpy(in[N],(_IQ(1)+_IQmpy(DTWDIV2,Ki))) + _IQmpy(in[N1],(_IQmpy(DTWDIV2,Ki)-_IQ(1)))) |
#define | INT(in, out) out[N]=out[N1]+_IQmpy(DTDIV2,(in[N]+in[N1])) |
#define | INT_QD(in, out) INT(in.q,out.q); INT(in.d,out.d); |
#define | INT_DT(in, out, dTDiv2) out[N]=out[N1]+_IQmpy(dTDiv2,(in[N]+in[N1])) |
#define | INT_QD_DT(in, out, dTDiv2) INT_DT(in.q,out.q,dTDiv2); INT_DT(in.d,out.d,dTDiv2); |
#define | FILTER_LPF(in, out, B0_LPF, A1_LPF) out[N]=_IQmpy(B0_LPF,(in[N]+in[N1]))+_IQmpy(A1_LPF,out[N1]) |
#define | FILTER_Q_LPF(in, out, B0_LPF, A1_LPF) out.q[N]=_IQmpy(B0_LPF,(in.q[N]+in.q[N1]))+_IQmpy(A1_LPF,out.q[N1]) |
#define | FILTER_D_LPF(in, out, B0_LPF, A1_LPF) out.d[N]=_IQmpy(B0_LPF,(in.d[N]+in.d[N1]))+_IQmpy(A1_LPF,out.d[N1]) |
#define | FILTER_QD_LPF(in, out, B0_LPF, A1_LPF) FILTER_Q_LPF(in,out,B0_LPF,A1_LPF); FILTER_D_LPF(in,out,B0_LPF,A1_LPF) |
#define | FILTER_HPF(in, out, B0_HPF, A1_HPF) out[N]=_IQmpy(B0_HPF,(in[N]-in[N1]))+_IQmpy(A1_HPF,out[N1]) |
#define | FILTER_Q_HPF(in, out, B0_HPF, A1_HPF) out.q[N]=_IQmpy(B0_HPF,(in.q[N]-in.q[N1]))+_IQmpy(A1_HPF,out.q[N1]) |
#define | FILTER_D_HPF(in, out, B0_HPF, A1_HPF) out.d[N]=_IQmpy(B0_HPF,(in.d[N]-in.d[N1]))+_IQmpy(A1_HPF,out.d[N1]) |
#define | FILTER_QD_HPF(in, out, B0_HPF, A1_HPF) FILTER_Q_HPF(in,out,B0_HPF,A1_HPF); FILTER_D_HPF(in,out,B0_HPF,A1_HPF) |
#define | DQ2PH_QDDATA(fqd, fa, fb, fc) fa=fqd.d[N];fb=_IQmpy(_IQ(-0.5),fqd.d[N])+_IQmpy(SQRT3DIV2,fqd.q[N]);fc=-(fa+fb) |
#define | DQ2PH(fqd, fa, fb, fc) fa=fqd.d;fb=_IQmpy(_IQ(-0.5),fqd.d)+_IQmpy(SQRT3DIV2,fqd.q);fc=-(fa+fb) |
#define | PH2QD(fa, fb, fqd) fqd.d=fa;fqd.q=(_IQmpy(SQRT3DIV3,fa)+_IQmpy(TWOSQRT3DIV3,fb)); |
#define | PH2QD_QDDATA(fa, fb, fqd) fqd.d[N]=fa;fqd.q[N]=(_IQmpy(SQRT3DIV3,fa)+_IQmpy(TWOSQRT3DIV3,fb)); |
#define | CROSS(in, saliency, out) out=_IQmpy(in.d,_IQsin(saliency))-_IQmpy(in.q,_IQcos(saliency)) |
#define | CROSS_QDDATA(in, saliency, out) out=_IQmpy(in.d[N],_IQsin(saliency))-_IQmpy(in.q[N],_IQcos(saliency)) |
#define | SCALAR2SYNCVEC(in, out, t) out.d[N]=_IQmpy(in , _IQcos(t));out.q[N]=_IQmpy(in , _IQsin(t)); |
#define | SSCALAR2SYNCVEC(in, out, t) out.d=_IQmpy(in , _IQcos(t));out.q=_IQmpy(in , _IQsin(t)); |
#define | SCALAR2PULSATING(in, out, t) out.d[N]=_IQmpy(in , _IQcos(t));out.q[N]=_IQ(0); |
#define | SSCALAR2PULSATING(in, out, t) out.d=_IQmpy(in , _IQcos(t));out.q=_IQ(0); |
Macros for filter, rotations and discrete PI, PID regulators.
File Name : FilterAndRotations.h Project : TIMotorLIB TI Doc: na
Definition in file FilterAndRotations.h.
#define PI_REG_WR | ( | in, | |||
out, | |||||
Kp, | |||||
Ki | ) | out[N]=out[N1]+_IQmpy(Kp,_IQmpy(in[N],(_IQ(1)+_IQmpy(DTWDIV2,Ki))) + _IQmpy(in[N1],(_IQmpy(DTWDIV2,Ki)-_IQ(1)))) |
Definition at line 262 of file FilterAndRotations.h.