1717 ***************************************************************************/
1818BasicPIDLibrary::BasicPIDLibrary (double Kp, double Ki, double Kd)
1919{
20- BasicPIDLibrary::SetOutputLimits (0 , 255 ); // default output limit corresponds to
20+ BasicPIDLibrary::SetOutputLimits (0 , 255 ); // default output limit corresponds to
2121 // the arduino pwm limits
2222
23- mSampleTime = 50 ; // default Controller Sample Time is 0.1 seconds
23+ this -> mSampleTime = 50 ; // default Controller Sample Time is 0.1 seconds
2424
2525 BasicPIDLibrary::SetTunings (Kp, Ki, Kd);
2626
27- mLastTime = millis ()-mSampleTime ;
27+ this -> mLastTime = millis ()-mSampleTime ;
2828
2929 EnableController ();
3030}
@@ -38,15 +38,15 @@ BasicPIDLibrary::BasicPIDLibrary(double Kp, double Ki, double Kd)
3838 **********************************************************************************/
3939bool BasicPIDLibrary::Compute (DECIMAL iSetpoint,DECIMAL iInput,DECIMAL &pOutput)
4040{
41- if (!mEnabled )
41+ if (!this -> mEnabled )
4242 return false ;
4343 unsigned long now = millis ();
4444 unsigned long timeChange = (now - mLastTime );
45- if (timeChange >= mSampleTime )
45+ if (timeChange >= this -> mSampleTime ) // only run at a set controller sample rate
4646 {
4747 DECIMAL error = iSetpoint - iInput;
4848 DECIMAL dInput = (error - mLastInput );
49- mOutputSum += error;
49+ this -> mOutputSum += error;
5050
5151 DECIMAL output;
5252 output = (kp * error) + (mOutputSum * ki) + (dInput * kd); // dt assumed in ki and kd
@@ -56,12 +56,12 @@ bool BasicPIDLibrary::Compute(DECIMAL iSetpoint,DECIMAL iInput,DECIMAL &pOutput)
5656 else if (output < mOutMin )
5757 pOutput = mOutMin ;
5858 else {
59- pOutput = output; // pointer to output when output is within limits
59+ pOutput = output; // assign output value to the pointer
6060 }
6161
6262 // Remember some variables for next time
63- mLastInput = error;
64- mLastTime = now;
63+ this -> mLastInput = error;
64+ this -> mLastTime = now;
6565 return true ;
6666 }
6767 else
@@ -73,9 +73,9 @@ bool BasicPIDLibrary::Compute(DECIMAL iSetpoint,DECIMAL iInput,DECIMAL &pOutput)
7373 * Set Tunings using the last-rembered POn setting
7474 ******************************************************************************/
7575void BasicPIDLibrary::SetTunings (DECIMAL iKp, DECIMAL iKi, DECIMAL iKd){
76- kp = iKp;
77- ki = iKi * (DECIMAL )mSampleTime /1000.0 ;
78- kd = iKd / (DECIMAL )mSampleTime /1000.0 ;
76+ this -> kp = iKp;
77+ this -> ki = iKi * (DECIMAL )this -> mSampleTime /1000.0 ;
78+ this -> kd = iKd / (DECIMAL )this -> mSampleTime /1000.0 ;
7979}
8080
8181/* SetSampleTime(...) *********************************************************
@@ -85,12 +85,12 @@ void BasicPIDLibrary::SetSampleTime(int NewSampleTime)
8585{
8686 if (NewSampleTime > 0 )
8787 {
88- // need ratio to keep relative to seconds?
88+ // need ratio to keep relative to seconds
8989 DECIMAL ratio = (DECIMAL )NewSampleTime
90- / (DECIMAL )mSampleTime ;
91- ki *= ratio;
92- kd /= ratio;
93- mSampleTime = (unsigned long )NewSampleTime;
90+ / (DECIMAL )this -> mSampleTime ;
91+ this -> ki *= ratio;
92+ this -> kd /= ratio;
93+ this -> mSampleTime = (unsigned long )NewSampleTime;
9494 }
9595}
9696
@@ -104,19 +104,20 @@ void BasicPIDLibrary::SetSampleTime(int NewSampleTime)
104104 **************************************************************************/
105105void BasicPIDLibrary::SetOutputLimits (DECIMAL Min, DECIMAL Max)
106106{
107- if (Min >= Max) return ;
108- mOutMin = Min;
109- mOutMax = Max;
107+ if (Min >= Max)
108+ return ;
109+ this ->mOutMin = Min;
110+ this ->mOutMax = Max;
110111}
111112
112113void BasicPIDLibrary::DisableController (void )
113114{
114- mEnabled = false ;
115+ this -> mEnabled = false ;
115116}
116117void BasicPIDLibrary::EnableController (void )
117118{
118- mEnabled = true ;
119- mOutputSum = 0.0 ;
120- mLastInput = 0.0 ;
121- mLastTime = 0 ;
119+ this -> mEnabled = true ;
120+ this -> mOutputSum = 0.0 ;
121+ this -> mLastInput = 0.0 ;
122+ this -> mLastTime = 0 ;
122123}
0 commit comments