Background and Field of the Invention
The present invention relates to servo control systems, and more particularly to means for automatically calibrating response of servos to control signals provided thereto in a system providing positional, but not velocity, feedback.
Control systems are presently available for controlling the motion of flame cutters or other implements in two dimensions so as to, for example, cut a predetermined series of geometric shapes from a plate of metal stock. One control system presently available utilizes positional feedback in order to derive control signals for the servos which control motion of the flame cutters in the two dimensions. The controller reads the present position of the flame cutter, as represented by the positional feedback signals, and then determines the direction in which the flame cutter must travel in order to follow or return to the desired cutting path. Velocity commands are then generated for the several servos to cause the cutter to travel along this path. The accuracy with which the flame cutters may be forced to follow a predetermined path is determined by the feed rate of the flame cutter and the frequency with which the velocity commands of the various servos are updated. This accuracy may be quite good if velocity commands are recalculated very rapidly.
It is desirable that the speed of the flame cutter as it follows the desired path remain uniform, since the characteristics of the cut are dependent upon the velocity at which the flame cutter moves. In order to provide a uniform feed rate, the velocity commands provided to the various servos are normalized by the control system so that their vector sum remains constant. This is not a sufficient condition to establish uniform feed rate, however, since the different servos may have different response characteristics. It therefore cannot be presumed that simply because the velocity commands have a uniform vector sum, the servo speeds will similarly have a constant vector sum.
Summary of the Invention
In accordance with one aspect of the present invention, velocity command signals generated as in the prior art system described above are modified in accordance with calibration signals stored in a calibration memory, where these calibration signals have values selected so as to eliminate variations in driven object velocity due to nonuniform servo response characteristics.
The calibration signals which are used to modify the velocity commands applied to the servos are selected from a table of previously derived calibration values. These calibration values are derived during a calibration procedure undertaken before normal operation of the apparatus. During the calibration procedure velocity commands are provided to the servos and positional feedback information utilized to detect differences in servo characteristics.
More specifically, the same velocity command is applied to all of the servos, and the positional change of the object (e.g., flame cutter) determined after a predetermined interval of time. The velocity commands are then reapplied to the servos, after having first been modified so that positional changes due to the respective servos are more closely matched in the second iteration. This procedure is continued iteratively until the positional changes caused by each of the servos are essentially the same. Calibration signals corresponding to the velocity commands which produced the similar positional changes are then stored in the calibration table. It is these calibration signals which are thereafter utilized to modify servo commands during the normal operation of the servo system.
Brief Description of the Drawings
The foregoing and other objects and advantages of the present invention wll become more readily apparent from the following detailed description, as taken in conjunction with the accompanying drawings, wherein:
FIG. 1 is a block diagram of a two-dimensional servo system and associated control network in accordance with the teachings of the present invention;
FIG. 2 is a chart useful in understanding the nature and function of the calibration table stored within the memory of the apparatus of FIG. 1; and,
FIGS. 3-7 are flow charts detailing the functions performed by the microprocessor incorporated in the system of FIG. 1.
Detailed Description
There is shown in FIG. 1 a two-dimensional motion controller 10 and its associated control system 12. The motion controller 10 includes X and Y servos 14 and 16 which respectively control movement of an object 18 along two orthogonal axes 20 and 22. These X and Y servos 14 and 16 may, for example, comprise bi-directional DC servo motors coupled through pinion gears (not shown) to respective racks 24 and 26, where the object 18 is coupled to and moves with the racks 24 and 26 so that the motion of the object 18 in two dimensions is directly controlled by the rack and pinion arrangements and hence by servos 14 and 16. The object 18 whose motion is controlled in this fashion may comprise a flange cutting tool disposed above a plate of sheet metal, a series of flame cutting tools held in a fixed array, or some other tool or object.
Movement of the object 18 is controlled by DC velocity command signals provided to the servos along input lines 28 and 30, respectively, which may be derived from a manually controlled joystick 32 or from an automatic control system, generally indicated at 34.
The X and Y outputs of the joystick 32 and the automatic control system 34 are routed through a 4:2 analog multiplexor 35. This multiplexor, which is shown as an array of four solid state switches, is controlled by digital signals stored in a latch 68 (described hereinafter) and may have any one of three different states. In one state, switches S1 and S3 are "closed", connecting the X and Y outputs of the joystick 32 to the respective servos 14 and 16, and switches S2 and S4 are "open". In a second state switches S1 and S3 are "open" and switches S2 and S4 are "closed", connecting the X and Y outputs of the control system 34 to the servos. In the third state all switches S1-S4 are "open", hence the servos 14 and 16 are disconnected and are thus "off".
The joystick 32 has a conventional form, consisting of four SPST switches coupled to a single control lever. By moving the lever in two dimensions the operator can close any one of the four switches. Only one will be closed at any given time, however. Each switch connects an associated input to an associated output. Thus, by movement of the lever, either of the input potentials can be applied to either of the outputs. When the lever is centered, all of the switches are open.
The potentials applied to the joystick 32 are derived from a feed rate potentiometer 36 which may also be manually varied. The potential appearing at the wiper arm of the feed rate potentiometer 36 is applied across the joystick 32 by two buffer amplifiers 38 and 40, one noninverting and the other inverting. Equal and opposite potentials are thus applied to the joystick 32. With this arrangement, the velocity at which the object 18 is transported by the actuated X or Y servo will be directly related to the feed rate potential FR, which is in turn controlled by the setting of the feed rate potentiometer 36. The direction of travel of the object 18, on the other hand, will be controlled by the orientation of the operating lever of the joystick 32, which controls the output to which the potential is applied, and the polarity of the applied potential.
The direction of movement of the controlled object 18 may alternatively be controlled by the digital control system 34. Digital control system 34 includes a microcomputer 42 of conventional form, including a microprocessor, read-only and random-access memory, associated timers, etc. This microcomputer 42 is interfaced with the remainder of the digital control system 34 through a system bus 44. This system bus includes address, data and control lines, all of which are controlled by the microcomputer 42. The operation of the microcomputer 42 is controlled by the operator through operator controls 46 which interface with the microcomputer 42 both directly and through the system bus 44. Microcomputer 42 derives X and Y vector commands and load these commands, in a sign/magnitude format, into corresponding multiplying digital-to-analog converters 48 and 50. The digital-to-analog converters provide bi-directional analog signals at their outputs which correspond to the product of the vector commands and an analog reference signal provided in common to both converters.
The microcomputer 42 provides vector commands which are normalized so that their vector sum will be fairly constant. Consequently, the velocity at which the object 18 is transported is directly dependent upon the reference signals provided to the converters 48 and 50, whereas the direction of movement of the object 18 will be determined by the vector commands provided to the converters. The reference input to the converters 48 and 50 will normally be the feed rate signal appearing at the wiper arm of the feed rate potentiometer 36, but will instead be derived from a reference generator during a calibration procedure to be described hereinafter.
In order to maintain the object 18 on a predetermined path, the microcomputer 42 responds to positional feedback signals derived from the bi-directional servo mechanism 10. To provide this positional feedback, quadrature encoders 52 and 54 are respectively coupled to the respective axes through separate, precision rack and pinion arrangements, not shown. Each quadrature encoder provides pulses on two output lines A and B to an associated position counter 56 and 58. These position counters 56 and 58 each store a count representing the present location of the object 18 along the respective axis 20 or 22 with which that position counter is associated. These stored counts will each be incremented or decremented in accordance with pulses provided on the A and B outputs of the correspondingly associated quadrature encoder.
The quadrature encoders 52 and 54 provide one pulse on each of the output lines for each incremental movement of the rack with which that quadrature encoder is associated. The relative time of occurrence of the pulses on the two output lines A and B will depend upon the direction of movement of the associated rack. Thus, when the rack is translated in one direction, pulses on output A will precede pulses on output B. In this case the count contained within the respectively associated counter will be incremented with each of the pulses appearing on the output line A. When the rack is translated in the opposite direction, however, the pulses on output A will follow pulses on output B. In this case, the count contained within the associated counter will be decremented with the pulses appearing on output A. In this fashion, the count stored in the X and Y position counters 56 and 58 will follow the movement of the object 18 along both axes 20 and 22.
The microcomputer 42 periodically reads the contents of the two counters 56 and 58 in order to determine the present position of the object 18, and determines new X and Y vector commands from the position thus determined. These new X and Y vector commands define the direction that the object 18 must move to continue along (or return to) the desired trajectory. Since new position readings are taken and new vector commands calculated quite frequently (every five miliseconds or so) the object 18 can be forced to follow a defined path quite closely.
The system thus far described, wherein the microcomputer 42 is programmed to calculate new X and Y vector commands in accordance with the difference between the contents of the X and Y position counters 56 and 58 and a pre-programmed course, has been available in the prior art. As stated previously, however, the system as thus configured and programmed does not insure that the object 18 will travel at a uniform velocity as it follows a pre-programmed course. This is because the microcomputer 42 responds only to the positional changes of the object, and not to velocity variations thereof. Although the X and Y vector commands are normalized so that their vector sum will remain substantially constant, the response of the X and Y servos may be sufficiently different to introduce substantial variations in the velocity of the object 18 as it follows its programmed path.
In accordance with the present invention, the microcomputer 42 calculates the X and Y vectors not only upon the basis of the present position of the flame cutter 18, but also upon calibration values stored within a calibration memory 60, where the calibration values characterize the differences in response characteristics of the servos being controlled. In operation, the microcomputer 42 reads the values contained within the counters 56 and 58, and calculates X and Y vector commands as in the past. These X and Y vector commands are then multiplied by the feed rate (as indicated by the output of analog-to-digital converter 62) in order to obtain X and Y signals representative of the desired true speed of the respective servos. These true X and Y speed values are each then used to access a table of modifiers stored within the calibration memory 60, which is interfaced with the microcomputer through the system bus. (Preferably, this memory will be of the low power dissipation variety and will have a battery backup power supply so that it can retain its contents even when the machine is switched off.) The X and Y modifiers thus obtained are combined with the X and Y vector commands previously determined to provide modified X and Y vector commands for provision to the X and Y digital-to-analog converters 48 and 50. The modifiers modify the X and Y vector commands to such an extent that the modified X and Y vector commands has the values necessary to produce the desired response from the respective X and Y servos.
An analog-to-digital converter 62 responds to the analog reference signals provided to the X and Y digital-to-analog converters 48 and 50 to provide a digitized version thereof to the system bus 44 for use by the microcomputer 42 in the above procedure. The analog-to-digital converter 62 is, again, controlled by the microcomputer 42 through the system bus 44.
The derivation and use of the modifiers may perhaps be more readily understood through reference to FIG. 2, which is a representation of a table of modifier values as stored within the calibration memory 60. In the example shown in FIG. 2, there are four different sets of modifier values associated with four reference servo speeds. Each set includes modifiers for both positive and negative velocity commands for each servo, since servo response may differ with direction of movement. These four column identifiers (X axis/positive direction; X axis/negative direction; Y axis/positive direction/ Y axis/negative direction) will occasionally be referred to as axis/directions, or AD's.
The table is accessed through reference to the direction and magnitude of the desired speed and to the servo to which it is applied. Thus, for example, if it is desired to move the X actuator in the positive direction (AD=1) at full speed (P=1), then modifier M11 will be the appropriate value selected from the table. If, on the other hand, it is desired to move the Y servo in the negative direction (AD=4) at one-fifth speed (P=3), then modifier M43 will be the appropriate value selected from the table.
During operation, it will of course be a rare occurrence that the actual speed desired will exactly coincide with one of the four speeds listed on the chart. In operation, therefore, the microcomputer 42 first determines which of the four reference speeds (P=1 through P=4) the desired true speed is closest to, and then utilizes that speed in accessing a modifier value from the table. The modifiers are used to change the vector commands calculated by the microcomputer 42 by multiplying each of the vector commands by its associated modifier, selected as indicated above, to provide a modified value. Alternatively, the microcomputer could be programmed to interpolate between listed modifier values in accordance with actual desired speed in a given axis/direction.
The table of modifier values stored within the calibration memory 60 have values ranging from 0 to 1, where one of the values in each row will, in fact, be unity. These modifiers represent the percentage of a given signal which must be applied to that axis in that direction to cause movement at a speed equal to the speed at which the slowest axis/direction responds to that signal. If, for example, the modifier M21 is equal to 1.00, then modifiers M11, M31, and M41 will be less than 1, and will have values representing the percentage of the full speed signal which must be applied to the respective axis/directions to cause movement at a velocity equal to the velocity at which the Y servo will respond in the positive direction to that full speed command.
These axis/direction modifiers are determined in a calibration procedure undertaken during setup of the system and thereafter as necessary. Generally stated, the calibration procedure involves the application of the same velocity command in all four axis/directions. This is done by applying one of four fixed reference speed signals to the reference inputs of both digital-to-analog converters 48 and 50, and loading a full scale vector command into both DAC's. The response of the servos is then determined by measuring the position changes along each axis/direction after a fixed interval of time. The vector commands applied to the respective axis/directions are then modified in such a direction as to conform the speeds of the three faster axis/directions to the speed of the slowest axis/direction. The modified vector commands are then reapplied to the servos for each axis/direction, with their responses again being determined. This procedure is carried out iteratively until the responses of the three axis/directions being modified conform to the response of the axis/direction which was initially the slowest. Modifiers for all four axis/directions for the applied reference speed are then stored, where the modifiers correspond to the vector commands applied to the respective axis directions which produced the identical responses therefrom. The output of A/D 62 is also stored to indicate what A/D output represents that reference speed. This calibration procedure is carried out at as many different reference speeds as desired; four, in the example illustrated in FIG. 2.
For each reference speed, a different predetermined fixed reference signal is applied to the reference inputs of the DAC's 48 and 50. As stated previously, the reference inputs to the two digital-to-analog converters 48 and 50 were in the past connected directly to the wiper arm of the feed rate potentiometer 36. In the embodiment illustrated in FIG. 1, the reference inputs to the two digital-to-analog converters 48 and 50 are instead connected to the output of a 5:1 analog signal multiplexer, one input of which is connected to the wiper arm of the feed rate potentiometer 36. The remaining four inputs to the multiplexer are connected to the four outputs to a reference generator 64 which provides four voltages at its outputs representative of selected feed rates corresponding to the feed rates for which modifier values will be determined. The analog multiplexer 64, which is characterized in FIG. 1 as a series of five solid state switches connecting the five inputs to a common output, will be controlled by the microcomputer 42 through a latch circuit 68. One and only one of the inputs of the analog multiplexer 64 will be coupled to its output in accordance with a binary control word supplied thereto by the latch 68. Each solid state switch will be controlled by a corresponding bit of the control word. During the normal operation, the microcomputer 42 will load a control word into the latch 68 such that the feed rate signal provided by the feed rate potentiometer 36 will be connected to the reference inputs to the digital-to-analog converters 48 and 50. During the calibration procedure to be described hereinafter, however, the microcomputer 42 will load different control words into the latch 68 so as to connect a respective one of the outputs to the reference generator 66 to the reference inputs of the digital-to-analog converters.
As stated previously, a portion of the control word loaded into the latch 68 also controls the state of multiplexer 35. One bit of the control word controls switches S1 and S3, whereas another controls switches S2 and S4.
The reference generator 66 may comprise a resistive divider including a number of precision resistors connected in series between the +V supply and ground, with the voltages at the junctions of the series-connected resistors representing the outputs of the reference generator. The values of the precision resistors are selected to provide the desired reference voltages at the output.
The derivation of the calibration chart, together with the use thereof during normal operation of the system will now be described in greater detail through reference to the flow charts of FIGS. 3-7.
Calibration Procedure
The calibration procedure, as described above, is performed prior to normal operation of the system in order to derive a table of modifier values such as that shown in FIG. 2.
The calibration procedure includes the following steps:
Measure Axis/Direction Response
This subprocedure, which is performed iteratively during the calibration procedure, commands movements of the servos in each direction at the calibration speed, and then measures the response of the various servos in the various directions to these commands. The subprocedure includes the following steps:
Change Modifier Subprocedure
The purpose of this subprocedure is to examine the AD values determined in the MEASURE AD subprocedure described above, and to determine updated modifier values for the calibration chart in a direction so as to equalize these values. More specifically, the speeds of the three faster axis directions are reduced to the speed of the slowest axis direction by reducing the modifiers for those three higher speed axes below 1. The procedure includes the following steps:
Operating Procedure
Upon the conclusion of the calibration procedure, the apparatus is prepared for normal operation. The operator will select a particular geometric outline defining the path which it is desired to move the object 18 along. The operator then manually moves the object 18 to the desired starting position, and initiates the operating procedure, which includes the following steps:
Get Modifier Subprocedure
This subprocedure is used to select appropriate modifier values from the calibration table stored within the calibration memory 60. Since the particular axis being examined and the desired direction of movement in that axis is known, the AD number, representing a particular column of the table, will also be known. It is therefore only necessary to locate the appropriate row (i.e., P number) in order to select a given modifier value.
In this procedure, the desired speed in a given axis (as determined in either step 304 or step 309) is compared with break points located midway between the reference feed rates at which the modifier values have been derived. By comparing the desired speeds with the break points, it can be determined which of the reference feed rates the desired speed is closest to. The P value, representing the row of the table to be addressed, is then set in accordance with whichever of the reference speeds the desired speed is closest to. In the following description, the speed signal SX is being examined to identify a modifier value, however it will be appreciated that either the SX or SY signal will be used, depending upon whether the subprocedure is being executed in step 305 or step 310. The subprocedure includes the following steps:
Although the invention has been described with respect to a preferred embodiment, it will be appreciated that various rearrangements and alterations of parts may be made without departing from the spirit and scope of the present invention, as defined in the appended claims.