miki sumito
/
four_wheel_omni
四輪オムニの足回りを動かすプログラム
PID/PID.hpp@1:cb4a6d5c77c8, 22 months ago (annotated)
- Committer:
- m_smt
- Date:
- Sat Oct 08 11:14:39 2022 +0000
- Revision:
- 1:cb4a6d5c77c8
- Parent:
- 0:39c2bb18192b
move four wheel omni
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
m_smt | 0:39c2bb18192b | 1 | #ifndef PID_ |
m_smt | 0:39c2bb18192b | 2 | #define PID_ |
m_smt | 0:39c2bb18192b | 3 | |
m_smt | 0:39c2bb18192b | 4 | #if 0 |
m_smt | 0:39c2bb18192b | 5 | ~example~ |
m_smt | 0:39c2bb18192b | 6 | PID name(kpの値,kiの値,kdの値,一回のプログラムの時間(Δt))でこのクラスを使うことができる |
m_smt | 0:39c2bb18192b | 7 | name.set(現在値,目標値)でPID制御の計算をしてくれる |
m_smt | 0:39c2bb18192b | 8 | name.safety(最大値,最小値)でpwmの値が設定した値を超えないようにする(大事) |
m_smt | 0:39c2bb18192b | 9 | name.pwmで求めたpwmの値を使うことができる |
m_smt | 0:39c2bb18192b | 10 | name.reset()でpwmの値を0にする |
m_smt | 0:39c2bb18192b | 11 | #endif |
m_smt | 0:39c2bb18192b | 12 | |
m_smt | 0:39c2bb18192b | 13 | class PID |
m_smt | 0:39c2bb18192b | 14 | { |
m_smt | 0:39c2bb18192b | 15 | public: |
m_smt | 0:39c2bb18192b | 16 | PID(double kp,double ki,double kd,double dt); |
m_smt | 0:39c2bb18192b | 17 | ~PID(); |
m_smt | 0:39c2bb18192b | 18 | double set(double,double); |
m_smt | 0:39c2bb18192b | 19 | void safety(double,double); |
m_smt | 0:39c2bb18192b | 20 | void reset(); |
m_smt | 0:39c2bb18192b | 21 | double pwm; |
m_smt | 0:39c2bb18192b | 22 | private: |
m_smt | 0:39c2bb18192b | 23 | double integral; |
m_smt | 0:39c2bb18192b | 24 | double e[2]; |
m_smt | 0:39c2bb18192b | 25 | double Kp; |
m_smt | 0:39c2bb18192b | 26 | double Ki; |
m_smt | 0:39c2bb18192b | 27 | double Kd; |
m_smt | 0:39c2bb18192b | 28 | double dt; |
m_smt | 0:39c2bb18192b | 29 | double getP; |
m_smt | 0:39c2bb18192b | 30 | double getI; |
m_smt | 0:39c2bb18192b | 31 | double getD; |
m_smt | 0:39c2bb18192b | 32 | }; |
m_smt | 0:39c2bb18192b | 33 | |
m_smt | 0:39c2bb18192b | 34 | #endif |