Making a stepper motor perfectly smooth. - Page 1
Forum section: electronics / projects

author: Circlotron
author_rank: Super Contributor
timestamp: August 14, 2016, 02:50:28 am
content: Back in about 2003 I was working on this projects that needed a small motor to run perfectly smoothly at about 60 rpm. I had a stepper motor about 2/3 the size of a coke can so I tried a few things on that. With the help of a pc with sound wave editing software, sound card and external amplifier I put two sinusoidal voltages 90 degrees apart into it and you could feel it cogging slightly. So re-jigged the amplifier to put two sinusoidalcurrentsinto it instead, and it still cogged the same as before. Nothing terrible, just that it wasn't dead smooth as I expected it would be. Tried various amplitudes of voltage and current. The thing is, if I rotated the motor smoothly it would generate two visually perfect sinewaves so that's why I thought if I applied that same, it would rotated smoothly. Still can't work it out.

author: MosherIV
author_rank: Super Contributor
timestamp: August 14, 2016, 11:15:45 am
content: I believeit is physically impossible to make stepper motors to turn smoothly.The reason is due to the way stepper motors work and their geometry.First problem is that magnetism gets weaker with a square law.So, whenthe rotor is inbetween each pole, it will experience more magnetism as it gets near the next pole, ie it will be accelerated to the next pole thereby making it non linear/smooth.When the rotor is at a pole, it will wants to stay at that pole due to the highest magntism at that pole.It will be momentarilly slowed down at the pole.The way to bet over this is to turn off the pole at the peak of voltage/current, ie turn off the magnetism but this will reduce the torque.The motor need more poles and a similar electrical drive as you have experimented with. Stepper motors with eniugh poles are not made because it is not economical due to lack of demand and high complexity.I learned in my early career that the smoothest motors are AC induction motors, the company used synchronous ones for truely smooth precision control.

author: Fungus
author_rank: Super Contributor
timestamp: August 14, 2016, 11:45:02 am
content: The whole point of stepper motors is that they step. There's nothing you can do about that.If you want "smooth" you can use an ordinary DC motor with a position feedback sensor (and maybe suitable gearing).

author: Pjotr
author_rank: Frequent Contributor
timestamp: August 14, 2016, 12:06:55 pm
content: Stepper motors are of very crude low cost construction: They step a fixed amount of rotation, That is what they are made for. To circumvent the crude stepping, micro stepping of various flavours can be used, which helps. To improve that again specially designed stepper motors for micro stepping are made. Whether or not controlled open loop or closed loop. But with that you are entering a much more expensive league.If you want perfect rotational speed smoothness forget the steppers. Brushless servo motors controlled closed loop is a more easy way.

author: rstofer
author_rank: Super Contributor
timestamp: August 14, 2016, 03:42:11 pm
content: Look into microstepping, with enough microsteps, the motor gets pretty smooth.This controller will do 51,200 steps per revolution:http://www.automationtechnologiesinc.com/products-page/digital-stepper-motor-driver/digital-stepper-driver-kl-5056d-heat-sink-is-included

author: chris_leyson
author_rank: Super Contributor
timestamp: August 14, 2016, 03:52:51 pm
content: I think microstepping is a myth that needs to be busted. The torque is not constant, if a rotor pole is between stator poles then you have minimum torque and similarly max torque when the rotor is alligned with the poles. I could never get it to work in practice despite what the manufacturers claim for their microstepping drives.

author: H.O
author_rank: Frequent Contributor
timestamp: August 14, 2016, 05:24:49 pm
content: Running it with an analog amp in current mode pretty much means infinite resolution* and in a perfect world it should run smooth. But the precision of the motor itself isn't perfect so there will be variations. I'm surprised you explain it as cogging though, I wouldn't expect that.Are you sure you didn't overdrive it, saturating the coils or something? Was the motor an old round one or a more modern square type motor (the modern ones is supposed to be better at micrsostepping).If you REALLY want it perfect you need to match each "step" in the SIN/COS table of the drive to the motor.Just the other day I uploaded a short, rather boring,of a NEMA8 motor driven by a Leadshine DM432C drive at 36000 steps/rev. I'd say it's pretty smooth, you can see what looks like cogging in a couple of places but they're not actually there when you look at the original video, must be Youtube rendering thing or something.* Well, if the amp is driven by an digital audiodevice then it's not really infinite...

