machine inaccuracies fixed by software compensation
Posted by
Doug Fortune
on 2001-09-04 21:18:09 UTC
Lets presume we have a CNC mill which
we'd like to make more accurate (this
includes open loop systems, and closed
loop with rotary encoders).
Part of the motivation for this is the
fact that (in open loop) steppers, the
mechanical step acurracy varies up to
+/- 5% or down to +/- 2% on the better
motors.
Assuming the ballscrew/acmescrew/threaded rod
is perfect (its far from perfect), then
a 5% motor inaccuracy on a 5 TPI thread
means .05*.200 == 0.010 inch. This is
not inconsiderable. And total error might
get to be twice that measured between certain
spots (where the motor is +5% off and -5%
off somewhere else) in one dimension
(and in more dimensions it gets worse...).
Compounding the above problem is that
screws have varying cumulative errors.
And lets not forget the table axes are sometimes
not sufficiently square to each other.
- - -
What I propose is that a reasonably non-stretchable
wire is attached to the spindle nose at HOME, and
the other end of the wire goes around a pulley
attached to a high resolution encoder (USDigital
has a 2048 CRP == 8192 counts/rev in quadrature
rotary encoder) which theoretically does not
have much angular error.
Now the spindle nose is sent around the table
0,0 -> maxX,0 -> maxX,maxY -> 0,maxY -> 0,0
all the while (say every 1/1000") the wire
spools out (giving in effect a distance), and
a recordis kept of the theoretical position vs
actual (distance from 0,0). For a large
5'x10' table, that is only 360,000 samples.
From these samples, it should be relatively
easy to read the candidate gcode, and 'patch'
it with new X & Y values (something fancy may
have to be done with circles and arcs - perhaps
patching the start and end points alone might
be workable in a first software version).
This should also compensate for 'skewed' tables
(not rectangular, but diamond shaped due to not
having exact 90 degree corners), because, if skewed,
the actual diagonal distance from 0,0 to maxX,maxY
will not match the theoretical distance, and so
also will be correctable.
The concept could also perhaps be extended to the
Z axis if the catenary is taken into account.
Doug Fortune
http://www.cncKITS.com
we'd like to make more accurate (this
includes open loop systems, and closed
loop with rotary encoders).
Part of the motivation for this is the
fact that (in open loop) steppers, the
mechanical step acurracy varies up to
+/- 5% or down to +/- 2% on the better
motors.
Assuming the ballscrew/acmescrew/threaded rod
is perfect (its far from perfect), then
a 5% motor inaccuracy on a 5 TPI thread
means .05*.200 == 0.010 inch. This is
not inconsiderable. And total error might
get to be twice that measured between certain
spots (where the motor is +5% off and -5%
off somewhere else) in one dimension
(and in more dimensions it gets worse...).
Compounding the above problem is that
screws have varying cumulative errors.
And lets not forget the table axes are sometimes
not sufficiently square to each other.
- - -
What I propose is that a reasonably non-stretchable
wire is attached to the spindle nose at HOME, and
the other end of the wire goes around a pulley
attached to a high resolution encoder (USDigital
has a 2048 CRP == 8192 counts/rev in quadrature
rotary encoder) which theoretically does not
have much angular error.
Now the spindle nose is sent around the table
0,0 -> maxX,0 -> maxX,maxY -> 0,maxY -> 0,0
all the while (say every 1/1000") the wire
spools out (giving in effect a distance), and
a recordis kept of the theoretical position vs
actual (distance from 0,0). For a large
5'x10' table, that is only 360,000 samples.
From these samples, it should be relatively
easy to read the candidate gcode, and 'patch'
it with new X & Y values (something fancy may
have to be done with circles and arcs - perhaps
patching the start and end points alone might
be workable in a first software version).
This should also compensate for 'skewed' tables
(not rectangular, but diamond shaped due to not
having exact 90 degree corners), because, if skewed,
the actual diagonal distance from 0,0 to maxX,maxY
will not match the theoretical distance, and so
also will be correctable.
The concept could also perhaps be extended to the
Z axis if the catenary is taken into account.
Doug Fortune
http://www.cncKITS.com
Discussion Thread
Doug Fortune
2001-09-04 21:18:09 UTC
machine inaccuracies fixed by software compensation
Carol & Jerry Jankura
2001-09-05 05:45:08 UTC
RE: [CAD_CAM_EDM_DRO] machine inaccuracies fixed by software compensation
cadcamcenter@y...
2001-09-05 08:11:49 UTC
Re: machine inaccuracies fixed by software compensation