Go Down

Topic: Am I right to feed a DC motor driver more volts than the motor rating? (Read 151 times) previous topic - next topic

howiem

I'm reviving an old Puma 260 robot arm.

It has three 14V motors and three 16V motors, all with encoders fitted, and I'm driving them with off-the-shelf closed-loop motor drivers (Motion Mind 3s).

Question is, what voltage should I be feeding the drivers with? The drivers are rated up to 32V, but the motors are 14V and 16V.

When I built my CNC mill, I learned that even though the stepper motors I was using had 1-Ohm windings and were rated at 3A, that didn't mean they'd want 3 Volts to drive them(!). I had to feed my stepper drivers with around 30V. As I understand it, the high voltage is all about reducing the current rise time (inductive loads, eh), and because the drivers monitor the current, they'd cut off (chop) the power once the current had risen to the set point.

Is the same true of DC motors in general? If you're powering them from a voltage source, best not exceed the rated voltage, but if you're powering them from a current-controlled source, voltage can be significantly increased?

(I've noticed that a couple of other folks online have got these arms working, and they mention using 24V PSUs, 50V PSUs. I don't want to hurt my arm though - this is an old robot so a dead motor probably means one axis never working again)

Robin2

This does not seem to be an Arduino question. You may get better advice on one of the CNC forums.

DC motors are controlled very differently from stepper motors so don't apply assumptions about one to the other.

You will need to post the datasheet for your DC motor controllers. But my guess is that knowledge of driving DC motors with encoders for a CNC system is a bit beyond the scope of this Forum.

...R

1:1

DC motors are controlled very differently from stepper motors so don't apply assumptions about one to the other.
Well, a bit off topic maybe, as we're not talking brushless DC.

This more re. your stepper FAQ thread:  

Keep in mind that there isn't really much distinction between a wave driven stepper and a brushless DC - just a much (much) higher pole count.

Also, a square wave can be thought of as a digital approximation of a sine wave ...  

So assumptions are possibly moot - or at least unclear, in the case of (unspecified) 'DC' motors.

;)


MarkT

I'm reviving an old Puma 260 robot arm.

It has three 14V motors and three 16V motors, all with encoders fitted, and I'm driving them with off-the-shelf closed-loop motor drivers (Motion Mind 3s).

Question is, what voltage should I be feeding the drivers with? The drivers are rated up to 32V, but the motors are 14V and 16V.
18 or 24V - you can probably set the drive level on the motor controllers anyway, or
set current control and a current limit.
Quote
When I built my CNC mill, I learned that even though the stepper motors I was using had 1-Ohm windings and were rated at 3A, that didn't mean they'd want 3 Volts to drive them(!). I had to feed my stepper drivers with around 30V. As I understand it, the high voltage is all about reducing the current rise time (inductive loads, eh), and because the drivers monitor the current, they'd cut off (chop) the power once the current had risen to the set point.
Stepper motors are current controlled, not voltage controlled, they were fed with 3A, not 30V. 
Quote
Is the same true of DC motors in general?
Not at all, speed in a DC motor is determined by voltage, in a stepper motor
speed is determine by step rate.  Completely different animals.
Quote
If you're powering them from a voltage source, best not exceed the rated voltage, but if you're powering them from a current-controlled source, voltage can be significantly increased?
Nothing suddenly happens if you drive a 12V motor at 16V, say, but ultimately there is
a safe maximum rotation speed, exceeding that is extremely dangerous in a large motor.
There is bearing wear rate, bearing overheating, commutator wear, overheating and arcing
to worry about.  In general you will shorten the life of the motor by consitently overrunning
it speedwise, just as consistently overdriving current/torque wise will cause thermal issues.
Quote
(I've noticed that a couple of other folks online have got these arms working, and they mention using 24V PSUs, 50V PSUs. I don't want to hurt my arm though - this is an old robot so a dead motor probably means one axis never working again)
[ I won't respond to messages, use the forum please ]

howiem

This does not seem to be an Arduino question. You may get better advice on one of the CNC forums.
:)

Well, it's an Arduino telling the Motion Minds what to do, and there's no way I'd let this thing wield a cutting tool (!) but I get your point. The arm I'm trying to revive may be industrial, but it's tiny - only a few feet tall fully extended.

Keep in mind that there isn't really much distinction between a wave driven stepper and a brushless DC - just a much (much) higher pole count.

Also, a square wave can be thought of as a digital approximation of a sine wave ... 
Ahh... interesting insight.

I'm kinda figuring that an inductive load is an inductive load, whether it's a stepper winding or a DC motor winding. There are obvious differences (don't want to be creating too many sparks at the commutator, don't want to exceed the windings' insulation breakdown voltage etc), but electrically they seem similar. So:

In principle, could I run a DC motor at 50% higher voltage than it's nominal rating, as long as I PWM it at no more than a 66% duty cycle? [UPDATE: answered below]

You will need to post the datasheet for your DC motor controllers. But my guess is that knowledge of driving DC motors with encoders for a CNC system is a bit beyond the scope of this Forum.
Mebbe I shouldn't have mentioned the controllers - they're only a temporary thing as they have pretty simplistic PID control - my longer term plan is to have an Arduino on each axis doing adaptive PID so I can properly compensate for gravity, torque coupling from the other joints etc.

I'd have to gently disagree with the idea that driving big servos is outside the scope of this forum, though - there are a number of suitable Arduino PID libraries - but I can understand your concern at an Internet Stranger asking for help with what might have sounded like a dangerous machine :)

*** Update ***

... speed in a DC motor is determined by voltage, in a stepper motor
speed is determine by step rate ...

... Nothing [bad] suddenly happens if you drive a 12V motor at 16V, say, but ultimately there is a safe maximum rotation speed, exceeding that is extremely dangerous in a large motor ...
Ahh - cool. I can make sure I don't exceed their max rpm; they'll usually be operating much slower. And they're not particularly large motors; the biggest is about 40mm diameter, 40mm length.

Thanks all!

1:1

Not at all, speed in a DC motor is determined by voltage, in a stepper motor speed is determine by step rate.  Completely different animals.
Welllll, there are two speeds in a stepper - the speed it takes to make a step, and the speed/RPM we are more intuitively inclined to perceive.

To go 1rpm a 3.6deg step motor might actually be for all intents and purposes (or should I say for all indents and purposes  :smiley-mr-green: ) be motionless the majority of the time, to make up for that the eventual integration calls for a short periods of 'full speed' motion (steps).

It's almost like physical PWM, but instead of keeping the period fixed and adjusting 'on' time, 'on' time is fixed and period is varied - which still results in a duty cycle that is meaningful >> i.e. 100% is the limit of motor speed, before the unit cannot make the next indent/pole before the current switches, i.e. it sits there oscillating between two 'can't quite make it' commands. (with I guess slightly different behaviors with the different pulse modes).

Guessing, you already know that?  or hopefully are about to correct me if I'm wrong ?

Just being complete, as I'm bored off work at the moment

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy