Closed loop with linear encoders but still backlash?

More
6 years 10 months ago #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?

Attachment not found



Thank you in advance!

Please Log in to join the conversation.

More
6 years 10 months ago #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 to join the conversation.

More
6 years 10 months ago #153174 by Gnevko
hm ... my INI file looks very simple or better to say usual:

Attachment not found


Code:
[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

Please Log in to join the conversation.

More
6 years 10 months ago #153176 by Leon82
Backlash could be mechanical and not related to your servos

Please Log in to join the conversation.

More
6 years 10 months ago #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 )

Please Log in to join the conversation.

More
6 years 10 months ago #153178 by Gnevko
Of course mechanical, but a closed loop system with linear encoders should solve exactly this problem or not?

Please Log in to join the conversation.

More
6 years 10 months ago #153180 by Leon82

Gnevko wrote: 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

Please Log in to join the conversation.

More
6 years 10 months ago #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 to join the conversation.

More
6 years 10 months ago #153188 by Gnevko

PCW wrote: 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.

Please Log in to join the conversation.

More
6 years 10 months ago #153190 by Henk
Try making the Deadband=0 and add some I gain. That should force it back to 0.

Please Log in to join the conversation.

Time to create page: 0.055 seconds
Powered by Kunena Forum