Closed loop with linear encoders but still backlash?

More
24 Dec 2019 21:32 #153171 by Gnevko
Hi :)

I am very close to finish the HAL configuration for my CNC Mill (converted from Wabeco F1210). I use two linear encoders (Resolution 0.001mm) for X and Y axis and JMC closed loop stepper motors for all axis. So, today I tried to make some final measurements and ... it seams I have still small backlash ca. 0.03 mm. But how it possible? May be I configured something wrong in my HAL file?

File Attachment:

File Name: GnevkoVCP.hal
File Size:9 KB


Thank you in advance!
Attachments:

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

More
24 Dec 2019 22:00 #153173 by Todd Zuercher
The clues to what may be wrong (if anything) are most likely in your PID settings in your ini file.

That said within 2 or 3 encoder counts of your feedback device may be the realistic limit of accuracy.

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

More
24 Dec 2019 22:12 #153174 by Gnevko
hm ... my INI file looks very simple or better to say usual:

File Attachment:

File Name: GnevkoVCP_...2-24.ini
File Size:5 KB

[AXIS_X]
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 250.0
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0

[JOINT_0]
TYPE = LINEAR
HOME = 0.0
HOME_OFFSET = 250.0
HOME_SEARCH_VEL = 5.0
HOME_LATCH_VEL = 1.0
HOME_FINAL_VEL = 10.0
HOME_SEQUENCE = 2
HOME_IGNORE_LIMITS = YES
FERROR = 10
MIN_FERROR = 1
MIN_LIMIT = -250.0
MAX_LIMIT = 250.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 150
STEPGEN_MAXVEL = 30
STEPGEN_MAXACCEL = 300
ENCODER_SCALE  = -1000
P = 90
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.0005
BIAS = 0
DEADBAND = 0.0005
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP   = 8000
DIRHOLD    = 8000
STEPLEN    = 3000
STEPSPACE  = 3000
STEP_SCALE = 1200
Attachments:

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

More
24 Dec 2019 23:07 #153176 by Leon82
Backlash could be mechanical and not related to your servos

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

More
24 Dec 2019 23:10 - 24 Dec 2019 23:20 #153177 by PCW
What is the following error when you read the 0.03 mm position error?
(that is, what is joint.0.f-error?)

A 0.03 mm error that HAL / LinuxCNC sees should result in a motion of
2.7 mm/s to correct the position error with your current tuning parameters
( 0.03 * 90 = 2.7 mm/s )
Last edit: 24 Dec 2019 23:20 by PCW.

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

More
24 Dec 2019 23:12 #153178 by Gnevko
Of course mechanical, but a closed loop system with linear encoders should solve exactly this problem or not?

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

More
24 Dec 2019 23:16 - 24 Dec 2019 23:16 #153180 by Leon82

Of course mechanical, but a closed loop system with linear encoders should solve exactly this problem or not?


I would think adding BACKLASH = .03 in the ini would remove it electronically.unles there is a tuning problem
Last edit: 24 Dec 2019 23:16 by Leon82.

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

More
25 Dec 2019 02:59 #153182 by Henk
I don't think so.
The backlash setting in the ini file will make the motor "catch up" a certain amount of steps or angle on each reversal. Since your feedback is a true position you don't want that.

It will work when your feedback comes from a motor encoder.

If you have mechanical backlash you will get a small overshoot because the motor is commanded to reverse but the joint will experience a small delay

Best way to fix this is to eliminate the backlash. Easier said than done, I know.

Henk

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

More
25 Dec 2019 09:46 - 25 Dec 2019 09:47 #153188 by Gnevko

What is the following error when you read the 0.03 mm position error?
(that is, what is joint.0.f-error?)

A 0.03 mm error that HAL / LinuxCNC sees should result in a motion of
2.7 mm/s to correct the position error with your current tuning parameters
( 0.03 * 90 = 2.7 mm/s )


That is the exactly the strange sings - in linuxcnc it seams to be all ok: the following error is something about 0.0003 and no position error at all. But if I check the result with a dial gauge (digital with resolution 0.001 or manual with resolution 0.01) or with HAIMER 3D finder (resolution 0.01) - I see the backlash.

Steps to reproduce are simple: move the axis in "+" direction, set zero in linuxcnc and dial gauge for the axis, then move the axis again in + direction on +1mm and -1 mm. After that in Linuxcnc I read 0.0000 mm (as expected) but on dial gauges ca +0.03mm.
Last edit: 25 Dec 2019 09:47 by Gnevko.

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

More
25 Dec 2019 10:44 #153190 by Henk
Try making the Deadband=0 and add some I gain. That should force it back to 0.

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

Time to create page: 0.239 seconds
Powered by Kunena Forum