Dependents:   YMotor

Fork of PID by tarou yamada

PID_impl.hpp

Committer:
inst
Date:
2016-02-26
Revision:
3:b28b34b89120
Parent:
2:73618cad4762
Child:
4:ed6aea0299df

File content as of revision 3:b28b34b89120:

#ifndef INCLUDED_PID_IMPL_H
#define INCLUDED_PID_IMPL_H

#include "PID.hpp"

template <typename T, typename K>
PID<T, K>::PID(K kp, K ki, K kd) :
        kp_(kp),
        ki_(ki),
        kd_(kd),
        integral_(),
        prev_error_() {}

template <typename T, typename K>
inline T PID<T, K>::update(T error) {
    // P制御(比例)
    T mv = kp_ * error;
    
    // I制御(積分)
    mv += ki_ * error;
    integral_ += error;
    
    // D制御(微分)
    mv += kd_ * (error - prev_error_);
    
    prev_error_ = error;
    
    return mv;
}

#endif