Im currently designing a robot for my undergraduate project. One of the task of this robot is to follow the wall. For the purpose I'm using a PID control system, where the reference is given from a ultrasonic sensor. So my problem here is im having a hard time tuning the PID. I know i can find the P coefficient pretty easily by plotting the desired set point range vs desired motor output speed. Even then the robot is not so stable, so i though of adding DI part of PID. But how do find out roughly the values of these coefficients without just trying out random values (manual tuning)? Thank you so much. Much appreciated.

  • $\begingroup$ This article helped me a lot: igor.chudov.com/manuals/Servo-Tuning/PID-without-a-PhD.pdf $\endgroup$
    – cube
    Oct 16, 2014 at 7:54
  • $\begingroup$ There are many ways to tune a PID: manual, from a process model in Matlab, Ziegler-Nichols, etc. Your application does not seem to require critical performances, so manual tuning would probably yield the best return on (time) investiment. Reduce P for stability at the expense of setting time, increase I to reduce the steady-state error (if any), and don't touch D if the response is fast enough without it. $\endgroup$
    – marcv81
    Oct 16, 2014 at 14:22
  • $\begingroup$ Thank you. Is it possible to find to find a rough value of Kp by plotting desired output vs input? Plus, what is a steady state error? Sorry I'm not so good with this subject. Thanks again. $\endgroup$
    – Vino
    Oct 16, 2014 at 15:40
  • $\begingroup$ Tag people to get them to read the comments addressed to them. I don't know of a way to get a rough Kp, start low and double each time until it's high enough. A steady state error is when you want to be 20cm from the wall and you get a stable path but 25cm away. $\endgroup$
    – marcv81
    Oct 20, 2014 at 18:54


Browse other questions tagged or ask your own question.