ろーぱすふぃるた

Files at this revision

API Documentation at this revision

Comitter:
THtakahiro702286
Date:
Mon Jan 27 08:54:14 2020 +0000
Commit message:
low path filter;

Changed in this revision

lpf.cpp Show annotated file Show diff for this revision Revisions of this file
lpf.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lpf.cpp	Mon Jan 27 08:54:14 2020 +0000
@@ -0,0 +1,37 @@
+#include "mbed.h"
+#include "lpf.h"
+
+lpf::lpf(float system_cycle_second_,float arrive_time_){
+
+    /*
+        引数1 制御周期(秒)
+        引数2 何秒で目標値へ到達させたいか(s)時定数ではない
+    */
+    
+    system_cycle_second = system_cycle_second_;
+    f_t_const = arrive_time_;
+    one_before_output = 0.0;
+    output=0.0;
+}
+
+float lpf::path_value(float target_value){
+     
+    output = ((system_cycle_second * target_value) + (f_t_const * one_before_output))/(system_cycle_second + f_t_const);
+    one_before_output = output;
+    
+    return output;
+}
+
+
+void lpf::change_time_constant(float change_time_constant_){
+    
+    f_t_const = change_time_constant_;
+}
+
+
+void lpf::reset(void){
+    
+    output = 0.0;
+    one_before_output = 0.0;
+    
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lpf.h	Mon Jan 27 08:54:14 2020 +0000
@@ -0,0 +1,20 @@
+#ifndef  _LPF_H_
+#define  _LPF_H_
+
+class lpf{
+    public:
+        lpf(float,float);                       //コンストラクタ  引数1:制御周期(s)  引数2:何秒で目標値に到達してほしいか(s)
+        float path_value(float);                //ローパスフィルタ通過後の値を返す
+        void change_time_constant(float);       //時定数を変更するための関数
+        void reset(void);                       //一定の処理が終わった時に前回の偏差を0に戻す関数
+        
+        float one_before_output;                //前回の出力値を保管
+        
+    private:
+        float system_cycle_second;              //制御周期
+        float f_t_const;                        //フィルタリング時定数(filtering_time_constant)
+        float output;
+
+
+};
+#endif
\ No newline at end of file