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
Replied by Todd Zuercher on topic Closed loop with linear encoders but still backlash?
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.069 seconds
Powered by Kunena Forum