Akashi_2021_Bteam
/
pathtracking
keiro tuiju-
PID.hpp@0:fb188a482b84, 2021-04-14 (annotated)
- Committer:
- hamohamo
- Date:
- Wed Apr 14 14:17:27 2021 +0000
- Revision:
- 0:fb188a482b84
pathtracking;
Who changed what in which revision?
User | Revision | Line number | New 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_ */ |