Go Down

### Topic: stepper that rotates 90 degrees at a time as fast as possible? (Read 3756 times)previous topic - next topic

#### simonlucas

##### Jun 15, 2013, 04:05 am
I need to rotate a disk (around 20cm diameter of a lightweight material like aluminium) as fast as possible. It would need to stop momentarily between rotations. I'd like to reach speeds of 90 degrees turns every 1/4 second, and later perhaps even faster if possible (1/9th or 1/18 second?).

I've read about PM stepping motors but not clear whether they are fast enough.

Can anyone recommend a type of motor or a specific motor, please?

thank-you.

#### cr0sh

#1
##### Jun 15, 2013, 08:35 am

I've read about PM stepping motors but not clear whether they are fast enough.

Probably fast enough to do what you want - but the problem you are trying to solve is a bit more difficult.

Basically, you are asking a motor to stop and start on a dime at a precise angle; without some sort of position feedback, this won't be possible.

The mass you are moving isn't large - but the mass of the rotor likely will be. You need to be able to start that mass moving, then bring it to a fairly precise stopping point at a 90 degree angle from where it originally was. Thus the need for position feedback.

What you'll want is known as an "absolute encoder" - you can either purchase one or build one; if you decide to purchase such an encoder, the more bits (thus the higher the resolution) of the encoder translates into a higher cost (\$\$\$). That said, an 8 bit (256 values) encoder shouldn't cost much. Building one, while a possibility, may or may not be the best option - but here are a couple of links to get you started:

http://www.qsl.net/oe5jfl/encoder.htm

http://www.quirkfactory.com/robotics/single-encoder/

Now - once you know the position of the shaft, then you need to concentrate on acceleration and deceleration of the motor. A stepper motor can't be turned on at full speed, you have to gradually bring it up to speed (note that this can happen fairly quickly though, in only a few "steps" of the motor); furthermore, you need to detect when you are near your end-position, and gradually bring the motor back down to a stop (which again, can happen in a few steps). Finally, if accuracy is a goal (or accuracy over time) - then if there is over or undershoot of the final position, you need to be able to reverse the motor and bring it back into alignment with the desired end-position. All the while preventing oscillation.

You may have to (or want to) delve into the intricacies of a PID loop system for this control.

Ultimately, what you are building is a form of servo control system; certainly doable, certainly possible - but it isn't simply a matter of hooking up a motor and letting it run.

Also note that the above same kind of process would need to be applied to any other kind of motor (and some motors might even need an active EM brake or other braking system to keep the positioning in check).

You might want to look into other options; for example, there exist certain mechanical movements (escapements, cams, and similar devices) that can give you a 90-degree precise rotation given a continuous rotary input. Do some research on "mechanical movements" - you can find old books about the topic that have been scanned in at archive.org, for instance.

Another option might be to use a solenoid with a ratchet mechanism - every time the solenoid is triggered, it would pull on the ratchet, rotating the shaft with disk by some amount (so many degrees). Done right, with a proper brake mechanism to keep the shaft from advancing under the mass being rotated, such a system could be fairly accurate and fast (to a upper limit - you can only actuate a solenoid so fast electronically - but likely far faster than you need).

Those are my suggestions - they aren't meant to discourage you, only to get you to think about your problem and possible solution in a deeper manner. Good luck!
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

#### MarkT

#2
##### Jun 15, 2013, 02:55 pm

I need to rotate a disk (around 20cm diameter of a lightweight material like aluminium) as fast as possible. It would need to stop momentarily between rotations. I'd like to reach speeds of 90 degrees turns every 1/4 second, and later perhaps even faster if possible (1/9th or 1/18 second?).

I've read about PM stepping motors but not clear whether they are fast enough.

Can anyone recommend a type of motor or a specific motor, please?

thank-you.

This is all doable by direct calculation:

First you need to calculate the moment of inertia of your disk - the mass by itself isn't enough here,
the MoI is all-important for rotation.  For a 20cm diameter uniform disk of mass X kg the MoI will be  X/200 (in kg m^2),
or 5X (in g m^2), or 50,000X (in g cm^2).

Moment of inertia goes up as radius squared, so it grows much faster mass when you increase dimensions.

The formula for angular acceleration is  torque = MoI  x  angular acceleration.

So you then find out the angular acceleration (in radians / s^2) you want for the system to be
fast enough for what you want, calculate the torque needed.

No you know the minimum "hold-in" torque specification for your motor...

For instance to do 90 degrees in 50ms means pi/2 radians in 50ms, implying acceleration of 2500 rad/s/s
(using the formula s = 0.5 a t^2 in the angular domain).

So a 0.05kg disk would have MoI of 2.5e-4  kg m^2, torque = 2.5e-4 x 2500 = 0.625 Nm

This is the spec of a high-end NEMA 17 bipolar stepper (1.6A windings).

