Abstract:
A controller minimizes periodic torque or force perturbations in an inductor-type synchronous motor drive by supplying current waveforms to each motor phase that contain a fundamental frequency component and selected harmonic components. The harmonic components in the phase currents heterodyne with the periodic permanent magnet flux fundamental frequency to create periodic torques or forces which subtract from the unwanted torques or forces perturbing the moving portion of the motor. The controller, which includes an interpolator, a memory, and a converter, provides for smooth incremental movement of a member such as a plot head, at substantially constant velocity, by applying selected continuous periodic waveform signals as phase currents to the windings of inductor-type synchronous motors.

Description:
BACKGROUND OF THE INVENTION 
     Existing X-Y positioners generally fall into two categories: (a) closed-loop servomechanisms; and (b) open-loop incremental positioners. Incremental positioners include basic designs that utilize the incremental step size inherent to the motor and more sophisticated implementations that divide the motor step into smaller parts through a technique called microstepping. 
     Servo systems typically provide higher speed and greater precision but are, in general, more complicated and expensive to produce. 
     Open-loop incremental positioners use step motors to drive the mechanical linkage. The motors are given pulses of steps. An upper limit exists on the pulse rate that a given motor and load combination will follow and this ultimately limits the achievable performance of the controller. A large step size allows increased velocity at the cost of resolution. This speed/resolution trade-off is characteristic of incremental positioners. 
     Step motors are, however, significantly less sensitive to friction in the mechanical linkage than are servo motors. Furthermore, they accurately position their shaft without the use of a position feedback element. As a result, incremental controllers are typically simpler and much less expensive to produce than servo controllers. 
     Some incremental positioner designs are beginning to use microstepping techniques to get around the speed/resolution trade-off. Problems are encountered, however, whenever step motors are used at other than their inherent step positions. Both the static position accuracy and dynamic torque characteristics vary from nominal values in between the designed step positions. This causes perturbations to occur when the motor is moving that may interact with the mechanical resonances and degrade the smoothness of the motion. 
     These characteristics of the motor impair the performance of X-Y positioners. The motor imperfections most important to X-Y positioner performance are: 
     (A) NON-LINEARITIES IN TORQUE NULL POSITIONING; AND, 
     (B) NON-UNIFORMITY IN THE TORQUE SLOPE. The first effect can obviously introduce errors in the position of the mechanics both while moving and at rest. More importantly, it adds harmonics of the phase current frequency to the rotor motion. In addition, friction can pull the rotor appreciably away from the null torque position during constant velocity motion. When this happens, a nonuniform torque slope creates periodic disturbances in the rotor dynamic equilibrium. These disturbances contain the phase current fundamental frequency and its harmonics. 
     At specific values of the phase current frequency, the fundamental and harmonic frequencies generated by these imperfections can interact with the resonance in the rotor response. For example, an eight-pole, four-phase motor having a resonance at ω o  may experience significant excitation of the rotor resonance when the sinusoidal phase currents have frequencies of ω o , ω o  /4, ω o  /8 and ω o  /2. 
     SUMMARY OF THE INVENTION 
     Accordingly, the illustrated embodiment of the present invention comprises a synchronous inductor motor drive utilizing continuous phase current waveforms to eliminate the usual speed-resolution trade-off by allowing essentially continuous positioning of the motor shaft at substantially constant velocity. The variation of motor characteristics encountered in microstepping techniques is diminished by using phase current waveforms that are corrected for a given motor type and operating current level. The phase current waveforms are precompensated by the addition of a harmonic of the fundamental frequency. The harmonic linearizes the position accuracy and torque characteristics by heterodyning with the periodic permanent magnet flux fundamental frequency to diminish harmonic perturbations in the motor torque. Furthermore, adjustment is provided for the phase current dc levels and amplitude to allow further improvement in torque and position characteristics. In addition to diminishing torque perturbations of rotational motors, the present invention also provides for diminishing force perturbations of linear motors and for accurate positioning, at substantially constant velocity, utilizing linear as well as rotational inductor-type synchronous motors. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a diagrammatic illustration of an eight-pole, four-phase permanent magnet synchronous induction step motor having the poles coupled in a two-phase manner as utilized in the system of the present invention. 
     FIG. 2 is a phasor diagram illustrating the relationship of third and fourth harmonic torques for substantially perfect cancellation of fourth harmonic torque. 
     FIG. 3 is a phasor diagram illustrating a minimum magnitude reached by the fourth harmonic torque when the third and fourth harmonic torques are in quadrature. 
     FIG. 4 is a combination block and schematic diagram of the system of the present invention. 
     FIG. 5 is a waveform diagram depicting the X-Y components of incremental moves made by the system of FIG. 4. 
     FIG. 6 is a block diagram of an alternative embodiment of the system of the present invention. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring to FIG. 1, an eight-pole, four-phase permanent magnet step motor is illustrated with alternate phases in series. Parallel connection of alternate phases can also be used. The rotor 11 is a bipolar permanent magnet which rotates about an axis 13 and has an instantaneous angular position of θ. The stator poles 1 through 8 are electro-magnetically coupled in a two-phase manner with stator windings 9 and 10. Alternate poles 1, 3, 5 and 7 are coupled to stator winding 9 such that poles 1 and 5 have N clockwise windings and poles 3 and 7 have N counter-clockwise windings. Alternate poles 2, 4, 6 and 8 are coupled to stator winding 10 such that poles 2 and 4 have N clockwise windings and poles 6 and 8 have N counter-clockwise windings. A permanent magnet flux φi links the i th  stator pole winding and the rotor. Inductances L A  and L B  exist in stator windings 9 and 10 respectively and currents I A  and I B  are applied to stator windings 9 and 10 respectively. 
     The torque developed by a synchronous inductor motor can be found by equating the electrical power applied at the stator windings to the sum of that flowing into storage mechanisms and that delivered to a load by the motor shaft. Energy dissipated in the motor through copper, eddy-current, or hysteresis losses is assumed to be negligible. The two electrical phases of the motor are assumed to act independently of each other in applying torque to the motor. The torque (T) can thus be separated into A and B phase components such that ##EQU1## 
     The equations above indicate that torque arises from two mechanisms. First, the mmf (magnetomotive force) produced by the applied current interacts with the permanent magnet flux in the stator windings to produce torque. Secondly, torque is produced when the applied current interacts with a changing inductance. The permanent magnet synchronous motors discussed here, however, have very efficient flux paths linking the permanent magnet to the stator windings. Furthermore, measurements show that the inductance of each phase is very nearly independent of shaft position so that dL/dθ is very nearly zero. Consequently the first term produces the dominant torque for these motors and the second term is negligible. 
     Neglecting the variable reluctance contribution gives the A phase torque from equation (1) as ##EQU2## Because of the motor construction the following relationships hold between the flux waveforms for the various stator windings ##EQU3## Whereφ(α) is some periodic waveform and α is related to the motor shaft position, θ, by 
     
         α = Nrθ                                         (5) 
    
     where Nr equals the number of teeth on the rotor. For convenience a reference position is chosen so that, when α &amp; θ = 0, a tooth on the rotor is exactly aligned with the center of stator poles 1 and 5. This makes φ(α) an even function symmetric about α = 0. 
     The periodic flux waveform φ(α) can be represented by an exponential Fourier series such that ##EQU4## Since φ(α) is even, all harmonic coefficients will be real-valued and symmetric about zero such that 
     
         C.sub.i = C.sub.-i = real number                           (8) 
    
     In general, the waveform of φ(α) will contain a large fundamental and all harmonics. It will be determined by the permeance of the airgaps between the rotor and the stator poles. 
     From equations (4) and (6) the series for φ 3  (α) and φ 7  (α) is seen to be ##EQU5## which reduces to ##EQU6## Substituting equations (6) and (10) into (3) gives ##EQU7## Applying equation (5) and then taking derivatives yields ##EQU8## 
     All terms with even values of n in the above summation are zero. This means that only odd harmonics of the flux waveform contribute to the torque when the effects of all four A phase stator poles are combined in the torque equation. The A phase torque can thus be expressed as ##EQU9## A similar treatment using the relationships of equation (4) yields ##EQU10## Assume that the phase currents are sinusoidal such that ##EQU11## Substituting these currents into equations (13) and (14) gives ##EQU12## 
     When the motor is being driven in its normal synchronous mode, the electrical and mechanical phases are related by 
     
         α.sub.o (t) = α(t) + γ(t)                (19) 
    
     where γ(t) is a lag angle that depends on the instantaneous rotor dynamics and load torque requirements. During constant velocity operation γ(t) tends to be a constant, γ, and the phase current electrical angle is given by 
     
         α.sub.o (t) = ω.sub.o t                        (20) 
    
     so that 
     
         α(t) = ω.sub.o t-γ                       (21) 
    
     The A phase torque produced under these conditions can be expressed by combining exponentials as ##EQU13## 
     Letting n = m-1 allows the summations to be easily combined into ##EQU14## This can be written more simply as ##EQU15## where 
     
         A.sub.2m = j(2m-1)C.sub.2m-1 Exp(-j(2m-1)γ) +j (2m+1)C.sub.2m+1 Exp(-j(2m+1)γ)                                      (26) 
    
     The B phase torque with sinusoidal phase currents can be found similarly as ##EQU16## with 
     
         B.sub.2m = j(-1).sup.m {(2m-1)C.sub.2m-1 Exp(-j(2m-1)γ)) + (2m+1)C.sub.2m+1 Exp(-j(2m+1)γ)}                    (28) 
    
     A practical translation of equations (25) through (25) is that sinusoidal, steady state phase currents of frequency, ω 0 , heterodyne with the odd harmonic contained in the permanent magnet flux waveforms to produce torque at dc and all even harmonic frequencies. Furthermore, the amplitude of the torque at any even harmonic frequency depends not only on the input current amplitude but also on the amplitudes of flux harmonics on either side of the particular torque harmonic. For example, the torque produced at frequency 4ω o  (m=2) depends on the amplitudes of the third and fifth flux harmonics. Finally, a dependancy on γ is seen in the expressions for A 2m  and B 2m . 
     The total motor shaft torque can now be obtained by adding equations (25) and (27). This gives ##EQU17## Comparing equations (26) and (28), however, reveals that 
     
         B.sub.2m = (-1).sup.m A.sub.2m                             (30) 
    
     so that ##EQU18## 
     The term in brackets is zero whenever m is odd and two whenever m is even. This, in effect, eliminates torque at frequencies of 2ω o , 6ω o , 10ω o , etc., and enhances the torque produced at dc, 4ω o , 8ω o , etc. The final expression for torque with sinusoidal phase currents can thus be written ##EQU19## where 
     
         D.sub.4n = j(4n-1)C.sub.4n-1 Exp(-j(4n-1)γ) +j(4n+1)C.sub.4n+1 Exp(-j(4n+1)γ)                                      (33) 
    
     Factoring out common terms gives 
     
         D.sub.4n = jExp(-j4nγ)[(4n-1)C.sub.4n-1 Exp(jγ)+(4n+1)C.sub.4n+1 Exp(-jγ)]            (34) 
    
     The existence of harmonic torque terms causes undesirable perturbations in the mechanical load attached to the motor shaft. In some applications these perturbations can be prohibitive. The previous results offer insight into the cause and characteristics of these harmonics and suggests ways in which they might be minimized. 
     Analysis of equation (34) for n=1 shows that the 4th harmonic torque, for instance, depends on the adjacent 3rd and 5th harmonics of the permanent magnet flux waveform. A way of minimizing the magnitude of the term is to inject 3rd harmonic current along with the original sinusoidal phase current. This additional current is added to the normal sinusoidal A and B that currents so the 
     
         I.sub.B (α.sub.o) = I.sub.A [α.sub.o -#/2] 
    
     In other words, the B phase current waveform must be identical to that of the A phase but shifted by one-fourth of a period. The level of 3rd harmonic can be adjusted to optimize the correction for different motors or different load conditions. 
     In effect, the added 3rd harmonic current heterodynes, or beats, with the permanent magnet flux fundamental to create 4th and 2nd harmonic torque in each phase of the motor. As before, the quadrature arrangement of the two phases causes the additional 2nd harmonic torque to cancel and enhances the new 4th harmonic term. If the amplitude and phase of the 3rd harmonic current is properly adjusted, the 4th harmonic torque thus created will effectively cancel that generated by the fundamental phase current. 
     The added 3rd harmonic current also beats with the higher odd harmonics present in the permanent magnet flux waveform and produces additional torque at dc and all other even harmonics. These terms are much lower in magnitude than the primary corrective term discussed above because of the difference in amplitude between the permanent magnet flux fundamental and its higher harmonics. Consequently, these torque components can be neglected without significant error. 
     If reduction of the 8th harmonic torque is desired, it can be achieved similarly by adding a 7th harmonic term to both phase currents. This term will beat with the permanent magnet flux fundamental to create 6th and 8th harmonic torque components. The 6th harmonic torque will again cancel because of the two quadrature phases and the 8th harmonic torque from the two phases will add. Proper adjustment of the 7th harmonic current amplitude and phase will minimize the resultant 8th harmonic torque. This argument can be repeated for the correction of higher frequency terms as necessary. 
     Similar results can be obtained by either: (1) using the current harmonic immediately above the troublesome torque harmonic or; (2) using a weighted sum of both the upper and lower current harmonics adjacent to the particular torque harmonic. The lower harmonic was assumed in the discussion above because: (1) a single harmonic is easier to implement and adjust, and (2) the lower current frequency develops less voltage across the phase winding inductance. 
     The 4th harmonic torque is usually the most troublesome and the added 3rd harmonic current seems to be the most effective method of correction. The results obtained here will thus cover the area of most direct interest as well as serve as a guideline to the analysis of other cases. This section presents a detailed analysis of the results produced by adding a 3rd harmonic term to the phase currents. Similar analyses can be made for the other cases discussed above, but for brevity, will not be included here. 
     Let the A phase current, I A , be given by 
     
         I.sub.A = I.sub.P Cosα.sub.o + I.sub.3 Cos(3α.sub.o +β) (36) 
    
     In accordance with equation (35), the B phase current will then be 
     
         I.sub.B = I.sub.P Sinα.sub.o - I.sub.3 Sin(3α.sub.o +β) (37) 
    
     Applying Euler&#39;s identities gives ##EQU20## Substituting equation (38) into equation (13) gives ##EQU21## or 
     
         T.sub.A = T.sub.A +T.sub.A                                 (41) 
    
     where T A  is the same as that given initially by equation (17) and ultimately by equations (25) and (26). T A  is the result of the 3rd harmonic current and is given by ##EQU22## Neglecting all higher order terms in the summation gives 
     
         T.sub.A = -2NI.sub.3 Nr[Exp(j(3α.sub.o +β))+(Exp(-j(3α.sub.o +β))](jC.sub.1 Exp(jα)-jC.sub.-1 Exp-(-jα)) (43) 
    
     Recognizing that C 1  = C -1  and applying equations (20) and (21) gives the constant torque as 
     
         T.sub.A = 2jNi.sub.3 NrC.sub.1 [{-Exp(j(2ω.sub.o t+β+γ))+Exp(-j(2ω.sub.o t+β+γ))}+{Exp(j(4ω.sub.o t+β-γ)-Exp(-j(4ω.sub.o t+β-γ))}](44) 
    
     Euler&#39;s identities reduce this to 
     
         T.sub.A = 4Ni.sub.3 NrC.sub.1 [-Sin(2ω.sub.o t+β+γ)+Sin(4ω.sub.o t+β-γ)]   (45) 
    
     Turning now to the B phase, substitution of equation (39) into equation (14) gives ##EQU23## or 
     
         T.sub.B = T.sub.B +T.sub.B                                 (47) 
    
     where T B  is the same as the torque due to purely sinusoidal phase current given by equations (27) and (28). T B  is the torque term resulting from the 3rd harmonic current and is given by ##EQU24## Assuming that all higher order terms in the summation above are insignificant with respect to C 1  and C -1  gives 
     
         T.sub.B = -2NI.sub.3 Nr[Exp(j(3α.sub.o +β))-Exp(-j(3α.sub.o +β))][jC.sub.1 Exp(jα)+jC.sub.-1 Exp(-jα)]                   (49) 
    
     At constant velocity equations (20) and (21) apply to make 
     
         T.sub.B = -2jNI.sub.3 NrC.sub.1 [{Exp(j(2ω.sub.o t+β+γ))-Exp(-j(2ω.sub.o t+β+α))}+{Exp(j(4ω.sub.o t+β-γ))-Exp(-j(4ω.sub.o t+β-γ))}](50) 
    
     This reduces to 
     
         T.sub.B = 4NI.sub.3 NrC.sub.1 [Sin (2ω.sub.o t+β+γ)+Sin(4ω.sub.o t+β-γ)]   (51) 
    
     The total torque generated by fundamental and 3rd harmonic currents is 
     
         T = T.sub.A + T.sub.A + T.sub.B + T.sub.B = T + T          (52) 
    
     where 
     
         T = T.sub.A + T.sub.B                                      (53) 
    
     as seen by equations (32) and (33). T is found from equations (45) and (51) as 
     
         T = T.sub.A + T.sub.B = 8NI.sub.3 NrC.sub.1 Sin(4ω.sub.o t+β-γ)                                         (64) 
    
     The total torque, T, is thus exactly the same as that derived for sinusoidal phase currents except that a 4th harmonic term has been added, hopefully in a manner that reduces the overall magnitude of that torque component. 
     The 4th harmonic of T as obtained from equations (32) and (33), with n=+1 and -1, is 
     
         T.sub.4 = -4NI.sub.P Nr(D.sub.4 Exp(j4ω.sub.o t+D.sub.-4 Exp(-j4ω.sub.o t)                                   (55) 
    
     with 
     
         D.sub.4 = j{3C.sub.3 Exp(-j3γ)+5C.sub.5 Exp(-j5γ)}(56) 
    
     
         D.sub.-4 = -j{3C.sub.-3 Exp(+j3γ)+5C.sub.-5 Exp(+j5γ)}(57) 
    
     Since C i  = C -i , this reduces to 
     
         T.sub.4 = 8NI.sub.p Nr{3C.sub.3 Sin(4ω.sub.o t-3y)+5C.sub.5 Sin(4ω.sub.o t-5γ)]                           (58) 
    
     For perfect cancellation of the 4th harmonic torque the sum of T and T 4  must be zero. This implies that 
     
         I.sub.3 C.sub.1 Sin(4ω.sub.o t+β-γ)= -[3I.sub.p C.sub.3 Sin(4ω.sub.o t-3γ)+5I.sub.p C.sub.5 Sin(4ω.sub.o t-5γ)]                                              (59) 
    
     This equation is illustrated by the phasor diagram of FIG. 2. 
     Equation (59) and its corresponding phasor diagram show that in general, the amplitude and phase of the required 3rd harmonic correction current both vary as a function of the rotor lag angle, γ. This angle in turn depends on the speed related torque required by the load. implementing a correction that remains perfect over a wide speed range would thus be extremely difficult. 
     Fortunately, however, correction of the 4th harmonic torque is usually critical only in a narrow range of motor speed. When the frequency of the 4th harmonic torque component falls within the bandwidth of the motor-load resonance, mechanical motion of the load is amplified. The critical speed range is thus usually fairly narrow and dependent on the damping factor of the motor-load response. Rotor lag angles are relatively low in this speed range. These two factors combine to greatly simplify the implementation of a practical correction waveform. 
     If the rotor lag angle were zero, FIG. 2 implies that the optimum value for β would be π. Equation (59) would then reduce to 
     
         I.sub.3 C.sub.1 = 3I.sub.p C.sub.3 + 5I.sub.p C.sub.5      (60) 
    
     this condition minimizes 4th harmonic perturbations under no-load conditions. As the lag angle magnitude increases from zero in a positive or negative direction the phasor diagram alters as shown in FIG. 3 to produce a finite but still greatly reduced 4th harmonic torque. The amplitude of the 3rd harmonic, I 3 , must be reduced somewhat as |γ| increases to maintain a minimum magnitude for T 4 . This minimum occurs when T and the resultant torque, T 4 , are in quadrature as shown in FIG. 3. 
     A practical implementation of this technique for small rotor lag angles is to produce phase currents of the form 
     
         I.sub.A = I.sub.P Cosα.sub.o - I.sub.3 Cos3α.sub.o (61) 
    
     
         I.sub.B = I.sub.p Sinα.sub.o + I.sub.3 Sin3α.sub.o (62) 
    
     If the implementation is to be used with many motors having various harmonic characteristics, the value of I 3  should be made adjustable over a range of positive and negative values centered about zero. This is due to the fact that the amplitude of the 4th harmonic torque produced by various motors may vary and the sense may be either plus or minus, depending on the signs and relative magnitudes of C 3  and C 5 . 
     A method for generating such waveforms for a two axis (X-Y coordinate) system is shoWn schematically in FIG. 4. This implementation provides independent adjustment of the 3rd harmonic correction current for each motor. In addition, it simultaneously varies the A and B phase waveforms for each motor with a single adjustment. 
     FIG. 4 shows a motor unit 69 comprising an interpolator 71, a function generator or read-only-memory (ROM) 27, digital to analog converter (DAC) 29, control circuit 73, phase current amplifiers 75, 77, 79, 81 and X and Y axis motors 55 and 65. Interpolator 71, in turn, includes divider registers 20, 22, adders 21, 23, 8-bit accumulator registers 24, 26, multiplexer 25 and 8KHz clock 28. 
     When X-position data is applied to motor unit 69, interpolator 71 converts the applied data to an address for accessing current waveform values stored in ROM 23, and for producing a sample of the accessed waveform. This sample is then applied to DAC 29 which converts the sample to an analog signal, and applies the analog signal, via control circuit 73 and phase current amplifiers 75, 77, to motor 55. In response to the applied analog signal, motor 55 rotates a selected angle causing plot head 67 to move, in the X direction, a distance proportional to the applied X position data. Similarly, Y position data applied to motor unit 69 causes plot head 67 to move, in the Y direction, a distance proportional to the applied Y position data. 
     As shown in FIG. 4, X and Y position data, in the form of incremental distance values d x  and d y , are applied to divider registers 20, 22 respectively. These incremental values represent distances along the X and Y coordinate axes that plot head 67 must travel during a selected time period (e.g., during a one millisecond period, corresponding to a 1KHz clock signal). Since these values (d x  and d y ) indicate distances to be travelled over a period of time, they present velocity values, viz., velocities at which plot head 67 must travel along the X and Y coordinate axes, respectively. These applied incremental values, d x  and d y , may be variable, and may be determined, for example, as follows: 
     
         d.sub.x = ΔX/C 
    
     
         d.sub.y = ΔY/C 
    
     where, 
     ΔX represents the X component of the vector defined by successive input data pairs (X 0 , Y 0 ) and (X 1 , Y 1 ) as shown in FIG. 5, 
     ΔY represents the Y component of said vector, and 
     C represents an integer equal to the number of one millisecond clock periods into which the data period (il.e., the time or period between successive input data pairs, in milliseconds) may be divided. 
     Returning now to FIG. 4, incremental distance values d x  and d y  are applied to divider registers 20, 22, respectively, of interpolator 71. Interpolator 71, as mentioned above, utilizes these incremental distance values to produce ROM addresses for accessing selected locations (words) of ROM 27. ROM 27 contains four sectors (series) of digital values. These digital values are samples of selected analog waveforms representing one period of a fundamental frquency waveform and three periods of a third harmonic waveform. The four ROM sectors include, as a series of digital values, one period of the fundamental and three periods of third harmonic data, as follows: (1) the A phase third harmonic (2R 3  cos 3α 0 ), (2) a phase fundamental plus third harmonic (cosα 0  -R 3  cos 3α 0 ), (3) B phase third harmonic (-2R 3  sin 3α 0 ), and (4) B phase fundamental plus third harmonic (sinα 0  + R 3  sin 3α 0 ). The digital values are stored in two groups of 128 words each, each word containing 16 bits. A first group of words contains A-phase waveform data (explained hereinafter) to be applied to motors 55, 65, and the second group of words contains B-phase waveform data (explained hereinafter) to be applied to motors 55, 65. Of the first group of words of ROM 27, the most significant (leading) eight bits contain A-phase third harmonic data, and the least significant eight bits contain A-phase fundamental plus third harmonic data. Likewise, the most and least significant eight bits of the second group of ROm words contain B-phase third harmonic and B-phase  fundamental plus third harmonic data. Thus, within each group, a single address permits the accessing of A-phase and B-phase current waveform data for application to a motor. 
     Interpolator 71, as shown in FIG. 4, utilizes the applied incremental distance values d x  and d y  to produce ROM addresses. The ROM addresses are, in turn, used to cycle-through ROM 27 (i.e., to progressively access the addressed words of ROM 27 in accordance with accepted sampling theory), and to advance motors 55, 65 and plot head 67. 
     To recreate a waveform, sampling theory dictates that at least two samples of the highest frequency contained in the waveform are required. Since ROm 27 contains one cycle of the fundamental and three cycles of the third harmonic component, at least six samples must be accessed every addressing cycle through the ROM. This means that the largest advance or increment allowable between selected ROM addresses (i.e., the increment from one ROM-address-advance to the next) should be one-sixth or less of a full-scale advance, a full-scale advance being equivalent to an advance of one cycle or period through ROM 27. (For example, a full-scale, one-cycle advance would cause plot heat 67 to move linearly 0.04 inches, where 50 cycles produces one revolution of motor 55, or of motor 65, equivalent to a linear movement of 2 inches.) If the input values of d x  and d y  were simply added (by their respective adders 21, 23) to their respective accumulators 24, 26 in a single step, excessively large address values may be produced that would cause the ROM-address-increment to exceed one-sixth of a full-scale advance. To avoid this problem and produce acceptable address increments that satisfy accepted sampling theory and that are sufficiently small to permit satisfactory reproduction of selected waveforms stored in ROM 27, the ROM-address-increments corresponding to d x  and d y  are first applied to registers 20, 22 where they are divided by an integer (e.g., the integer eight) to produce the values (d x  /8) and (d y  /8). These values (d x  /8) and (d y  8) are then applied to adders 21 and 23, respectively. During each increment period (e.g., 1 millisecond) that d x  is applied to register 20, adder 21 adds (d x  /8) to the contents of register 24 eight times. The rate (8KHz) at which this adding operation is performed is indicated by clock 28. At the end of each subperiod (i.e., 1/8 millisecond), the contents (A) of accumulator register 24 is as follows: 
     
         ______________________________________Elapsed time(Successive      Registersubperiods in    Contentsmilliseconds)    (A)______________________________________.125             ##STR1##.25             ##STR2##.375             ##STR3##.5             ##STR4##.625             ##STR5##.75             ##STR6##.875             ##STR7##1.0              A.sub.0 + d.sub.x______________________________________ 
    
     where, A represents the quantity A 0  + kd x  /8, A 0  represents an immediately previous content of register 24 or an initial address value (viz., the start-up contents of register 24 corresponding to an initial X-component position of plot-head 67), and k represents the number of times, within a 1 ms period, that d x  has been added to A 0 . The quantity A from register 24 is then truncated to produce an integer address N x  for accessing ROM 27. Similarly, in response to d y  being applied to divider register 22, adder 23 and accumulator 26 operates in conjunction with register 22 to produce an integer address N y  (equivalent to the integer portion of A 0  + kd y  /8) each 1/8 millisecond period. At the end of each subperiod (1/8 ms), the ROM addresses N x  and N y  are then applied to multiplexer 25 for accessing locations (words) in ROM 27 that have addresses N x  and N y , respectively. Each address N represents one of 128 ROM addresses. Thus, where, as here, accumulator registers 24, 26 are selected as 8-bit registers, overflow of these registers causes their contents to be treated modulo 128 which, in effect, produces 128 cyclical addresses (0 → 127 → 0). 
     The output of multiplexer 25 is applied to ROM 27 via 7-bit address input line 30. The 7-bit address input line corresponds to the seven least significant bits of accumulator registers 24, 26. The integer contents of these seven least significant bits (i.e., address N) are used to specify a ROM location (word) within each group. Thus, an address N x  would be used to specify, to X-motor 55, a ROM word in the first group containing A-phase current information and also a ROM word in the second group containing B-phase current information. 
     During the first half of a control cycle (i.e., the cycle for producing an X-and a Y-axis phase current waveform sample, where the X-axis phase current waveform sample is represented by a first pair of A and B phase waveform samples defining a position along the X coordinate axis, and the Y-axis phase current waveform sample is represented by a second pair of A and B phase waveform samples defining a position along the Y coordinate axis), the contents of a ROM word from the first group is sampled and an analog equivalent of the sampled value is applied to sample and hold circuit 35. This operation is accomplished as follows: first, switch 41 is closed and switch 43 is opened, next, the A-phase third harmonic (stored in bits 9-16 of the ROM word having the address N x ) is accessed and applied to digital-to-analog converter 29. After the digital-to-analog converter 29 has had time to settle and to convert the applied digital sample to an analog waveform sample and apply said waveform sample to summing amplifier 31, switch 33 is closed long enough to load the third harmonic waveform sample into sample-and-hold circuit 35. 
     Next, the A-phase fundamental plus third harmonic (stored in bits 1-8 of the ROM word with address N x ) is accessed and applied to digital-to-analog converter 29. At this time, switch 33 is opened and switch 45 is closed. Once the digital-to-analog converter 29 has settled and has converted the applied digital sample to an analog waveform sample and applied said waveform sample to summing amplifier 31, the output of the summing amplifier 31 consists of a composite waveform sample representing the A-phase fundamental plus third harmonic and an adjusted amount of third harmonic as determined by potentiometer 37. (The adjustable third harmonic level added to the analog waveform sample through switch 41 is out of phase with that preloaded into the ROM 27 so that the resultant level is adjustable from negative to positive through zero.) After the composite A-phase waveform sample has settled, switch 47 is closed momentarily to set sample-and-hold circuit 49. The output of sample-and-hold circuit 49 is a stair-step approximation of a continuous current waveform which is applied, via phase current amplifier-converter 75, to the A-phase stator windings of the X axis motor 55. (Post-sample filtering may be used to smooth the stairstep approximation before driving motor 55.) 
     In a similar manner, a composite B-phase waveform sample is generated, by first accessing the B-phase third harmonic from ROM 27 and loading sample-and-hold circuit 35 with an analog equivalent of the sample. The B-phase fundamental plus third harmonic is then added to an adjusted third harmonic waveform sample to produce the composite B-phase waveform sample after which, switch 51 is closed momentarily to set sample-and-hold circuit 53. Actually, switches 33 and 41 are closed and switches 43 and 45 are opened in order to load circuit 35 with a B-phase third harmonic waveform sample (the sample being accessed from bits 9-16 of the ROM word in the second group having the address N x ), after which, the B-phase fundamental plus third harmonic is sampled from ROM 27 (i.e., accessed from bits 1-8 of the ROM word in the second group having the address N x ) and added to B-phase third harmonic by summing amplifier 31 to produce a composite B-phase waveform sample. This composite B-phase waveform sample is then loaded into sample-and-hold circuit 53, upon the opening of switch 33 and the closing of switches 45 and 51. The output of circuit 53 is a stair-step approximation of a continuous current waveform which is applied, via phase current amplifier-converter 77, to the B-phase stator windings of the X axis motor 55. The action to this point is completed in the first half of the control cycle. 
     During the second half of the cycle, a second pair of composite A-and B-phase waveform samples (representing the Y axis phase current waveform samples) are produced in the same manner as for the first pair, except that potentiometer 39 is used in conjunction with switch 43 to produce the second pair. (As indicated hereinbefore, potentiometer 37 is used in conjunction with switch 41 to produce the first pair.) This second pair of A-and B-phase waveform samples represents a composite of samples accessed from ROM 27 according to the Y-address value N 4  applied to ROM 27 by multiplexer 25. With switches 57 and 61 closed, the composite A-and B-phase waveform samples of the second pair are then applied to sample-and-hold circuits 59 and 63, respectively. Circuits 59 and 63, in turn, apply the waveform samples (in the form of stair-step approximations of continuous current waveforms), via phase current amplifier-converters 79, 81, to the A-and B-phase stator windings, respectively, of Y axis motor 65. After the A- and B-phase current samples are applied to Y axis motor 65, the control cycle is ended and another control cycle begins as the process is repeated. Successive pairs of A-and B-phase currents applied to the X-and Y-axis motors 55, 65 cause plot head 67 to move smoothly from position (X 0 , Y 0 ) to position (X 1 , Y 1 ). 
     The outputs from sample-and-hold circuits 49, 53, 59 and 63 are applied to the inputs of phase current amplifier-converters 75, 77, 79 and 81, respectively. These amplifier-converter devices (which include controls for adjusting dc offset and phase current amplitude, and which may optionally include post-sample filtering to smooth the current waveforms as shown in FIG. 6) convert input voltage into a corresponding current in their phase windings. 
     From the foregoing, analysis of equations (13) and (14) shows that if either I A  or I B  contains a dc term, torque will be produced at the fundamental frequency, ω 0 . (Any residual dc magnetic fields retained in the motor ferromagnetic material that produce flux in the A-and B-phase windings will create this same effect.) This effect can be cancelled by adjusting the dc offset controls on the A-and B-phase current amplifier-converters for each motor. 
     The equations (25), (26), (27) and (28) describing the torque produced by the two phases, assume that (1) both phases have identical peak current amplitudes applied, and (2) the winding count is identical for the two phases. These assumptions permit substantially perfect cancellation of torque harmonics at 2ω 0 , 6ω 0 , 10ω 0 , etc., as indicated by equation (41). The primary requirement leading to the cancellation of these harmonics is that the applied mmf in each phase is identical in magnitude and that the two phases are electrically and mechanically in quadrature. The quadrature requirement is met by the mechanical design of the motor and the bit patterns stored in the waveform ROM 27. The relative magnitudes of the A-and B-phase mmf can be equalized by adjusting the amplitude of the applied current to either phase. If deficiencies exist in the effective number of turns for either phase, the mmf can be corrected by applying a correspondingly larger current. 
     Three separate adjustments are thus provided for each motor: (1) dc offset, which affects torque at ω 0  (2) relative gain between the phases, which affects torque harmonics at 2ω 0 , 6ω 0 , etc., and (3) third harmonic amplitude, which affects the torque harmonic at 4ω 0 . These adjustments are made in sequence starting with the dc offset. First, the input current frequency, ω 0 , for one axis is adjusted so that it falls near the peak of the lowest frequency resonance of the rotor-load combination. The A-and B-phase offset currents are then iteratively adjusted to minimize resonant frequency vibrations sensed in the rotor&#39;s motion. Next the phase current frequency is halved so that the 2ω 0  torque harmonic falls on the resonance. The peak amplitude of one phase current is then adjusted relative to the other until a null is sensed in the rotor vibrations. Finally, the phase current frequency is halved again so that the 4ω 0  torque harmonic frequency falls near the resonant frequency. The amplitude of the third harmonic in the A-and B-phase waveforms is adjusted until a null is again sensed in the rotor vibrations. 
     If mechanical limits make it impractical to allow the motor to run long enough for the necessary adjustment to be accomplished, an alternative method may be used. This alternative method features an X-Y vector which is repetitively drawn back and forth along a single line. The line slope is then adjusted until the slow axis current frequency is at the desired value. The desired adjustment is then made. 
     FIG. 6 shows an alternative embodiment of the present invention which may be utilized to achieve smooth, continuous positioning of a device such as a plot head by applying sinusoidal phase currents to synchronous inductor motors connected to the device, harmonic torque perturbations of the motor not being a substantial problem. In the system of FIG. 6, the function generator or ROM 89 includes only the fundamental frequency waveform of the A- and B- phase currents to be supplied to the stator windings of motors 115, 117, and does not include third harmonic waveform data. Also, interpolators 85 and 87 each include a divider, an adder and an accumulator register (the multiplexer shown in FIG. 4 being omitted, since the outputs from the accumulator registers are applied directly to the ROM). 
     When X-position data, in the form of incremental distance value d x , is applied to X-axis interpolator 85 of motor unit 121 for a selected time period such as 1 millisecond, interpolator 85 treats d x  as a velocity value and produces therefrom a ROM address N x . This ROM address is applied to ROM 89 where it is used to access a 16-bit ROM location having an 8-bit digital sample of the A-phase current waveform and an 8-bit sample of the B-phase current waveform. For example, the A-and B-phase waveform samples in the ROM may be stored in the following form (in degrees): 
     
         A-phase sample = 127 Sin (N/128× 360) 
    
     
         b-phase sample = 127 Cos (N/128× 360) 
    
     where, 127 represents a scale factor and N represents address N x  (or N y  ROM location with address N y  is being accessed). The accessed A-and B-phase samples are then applied to digital-to-analog converters (DAC) 91 and 93 respectively, where they are converted to analog values (levels) and applied to low pass filters 99 and 101, respectively. Low pass filters 99 and 101 smooth the applied analog values and apply the smoothed analog values to phase current amplifiers (bipolar voltage-to-current converter-drivers) 107 and 109 respectively. Amplifier-converters 107 and 109 convert the applied analog values to A-phase and B-phase motor currents, respectively, and apply these currents to X axis motor 115. 
     In a similar manner, as shown in FIG. 6, when Y position (velocity) data d y  is applied to Y-axis interpolator 87 of motor unit 121. A-and B-phase motor currents corresponding to the value of d y  are applied to Y axis motor 117. Successive pairs of these A-and P-phase motor currents applied to the X and Y axis motors 115 and 117, cause plot head 119 to move smoothly from one position to the next, for example, from (X 0 , Y 0 ) to (X 1 , Y 1 ). 
     If torque perturbations are important but motor characteristics are sufficiently constant so that a fixed harmonic structure can be included in the phase current waveform to effect the necessary correction, this fixed-harmonic-structure phase current waveform can be stored in ROM 89 in place of the abovementioned sinusoids, in which event the operation of the system would be as described above, except that the phase currents now contain the harmonics necessary to achieve smooth performance.