20 CStdCircularArray<float> m_aryOldErrors;
23 float m_fltErrorChange;
26 float m_fltIntegralAct;
27 float m_fltDerivativeAct;
29 float m_fltProportional;
31 float m_fltOldIntegral;
32 float m_fltDerivative;
38 bool m_bAntiResetWindup;
45 float m_fltRampGradient;
47 virtual void FullReset();
51 CStdPID(
float fltSetpoint,
float fltGain,
float fltIntegralAct,
float fltDerivativeAct,
52 bool bComplexError,
bool bAntiResetWindup,
bool bRampLimit,
53 float fltRangeMax,
float fltRangeMin,
float fltARWBound,
float fltRampGradient);
56 virtual float Error();
57 virtual float ErrorChange();
59 virtual void Setpoint(
float fltVal);
60 virtual float Setpoint();
62 virtual void Gain(
float fltVal);
65 virtual void IntegralAct(
float fltVal);
66 virtual float IntegralAct();
68 virtual void DerivativeAct(
float fltVal) ;
69 virtual float DerivativeAct();
71 virtual float Proportional();
72 virtual float Integral();
73 virtual float OldIntegral();
74 virtual float Derivative();
75 virtual float Output();
76 virtual float OldOutput();
78 virtual void ComplexError(
bool bVal);
79 virtual bool ComplexError();
81 virtual void AntiResetWindup(
bool bVal);
82 virtual bool AntiResetWindup();
84 virtual void RampLimit(
bool bVal);
85 virtual bool RampLimit();
87 virtual void RangeMax(
float fltVal);
88 virtual float RangeMax();
90 virtual void RangeMin(
float fltVal);
91 virtual float RangeMin();
93 virtual float Range();
95 virtual void ARWBound(
float fltVal);
96 virtual float ARWBound();
98 virtual void RampGradient(
float fltVal);
99 virtual float RampGradient();
101 virtual void ResetVars();
102 virtual float Calculate(
float fltDt,
float fltInput);
Implements a basic PID control algorithm.
Namespace for the standard utility objects.