MODSERIAL PID controller edit
Dependencies: HIDScope MODSERIAL QEI biquadFilter mbed
Fork of PID_controller_Motor by
Revision 30:457e42514c47, committed 2016-10-28
- Comitter:
- MBroek
- Date:
- Fri Oct 28 09:19:48 2016 +0000
- Parent:
- 29:2b711fc9a5b2
- Commit message:
- robot testing
Changed in this revision
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Oct 28 08:53:37 2016 +0000 +++ b/main.cpp Fri Oct 28 09:19:48 2016 +0000 @@ -105,13 +105,13 @@ double error1_int = 0.00000; // Initiele error integral waardes double error2_int = 0.00000; -const double T_motor_function = 0.002; // Periode van de frequentie van het aanroepen van onder andere positiechecker (get_position) en de rest vd motor functie +const double T_motor_function = 0.01; // Periode van de frequentie van het aanroepen van onder andere positiechecker (get_position) en de rest vd motor functie volatile bool flag1 = false, flag2 = false; // De flags voor de functies aangeroepen door de tickers -const double Kp_1 = 0.1; // De PID variablen voor motor 1 -const double Kd_1 = 0.15; -const double Ki_1 = 0.07; +const double Kp_1 = 0.2; // De PID variablen voor motor 1 +const double Kd_1 = 0.01; +const double Ki_1 = 0.01; const double Kp_2 = 1.0; // De PID variablen voor motor 2 const double Kd_2 = 0.4; @@ -262,10 +262,10 @@ ref_pos = ref_pos_prev; break; case 1 : - ref_pos = ref_pos_prev + T_motor_function*vrijheid_rad*0.1; // Dit dwingt af dat de ref pos veranderd met ong 0.5 rad/s + ref_pos = ref_pos_prev + T_motor_function*vrijheid_rad*0.3; // Dit dwingt af dat de ref pos veranderd met ong 0.5 rad/s break; case -1 : - ref_pos = ref_pos_prev - T_motor_function*vrijheid_rad*0.1; + ref_pos = ref_pos_prev - T_motor_function*vrijheid_rad*0.3; break; } if(ref_pos >= vrijheid_rad){ @@ -390,6 +390,8 @@ position_motor1 = initial_pos_m1; position_motor2 = initial_pos_m2; position_motor2_prev = initial_pos_m2; + PID_output_1 = 0.0; + PID_output_2 = 0.0; ledgreen.write(0); ledred.write(0); encoder_motor1.reset();