Current control of DC motor using PI controller

Click For Summary

Discussion Overview

The discussion revolves around the implementation of current control for a DC motor using a PI controller. Participants explore the relationship between input voltage, motor current, and control strategies, including the implications of load conditions and control modes.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant questions whether the measured current of 15mA at 100% duty cycle indicates a limit on the controllable current for the motor.
  • Another participant suggests that the maximum current will occur at stall conditions and recommends measuring the motor's DC resistance to calculate the maximum current using Ohm's Law.
  • A later reply indicates that the motor current can follow the reference as long as it is set below the maximum current determined from stall testing.
  • Discussion includes the concept that motor current is proportional to the torque transmitted to the load and that using current mode control allows for programming the motor's torque.
  • Participants note that speed limit occurs when back EMF approaches the supply voltage, affecting control strategies.
  • One participant contrasts current mode control with voltage mode control, highlighting the complexities introduced by inertia and the dynamics of the control loop.

Areas of Agreement / Disagreement

Participants generally agree on the importance of understanding the maximum current and the relationship between torque and load. However, there are differing views on the implications of control modes and the complexities involved in current mode control versus voltage mode control.

Contextual Notes

Limitations include the dependence on specific motor characteristics, such as resistance and stall current, which may not be universally applicable. The discussion also highlights unresolved aspects of control system stability in current mode control.

Who May Find This Useful

This discussion may be useful for individuals interested in motor control systems, particularly those working with DC motors and PI controllers, as well as those exploring the dynamics of control loops in engineering applications.

awaiting
Messages
24
Reaction score
0
Hi everybody!

I am trying to implement current control of a DC motor using a PI controller and was having a few questions.

I am supplying 19V as input voltage (and capable of supplying current upto 2A) to the H- bridge and the controlling is done via a microcontroller using PWM.
When I connect 19V (100 % duty )directly to the motor (with a small mechanical load) I measured the current through the DC motor to be 15mA. Does this mean that I can control the current only upto 15mA.
If for this same load and supply voltage, I now give a reference current of 25mA will the controller be able to take power current from the source and give it to the motor. If so, how? (as it was giving 15mA for 100% duty at 19V.)
If not, does it mean that there can be no PI control above 15mA for this case?
Is it possible to make a PI controller for any range of loads connected to the motor ?

Thanks a lot for reading!
I appreciate your help
 
Engineering news on Phys.org
The max current will be at max load ( stall) - If you can not find a datasheet for the motor - measure the DC resistance of it, and then use that to calculate the max current using good ol' Ohm Law. Then use this current to develop the rest of the solution - there are so many sources of info on using PI - I suggest fishing around a little before posing here - since you are more aware of the details of what you want to do. ( I like SParkfun.com for example - but there is also http://www.raspberrypi.org/ )

However as I looked for a little info I did find some bad examples - so if you have a specific case / example I am sure the group here can review and advise. It seems the max current you should expect / allow though a single GPIO - as an output is 16mA.

To you basic question - the PI is a controller - to run heaver loads ( almost ALL motors should be considered a heavy load relative to a controller )- you need a Driver Circuit. This takes the output of the PI ( as a very low load) - and provides a higher power output.
 
Thanks for the reply, Windadct!

I found the max current as you suggested by stalling the motor and then adjusted the proportional and integral gains to get 100% duty cycle.
The motor current is now following the reference as long as it is set less than the max current.
 
The motor current for a brush motor is proportional to the torque being transmitted to the load and losses.

However, using current mode control, controlling the motor current through the motor the motor's torque can be programmed and the speed will become load dependent until the motor enters what is termed speed limit.

Speed limit occurs when the motor is rotating fast enough to produce a back EMF (generated voltage) approaching the supply voltage.

Voltage mode control is accomplished by controlling the PWM for a fixed voltage source. Then, Vmot = 19V x PWM
Thus using the PWM as the control variable is a handy means of approaching the desired speed. Over a range of loads.

Now for the fun part, current mode control controls torque which then then interacts with the mass-moment of inertia, J, of the system as well as the load peculiarities. In the world of control systems, this means you have another pole ( integral ) in your control loop and the result is a more difficult system to stabilize.

Though voltage mode controlled motors still have to deal with inertia, the associated dynamics are at a higher frequency, making the control loop simpler to close.

- Mike
 

Similar threads

Replies
3
Views
1K
  • · Replies 4 ·
Replies
4
Views
1K
Replies
6
Views
2K
  • · Replies 9 ·
Replies
9
Views
2K
Replies
21
Views
3K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 11 ·
Replies
11
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
Replies
2
Views
2K