足回り動かすためのライブラリ

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers NK_tuner.cpp Source File

NK_tuner.cpp

00001 #include "NK_tuner.hpp"
00002 
00003 Nk_tuner::Nk_tuner(double dt,double finish):dt(dt),finish(finish){}
00004 Nk_tuner::~Nk_tuner(){}
00005 double Nk_tuner::getK(double Value){
00006     n++;
00007     K = (K*(n-1) + Value)/n;
00008     return K;
00009 }
00010 void Nk_tuner::Update(double Value){
00011     static double mt = 0.0,mtt = 0.0,mtv = 0.0;
00012     static double old,timer;
00013     double tilt;
00014     timer += dt;
00015     tilt = (Value - old) / dt;
00016     if(mt < tilt) {
00017         mt = tilt;
00018         mtt = timer;
00019         mtv = Value;
00020     }
00021     if(Value <= 0.632*K) T = timer;
00022     old = Value;
00023     if(timer >= finish){
00024         L = mtt-(mtv/mt);
00025         T = T - L;
00026         old = 0.0;
00027         mt = 0.0;
00028         mtt = 0.0;
00029         mtv = 0.0;
00030     }
00031 }