keiro tuiju-

Dependencies:   mbed arrc_mbed

Committer:
hamohamo
Date:
Wed Apr 14 14:17:27 2021 +0000
Revision:
0:fb188a482b84
pathtracking;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hamohamo 0:fb188a482b84 1 #ifndef IG_PID_HPP_
hamohamo 0:fb188a482b84 2 #define IG_PID_HPP_
hamohamo 0:fb188a482b84 3
hamohamo 0:fb188a482b84 4 class PID{
hamohamo 0:fb188a482b84 5 public:
hamohamo 0:fb188a482b84 6 PID(double KP,double KI,double KD,double DT):Kp(KP),Ki(KI),Kd(KD),dt(DT){
hamohamo 0:fb188a482b84 7
hamohamo 0:fb188a482b84 8 }
hamohamo 0:fb188a482b84 9 void Update(double e){
hamohamo 0:fb188a482b84 10 PROP = e;
hamohamo 0:fb188a482b84 11 INT += (curr_e + prev_e)*dt/2.0;
hamohamo 0:fb188a482b84 12 DIFF = (curr_e - prev_e)/dt;
hamohamo 0:fb188a482b84 13 mv = Kp*PROP + Ki*INT + Kd*DIFF;
hamohamo 0:fb188a482b84 14 }
hamohamo 0:fb188a482b84 15 double getmv(){
hamohamo 0:fb188a482b84 16 return mv;
hamohamo 0:fb188a482b84 17 }
hamohamo 0:fb188a482b84 18 private:
hamohamo 0:fb188a482b84 19 double Kp,Ki,Kd; /* Pゲイン Iゲイン Dゲイン */
hamohamo 0:fb188a482b84 20 double dt; /* 微小時間 */
hamohamo 0:fb188a482b84 21 double prev_e,curr_e; /* 前回の誤差 現在の誤差 */
hamohamo 0:fb188a482b84 22 double PROP,INT,DIFF; /* 比例 積分 微分 */
hamohamo 0:fb188a482b84 23 double mv; /* manipulating variable */
hamohamo 0:fb188a482b84 24 };
hamohamo 0:fb188a482b84 25
hamohamo 0:fb188a482b84 26 #endif /* IG_PID_HPP_ */