Page 1 of 2

Are Open-Loop Steppers Worthless for Accuracy?

Posted: Wed Nov 09, 2016 10:14 pm
by SteveHGraham
I am planning to get back to CNC, and I realize I have a problem to address.

I've found it impossible to get the steps/inch to work correctly. I thought it was because I had the math wrong, or because of wobble in the machine, but it looks like there is another problem: stepper motors lose steps. If I understand this correctly, if you operate a stepper under any kind of load (as in a lathe), you can expect to lose steps unpredictably, so you can never expect real accuracy.

Is that pretty much how it works? I would rather know the truth and deal with it than spend weeks running my screws back and forth, getting different results every time. It's my understanding that it should be possible to put encoders on the steppers and create a closed loop system that will tell the computer where the cutter is. That seems like a more productive use of my time than chasing accuracy my existing hardware can't provide.

I don't know, but it seems reasonable to assume that a stepper that loses steps would become increasingly inaccurate as a program proceeds, because the errors would add up. I don't see how you could do anything worthwhile with a machine like that, unless you were content with machining simple cylinders or balls.

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Thu Nov 10, 2016 1:59 am
by choprboy
No, stepper motors should never lose steps if operated within their performance envelope. You can use an encoder with a stepper or a servo to create a closed-loop system, but the stepper has the advantage of a known position per step. Stepper can lose steps due to one of four reasons:
1) Static forces/impacts exceed the holding torque of the motor.
2) Commanded acceleration/deceleration that exceeds the inertial resistance of the system.
3) Servo torque is inadequate to drive the load (stepper torque decreases drastically with increased rotational speed).
4) Inadequate driver power to drive the servo.

#2 is very common in home CNC setups, trying to move/change directions to fast. #3 and 4 are also common in home systems and closely related. Steppers have a maximum current and voltage rating, which are often not proportional to internal resistance. So, for instance, you could run a given stepper on a simple driver at 10V and have a given torque. You could also run the same servo at 40V and have a much greater torque, but your driver would have to intelligently limit the current to prevent coil damage. The simple way to do this is with a burden resistor, but that just burns extra power. A smart driver will decrease voltage automatically as the maximum current is reached (some advanced drivers will actually have momentary overcurrent on each step for maximum driving).

Additionally, cheaper steppers use smaller coil wire with more wraps. This allows more torque at low speeds (and a big "torque" number in the datasheet), but it also increases the stepper inductance. That requires far beefier drivers to drive/switch phases as speed increases. Many of the cheaper drivers are unable to drive these cheap steppers at more than 1 or 2kHz.

There are some simple calculations to find a given stepper motors maximum speed. Some pretty intense calculations to determine the required stepper motor performance required for a given system. But it requires alot of knowledge about the inertial resistance of the driven system and stepper specs.

http://www.daycounter.com/Calculators/S ... ator.phtml
http://www.orientalmotor.com/technology ... tions.html

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Thu Nov 10, 2016 11:13 am
by SteveHGraham
Thanks for writing all that.

When I was trying to get the lathe to work, I did all sorts of research, and I didn't find much help. Last night, after writing this forum post, I tried again, and I came up with a CNCZone post which looks like it will be very helpful. Someone posted a list of reasons why steppers lose steps. I am planning to go through it and see what happens.

I have to wonder why there are no linear encoders out there. If you could interface a DRO with steppers and a controller, life would be sweet indeed.

http://www.cnczone.com/forums/benchtop- ... posts.html

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Thu Nov 10, 2016 9:02 pm
by choprboy
There are linear encoders... the exact same thing as DRO scales. I seem to remember reading an article a few years ago about building up a closed loop CNC lathe using LinuxCNC (previously know as EMC2) and scales... but I can't seem to find it. Presumably the same could be done with Mach3.

https://forum.linuxcnc.org/forum/38-gen ... -mesa-5120
https://forum.linuxcnc.org/forum/10-adv ... r-encoders

