四輪オムニの足回りを動かすプログラム

Dependencies:   mbed

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?

UserRevisionLine numberNew 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