diff --git a/HalloRobot/libProject/src/control.c b/HalloRobot/libProject/src/control.c index fd2d1af3c68266d4332fb449045878556d96bf18..c37b1ee4533fbc821dab0e5dd0604fd63a915ef9 100644 --- a/HalloRobot/libProject/src/control.c +++ b/HalloRobot/libProject/src/control.c @@ -68,22 +68,30 @@ float pi_control(float e) */ float pid_control(float e) { - float K = 0.8f; + float K = 0.4f; const float T_i = 0.1f;//0.18 - const float T_d = 0.05; - - if(e > 2 || e < -2){ - K = 5.0; + const float T_d = 0.025; + float ee = e; + + if(e > 10.0 || e < -10.0){ + //K = 2.4; + ee = e*e*e; + /*if(e<0){ + ee = -ee; + }*/ + } + + if(e > 1.5 || e < -1.5){ + K = 100.0; } - static float e_old = 0; - + /* float ee = e*e; if(e<0){ ee = -ee; } - - sum_error += ee/F_CONTROL; + */ + sum_error += e/F_CONTROL; float derivative = (e - e_old)*F_CONTROL;