1
\$\begingroup\$

I have used PID a couple of times, but there is one thing I haven't been able to understand from any literature/textbooks.

If I run a DC motor from a 12v battery for example, how can PID improve the transient response?

The Voltage (and input) is still limited to 12V, so how can the system respond any faster while still adhering to the dynamics and armature equations for a DC motor? It seems it relies on there being additional input capacity.

If it can't, why is it so common to talk about improved transient response when I read about controlling a DC motor using PID?

Thanks in advance

\$\endgroup\$
  • \$\begingroup\$ What transient response? What is PID used for? You can use PID for current control, speed, position, voltage,.. so what are you controling? \$\endgroup\$ – Marko Buršič Mar 8 '16 at 19:15
  • \$\begingroup\$ I probably should have stated, I was referring to speed/position. \$\endgroup\$ – T.Power Mar 8 '16 at 19:23
  • \$\begingroup\$ A linear PID controller could improve the response without limit, like reversing a battleship on a dime, but things (such as power output) saturate and exhibit other nonlinear behavior. \$\endgroup\$ – Spehro Pefhany Mar 8 '16 at 19:31
4
\$\begingroup\$

You are correct, even a PID loop can only apply 100% duty cycle, so maximum speed transient response is not improved.

The difference is if you wanted to go at 0.75 of maximum speed, then the PID loop will apply more power at the beginning than the 0.75 duty cycle and then lower down to the appropriate duty cycle as the error gets closer to 0. In this way, the transient response is improved.

Edited to add: Also, after reading your question again, you can only use a PID loop when you are controlling motor voltage using PWM or some other method of controlling the voltage/current to regulate speed/current/power.

\$\endgroup\$
  • \$\begingroup\$ Thanks for the answer, this is what I suspected I just was confused I couldn't see it stated anywhere. Perhaps it is simply too elementary. \$\endgroup\$ – T.Power Mar 8 '16 at 19:21
  • \$\begingroup\$ Altrough the answer is marked as accepted it is a little contradictive. Because you can't control the speed of motor to 0.75 max speed if you don't use a closed loop control, therefore transinent response PID vs. ??(which closed loop control)? \$\endgroup\$ – Marko Buršič Mar 8 '16 at 19:23
  • \$\begingroup\$ PID loops are - at once - amazingly simple and amazingly complex. The best way (my opinion) to learn about them is with a motor because you get real physical feedback during tuning and you can really learn how each term works. I really like this article as it goes through PID concepts and how to write a loop yourself. I wish I had access to the article when I wrote my first PID loop. The author is spot on with the 'gotchas'! \$\endgroup\$ – slightlynybbled Mar 8 '16 at 19:23
  • \$\begingroup\$ @Marko The author of the question stated that he was simply applying power supply voltage to the terminals. So closed-loop transient response vs. open loop 100% duty cycle. \$\endgroup\$ – slightlynybbled Mar 8 '16 at 19:25
  • \$\begingroup\$ @slightlynybbled That PID source code is for dummies, it lacks some real engeneering concept, like numerical math basics. \$\endgroup\$ – Marko Buršič Mar 8 '16 at 19:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.