Brushed DC motor control, low speed, variable torque

I am working on a PID control loop for a brushed DC motor, and everythin works fine and dandy at high speeds. However, the system see a wid variety of loads, even at low speeds, and I am having trouble controllin this situation. I have used a gearbox and this obviously helps out a ton but am wondering if anyone has pointers on getting it to work on a moto without a gearbox (other than over sizing the crap out of the motor)? Th motor has a 500 count encoder which I am using a x4 count on a dsPIC, so have 2000 pulses per revolution. I have tried interrupting on every pulse and expected time per pulse and recalculated the error, but to no avail. have tried counting pulses over longer durations without much luck. Th system is really sensitive at low speeds.

Oh, and the goal is constant speed control. Nothing else. Thanks for an suggestions!

Reply to
greginfinity
Loading thread data ...

It's really not clear what your problem is.

Does it go unstable? Does the speed vary too much? Does the meaning of "too much" change as the speed goes down?

If you measure your performance as the difference between actual and target speed, and if the absolute value of your goal does not change as the speed goes down, then you ought to be able to control things just fine. If you measure your performance as "commanded speed +/- 10%" then you're going to be in trouble when the commanded speed drops to zero, no matter what.

I could see problems if your torque requirement goes up as the speed goes down (is this why you're mentioning upping the motor size?), or if you're running into problems with cogging torque in the motor, but you've still lost me as to the particular problem.

So:

Tell the story of the problem. What is the system supposed to do, and how does it deviate? When does this become a problem? What causes your load to vary? Have you formed any theories of what your problem is?

--
Tim Wescott
Wescott Design Services
 Click to see the full signature
Reply to
Tim Wescott

To get good low speed operation measure the back (generated) emf from the motor to measure its speed. You do this by driving it with pulsed power, and measuring while the pulse is off.

--
 [mail]: Chuck F (cbfalconer at maineline dot net) 
 [page]: 
 Click to see the full signature
Reply to
CBFalconer

Hi I've had good luck at low speeds by measuring the current with a series resistance. I measure the DC resistance of the motor. I then use this to create a voltage that is subtracted from the running voltage of the motor to find the back emf that is used for feedback in the control loop. This works well at speeds close to zero but needs tweeking to get it to work all the way to zero speed. It is about the same as the pulse back emf method but simpler in that it doesn't require sampling time. Dwight

Reply to
dkelvey

What do you mean by "low" speeds? 1rev per second, 1 rev per minute, 1 rev per hour?

What kind of control are you using? What's the sample rate? The D of a PID loop could be getting very little information at very low speeds with only 2000 ppr. You really need to analyse the whole feedback loop to look for potential instabilities.

Also watch for stiction effects. Very non- linear and bugger up the best laid plans.

A rule of thumb for initially sizing a motor is to choose one with a rotor J about the same as the load J (allowing for any gearbox).

You might also find it easier to use incremental position control at very low speeds, since at these speeds that's really what you want to do- apply a great deal of torque if the rotor position is away from the setpoint.

JS

Reply to
JSprocket

May not work if the basic problem is the low speed itself (i.e. stiction or some other oddball process), but yes, it's a handy way to get tachometer action without putting a tach on there.

I wonder if the OP is ever going to respond to questions, or if this thread is yet another Rorschach blot?

--
Tim Wescott
Wescott Design Services
 Click to see the full signature
Reply to
Tim Wescott

Also to add to the questions for the original poster, what kind and size of brushed DC motor?

Robert

** Posted from
formatting link
**
Reply to
Robert Adsett

ide

ut a ton,

=BF=BDThe

I

ery pulse,

=EF=BF=BDI

=BF=BDThe

=BDThanks for any

Sounds like your proportional gain is too low. At low speed you may need as much as 5 times what works at high speed.

Reply to
cbarn24050

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.