Multi-axis motion generator utilizing feedforward control
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application is related to copending application Ser. No. 629,029 entitled a Multi-Axis Electronic Profile Generator. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to apparatus for controlling a plurality of output shafts and more particularly to an electronic profile generator for positioning a plurality of shafts in response to a master axis motion input utilizing feedforward slave axis control. 
     DESCRIPTION OF THE PRIOR ART 
     In drive control, a profile is the description of the operation or movement of a motion drive, usually expressed as a time versus location curve for one full cycle of the driver or master shaft. That is, the control profile is a description of how the output position of a slave follows the master input position. In most prior art machine controls the slave outputs are usually driven mechanically by gears, cams, levers, chains, belts, or the like. The main drive shaft is driven through many cycles, and the slave shafts follow their predetermined profile position through each cycle to accomplish multistep operations such as assembling, testing, or packing various items. The speed of the main drive shaft can vary and the speed and positioning of the associated shafts must also vary in synchronization. 
     Conventional prior art mechanical drive controls provide power takeoff for each motion drive from a main mechanical line shaft. A heavy machine support base is required to maintain alignment of the line shaft and power takeoffs. Many mechanical components with inherent friction and inertia are required, resulting in drive power waste. Machine timing is difficult to set or change and the high mechanical wear rate tends to alter timing after a period of operation. It is difficult to alter motion amplitude, velocity, or acceleration; and, such changes require installation of change parts such as new gears, sprockets, cams or the like. Mechanical over load clutches are required for torque control. 
     SUMMARY OF THE INVENTION 
     An electrical multi-axis positioner for positioning a plurality of slave shafts in response to the position of a rotating master shaft is provided. A master shaft encoder connected to the master shaft provides a digital master shaft position indication which is fed to a plurality of electronic memory devices. Each memory device provides a stored digital slave shaft position indication in response to the digital master shaft position. Positioning means is connected to the output of each memory device for positioning an associated slave shaft to the digital slave shaft position indicated by the output of the memory device as a function of the master shaft velocity and the change in slave shaft position. The slave shaft is moved to the desired position before the master shaft digital position indication changes to the next desired position. That is, the slave shaft is moved to the desired position before the master shaft rotates through an angle equivalent to one digital increment. This construction limits lag and assures that the slave shafts will move in close synchronization with movement of the master shaft. The positioning means can comprise a servo positioning portion which moves the shaft in response to an error signal, indicative of the difference between the desired shaft position and the present shaft position,, and a feedforward section, which provides a signal related to the velocity of the master shaft, to rapidly move the slave shaft to the desired position. The disclosed controller thus decreases slave shaft positioning time as the velocity of the main shaft increases. 
     In a positioning system wherein slave shaft position is not controlled as a function of the velocity of the master shaft a variable lag time error is introduced which greatly limits operating speeds. In the disclosed apparatus a feedforward signal is provided to reduce the system lag. If system lag is not kept low, slave shafts cannot be operated in close synchronism with respect to the master shaft. 
     In one embodiment of the invention an electronically controlled position generator utilizes an analog transducer which can be a potentiometer or resolver, connected to the rotating main shaft to provide a high accuracy analog indication of the master shaft position. The analog transducer feeds an analog-to-digital converter which provides a high accuracy digital representation of the master position. The output of the analog-to-digital converter is fed to a plurality of independent memory devices which provide a stored digital output signal representing the desired position of an associated slave shaft. The outputs of the memory devices are fed to digital-to-analog converters which control a servo system for positioning a slave shaft axis. A feedforward signal obtained from a feedforward circuit, having a tachometer connection to the rotating master shaft, is also provided for positioning the associated slave shaft. The disclosed system provides programmable slave axis motion which is synchronized to a master axis. Each independent memory device contains the desired positions of an associated slave shaft with respect to the digital position of the master shaft. The desired slave shaft positions or profile can be altered by changing the data stored in the memory device. The output of each memory device is a discrete stored command word for each digital input address. 
     In another embodiment rather than having individual memory devices and a velocity feedforward calculator these functions are obtained in a general purpose digital computer. That is, the computer provides the memory and calculates the feedforward for each slave axis in accordance with a predetermined function. The computer can be supplied with a single input from which both the rate and position of the master axis can be determined and supplies outputs to each slave positioner representing the desired slave position and velocity. 
     In another embodiment of the invention a master resolver is connected to sense position of the main drive motor. The information from the resolver is processed by a master encoder which yields a digital output signal. The digital output signal is fed to a plurality of independent memory devices. A programmable read only memory (PROM) can be utilized as the memory device. The output of each PROM is fed to an associated translator, which in conjunction with a servo motor, position the associated slave shaft. A feedforward signal is provided to the servo control system for reducing system lag. The velocity feedforward signal is calculated each time the digital master axis position changes by one increment. The velocity feedforward signal is calculated by comparing the present slave digital position, from the memory device, with the desired digital position, from the memory device, determining the difference, and multiplying this difference by the master axis velocity signal. The feedforward signal provided will cause the associated slave axis to move to the desired position before the master axis digital output changes to the next desired position. The position of the slave shaft is sensed by a slave shaft position transducer, such as a potentiometer or resolver, which feeds the signal to the translator providing the analog output error signal used in positioning the servo motor. A tachometer is provided for speed control of the slave servo motor. 
     Preferably, resolvers are used for providing the analog position of the master and slave shafts due to their high accuracy and rugged construction. However, it is contemplated that in some applications other devices having position related functions such as potentiometers may be useful. Whenever the term resolver is used herein, in the specification or claims, it means resolver, synchro, differential transformer, control transformer or other sinosoidal position indicating devices. 
     In the disclosed control system an individual drive is provided for each desired motion, thus power is delivered to the servo motor in close proximity to where the mechanical motion will be utilized. Line shafts and power takeoffs are eliminated providing for a smaller lighter machine. A smaller, lighter machine will run faster and more efficiently. Fewer parts and easier change over of the machines operating characteristics is possible. 
     It is an object of this invention to teach electrical control of a plurality of slave shafts in relationship to the positioning of a rotating master shaft comprising a master encoder, a plurality of memory devices and a positioner using feedforward velocity control. 
     It is another object of this invention to teach an electrical positioner utilizing a master shaft encoder, a memory addressed by the digital output of the master shaft encoder, and positioning means connected between the memory device output and a slave shaft for positioning the slave shaft as a function of the master shaft velocity and the desired change in slave shaft position. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     For a better understanding of the invention, reference may be had to the preferred embodiments exemplary of the invention shown in the accompanying drawings in which: 
     FIG. 1 is a block diagram of a machine profile drive control constructed in accordance with the teaching of the present invention; 
     FIG. 2 is a block diagram of a servo controller operable in response to a digital command input; 
     FIG. 3 is a servo controller similar to that schematically shown in FIG. 2 with the addition of a velocity feedforward input; 
     FIG. 4 is the block diagram of a circuit utilized for obtaining the desired velocity feedforward signal for the servo controller shown in FIG. 3; 
     FIG. 5 is a graphical representation of the operation of the roll over detector shown in FIG. 4 for zero transitions; 
     FIG. 6 is a block diagram of a multi-axis profile generator constructed in accordance with the teaching of the present invention; and, 
     FIG. 7 is a block diagram utilizing a computer to supply the position command and rate command to each slave axis. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Referring now to the drawings, and FIG. 1 in particular, there is shown the controls for a multi-axis profile generator 10 which can utilize the teaching of the present invention. A master axis motion input 12 is provided to a master encoder 14. Master encoder 14 activates a plurality of memory devices 16, the outputs of which control servo positioning systems 20. Each servo controlled positioner 20 controls motion of a slave axis 18. Controller 10 provides for generating multi-axis intermittent motion by means of electronic encoder 14, memory 16 and servo controller 20. Position controller 10 provides for programmable motion of a plurality of slave axes 18 which are synchronized to a master axis motion input 12 by way of master encoder 14. The master axis encoder provides a digital output representative of the actual master axis position. The digital output is absolute and non-ambiguous. 
     The digital output is absolute since it will accurately provide a digital indication of the resolver shaft position even after a temporary power interruption. Some conventional absolute digital encoders utilize multiple gear discs in an arrangement wherein each disc is read by a light source and photo-cell arrangement. Experience has shown in many industrial applications that vibration and handling of these type encoders has caused substantial maintenance and down time. The encoder 14 in the preferred embodiment utilizes a resolver 40, which is of a relatively simple rugged construction for sensing master shaft position. In a preferred embodiment the tracking angle encoder as described more fully in U.S. Pat. No. 3,984,831 is utilized to generate the master axis position in the form of a ten bit binary word. The master axis position word defines the master position to a resolution of 360°/2 10  and divides the master axis shaft position into 1024 discreet increments over one revolution. Each increment represents approximately 0.35+°. The master axis position word is absolute and non-ambiguous over one complete memory cycle. The digital master axis position word is applied to a memory device, one device is required for each axis to be synchronized, and acts as an address for the memory device. Thus, a plurality of memory devices 16 are connected to the output of master encoder 14. The output of each memory device is a discreet stored command word for each input address. In an embodiment for a ten bit binary word there are 1024 stored commands in the memory device. The output of each memory device feeds a servo positioning system 20 as shown in FIG. 2. 
     FIG. 2 shows a servo controller wherein a servo motor 22 drives a slave axis 18. A resolver 24 is connected to the slave motor 22 and provides an analog indication of the position of servo motor 22 which is fed to the analog input 26 of translator 28. A digital command from memory device 16 is fed to the digital input 27 of translator 28. The output of translator 28 along line 30 is an analog signal representing the difference between the analog input 26 and the digital input 27. The signal along line 30 is strengthened by amplifier 32 and summed at junction 34 with a signal from a tachometer 36. Tachometer 36, which is connected to servo motor 22, provides a signal indicative of servo motor 22 velocity. The combined tachometer and error signal from the output of junction 34 is amplified by amplifier 37 and fed to servo motor 22. In operation servo 20 tends to move to a position where the error signal along line 30 is zero and slave axis 18 is at the desired position indicated by the digital command from memory device 16. 
     A potential problem arises in the servo controlled positioning system shown in FIG. 2. In order to operate an error signal must be present on the input to summing junction 34 from the analog output of translator 28. This error signal is derived from the difference between the command position from memory device 16 and the feedback position from resolver 24. In the system 20 shown in FIG. 2, a position error proportional to the desired slave axis speed must exist for the system to run at a speed other than zero. At high speeds the position error can be large which implies that the slave is not exactly following the stored profile. Depending on the speed at which the system operates this lag can have a detrimental effect. A technique has been devised which eliminates the problem by providing an additional input to the velocity summing junction 34. This additional input, as shown in FIG. 3, is from a velocity feedforward network 50. The additional input to junction 34 along line 51 provides a signal which is equal to the desired rate of change of position of the stored profile. Velocity feedforward network 50 calculates what the slave velocity should be to have zero error, and supplies an appropriate feedforward velocity signal along line 51. 
     The Velocity Ratio is derived from a comparison of the change in slave position command as the master axis position word changes from one increment to the next. This expression of the feedforward Velocity Ratio can be derived as follows: ##EQU1## The velocity ratio thus represents the velocity of the slave axis with respect to the master. By multiplying the Velocity Ratio, (αS/αM), by the Master Velocity, (αM/αt), the desired slave velocity is obtained. Thus, if the Velocity Ratio, (αS/αM), is multiplied by the instantaneous master axis velocity, as obtained from a tachometer or other transducer, the desired velocity feedforward signal is generated. That is 
     Slave Feedforward Velocity = Velocity Ratio × Master Velocity = (αS/αM) × (αM/αt) = (αS/αt) 
     The Slave Feedforward Velocity for each independent slave axis must be calculated for each incremental change in the motor position. That is, each time the master axis changes position by an angle equivalent to one digital increment a new slave feedforward signal for each slave axis is computed. Since the Velocity Feedforward signal is calculated for each unit increment change in the motor position, the term Δ Master Position for each calculation is equal to one and the Velocity Ratio per unit master increment is simply equal to the change in desired slave position ΔS. Thus the desired velocity feedforward signal equals the absolute master velocity x the change in slave position. ##EQU2## The master velocity sign is not important since the slave term contains the sign information. The necessary terms for calculating the Velocity Feedforward can easily be obtained. Each slave shaft is thus positioned as a function of the master shaft velocity and the required change in slave shaft position. The block circuit, in FIG. 4, shows the preferred embodiment for obtaining the feedforward signal. 
     Referring now to FIG. 6 there is shown a more detailed block diagram of a servo controller 10 for controlling a plurality of slave axes 18 in response to the position of a master axis 11. Slave axes 18 are mechanically independent, however, they are usually cooperatively associated for performing various operations on an item. In the usual practice slave shafts 18 operate apparatus which perform sequential operations, such as assembly, on an item. A master resolver 40, is connected to master motor 13, and provides an analog signal along line 41 indicative of the position of master shaft 11. During operation motor 13 is continually in motion. Resolvers 40 are relatively rugged and provide a high degree of accuracy for determining the position of master axis 11. The analog signal along line 41 is fed to master encoder 14 which provides a digital signal along line 15 to a plurality of memory devices 17. Memory device 17 can be a programmably read only memory (PROM). The output is a digital signal which is fed to the digital input of translator 28. A PROM 17 is provided for each slave axis 18. Each PROM 17 has an output which is independent of the output of the other PROMs 17 and is determined by the digital input along line 15. The output of motor 22 is a motion which follows the profile stored in memory device 17, synchronized with the master axis position. Often the slave shaft motion is not continuous with respect to the master rotor. 
     Each PROM 17 provides the position command for the associated slave axis 18. Associated with each PROM 17 is a velocity feedforward calculator 50 which provides the velocity command signal to summing junction 34. The inputs to rate controller 50 are from a tachometer 55, connected to the master drive 13, and the input to and output from PROM 17. Controller 50 provides the proper signal for positioning the associated slave shaft. FIG. 4 shows a block diagram of the feedforward controller network 50. 
     Referring now to FIG. 4 there is shown a circuit 50 for obtaining the desired velocity feedforward signal. In the circuit 50 shown in FIG. 4 the least significant bit, LSB, of the master axis position word is applied to a change detector circuit 52 which emits a pulse on line 54 each time the master LSB changes state. The pulse, along line 54, is applied to a clock generator 56 which causes the present slave axis position, in digital form, contained in storage register 58 to be shifted to storage register 60. The digital representation of the desired slave position from memory device 16, on line 62, is then shifted into register 58. The data in the storage registers 58 and 60, representing the desired position and the present position respectively, are then applied to digital-to-analog converters 64 and 66. The reference for digital-to-analog converters 64 and 66 is the absolute value of the master velocity |ΔM/Δt)| obtained from a master axis tachometer. This multiplies the present slave position, S1, and the desired slave position, S2, by the absolute master axis velocity. The output of digital-to-analog converters 64 and 66 are subtracted in subtractor 68 which generates the function ##EQU3## which is the required velocity feedforward signal. 
     A roll over circuit 70 monitors transition of the storage slave word through all zeros, 00000, to all the all ones, 11111, state and adds a most significant bit, MSB, 1 to the D/A converter 66 in the forward direction and a MSB 1 to the D/A converter 64 in the reversed direction. The added bit in either case extends the range of the appropriate D/A converter 64 or 66 so that the proper change in slave position is calculated through the zero transition. 
     Referring now to FIG. 5 a graphic representation of a zero transition is shown. S1 and S2 represent the sequentially stored slave position commands for a one increment change in the master position. Note that due to the roll over of the position command, the actual value of S2 is much smaller in magnitude than S1 even though the implied position command is larger. The roll over detector circuit senses the slave command roll over and adds a value equal to the MSB of the slave command being monitored by the D/A converter 64 or 66. The process of adding the most significant bit in effect pushes the S2 command back up to the proper value so that the change in slave position, ΔS, is calculated correctly. 
     For example, for a unit having a 5 bit binary word capacity the roll over circuit 70 would function as follows. If S1 = 11110 and S2 = 00010 the roll over circuit would add a MSB1 to S2 yielding S2&#39; = 100010 and S2&#39; - S1 = 00100 which is the actual desired change in slave position. 
     In some applications there is no requirement for a master axis. In these cases a virtual master is provided by a digital counter which operates from a variable adjustable clock frequency and sequentially scans the memory devices. By this means the slave axes are synchronized through the virtual master and run at a speed set by the clock frequency. 
     By utilizing the disclosed technique the power output is provided where needed rather than taken off a drive shaft as in prior art mechanical system. This generates a whole new concept in machine tool design. A cam profile can be stored in memory and changed when necessary. As many slaves as desired can be synchronized with the positioning of the master axis. The positioning constraints of the prior art mechanical drives are eliminated. 
     Referring now to FIG. 7 there is shown an embodiment wherein the function of the memory device 16 and feedforward network 50 are provided in a programmable computer. Computer 81 receives a single input from a master encoder 14 and by a selected algorithm or memory provides the position command to a positioning system 20 for a slave axis 18. Computer 81 can also be programmed to calculate the necessary feedforward velocity for proper positioning of shaft 18. A rate command signal can be provided to the positioning system 20. That is computer 81 can be constructed to provide an output to each slave positioner 20 which represents the desired position and the necessary velocity. Computer 81 can thus cause each slave axis 18 to be positioned as a function of the master shaft velocity and the required change in slave shaft position.