let's focus on current control.

here's how I understood how the control works: (picture below)

Basically I feed my PID with a reference current minus the measured current (i.e. I have a negative feedback in current), the PID provides a control voltage to the pwm (so that pwm exit is 0 if the triangular waveform that characterizes it is more than this control voltage) that gives the H bridge a signal characterized by its duty cycle that then makes the H bridge output the driving voltage for my motor.

dc control

my question is: why can't I feed the motor with the output from my PID? what's the point in having the pwm and H-bridge, if in the end all it does is giving the motor a voltage signal that has its average value where my PID decides?

my only guess is that there's something going on with ''per unit'' values. Like if my PID can output voltages between 0-5V but I want to drive my motor with -100,100V then it's up to the pwm and H bridge (which has a battery, of course) to ''transform'' the voltage information in the PID signal to the actual voltage that the motor wants.

What am I getting wrong? Why do I need those two elements?


1 Answer 1


You're guess is correct. The output of your PID is likely an op-amp or similar circuit capable of driving maybe +/-15V at a few mA. A motor may require 100V to get to the speed you want and many amperes to get the torque you need. To do that efficiently you need a PWM switching stage. Depending on the type of motor you may need commutation logic to keep the field in the right spot too.

  • \$\begingroup\$ I guess this is the same reason to have a VSI in ac machines and a DC-AC converter for pm? one thing that sounds strange is that I feed the PID with a difference (that could be huge) in current. coudn't it burn? I would drive it with a digital (or scaled down) signal, is this the correct idea? \$\endgroup\$ Jul 9, 2016 at 22:55
  • \$\begingroup\$ thanks for the edge on the field, but as far I know in DC motors rotor and stator fields are always in quadrature (so the torque is constant and maximum). at least in the ''theory world'', right? \$\endgroup\$ Jul 9, 2016 at 22:56
  • \$\begingroup\$ Yes, in a DC brush motor the commutator is electro-mechanical and keeps the fields in quadrature. In a brushless DC motor that's done electronically, so you need rotor position feedback and usually a 3 phase bridge with current sensing on 2 of the phases. Of course if the current or power isn't limited in any of these schemes you could damage the motor, but there are usually protection circuits or possibly software to prevent that. \$\endgroup\$
    – John D
    Jul 9, 2016 at 23:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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