EEVblog Electronics Community Forum
Electronics => Projects, Designs, and Technical Stuff => Topic started by: Circlotron on August 14, 2016, 02:50:28 am
-
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 sinusoidal currents into 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.
-
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.
-
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).
-
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.
-
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 (http://www.automationtechnologiesinc.com/products-page/digital-stepper-motor-driver/digital-stepper-driver-kl-5056d-heat-sink-is-included)
-
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.
-
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, videoclip (https://www.youtube.com/watch?v=RSRwaS3k_Hg) 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...
-
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...
Does 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 (https://www.pololu.com/product/1204)
-
Go old school, try the old-fashioned flywheel. ;)
Johan-Fredrik
-
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.
-
Does it behave the same with load torque applied? I would expect it still to have torque ripple.
Not 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).
-
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 :D
-
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.
-
...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 :D
An interesting choice!
-
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.
-
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.
As 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.
-
Use a 5 Phase motor and 256 microsteps
http://www.orientalmotor.com/technology/articles/2phase-v-5phase.html (http://www.orientalmotor.com/technology/articles/2phase-v-5phase.html)
Will be very smooth
-
An interesting choice!
Wasn't mine ;) At 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.
-
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.
Fisher 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.
-
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.
-
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.
-
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.
For 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.
-
So re-jigged the amplifier to put two sinusoidal currents into it instead, and it still cogged the same as before.
It 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.
-
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!"
-
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!"
That is quite interesting. I will have to remember it next time i need a fancy motor.