![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Controller futhers (PI)
Diff: main.cpp
- Revision:
- 8:998f4575089b
- Parent:
- 7:6006a473ea0b
- Child:
- 9:ea9d35838861
--- a/main.cpp Thu Oct 15 13:39:59 2015 +0000 +++ b/main.cpp Mon Oct 19 09:12:17 2015 +0000 @@ -26,7 +26,7 @@ // Controller gain proportional and intergrator const double motor1_Kp = 5; // more or les random number. -const double motor1_Ki = 0.5; +const double motor1_Ki = 0; const double M1_timestep = 0.01; // reason ticker works with 100 Hz. double motor1_error_integraal = 0; // initial value of integral error @@ -34,7 +34,7 @@ // Defining pulses per revolution (calculating pulses to rotations in degree.) const double pulses_per_revolution = 4200 ;//8400 counts is aangegeven op de motor for x4. 10 - 30 counts oveshoot. for moter 1(tape)! Motor 2 almost the same(nice) /* -double Rotation = -2; // rotation in degree +double Rotation = -2; // rotation double movement = Rotation * pulses_per_revolution; // times 360 to make Rotations degree. */ @@ -56,12 +56,13 @@ // To make a new setpoint double making_setpoint(double direction){ if ( cw == direction){ - setpoint = setpoint + (pulses_per_revolution/4); + setpoint = setpoint + (pulses_per_revolution/40000); } if ( ccw == direction){ - setpoint = setpoint - (pulses_per_revolution/4); + setpoint = setpoint - (pulses_per_revolution/40000); } return(setpoint); + } // Reusable P controller @@ -102,8 +103,8 @@ void counts_showing() { - double kijken = wheel.getPulses() / pulses_per_revolution; - pc.printf("ref %.0f rounds%.2f \n",setpoint/pulses_per_revolution,kijken); + double kijken = wheel.getPulses()/pulses_per_revolution; + pc.printf("ref %.2f rounds%.2f \n",setpoint/pulses_per_revolution,kijken); }