Thijs Rakels / Mbed 2 deprecated NR_method

Dependencies:   QEI biquadFilter mbed HIDScope

Committer:
Thijsjeee
Date:
Thu Nov 01 09:42:53 2018 +0000
Revision:
1:fafea1d00d0c
Child:
2:f68fd7b1c655
laatste versie;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Thijsjeee 1:fafea1d00d0c 1 double PID_controller(double error, double Kp, double Ki, double Kd, double Ts)
Thijsjeee 1:fafea1d00d0c 2 {
Thijsjeee 1:fafea1d00d0c 3 static double error_integral = 0;
Thijsjeee 1:fafea1d00d0c 4 static double error_prev = error;
Thijsjeee 1:fafea1d00d0c 5 static BiQuad LowPassFilter(0.0640, 0.1279, 0.0640, -1.1683, 0.4241);
Thijsjeee 1:fafea1d00d0c 6
Thijsjeee 1:fafea1d00d0c 7 //proportional part
Thijsjeee 1:fafea1d00d0c 8 double u_k = Kp * error;
Thijsjeee 1:fafea1d00d0c 9
Thijsjeee 1:fafea1d00d0c 10 //Integral part
Thijsjeee 1:fafea1d00d0c 11 error_integral = error_integral + error * Ts;
Thijsjeee 1:fafea1d00d0c 12 double u_i = Ki * error_integral;
Thijsjeee 1:fafea1d00d0c 13
Thijsjeee 1:fafea1d00d0c 14 // Derivative part
Thijsjeee 1:fafea1d00d0c 15 double error_derivative = (error - error_prev)/Ts;
Thijsjeee 1:fafea1d00d0c 16 double filtered_error_derivative = LowPassFilter.step(error_derivative);
Thijsjeee 1:fafea1d00d0c 17 double u_d = Kd * filtered_error_derivative;
Thijsjeee 1:fafea1d00d0c 18 error_prev = error;
Thijsjeee 1:fafea1d00d0c 19 return ((u_k + u_i + u_d)/10000);
Thijsjeee 1:fafea1d00d0c 20 }