The performance of a motion control system is of primary importance. In particular, a control system should be stable, result in acceptable responses to input commands, result in a minimum steady-state error for input commands, and be able to eliminate the effect of undesirable disturbances. Often-times, for optimum performance, adjustments are made to a control system. The alteration or adjustment of a control system in order to provide a desired performance is often referred to as compensation (i.e., compensation is the adjustment of a system in order to make up for deficiencies or inadequacies).
In some cases, an additional component (e.g., a compensator) is included within a motion control system to equalize or compensate for such deficiencies/inadequacies. For example, such compensators can be implemented as one or more parameters whose values are used by a controller to determine how to control a system. Accordingly, to provide optimum performance, appropriate values are determined for such parameters.
The process of adjusting these parameters (e.g., to compensate for system changes) is often referred to as tuning. Recently, techniques for tuning such parameters that involve minimal or no operator involvement have been developed. These techniques are generally referred to as autotuning. For example, autotuning can refer to a process in which a controller automatically determines appropriate values for such parameters.
Currently, in motion control systems such as those utilized with machine tools, relative displacement sensors, such as a telescoping ballbar, are used to provide an electrical output representing a measurement of incremental displacement caused by the motion control system. The electrical output can then be used to “tune” parameters of the motion control systems that account for errors in the motion of the machine(s) it controls. For example, a ballbar can be mounted between the two members of a machine tool that move relative to each other and create feed motion between a tool and a workpiece. More particularly, with respect to a machining center, for example, the ballbar is mounted between a spindle and a work-holding table.
Typically, the range of motion of a commercially available ballbar is limited to just a few millimeters. For example, the machine tool motion during a ballbar measurement is conventionally along a substantially constant radius arc. Measurement of deviation of the arc radius from the ideal constant radius can be used to provide information about the errors associated with the machine tool. This information can, for example, be used to determine certain aspects of positioning (static and dynamic) errors associated with the machine.
With reference to FIG. 1, a conventional use involving a motion control system and a machining center is herein described (where a user of the motion control system manually performs most steps). The center fixture of a ballbar is placed at a desired location on the machine with the setscrew loose. The spindle is then moved such that a magnetic cup in the tool holder of the spindle picks up the steel circle center ball of the ballbar and the setscrew is tightened. The positions of the axes are then recorded by performing a machine position set to redefine the coordinate system, such that the current position is the program system origin (e.g. G92X0Y0Z0).
A user of the motion control system then manually feeds the axes to move the magnetic cup off of the center ball, and creates a part program causing the machine to perform a circular move, an exemplary one of the part programs having a number of characteristics, including the following:                1. The circle center corresponds to the location of the center ball.        2. The circle radius is equal to or slightly less than the nominal length of the ballbar.        3. The circular motion is constrained to lie within a major plane of the machine (e.g., XY, XZ, YZ).        4. The circular arc includes some additional (overshoot) distance at the beginning and end of the move (allows the feedrate to accelerate from zero to full speed and to decelerate from full speed to zero), with the portion of the circle whose data is considered by the analysis being referred to as the data-arc (data collected during the feedrate transients at the beginning and end of the move is not considered during data analysis).        5. The circular motion is preceded by a short (feed-in) move that travels along a circle radial line from a radius greater than the circle radius to the circle start point. Similarly, a short (feed-out) move following the circular motion travels along a circle radial line from the circle end point to a radius greater than the circle radius. These moves can be used to signal conventional software associated with the ballbar when the test begins and ends, and can be used by the software to provide an estimate of the instantaneous circle angle based on the elapsed time since the test start.        6. Two successive sequences with overshoot arcs, a feed-in move, a data-arc, and a feed-out move are present for both clockwise and counter-clockwise directions within the plane.        7. A program stop (M0) block is present prior to the beginning of each (clockwise and counter clockwise) sequence of moves (the program stop providing the operator with an opportunity to arm the trigger in the ballbar software).        
The ballbar can then be plugged into a serial port of the computer running the ballbar software, and the ballbar length optionally calibrated (e.g., by placing the ballbar into a calibration fixture of known length and prompting the software to measure the ballbar's output). If the ballbar length is calibrated, the actual ballbar length is computed and stored by the ballbar software. One advantage of a length-calibrated ballbar is that it enables average circle diameter error to be estimated.
The ballbar software is then informed of the specific conditions for the current test by entering values for the following parameters: length of overshoot arcs, data arc start angle, data arc length, feedrate, and circle radius. The trigger in the ballbar software is armed on the machine (e.g., a personal computer) on which it is running, and the test program on the control is executed.
When the program reaches the stop (M0) after the first circular move, and after the data collection is completed, the ballbar software trigger is re-armed, and the machine is cycle started to perform the second circular move. At test completion, the test data is saved to a file and analysis software is run to diagnose error sources.
Accordingly, a method and system to automate and simplify this and other similar procedures is desired. In addition, it would be desirable to apply parametric compensation based on measurements from a ballbar.