MODSERIAL PID controller edit
Dependencies: HIDScope MODSERIAL QEI biquadFilter mbed
Fork of PID_controller_Motor by
Diff: main.cpp
- Revision:
- 22:6dfe5554b96e
- Parent:
- 21:3db3f2d56d56
- Child:
- 23:3902ee714281
--- a/main.cpp Mon Oct 24 20:35:10 2016 +0000 +++ b/main.cpp Tue Oct 25 12:03:43 2016 +0000 @@ -55,17 +55,9 @@ enum states_enum{off, init, run}; // De states waar de main loop doorheen loopt, off is uit, init is intialiseren en run is het aanturen vd motoren met emg. states_enum states = off; -double error_prev_1_in = 0.0, error_int_1_in = 0.0; // De error waardes voor het initialiseren -double PID_output_1_in = 0.0; // De PID output voor het initialiseren - -double error_prev_2_in = 0.0, error_int_2_in = 0.0; // De error waardes voor het initialiseren -double PID_output_2_in = 0.0; // De PID output voor het initialiseren - double ref_pos_prev_m1 = 0.0; // De initiele ref_pos_pref double ref_pos_prev_m2 = 0.0; -double position_motor1; - int counts1; // Pulses van motoren int counts2; @@ -161,26 +153,26 @@ // Functie voor het vinden van de reference position van motor 1 -------------------- double get_reference_position_m1(double &ref_pos_prev, const double vrijheid_rad){ - double ref_pos_m1; + double ref_pos; int final_signal = EMG_sim1.read() - EMG_sim2.read(); // Het uiteindelijke signaal uit de emg als output zit is -1, 0 of 1. switch(final_signal){ case 0 : - ref_pos_m1 = ref_pos_prev; + ref_pos = ref_pos_prev; break; case 1 : - ref_pos_m1 = ref_pos_prev + T_motor_function*vrijheid_rad; + ref_pos = ref_pos_prev + T_motor_function*vrijheid_rad; break; case -1 : - ref_pos_m1 = ref_pos_prev - T_motor_function*vrijheid_rad; + ref_pos = ref_pos_prev - T_motor_function*vrijheid_rad; break; } - if(ref_pos_m1 >= vrijheid_rad){ - ref_pos_m1 = vrijheid_rad; + if(ref_pos >= vrijheid_rad){ + ref_pos = vrijheid_rad; } - if(ref_pos_m1 <= -vrijheid_rad){ - ref_pos_m1 = -vrijheid_rad; + if(ref_pos <= -vrijheid_rad){ + ref_pos = -vrijheid_rad; } - ref_pos_prev = ref_pos_m1; + ref_pos_prev = ref_pos; return ref_pos_prev; // vrijheid_rad is de uiterste positie vd arm in radialen }