Fork of PID by
Diff: PID.hpp
- Revision:
- 6:4427687e6dbe
- Parent:
- 4:ed6aea0299df
--- a/PID.hpp Thu Mar 03 02:50:11 2016 +0000 +++ b/PID.hpp Tue Apr 26 08:25:02 2016 +0000 @@ -1,26 +1,35 @@ #ifndef INCLUDED_MBED_STL_PID_H #define INCLUDED_MBED_STL_PID_H +#include "mbed.h" + namespace mbed_stl { -template <typename T, typename K = T> +// ErrTypeは偏差の型.MVTypeは操作量の型.KTypeは係数の型. +template <typename ErrType, typename MVType = ErrType, typename KType = ErrType> class PID{ public: - PID(K kp, K ki, K kd); + PID(KType kp, KType ki, KType kd); - T update(T error); + MVType update(ErrType error); private: - const K kp_; // 比例制御係数 - const K ki_; // 積分制御係数 - const K kd_; // 微分制御係数 + const KType kp_; // 比例制御係数 + const KType ki_; // 積分制御係数 + const KType kd_; // 微分制御係数 - T integral_; - T prev_error_; + ErrType integral_; + ErrType prev_error_; + + Timer timer_; + float prev_time_us_; }; } /* namespace mbed_stl */ #include "PID_impl.hpp" +typedef mbed_stl::PID<float> PID_f; +typedef mbed_stl::PID<double> PID_d; + #endif