Dependents:   YMotor

Fork of PID by tarou yamada

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