Closed loop with linear encoders but still backlash?
24 Dec 2019 21:32 #153171
by Gnevko
Closed loop with linear encoders but still backlash? was created 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?
Thank you in advance!
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?
Thank you in advance!
Attachments:
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5007
- Thank you received: 1441
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.
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.
24 Dec 2019 22:12 #153174
by Gnevko
Replied by Gnevko on topic Closed loop with linear encoders but still backlash?
hm ... my INI file looks very simple or better to say usual:
[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.
24 Dec 2019 23:07 #153176
by Leon82
Replied by Leon82 on topic Closed loop with linear encoders but still backlash?
Backlash could be mechanical and not related to your servos
Please Log in or Create an account to join the conversation.
24 Dec 2019 23:10 - 24 Dec 2019 23:20 #153177
by PCW
Replied by PCW on topic Closed loop with linear encoders but still backlash?
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, 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.
24 Dec 2019 23:12 #153178
by Gnevko
Replied by Gnevko on topic Closed loop with linear encoders but still backlash?
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.
24 Dec 2019 23:16 - 24 Dec 2019 23:16 #153180
by Leon82
I would think adding BACKLASH = .03 in the ini would remove it electronically.unles there is a tuning problem
Replied by Leon82 on topic Closed loop with linear encoders but still backlash?
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.
25 Dec 2019 02:59 #153182
by Henk
Replied by Henk on topic Closed loop with linear encoders but still backlash?
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
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.
25 Dec 2019 09:46 - 25 Dec 2019 09:47 #153188
by Gnevko
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.
Replied by Gnevko on topic Closed loop with linear encoders but still backlash?
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.
25 Dec 2019 10:44 #153190
by Henk
Replied by Henk on topic Closed loop with linear encoders but still backlash?
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.103 seconds