The aim of this project is to design a pid controller for accurate position control of a DC motor even under disturbance. The main objective of this is to evaluate the method of independent joint control which is widely used in many robotic applications. Using a generic motor model such as:
we can derive the closed loop transfer function through:
π(s) = (E2-D) x 1/(Js^(2)+Bs)
E2 = E1 x (KP+Ki/s)- π x KD x s
E1 = (πd - π(S))
E2 = (πd - π) x (KP+Ki/s)- π x KD x s
π(s) x (Js^(3)+(B+KD ) x s^2+ KP+Ki)= ((πd ) x (KP x s+KI)-D x s)
Assuming (Js^(3)+(B+KD ) x s^2+ KP+Ki) = π₯(s)
π(s) = (πd ) x (KP x s+KI)/π₯(S) - D x s/π₯(s)
Using the model above with desired π at 50 and a constant disturbance input of 50 with KP = 230 KD =78.004 and KI = 0.0001 we achieve the desired position with settling time below 5s overshoot below 1% and no steady state error. The PID gains for this project were obtained through Matlab's PID tuner.
Simulation result:
Click on this for Matlab files
RiseTime: 51.8937
Settling Time: 84.6280
Overshoot: 0.032