30degree clearance/deadzone when changing direction of axis

More
12 Sep 2022 11:14 #251730 by xlordofpainx
Hi, 
I am quite new to CNC and I am currently making a CNC from a manual mill while doing my masters degree.  I noticed that when I start spinning the ball bearing screw in the other direction ( change direction) there is a 30 degree deadzone  so basically my motor would spin thinking that the Mill head is changing direction and location but it would create an error. 

ON the Z axis this problem is eliminated when I attach the mill head (100kgs) which pulls all the bolts and plates holding it  down thus eliminating the clearances. BUT my X and Y are on the plate underneath and there is no way to use the same trick there as there is no weight to be added which would tighten the connection between the plate and motor( all the bolts plates metal parts holding it)

My first ideas was - okay can I add a laser distance sensor to measure the X Y Z location at all times disregarding the need to track the motor position with its sensors. I still don't know if this is possible.

What do you think of this problem. Can I fix it in the software? Can I fix it with distance sensors? Can I fix it mechanically(probably can if everything can be made much tighter with no "give"/"clearance", but I doubt I can make it better)? (I have not yet started using the linux cnc software hence am still unaware of all the magic is capable of)

Thanks

 

Please Log in or Create an account to join the conversation.

More
12 Sep 2022 15:32 #251742 by arvidb
What you're describing is called backlash. You want to minimize it mechanically as much as possible through preloading.

If you cannot do that, it is possible to use an absolute sensor of some kind (usually a linear encoder) to help compensate the issue. You still need (velocity) feedback from the servos to be able to control them, and the servo tuning gets tricky.

LinuxCNC can also "blindly" compensate for backlash through software only. Again, tuning the motors gets harder (you need to tune them so they can handle both the loaded and the unloaded motion).

If you have mechanical backlash you also cannot do climb milling.

Please Log in or Create an account to join the conversation.

More
14 Sep 2022 15:59 #251907 by xlordofpainx
So. have you used distance sensors for x and y as an addition similar to the limit switches? Is that possible, does linux cnc support that you have feedback with extra sensors such as distance sensors. As currently I only have the encoder as feedback which is as you said for absolute position, which won't help when there is backlash as the encoder would sense movement while there would be none.

Could you propose fixes for preloading? The Z axis is easy. onces I install the head of the mill it introduces enough weight to preload it, but I am not sure how to accomplish that on x and y

Please Log in or Create an account to join the conversation.

More
27 Sep 2022 12:14 #252852 by andypugh
CNC machines normally use ballscrews (low backlash, optionally preloaded wit oversized balls) for zero backlash)
It is possible to use position feedback from linear scales and velocity feedback from the motor encoders by cascading the PID controllers.
So, you tune the velocity PID to give good control using velocity as input and motor current as output and motor encoder velocity as the feedback. You then have a second PID that takes axis position as command, axis position as feedback and outputs a motor velocity to the lower-level PID loop.

The velocity command doesn't have to be accurate as such, in that the numbers can represent any arbitrary units, as long as it is stable.

LinuxCNC can compensate blindly for backlash, but this isn't a complete solution as the controller doesn't actually know which direction the cutting forces are acting, only what direction the axis is moving.

Even with closed-loop position control, if you have backlash then there will be an instability whenever the motion or cutting force reverses.

There are various designs of anti-backlash leadscrew nuts available, if ballscrews are not an option. Including one rather neat solution of simply melting Delrin around the screw.
www.denfordata.com/bb/viewtopic.php?t=3727
The following user(s) said Thank You: arvidb

Please Log in or Create an account to join the conversation.

More
18 Oct 2022 12:48 #254403 by xlordofpainx
Very insightful. We are almost done with the CNC I will try to incorporate these ideas. Thanks

Please Log in or Create an account to join the conversation.

More
18 Oct 2022 12:52 #254407 by andypugh
See this thread for an actual implementation of cascaded loops for backlash compensation:
forum.linuxcnc.org/10-advanced-configura...sanity-check?start=0

Please Log in or Create an account to join the conversation.

More
18 Oct 2022 13:01 #254408 by xlordofpainx
I am using Steppers. I am not sure if this post applies to me. Does it?

Please Log in or Create an account to join the conversation.

More
18 Oct 2022 13:06 #254410 by andypugh
It can do. In fact I think that system is using step-dir controlled servos so it would work very much the same.

Note that a default Mesa card stepper config will use a PID component and velocity-mode stepgen to compensate for thread scheduling irregularity.

Please Log in or Create an account to join the conversation.

More
18 Oct 2022 13:10 - 18 Oct 2022 13:10 #254412 by xlordofpainx
I see. Great I will read more about it. Thanks :3 .
Last edit: 18 Oct 2022 13:10 by xlordofpainx.

Please Log in or Create an account to join the conversation.

Time to create page: 0.076 seconds
Powered by Kunena Forum