diff --git a/CPP_Implementation/RBF_aPID.cpp b/CPP_Implementation/RBF_aPID.cpp index c7e35c5..db40363 100644 --- a/CPP_Implementation/RBF_aPID.cpp +++ b/CPP_Implementation/RBF_aPID.cpp @@ -1,8 +1,27 @@ #include #include +class aPIDController { +public: + aPIDController(double kp, double ki, double kd, double dt) + : Kp(kp), Ki(ki), Kd(kd), dt(dt), integral(0.0), prev_err(0.0) {} + + double update(double target, double measured_value) { + double error = target - measured_value; + integral += error * dt; + double derivative = (error - prev_err) / dt; + prev_err = error; + + return (Kp * error) + (Ki * integral) + (Kd * derivative); + } + +private: + double Kp, Ki, Kd, dt; + double integral; + double prev_err; +}; + int main() { - std::cout << "Test" << std::endl; return 0; }