Самое лучше описание PIDа я видел тут. http://en.wikipedia.org/wiki/PID_controller start: previous_error = error or 0 if undefined error = setpoint - actual_position P = Kp * error I = I + Ki * error * dt D = Kd * (error - previous_error) / dt output = P + I + D wait(dt) goto start Как найти P I D коэффиценты, то ИМХО самый логичный и практичный вариант- подбором, по полушаманским методикам.