Software > Software
PID algorithm
[email protected]:
Error = target_pos - current_pos; //calculate error
previos_error=error;
P = Error * Kp; //error times proportional constant gives P
I = I + (Ki*Error); //calculates the integral value
D = kd * (Error - previos_error); //stores change in error to derivate
Correction = P + I + D;
pwm = 175;
RPM_of_Lm = pwm - (Correction); // calculate pwm for motors
RPM_of_Rm = pwm + (Correction);
now is this controller right???
jkerns:
You have two error terms one Error and one error. That is a problem.
You set the value for the previous error right after you calculate the Error - too late - you need to do that BEFORE you change the value of Error.
But you are getting closer.
[email protected]:
is the term correction right????
will it work properly...?
jkerns:
If you fix the errors noted above it should work (you will have to tune the gains of course - I would set Ki and kd = 0 and just work with Kp to start. Set the intital value to 10 - if that doesn't work try 1 (if it's turning too much) or 100 (not turning enough) once you get close you can change it by double or half instead of by 10 or 1/10)
[email protected]:
thanxx .. alot for your help....!
i am fixing the issues with the driver circuit ....
i would probably finish the driver problem in some days and than start tuning part.....
Navigation
[0] Message Index
[*] Previous page
Go to full version