author: tatus1969
author_rank: Super Contributor
timestamp: August 14, 2016, 05:53:53 pm
content: Quote from: H.O on August 14, 2016, 05:24:49 pmDoes it behave the same with load torque applied? I would expect it still to have torque ripple.As far as I know, there are two widely used types of stepper motor constructions: reluctance motors and permanent magnet motors. A reluctance motor does not have any cogging when turned by hand, the other ones have. Maybe this could be worth a try. As far as I remember, most todays NEMA stepper motors are hybrid, combining both principles and having very low torque ripple. Maybe you give these a try for example:https://www.pololu.com/product/1204

author: LA7SJA
author_rank: Regular Contributor
timestamp: August 14, 2016, 06:20:02 pm
content: Go old school, try the old-fashioned flywheel.Johan-Fredrik

author: cncjerry
author_rank: Unknown
timestamp: August 14, 2016, 08:18:56 pm
content: They make flywheels specifically for steppers. I think they were Pacific Scientific. They came with steppers I bought a while back. If you need control and a smooth(er) running motor, try a servo.

author: H.O
author_rank: Frequent Contributor
timestamp: August 14, 2016, 08:47:17 pm
content: QuoteNot that I've tried it with this setup, it's a pick and place nozzle, torque load will be minimal so I'm happy with its performance at this point. But yes, if the load placed on the motor is higher than the incremental torque for a single microstep then it will of course not move at each individual step pulse. On the next (or the next or the next) step pulse the torque output has increased enough to overcome the load and the shaft moves, there's your "cogging."The motor won't "desyncronise" until it's 2 full steps "behind" at which point the magnetic field changes polarity/direction and the rotor will move to the closest natural position in the other direction and is now 4 full steps away from where it's supposed to be = lost steps.If the goal is smooth velocity, especially at low speeds then, as have been suggested, a high quallity servo motor (Maxon and Dunker springs to mind) with analog feedback ie tachometer and a high quality drive is obviously your best bet (but that wasn't really the question).

author: Pjotr
author_rank: Frequent Contributor
timestamp: August 14, 2016, 08:53:55 pm
content: OP does not tell what he is up to with "to run perfectly smoothly at about 60 rpm". Steppers are intended for positioning, not constant rotational velocity. For positioning they are fine: easy to use, easy to drive and easy to control. But for constant rotation not the first choice. Some 30 years ago I implemented a 2 kW stepper with a worm gear for turning a platform used in a theatre performance. The noise the thing made was a performance by itself

author: lapm
author_rank: Frequent Contributor
timestamp: August 14, 2016, 09:45:48 pm
content: Depending on "smooth" here, i would go with dc-motor and some sort of positional feedback system. As other has pointed out, stepper motors are intended for positioning, not smooth rotation.

author: SL4P
author_rank: Super Contributor
timestamp: August 14, 2016, 10:06:25 pm
content: Quote from: Pjotr on August 14, 2016, 08:53:55 pmAn interesting choice!

author: Siwastaja
author_rank: Super Contributor
timestamp: August 15, 2016, 09:57:21 am
content: Microstepping indeed seems like a some kind of myth, or a mythical thing, as we can see here. Someone always suggests "microstepping" as a mantra without understanding anything at all -- in this case, it was already implemented, but using different words.Microstepping, or sinusoidal excitation, is the only correct and sensible way to drive stepper motors; also, as the OP specified, he has already done that.It does not solve the problem completely, although it makes stepper motors usable at all. Most stepper motors have high torque ripple even when properly driven with 2-phase sinusoidal excitation. By the way, every type of motor in existence has the same issue, but some types have it orders of magnitude less problematic. Some permanent magnet DC or AC motors are almost as bad in this regard.

