# stepper motors question

Discussion in 'Electronic Design' started by Marco Trapanese, Feb 1, 2007.

1. ### Marco TrapaneseGuest

Hello,

I'm sorry for my English. I have a question about stepper motors.
I used a unipolar stepper motor (200 steps/rev) to control an
electro-mechanical brake. It must move as follow:

1) 50-60 steps clockwise as fast as possible
2) hold position for about 20 ms
3) return (CCW) at initial point as fast as possible
4) hold position for about 200 ms and then go to 1)

Note: the load is very light.

Using a PIC, a ULN2803 and a 12V zener on the Vdd it completes 1) or 3) in
less of 100 ms.

Now, I have to improve (if possible) the performances. So I ask you:

1) What type of motors are more suitable for this application? unipolar or
bipolar?

2) Should I use a chip (ex. L297/298) to driver the motor? Most of them have
a PWM driver, I think it could be more efficient than a simple Darlington
driver.

3) I used a "pseudo-exponential" ramp to accelerate/decelerate the motor.
What curve do I have to follow to reach the best acceleration/deceleration?

Thanks

Marco / iw2nzm

2. ### EeyoreGuest

Your English is far, far better than that of some whose first language it is !

You also explained your question well. If only more people knew how to do that.
Would you like to come here to teach English ?

Sorry I can't help with your question btw.

Graham

3. ### Roger HamlettGuest

The key problem with all steppers, is that the coils are very inductive. A
motor with a 'rating' of 12v, implies that it can support having 12v
applied continuously to the coils without overheating. The problem is that
the rate at which the current rises through the inductor, when the motor
is stepped, depends initially on the inductance, and the 'drive voltage'
feeding the circuit. Ideally then, to get a fast rise in current, what is
needed is to momentarily increase the voltage driving the coil, far beyond
it's 'rated' value. A few moments latter (once the current actually starts
to flow), the resistances present, enter the equation.
Hence, there are two basic drive choices for speed. the first it to
permanently have the 'overvoltage' present, and limit the current to the
rated value, with a large resistor. The second is to electronically limit
the current with a PWM drive. The former has the advantage of simplicity,
but the downside of huge amounts of wasted power in the limit resistors.
The latter saves the power, but at the cost of complexity.
Bipolar motors are generally more powerful for a given size.
Generally, an 'overvoltage' of about 5* the motor rating is a good
starting point. So something like a 2.4v bipolar motor, with PWM drive,
will give much more torque at speed.
Now, on the acceleration curve, you are going to have to answer this
yourself. The problem here is that the torque needed to get to a faster
speed, depends on the inertia of what you are driving (and of the drive
itself), together with the drag terms present. Normally, you will almost
certainly need to 'flatten' the top of your acceleration curve, as the
drag becomes more significant.
Consider the Analog devices A3977, with a bipolar motor, if this is big
enough to drive your unit. Supports single stepping, and microstepping,
with PWM drive, and gives a simple 'step/direction' connection to your
PIC.

Best Wishes

Best Wishes

4. ### John LarkinGuest

Amplifying Roger's comments, a typical stepper will run out of torque
in the 100 steps/second sort of range using straight voltage drive but
can be used to many hundreds of s/s with constant-current drive.

One easy way to jazz things up is to put resistance in series with the
windings and increase supply voltage accordingly. This sppeds things
up but wastes power. Bridge-drive PWM allows efficient high-voltage
drive, but diode-clamped PWM doesn't.

Linear or s-curve ramping should be fine, no big deal as long as the
acceleration is controlled.

John

5. ### James ArthurGuest

That part's made by Allegro MicroSystems...
http://www.allegromicro.com/

Cheers,
James

6. ### Roger HamlettGuest

Aaargh...

They both begin with 'A' don't they!.
I have been using a whole host of Analog Devices parts recently, and just
typed their name, instead of Allegro.
Sorry.

Best Wishes

7. ### Marco TrapaneseGuest

Roger Hamlett wrote:

[cut]
[cut]

I thank you and the other friends for the answers! I understood the problem
and the possible solutions.
If I'm not wrong, when I use a PWM driver I don't need to increase the power
supply because the PWM itself causes the current to rise quickly.

Marco / iw2nzm

Thanks to Eeyore for the kind words too

8. ### Gary ReichlingerGuest

If you are only interested in the 2 positions (in and out), you
may want to consider a solenoid instead of a stepper. You may need to
allow some time for the solenoid coil to energize and de-energize, but
this should be fairly easy in software. The drive circuit would be
much simpler.

9. ### Marco TrapaneseGuest

Well, I guess the series resistance decrease the time costant of the coil:

tau = L / R
tau' (with Rs) = L / (R + Rs)

So if I want to have the same current (or torque) in both cases I must
increase the voltage:

I = V / R
I = V' / (R + Rs)

V' = I * (R + Rs)

As the voltage increases also increases the power wasted on the resistors.
How should I select the correct tradeoff between tau and overvoltage/power?
Please, may you be more specific on this point?

Thank you!
Marco / iw2nzm

10. ### Marco TrapaneseGuest

Unfortunately it isn't possible. The position is calculated by a PI
controller and varies between about 50 and 60 steps so I have to position
the stepper where I need.

Bye
Marco / iw2nzm

11. ### James ArthurGuest

PWM limits the motor current to a safe value, AND allows you to
increase the
power supply voltage, which is desirable. A higher supply voltage
forces current
into the motor faster, yielding faster stepping. d(i)/d(t) = E /
L(motor) and all that.

I'm not sure if that's what you meant.

Cheers,
James Arthur

12. ### Marco TrapaneseGuest

No, I was wrong
Now it's clear! Thanks.
Bye
Marco / iw2nzm

13. ### John LarkinGuest

Whatever works for you.
If you use a higher-voltage supply, say 60 volts for a 12-volt motor,
and use pwm with current feedback, the control loop can use all the
available voltage to slam current into and out of the coils. But if
you just use simple open-collector pwm with diode clamps, you can't
get the current out of the coils fast.

John

14. ### Marco TrapaneseGuest

Ok!

Marco / iw2nzm