I'd like to run a stepper motor at a very smooth, constant speed, with minimal vibrations to both the mount holding it and its output. How do I drive the stepper motor so that speed remains constant, even between steps?
What you need is sinusoidal current drive.
In other words, you have to treat the motor like a traditional brushless motor, rather then a stepper. This requires pretty specialized stepper drivers, and is not simple.
A simpler alternative might be to try microstepping the stepper motor, but that won't get you perfectly smooth rotation.
Really, for situations where you need extremely smooth rotary motion, a stepper is really just the wrong control system. You should use a brushless AC motor, or at least a brushed DC servomotor.
Here is a decent white-paper on stepper drive modalities, with some contrasting to AC synchronous motors.
|show 6 more comments|
Using full step driving, the rotor acts much like a Spring-Mass-System, with the rotor being the mass and the magnetic force being the spring. When you move from one step to the next, the motion will always be rough. The rotor pretty much jumps from one step to the next and it takes some time until the spring dampens out the rotor's energy, causing a little oscillation (read: rough motion).
You can smooth this when you use half-step mode, and you can additionally compensate the torque-nonlinearity, cf. this link
Following this logic, you eventually end up using fine-Stepping, micro-stepping and sinusoidal driving. (See this link for micro-stepping)
Some more details:
The resonant frequency of a stepper motor's rotor is usually somewhere around 50 Hz ... 400 Hz. When you drive the motor in full-step mode at its own mechanical resonant frequency, things will get pretty bad and it is likely that you lose (jump over) steps. For slow speeds, it is a good idea to stay below the motor's resonant frequency. For high speeds, try to get beyond the resoncance as fast as you can while accelerating, and don't use full-step driving.
I can only suggest reductors, if speed is not a limiting factor.
Otherwise I would go for brush-less motors with some feedback.
See the Geckodrive support page, especially the Application Notes->Step Drivers->How Morphing Works (sorry, it seems impossible to link directly). The Step Motor Basics are also useful.
Basically if you want to go fast enough then two things happen:
I used to test stepper motors on old hard disk drives verifying the design for seek errors from many manufacturers in the 80's while reverse engineering the entire designs as part of the DVT or qualification for Corp OEM purchasing.
Some of the Japanese made the smoothest stepper motors using fluidic filled brass and clear plastic rings to dampen the vibration and overshoot as well as create a velocity profile to accelerate smoothly to a maximum velocity then de-accelerate to a target position. They only used half step bridge mode but often used SS band gear-reduction methods on a rotary or linear actuator but it was very effective for fast smooth quiet operation on a solid baseplate. (note: all disk drives now use rotary voice coils but floppys and DVD are still around and quiet) Check out their operation.
Stepper torque also drops with rising RPM and use of PWM. So biggest is stall/ starting torque and final RPM torque is minimum. Margins must be known for your needs and ensure there are no funny resonances from a mechanical magnetic spur.
I know there are resonant and sub resonant vibrations in PWM mode H driver systems, so be careful to measure what vibration you hear and where it comes from ! Magnetic step resonance or sub resonance. and get a rotary viscous damper flywheel.