author: tatus1969
author_rank: Super Contributor
timestamp: August 15, 2016, 08:27:50 pm
content: Quote from: Siwastaja on August 15, 2016, 09:57:21 amAs I pointed out, it also depends on the right motor choice: microstepping plus permanent magnet stepper -> movement ripple. microstepping plus reluctance or hybrid stepper -> reduced or zero ripple.

author: ebclr
author_rank: Super Contributor
timestamp: August 15, 2016, 08:41:03 pm
content: Use a 5 Phase motor and 256 microstepshttp://www.orientalmotor.com/technology/articles/2phase-v-5phase.htmlWill be very smooth

author: Pjotr
author_rank: Frequent Contributor
timestamp: August 15, 2016, 08:55:07 pm
content: Quote from: SL4P on August 14, 2016, 10:06:25 pmWasn't mineAt that time I didn't even know steppers that size even exist. It was sitting in a corner of the workshop when I came by. No one was able to breath some life in it. Extensive fax communication with the factory turned out the driver/controller had a "Software safety lock" that had to be opened first after power on. That safety lock wasn't documented at all.

author: LabSpokane
author_rank: Super Contributor
timestamp: August 16, 2016, 04:18:36 am
content: Quote from: cncjerry on August 14, 2016, 08:18:56 pmFisher Scientific either uses those or makes their own. In short, the whole arrangement is very fragile and is almost purpose-designed to generate breathtakingly expensive service calls.Want smooth? Don't use a stepper.

author: Berni
author_rank: Super Contributor
timestamp: August 16, 2016, 06:09:30 am
content: Most types of motors have some sort of uneven output torque. Even DC brushed motors jerk a little bit every time a pole passes by the magnet, its not as prominent as on a stepper but its most of the reason why they make a buzzing noise linked to there RPM (Other reason is unbalanced rotor in cheep motors). Single phase AC asynchronous motors even have negative torque for short moments every time the mains cycle flips.One of the smoothest running motors you will find is a 3 phase asynchronous motors. By the magic of 3 phaseness the magnetic field inside stays mostly the same in size while it rotates around, enticing the conductive rotor to come along trough eddy currents. Also ideally you want a 400Hz one versus a normal 50/60Hz since that will make it even smoother. But you will need some form of encoder to accurately position it.

author: tatus1969
author_rank: Super Contributor
timestamp: August 16, 2016, 03:43:57 pm
content: Maxxon motors have two innovative features: they are core less (air coils in stator) and have interleaved stator coils. Both add to very smooth and torque ripple free operation when combined with sinusodial FOC control. You can also use PMSM with tilted rotor magnets. These are optimized for sinusodial control and do not have torque ripple either. In contrast, BLDC optimized for 6 step commutation have very strong cogging, comparable to a stepper. It is all about the right choice for the motor.

author: tatus1969
author_rank: Super Contributor
timestamp: August 16, 2016, 03:54:02 pm
content: Quote from: Berni on August 16, 2016, 06:09:30 amFor constant velocity control it is enough to have an inductive pickup. I would not recommend AC motors for servo applications though, because it is very hard to control them at standstill or direction reversal.

author: David Hess
author_rank: Super Contributor
timestamp: August 17, 2016, 10:36:42 pm
content: Quote from: Circlotron on August 14, 2016, 02:50:28 amIt is not enough to use sinusoidal currents although that is a good start; the reluctance of the stepper motor changes with geometry so a correction factor has to be included. I remember advertisements for microstepper drivers which included the correction factor making the flat tops of the sine waves look more triangular and I think it is based on a hyperbolic function but it was a long time ago.

author: FrankenPC
author_rank: Unknown
timestamp: August 19, 2016, 03:30:57 am
content: You want something like this:https://hackaday.io/project/11224-mechaduino"Although their design is optimized for "stepping," stepper motors are really just 50-pole brushless dc motors. They can be controlled exactly like a more traditional 3 phase BDC motor with more poles. So that's the plan. It's working!"

author: Berni
author_rank: Super Contributor
timestamp: August 19, 2016, 05:20:35 am
content: Quote from: FrankenPC on August 19, 2016, 03:30:57 amThat is quite interesting. I will have to remember it next time i need a fancy motor.