Thijs Rakels / Mbed 2 deprecated NR_method

Dependencies:   QEI biquadFilter mbed HIDScope

PID_controler.h

Committer:
Thijsjeee
Date:
2018-11-01
Revision:
1:fafea1d00d0c
Child:
2:f68fd7b1c655

File content as of revision 1:fafea1d00d0c:

double PID_controller(double error, double Kp, double Ki, double Kd, double Ts)
{
    static double error_integral = 0;
    static double error_prev = error;
    static BiQuad LowPassFilter(0.0640, 0.1279, 0.0640, -1.1683, 0.4241);

    //proportional part
    double u_k = Kp * error;

    //Integral part
    error_integral = error_integral + error * Ts;
    double u_i = Ki * error_integral;

    // Derivative part
    double error_derivative = (error - error_prev)/Ts;
    double filtered_error_derivative = LowPassFilter.step(error_derivative);
    double u_d = Kd * filtered_error_derivative;
    error_prev = error;
    return ((u_k + u_i + u_d)/10000);
}