But that's not all, we need to know the max angular velocity to ensure this is in
the motor's range:

With the pi/2 in 0.05 s example again, thats an acceleration of 2500 for half the time (0.025s),
so omega = 62.5 rad/s, about 600rpm.  That's quite a challenge for a NEMA 17.

Units (SI):

torque:   newton-metres
moment of inertia:  kg m^2
time:  s

MoI of uniform disc of mass m and radius r (kg, metres) is  0.5 m r^2

Equations of motion:

torque = MoI x angular acceleration
MoI = integral of mass x radius^2
angular distance = 0.5 x angular acceleration x time^2

rpm = 9.5 x angular velocity    [ convert rad/s to rpm ]
[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

#### simonlucas

#3
##### Jun 15, 2013, 03:11 pm
cr0sh , thank-you for your response.

Perhaps I misunderstood that there were PM stepper motors could rotate in exactly 90 degree increments? I was reading the following page

PM stepper motors generally have step angles of 45 or 90 degrees and step at relatively low rates. However, they exhibit high torque and good damping characteristics.
http://www.anaheimautomation.com/manuals/forms/stepper-motor-guide.php

But I understand what you are saying about getting absolute positioning and building/buying a feedback loop system - and I guess that is a possibility.

Would another option be a servo? This one does 360 degree. Would it have enough torque?

http://oomlout.co.uk/collections/extra-pieces/products/servo-continuous-rotation-360-degrees-springrc-4303r

I'm trying to build a shutter that can sit directly in front of a lens and be open or closed when i want it to be. I thought I spinning disk with alternating apertures in it might be a simple solution.

With a solenoid I could make a back and forward motion, and maybe I could scale up the motion, flipping a 60mm square back and forth instead of rotational. But building complex mechanical elements are not within my grasp, so any off the shelf elements that can be built into a solutions are more pragmatic.

At the moment I am prepared to build something a bit slower than my ideals - as I am really testing feasibility of my idea. Making a working tool use it and then maybe improve it if it proves it's potential. At this stage I think I need to make it as simple as possible to match my current capabilities and resources.

#### cr0sh

#4
##### Jun 16, 2013, 03:58 am

Perhaps I misunderstood that there were PM stepper motors could rotate in exactly 90 degree increments? I was reading the following page

PM stepper motors generally have step angles of 45 or 90 degrees and step at relatively low rates. However, they exhibit high torque and good damping characteristics.
http://www.anaheimautomation.com/manuals/forms/stepper-motor-guide.php

Interesting - that page certainly does mention such a thing, but strangely, the link they give to their product list doesn't have any (max step angle they sell was 15 degrees, it seemed). If you could find one, it may just work fine.

But I understand what you are saying about getting absolute positioning and building/buying a feedback loop system - and I guess that is a possibility.

I was only mentioning this because most steppers I have found have much smaller step angles, and thus to rotate to a certain degree you have to send so many pulses; if you want to do it fast, you have to ramp the speed up, and then down - in a fairly short amount of time, while also monitoring (via an encoder) the angle you are at (if you need that kind of accuracy). You might find you could operate the system "open loop" - that is, without any feedback for position. However, if - over time - your system over or undershoots when it starts or stops, those errors will build up, eventually causing your shutter to only be partially open or closed.

Would another option be a servo? This one does 360 degree. Would it have enough torque?

A servo could be an option - most servos would have enough torque for what you want to do - and many can move fairly fast, but you didn't say exactly how fast you needed - you could certainly experiment.

With a solenoid I could make a back and forward motion, and maybe I could scale up the motion, flipping a 60mm square back and forth instead of rotational. But building complex mechanical elements are not within my grasp, so any off the shelf elements that can be built into a solutions are more pragmatic.

Rather than "flipping", why not "sliding"?

At the moment I am prepared to build something a bit slower than my ideals - as I am really testing feasibility of my idea. Making a working tool use it and then maybe improve it if it proves it's potential. At this stage I think I need to make it as simple as possible to match my current capabilities and resources.

Do an optical shutter using two pieces of linear polarized filters - when they are at 90 degees rotation to each other, very little light will be able to penetrate.

If cost isn't a great option, you might look into an LCD shutter device (small ones are available and aren't too expensive - well, at least compared to window-sized ones).
I will not respond to Arduino help PM's from random forum users; if you have such a question, start a new topic thread.

#### MarkT

#5
##### Jun 16, 2013, 03:40 pm

Perhaps I misunderstood that there were PM stepper motors could rotate in exactly 90 degree increments? I was reading the following page

PM stepper motors generally have step angles of 45 or 90 degrees and step at relatively low rates. However, they exhibit high torque and good damping characteristics.
http://www.anaheimautomation.com/manuals/forms/stepper-motor-guide.php

The phrase "high torque" is meaningless in all marketing materials.  Every motor is "high torque" according to