Here's a CNC mill running LinuxCNC with linear encoders:
https://www.youtube.com/watch?v=M8ijWbg_seI

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Thu Nov 10, 2016 9:20 pm
by SteveHGraham
I was wondering why rotary encoders wouldn't work, and then I realized they wouldn't correct for inaccuracies in the screw. A linear encoder sounds like the perfect solution. But if it's so easy, why is there such a thing as screw mapping? I wonder.

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Mon Jan 30, 2017 4:25 pm
by tetramachine
I am a bit late to this thread but it is close to me at the moment.
I purchase asurface grinder, along with it came a stand alone controller, motor and linear stage. These parts as set up were useless to me. So I set about converting the grinder back to a regular type SG using the stepper motors for Y and Z axis, the X is hydraulic and I left it as that.
As the Y axis advances across the work piece, it never fails to hit the numbers on the handwheel in the exact same spot every time. So if each step is say .040",that is 25 cycles per inch, so a 5 inch wide workpiece would have 125 start stop cycles, if there are 4 pass's to finish the plate thats 500 cycles and not a the slightest bit off the .001" division handwheel.
If you are not having repeatable results, look at your leadscrew bearings, screw to nut backlash, belt tension etc.
Also look at your acc, decel settings, they may not be balanced with the vel/distance settings.
The steppers and controller are all 15 plus years old. CompUmotor products. This setup is open loop with no Home Zero point.

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Mon Jan 30, 2017 4:54 pm
by ctwo
Steve, are you at all still interested in this?

Just keep in mind that several of the early generations CNC were open loop. My Bridgeport factory CNC is open loop and it holds very good accuracy, unless I crash. All you have to do is set up the acceleration and velocity to not overdrive the motors, and then you have to keep the same thing in mind with how much load you putting when cutting.

The same is true in closed loop systems. The motors have a finite performance and can only accelerate and move so fast. The difference is if you overdrive a closed system, it will know how much has been lost and continue to apply drive until the motor catches up to where it is supposed to be, so the system can recover. But you are still facing a problem because the machine will not be hitting the parameters that have been programmed (as in feed rate).

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Mon Jan 30, 2017 7:03 pm
by SteveHGraham
I haven't gotten back to this yet. It's going to be a big mess, trying to figure it out.

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Tue Jan 31, 2017 10:16 am
by Dave_C
Steve,

When I converted my lathe to CNC I bought steppers with encoders already built in on the back end. They call these "hybrid servos" but they are actually steppers with encoders.

I've never had a missed step! If the motor was to miss a step, the module that they are wired to will send a fault and the motor will stop so you don't just keep going after losing a step. My motors are 1200 Oz In so they are pretty stout on my 12 x 36 setup.

Now to the ball screw mapping. Most CNC machines only look for feedback from the rotary encoder on the servo. If codes says go this far, the feedback says "did I make it" and if not you get a fault and the machine stops.

Ball screw mapping is intended to correct for ball screw error only! Not missed steps or anything like that.

So when the code says to go 1.0005" it turns the motor enough turns to go exactly that far +/- the ball screw error. However, you have to know the ratio to set up the machine correctly in the first place or none of this works.

If you are having an issue with going one distance one time and then another on a different pass, then you most likely have backlash to deal with.

One way to test this is to move 1.000 forward, measure the travel, then go another 1.000 in the same direction. The passes should be the same! Now if you find the actual travel was not 1.000 then your ratio is off for the ball screw setup.

I've never seen a setup with linear scales on a CNC machine for feedback. (There may be some?)

Dave C.

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Tue Jan 31, 2017 10:54 am
by SteveHGraham
Thanks for the help. I will be all over this eventually.

Still don't understand why linear encoders aren't used, but someone will probably chime in. It sounds foolproof. I mean, it works for manual machining, right?

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Tue Jan 31, 2017 11:14 am
by Dave_C
Removed by me ! (Bad day, it happens)
Edited 3-15-17

Re: Are Open-Loop Steppers Worthless for Accuracy?

Posted: Tue Jan 31, 2017 12:13 pm
by ctwo
I'm sure I read somewhere where a DRO was used as feedback. I do not see any reason why it would not work, and I'm also sure I've seen linear encoders used for feedback.

Dave, why would linear encoders have to hunt or face overshoot and not rotary encoders? I believe they have the same issue and are addressed similarly. I suspect it is just easier/cheaper to have all this built into the motor, and it gives acceptable results.

Steve, the reason for screw mapping will be obvious once you know that typical systems are monitoring motor rotations, or running open loop. Once you map the screw geometry you can adjust for any variance at any point you are on the screw.