Is it possible to have a closed loop system with stepper motors?
What should I look for in a quality stepper motor?
Is it possible to have a closed loop system with stepper motors?
What should I look for in a quality stepper motor?
I have been having a theoretical discussion about this on another forum, basically what I have come up with is to strap an encoder to a stepper, use the existing stepper drive, then piggyback a servo drive (processor only, no power stage) onto the step/dir signals, and feed the quadrature encoder signals to the servo drive.
The idea is that the servo drive "thinks" it is driving a servo, since the encoder feedback tells it so, once the stepper drifts out of position, the servo drive picks it up and send a fault signal to the controller.
Only tricky part is that the steps per rev need to be the same as the encoder pulses per rev, could be interesting especially with microstepping stepper drives.
Also EMC apparently does stepper following error with encoder feedback natively, I don't know if anybody has actually done it but it is supposed to be there.
I am only interested in doing this as an experiment, personally for my money I would just go servo's in the first place and keep things simple.
Cheers.
Russell.
Galil boards can do this. Mach has a plugin to interface galil.
Gerry
UCCNC 2017 Screenset
http://www.thecncwoodworker.com/2017.html
Mach3 2010 Screenset
http://www.thecncwoodworker.com/2010.html
JointCAM - CNC Dovetails & Box Joints
http://www.g-forcecnc.com/jointcam.html
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
Hi,
The VSD-E from Granite Devices is supposed to do this as well. Quote from the manual:The stepping motor support in VSD-E firmware version 1.20 is preliminary and intended for development
use only. Customers are recommended to wait for final stepper motor support before using VSD-E for
steppers. When ready, the upgrade will be freely downloadable from Granite Devices web site.
However, the firmware V1.20 is already able to control stepper as high pole count sinusoidal AC
servo motor (with encoder).
emc has done this a few different ways...
Setting the stepgen into velocity mode and use the encoders as feedback. (the issue is that steppers don't work like a servo. If you are not 'getting there' emc will just keep pushing and you will get a following error)
http://www.youtube.com/watch?v=M8ijW...r_profilepage/Yes, ive tested the stepgen with velocity- mode and this one produces joint-following- errors when the index was hit, changed back to my version of stepgen (with the reset-pin) and it worked, its not only working, tolerances are the best i've ever seen on a machine like that. Also the steppers run nearly like servos, heres an video of the first runs with linear encoders /Stepper motors/ PID and Stepgen in velocity mode :
(read about his work here. very involved http://www.linuxcnc.org/component/op...art,0/lang,en/ )
You could just use the endoders as feedback which stated above would give you following error when the axis deviated. Good thread here http://www.cnczone.com/forums/showthread.php?t=37309
No one has tried it but with emc you could theoretically setup the adaptive feedrate so that as the error between the encoder and commanded position increased - you could slow the axiss down. Someone should experiment with that.
(I really would rather use servos then )
sam
CNC, Mechatronics Integration and Custom Machine Design
“Logic will get you from A to B. Imagination will take you everywhere.”
Albert E.
Most Galil cards can be set up for steppers by jumper, if an encoder is used, it cannot be used in the same way as the servo PID loop, they run open loop still, and the position error is not generated.
AFAIK you have to keep interogating the encoder feedback in order to test for error and correct it by programming.
Also in stepper mode, the auxilliary encoder cannot be used.
Al.
CNC, Mechatronics Integration and Custom Machine Design
“Logic will get you from A to B. Imagination will take you everywhere.”
Albert E.
Indeed....(I really would rather use servos then)
But, a stepper with an encoder, as operated by the VSD-E, really 'is' a high pole count brushless servo-motor. And if I've understood the concept you'll get the benefit of the stepper motors high torque at low speed, yet you don't have to have the same safety margin against intermittent overload (ie. lost steps) at higher speed as when running the stepper open loop.
/Henrik.
Gerry
UCCNC 2017 Screenset
http://www.thecncwoodworker.com/2017.html
Mach3 2010 Screenset
http://www.thecncwoodworker.com/2010.html
JointCAM - CNC Dovetails & Box Joints
http://www.g-forcecnc.com/jointcam.html
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
We are keeping low profile on advertising that feature until its finished (on firmware level). Now stepper can be driven as AC servo, but it could be driven with stepper optimized algorithm to achieve greater speeds.
As servo the top speed is where motor generated voltage reaches the level of DC supply. With open loop drives speed motor can go beyond that limit (with low torque though). Similar speed range is also the goal with updated stepper firmware.
However, stepper+encoder combination is kind of pointless nowadays as you can buy a stepper sized BLDC motor (without encoder) at exactly same price. BLDC+encoder will give better performance than stepper+encoder.