Maker Pro
Maker Pro

stepper motors question

  • Thread starter Marco Trapanese
  • Start date
M

Marco Trapanese

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
 
E

Eeyore

Marco said:
Hello,

I'm sorry for my English.

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
 
R

Roger Hamlett

Marco Trapanese said:
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?
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
 
J

John Larkin

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

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
 
J

James Arthur

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.

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

Cheers,
James
 
R

Roger Hamlett

James Arthur said:
That part's made by Allegro MicroSystems...
http://www.allegromicro.com/
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
 
M

Marco Trapanese

Roger Hamlett wrote:

[cut]
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.

[cut]

I thank you and the other friends for the answers! I understood the problem
and the possible solutions.
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.

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.

I'm downloading the A3977 datasheet...


Marco / iw2nzm


Thanks to Eeyore for the kind words too :)
 
G

Gary Reichlinger

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.

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.
 
M

Marco Trapanese

John said:
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.

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?
Bridge-drive PWM allows efficient high-voltage
drive, but diode-clamped PWM doesn't.

Please, may you be more specific on this point?

Thank you!
Marco / iw2nzm
 
M

Marco Trapanese

Gary said:
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.

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
 
J

James Arthur

Roger Hamlett wrote:

[cut]
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.

[cut]

I thank you and the other friends for the answers! I understood the problem
and the possible solutions.
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.

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.

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
 
M

Marco Trapanese

James said:
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.

No, I was wrong :)
Now it's clear! Thanks.
Cheers,
James Arthur

Bye
Marco / iw2nzm
 
J

John Larkin

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?

Whatever works for you.
Please, may you be more specific on this point?

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
 
M

Marco Trapanese

John said:
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.

Ok!

Marco / iw2nzm
 
Top