Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Encoder HIDScope MODSERIAL QEI biquadFilter mbed
Diff: main.cpp
- Revision:
- 13:bcf8ec7120ab
- Parent:
- 12:26759959c960
- Child:
- 14:599896acf576
--- a/main.cpp Wed Oct 07 13:41:11 2015 +0000 +++ b/main.cpp Wed Oct 07 13:51:17 2015 +0000 @@ -21,6 +21,14 @@ // stel setpoint tussen (0 en 360) en position tussen (0 en 360) // max verschil: 360 -> dan pwm_to_motor 1 tot aan een verschil van 15 graden-> bij 15 moet pwm_to_motor ong 0.1 zijn // dus 0.1=15*gain gain=0.0067 + + double Gain_I_turn=0.025; //(1/2000) //0.00000134 + // pwm_motor_I=(integrate_error_turn + sample_time*error)*gain; pwm = (4*0.01 + 4)* Gain => 0.1 pwm gewenst (na 1 seconde een verschil van 4 graden) + // 0.1 / (4.01) = Gain = 0.025 + + double Gain_D_turn=1; + // error_derivative_turn=(error - previous_error_turn)/sample_time + // double conversion_counts_to_degrees=0.085877862594198; // gear ratio motor = 131 @@ -123,13 +131,6 @@ previous_error_turn=error; // current error is saved to memory constant to be used in // the next loop for calculating the derivative error - - // pwm_motor_I=(integrate_error_turn + sample_time*error)*gain; pwm = (4*0.01 + 4)* Gain => 0.1 pwm gewenst (na 1 seconde een verschil van 4 graden) - // 0.1 / (4.01) = Gain = 0.025 - // - double Gain_I_turn=0.025; //(1/2000) //0.00000134 - - double Gain_D_turn=0.1; pwm_to_motor_turn = error*Gain_P_turn; // output P controller to pwm @@ -137,7 +138,7 @@ pwm_motor_turn_I = integrate_error_turn*Gain_I_turn; // output I controller to pwm pwm_motor_turn_D = error_derivative_turn*Gain_D_turn; // output D controller to pwm - pwm_to_motor_turn = pwm_motor_turn_P + pwm_motor_turn_I; + pwm_to_motor_turn = pwm_motor_turn_P + pwm_motor_turn_I + pwm_motor_turn_D; // // double pwm_to_motor_turn = pwm_motor_turn_P + pwm_motor_turn_I + pwm_motor_turn_D; // Total output PID controller to pwm