Abstract:
A method of reducing periodic disturbances in the feedback quantity of a controlled system is disclosed. The method includes receiving a feedback signal and repeatedly deriving respective magnitudes of harmonic components of the feedback signal to produce corresponding error signals. The error signals and harmonic components are used to generate harmonic control signals. The harmonic control signals are used to create a plurality of negative feedback loops acting to reduce the error signals. The present disclosure thus provides negative feedback control in the frequency domain. In one specific disclosed embodiment, the control is tied to the periodic domain resulting from the rotation of an actuator motor shaft.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims the benefit and priority of Great Britain Patent Application No. 1220553.0 filed Nov. 15, 2012. The entire disclosure of the above application is incorporated herein by reference. 
     FIELD 
     The present invention relates to a method and system for reducing periodic disturbances in a feedback quantity of a controlled system. 
     BACKGROUND 
     Systems and methods for the control of periodic disturbances are known. For example, U.S. Pat. No. 7,952,308 discloses a method and apparatus for reducing torque ripple in a permanent magnet motor system. A torque ripple reduction signal is produced in response to a torque command and operational control signals are modified in response to the torque ripple reduction signal to generate reduced ripple operational control signals, which are provided to an inverter for control of a permanent magnet motor. The torque ripple reduction signal includes one or more predetermined harmonics of a current signal of the motor defined in response to a predetermined torque ripple characteristic of the motor. EP 1,182,771 discloses a controller for an electronically commutated electrical machine that receives a feedback signal indicative of a parameter which it is desired to minimise, for example torque ripple, current, voltage, vibration or acoustic noise. The controller computes the amplitude and phase of a set of harmonics in the parameter and sequentially injects harmonics of the correct amplitude and phase to minimise the parameter. An optimising routine iterates through the set of harmonics to further reduce the parameter. 
     There is a need, in particular in the context of the control of a mechanical system in which the characteristics of a periodic perturbation changes over time, of an adaptive controller for reducing periodic perturbations, which can efficiently track a changing nature of a period perturbation. 
     SUMMARY 
     In one aspect, there is provided a system comprising a controlled system and a harmonic controller connected to the controlled system to provide a harmonic control signal to the controlled system for reducing periodic disturbances in a feedback quantity of the controlled system, as defined in claim  1 . In another aspect, there is provided a method for reducing periodic disturbances in a feedback quantity of a controlled system, as defined in claim  13 . 
     In one embodiment, a system is provided which comprises a controlled system and a harmonic controller connected to the controlled system to provide a harmonic control signal to the controlled system. The harmonic control signal acts to reduce periodic disturbances in a feedback quantity of the controlled system. The system has a plurality of control loops or signal paths, each of which comprises a magnitude calculator, an integrator, a harmonic generator and a multiplier. The magnitude calculator is coupled to the controlled system to receive a feedback signal representative of the feedback quantity and configured to repeatedly calculate a value of a magnitude of a respective harmonic component of the feedback signal. The integrator is coupled to the magnitude calculator to receive the repeatedly calculated values and is configured to sum the received values to produce an accumulated value. The harmonic generator is configured to generate a harmonic signal having the same frequency as the respective harmonic component and a phase relative to the respective harmonic component set to compensate for an estimated phase shift produced by the controlled system between the harmonic control signal and the feedback signal at the frequency of the respective harmonic component. The multiplier is coupled to the integrator and the harmonic generator to multiply the accumulated value and harmonic signal to produce a generated harmonic component. The harmonic controller is arranged to sum the generated harmonic components to produce the harmonic control signal and to apply the harmonic control signal to the controlled system to reduce the periodic disturbance in the feedback quantity. 
     In effect, the harmonic controller treats the values of magnitude of the respective harmonic components as an error signal which is integrated and provides a respective control for each harmonic component to drive down the magnitude by feedback control. The harmonic controller is thus inherently adaptive in that it will converge to a steady state in which the respective harmonic components of the feedback signal are compensated for by the generated harmonic components. If the controlled system or its operating conditions subsequently change, this introduces a new, non-zero magnitude for the respective harmonic components which changes the accumulated value and results in a change in the generated harmonic components until the respective harmonic components are again compensated for. By setting the phase of the generated components so as to compensate for the phase shift introduced by the controlled system at the respective frequency between the injection of the harmonic controlled signal to the controlled system and the feedback signal, the occurrence of positive feedback and the associated instability at one or more respective frequencies is avoided, facilitating system stability. 
     The harmonic controller may be configured to scale the generated harmonic component in each control loop to render the gain of the control loops independent of a frequency of the generated harmonic component. In this way, a single gain can be set to adjust the time constant of the control loops across the respective frequency of the different control loops and the single gain need not be changed as the frequency changes, for example when an angular velocity of the controlled system changes (see below). 
     The magnitude calculator may be configured to multiply the respective harmonic component (e.g. a sine or cosine function of the respective harmonic frequency) with the feedback signal and to integrate the result over one or more periods of the respective harmonic component. This provides an efficient way of calculating the magnitudes, in effect as continuously calculated Fourier coefficients. 
     The respective harmonic components of the harmonic controller may comprise two harmonic components in quadrature at a fundamental frequency and one or more pairs of further harmonic components in quadrature at integer multiplies of the fundamental frequency. For example, the harmonic components may be pairs of a sine and cosine functions at each of the frequencies. By providing a set of functions in quadrature at each harmonic frequency, arbitrary phase relationships can be captured by the relative magnitude of the, e.g., sine and cosine components (noting that any sine or cosine function with an appropriate 90 degree phase shift between them achieve the same effect and can be used as appropriate). To provide a full representation up to a cut off harmonic, the integer multiplies may be contiguous. 
     The controlled system may comprise a motor for moving a movable part relative to a stationary part. It will be understood that the present disclosure is not limited to motors or indeed mechanical controlled systems, but is equally applicable to other controlled systems, such as a current source, where the control signal may be voltage and the feedback quantity current. 
     The harmonic components may be a function of position of the movable part relative to the stationary part. For example, the harmonic components may be a function of the intra-period position of the movable part relative to the stationary part. In the case of a rotating machine, this would be simply rotor angle, while in the case of a linear machine this would be the relative linear position within a pole or group of poles of the linear machine. In effect, then, the system then operates in a periodic domain, which is similar to operating in the frequency domain where the fundamental component corresponds to one revolution of the system (in case of a rotating machine). However, unlike in the frequency domain, the frequency of each component changes automatically with the speed of the motor. Equally, the harmonic components may be time based, so that the system operates in the frequency domain, in particular where the controlled system is not a motor and, thus, the periodic disturbances are not due to a characteristic of the motor or its load. As mentioned above, the movable part may be a rotor rotatable relative to the stationary part and the position may be an angular position of the rotor relative to the stationary part, as discussed above. The motor will generally be controlled by a motor controller and, in dependence on the input the motor controller requires, the harmonic control signal may be representative of motor torque, force, current or flux. 
     The controlled system may comprise a feedback controller, which is configured to produce a feedback error control signal in response to an error signal based on a comparison between a desired and an actual position or velocity of the movable part. The controlled system may then be configured to combine the feedback error control signal and the harmonic control signal to control the motor. Alternatively, the motor may be controlled by any other appropriate control algorithm, for example feed forward control, in which case the output of that algorithm would be combined with the harmonic control signal to control the motor. The feedback signal used by the harmonic controller may be the error signal of the feedback controller (or one of the error signals used by the feedback controller), for example a position or velocity error. The feedback signal may also be a signal representative of the velocity of the movable part. Any signal containing the periodic disturbance as a result of a control signal applied to the controlled system may be used, although a certain amount of signal conditioning may be necessary. For example, if intra-period motor position is used as an input, the harmonics due to the sawtooth, profile of e.g. rotor angle at constant velocity would have to be dealt with. As another example, if a motor position signal counting motor position over a plurality of turns would be used, the harmonics due to the continuous ramp in this position measure for constant velocity operation would have to be dealt with. 
     The harmonic controller may be configured to reduce the magnitude of one or more generated harmonic components to zero in response to detecting that the respective estimated phase shift exceeds a threshold value. This may be achieved by, for example, ramping down the integrator, or otherwise. In this way, high phase shifts components, which are most error prone and liable to result in positive feedback, can be suppressed to increase system stability. 
     The system may comprise a memory and a harmonic controller may be configured to store in the memory the accumulated value of each control loop on power down of the system. On start-up of the system subsequent to the power down, the accumulated value of each control loop can be initialised with the stored value, so that previous convergence is not lost. 
     It will be understood that terms like “magnitude calculator”, “integrator”, “harmonic generator”, “multiplier”, “harmonic controller”, etc may equally signify physical components as well as logical organisational units of calculations, without implying that the corresponding functions are necessarily carried out in separate logics blocks. For example, the harmonic controller described above may be implemented as a single function in software or hardware, or as several interrelated functional blocks, which do not necessarily need to map on the logical functions described above and which may or may not be integrated with other aspects of the system. Without departing from the present disclosure, the functionalities of the various logical blocks described may be distributed or combined as appropriate. 
     In a further embodiment, there is provided a method of reducing periodic disturbances in a feedback quantity of a controlled system. The method comprises receiving a feedback signal representative of the feedback quantity and repeatedly deriving respective magnitudes of harmonic components of the feedback signal to produce corresponding error signals. The method further comprises using the error signals and harmonic components to generate a harmonic control signal and to control the controlled system with the harmonic control signal to create a plurality of negative feedback loops acting to reduce the error signal. 
     Using the error signals and harmonic components to generate a harmonic control signal may include processing the error signals, multiplying the components with the respective results of the processing and summing the resulting harmonic signals to generate the harmonic control signal. The processing may include integrating the produced error signals. The processing may alternatively or additionally include other calculations to replace or augment the integral control of the periodic disturbances with proportional, differential or other control modes. 
    
    
     
       DRAWINGS 
       A specific embodiment is now described by way of example to illustrate the concepts and principles discussed above, with reference to the accompanying drawings, in which: 
         FIG. 1  depicts a position controller, with an inner speed loop, for a motor coupled to a mechanical system; 
         FIG. 2  illustrates a system as in  FIG. 1 , augmented with a harmonic controller; 
         FIG. 3  illustrates details of the harmonic controller of  FIG. 2 ; 
         FIG. 4  illustrates considerations when selecting different input signals for the harmonic controller; 
         FIG. 5  illustrates a test rig for illustrating the operation of the harmonic controller; and 
         FIGS. 6   a  and  6   b  illustrate results obtained with the test rig of  FIG. 5 . 
     
    
    
     DETAILED DESCRIPTION 
     With reference to  FIG. 1 , a mechanical system  2  is actuated by a motor  4  under control of a current controller  6 . The current controller  6  takes as its input a desired torque. The desired torque signal is produced by a speed controller  8 , which receives feedback from the mechanical system of its angular velocity and an input of a desired speed signal from a position controller  10 . The position controller  10  produces the desired speed signal in response to a desired position input signal and feedback of the actual position, for example from integration of the angular velocity. Variants of the controlled system in  FIG. 1  include other components such as position or speed feed forward signals to increase the responsiveness of the system and the present disclosure is equally applicable to such systems. 
     With reference to  FIG. 2 , a block diagram of the system of  FIG. 1  is now described The position controller  10  is represented by a comparator  12  and gain block  14  with gain K v , the speed controller  8  is represented by a comparator and a proportional and integral gain block  16  with proportional gain K p  an integral gain K i  and the torque controller, motor and mechanical system are represented as a lumped model  18  with a torque demand to current gain K c , a current to torque gain K t  and an inertia J of the mechanical system. Additionally, a harmonic controller is connected to the system. 
     The harmonic controller  20  takes the position error from the output of the comparator  12  as an input, and outputs a torque demand T h , which is summed with the output torque demand from the speed controller  8  (gain block  16 ) to provide an input to the current controller  6  (lumped model  18 ) to suppress periodic perturbations arising from the motor  4  and/or mechanical system  2 . Such periodic perturbations may arise for example from cogging torques in the motor  4  or torques experienced by the driven mechanical system  2 . From the point of view of the harmonic controller  20 , the system of  FIG. 1  (control blocks  12 ,  14 ,  16  and model  18  in  FIG. 2 ) corresponds to a controlled system  22  which provides a feedback signal (the position error) containing the periodic perturbation to the harmonic controller and which receives a torque demand or input from the harmonic controller  20  causing the periodic perturbation to be compensated in closed loop operation. 
     With reference to  FIG. 3 , details of the harmonic controller  20  are now described. The harmonic controller  20 , together with the control system  22 , provides a plurality of control loops each comprising a multiplier  24  receiving the position error signal from the controlled system  22  as a feedback signal. The multiplier  24  is connected to a resettable integrator  26 , which in turn is connected in series to two gain blocks  28  and  30  and a further integrator  32 . The further integrator  32  in turn is connected to a further multiplier  34 . As shown in  FIG. 3 , the multiplier  24 , the resettable integrator  26 , and the gain block  28  of each control loop may be components of a magnitude calculator that receives a feedback signal (e.g., the position error). 
     An intra-period angle calculation block  36  receives the position reference or desired position from the controlled system  22  and converts it into an intra-period angle θ. For example, where the motor includes a rotating machine and the position reference indicates a position over multiple rotations of the rotor of the rotating machine, the intra-period angle θ will be the position reference modulo 2η (or, in the implementation, modulo the number of increments of digitised position making up a full rotation of the rotor). The position reference (or intra-period angle) is also fed to a reset block  38 , which provides an interrupt to the integrators  26  after each period of position reference, that is after each full rotation of the rotor or each reset to zero of the intra-period angle θ. The multiplier  24  multiples the position error with a harmonic function, sine or cosine of the intra-period angle θ. 
     From top to bottom in  FIG. 3 , the first control loop multiples the position with sine (θ), the second loop multiplies the position error with cosine (θ), the third loop multiplies the position error with sine (2 θ), the fourth loop with cosine (2 θ), and so on. The penultimate loop multiplies the position error with sine (m θ) and the last loop multiplies the position error with cosine (m θ) to analyse the position error for its periodic content up to the m th  harmonic (noting that there is no DC term and that the order in which the loops are arranged is of course arbitrary). The output of the multiplier  24  is integrated over a period of intra-period angle θ by the integrator  26 . Over the period of θ the integrator  26  merely integrates its input and does not produce an output until it receives an interrupt at the end of each period from the reset block  38 . In response to the interrupt, the integrator  26  outputs its value and resets to 0. A gain block  28  receives the output of the integrator  26  and scales it by 2/N, N being the number of samples integrated by integrator  26 . The output of gain block  28  corresponds to the magnitude of the respective harmonic components in the position error signal for each loop. 
     The output of the gain block  28  is multiplied by an adjustable gain K at gain block  30  and then summed by the integrator  32  to produce an accumulated magnitude at its output. The accumulated magnitude from the integrator  32  is input to a further multiplier  34  which multiples the accumulated magnitude with a harmonic function (e.g., generated by a harmonic generator of each control loop as shown in  FIG. 3 ) of the same order as the harmonic function multiplied with at multiplier  24  but being scaled by a gain G m  and having a phase shift β m  relative to the initial harmonic function. The gain and phase shift are specific to the frequency of the harmonic function of the loop, that is specific to the harmonic order m. Calculation of the gain G m  and phase shift β m  is discussed below. 
     Since the respective harmonic components, at least in the ideal case of a linear controlled system, are independent, the harmonic controller  20  together with the controlled system  22  implements a plurality of mutually substantially independent control loops, each of which can be seen as producing an error signal in the form of the magnitude of its respective harmonic component which is accumulated to produce an output which is superimposed with the output of other loops to result in a negative feedback control signal to be supplied to the controlled system  22  (noting that the feedback loop is negative due to the inversion of the position feedback to the derive the position error). 
     The phase shift from the torque demand output by the harmonic controller  20  to the position error input to the harmonic controller  20  in the controlled system  22  depends on the frequency of the signal. Therefore, it is necessary to compensate for this phase shift to ensure that one or more of the control loops do not accumulate a phase shift of more than 360 degrees to result in an unstable positive feedback loop. Ideally, the phase shift between T H  and the feedback signal in the controlled system  22  would be fully compensated by the phase shift β m  between the torque demand T H  produced by the respective control loop relative to the harmonic function at the multiplier  24 . This is illustrated in  FIG. 4 .  FIG. 4  also illustrates that where a feedback signal other than an error signal is used as an input to the harmonic controller  20 , the inversion otherwise applied at the feedback comparator must be applied somewhere else, for example at the summer combining the torque demand from the speed controller  8 / 16  with the harmonic torque reference T H , to ensure a stable negative feedback loop is obtained. Examples of such feedback signals are motor position α, intra-period position or angle θ, or speed. 
     As explained above, each component must be phase shifted before recreating the torque in the time domain so that the frequency component has the correct phase when the effect of the injected torque appears in the position error. If this is not the case then the feedback control loop for the particular component can include positive feedback. As shown below the phase shift from injecting the torque to the position feedback is the phase shift of the torque disturbance characteristic of the controlled system  22  (α(s)/T H (s)). 
     The position to torque disturbance characteristic is given by 
     
       
         
           
             
               
                 α 
                 ⁡ 
                 
                   ( 
                   s 
                   ) 
                 
               
               
                 
                   T 
                   H 
                 
                 ⁡ 
                 
                   ( 
                   s 
                   ) 
                 
               
             
             = 
             
               
                 1 
                 KcKtKlKv 
               
               × 
               
                 s 
                 
                   
                     
                       
                         s 
                         3 
                       
                       ⁢ 
                       J 
                     
                     KcKtKiKv 
                   
                   + 
                   
                     
                       s 
                       2 
                     
                     ⁡ 
                     
                       ( 
                       
                         Kp 
                         KiKv 
                       
                       ) 
                     
                   
                   + 
                   
                     s 
                     ⁡ 
                     
                       ( 
                       
                         
                           Kp 
                           Ki 
                         
                         + 
                         
                           1 
                           Kv 
                         
                       
                       ) 
                     
                   
                   + 
                   1 
                 
               
             
           
         
       
     
     The phase shift associated with this characteristic in the steady state is given by 
     
       
         
           
             
               β 
               m 
             
             = 
             
               
                 π 
                 2 
               
               - 
               
                 
                   tan 
                   
                     - 
                     1 
                   
                 
                 ( 
                 
                   
                     
                       
                         ω 
                         m 
                       
                       ⁡ 
                       
                         ( 
                         
                           KpKv 
                           + 
                           Ki 
                         
                         ) 
                       
                     
                     - 
                     
                       
                         
                           ω 
                           m 
                           3 
                         
                         ⁢ 
                         J 
                       
                       KcKt 
                     
                   
                   
                     KiKv 
                     - 
                     
                       
                         ω 
                         m 
                         2 
                       
                       ⁢ 
                       Kp 
                     
                   
                 
                 ) 
               
             
           
         
       
     
     Where ω m  is the angular frequency of each component for in rad/second a speed demand SpeedRef in revolutions per minute and is given by 
     
       
         
           
             
               ω 
               m 
             
             = 
             
               2 
               ⁢ 
               π 
               ⁢ 
               
                   
               
               ⁢ 
               m 
               × 
               
                 SpeedRefRpm 
                 60 
               
             
           
         
       
     
     This phase shift does not include system timing delays or any additional delays that may be introduced by filters added into the controlled system. These can be included with a simple delay. 
     
       
         
           
             
               θ 
               Delay 
             
             = 
             
               
                 T 
                 Delay 
               
               × 
               
                 
                   ω 
                   m 
                 
                 
                   2 
                   ⁢ 
                   π 
                 
               
             
           
         
       
       
         
           Therefore 
         
       
       
         
           
             
               β 
               m 
             
             = 
             
               
                 π 
                 2 
               
               - 
               
                 
                   tan 
                   
                     - 
                     1 
                   
                 
                 ( 
                 
                   
                     
                       
                         ω 
                         m 
                       
                       ⁡ 
                       
                         ( 
                         
                           KpKv 
                           + 
                           Ki 
                         
                         ) 
                       
                     
                     - 
                     
                       
                         
                           ω 
                           m 
                           3 
                         
                         ⁢ 
                         J 
                       
                       KcKt 
                     
                   
                   
                     KiKv 
                     - 
                     
                       
                         ω 
                         m 
                         2 
                       
                       ⁢ 
                       Kp 
                     
                   
                 
                 ) 
               
               + 
               
                 θ 
                 Delay 
               
             
           
         
       
     
     Further, as explained above, a gain G m  is applied to each component when the torque is generated in the time domain. If the gain values follow the inverse characteristic of the gain of the controlled system  22 , i.e. 1/(α(jω)/T H (jω)), then the loop gain for each component will be the same. Also the magnitude of each component will automatically change as the reference speed and hence the absolute frequency of each component changes. 
     The gain of the characteristic is given by 
     
       
         
           
             
                
               
                 
                   α 
                   ⁡ 
                   
                     ( 
                     
                       jω 
                       m 
                     
                     ) 
                   
                 
                 
                   
                     T 
                     H 
                   
                   ⁡ 
                   
                     ( 
                     
                       jω 
                       m 
                     
                     ) 
                   
                 
               
                
             
             = 
             
               
                 ω 
                 
                   
                     K 
                     c 
                   
                   ⁢ 
                   
                     K 
                     t 
                   
                 
               
               
                 
                   
                     
                       ( 
                       
                         KtKv 
                         - 
                         
                           
                             ω 
                             m 
                             2 
                           
                           ⁢ 
                           Kp 
                         
                       
                       ) 
                     
                     2 
                   
                   + 
                   
                     
                       ( 
                       
                         
                           
                             ω 
                             m 
                           
                           ⁡ 
                           
                             ( 
                             
                               KpKv 
                               + 
                               Ki 
                             
                             ) 
                           
                         
                         - 
                         
                           
                             
                               ω 
                               m 
                               3 
                             
                             ⁢ 
                             J 
                           
                           KcKt 
                         
                       
                       ) 
                     
                     2 
                   
                 
               
             
           
         
       
     
     The absolute gain is not required, but the relative gain for each component as the gain simply affects the overall loop gain for each component. Therefore G m  used with each component is relative to the gain for 1 rad/s. The gain required is the inverse of the gain of the characteristic and therefore 
     
       
         
           
             
               G 
               m 
             
             = 
             
               
                  
                 
                   
                     α 
                     ⁡ 
                     
                       ( 
                       j 
                       ) 
                     
                   
                   
                     
                       T 
                       H 
                     
                     ⁡ 
                     
                       ( 
                       j 
                       ) 
                     
                   
                 
                  
               
               
                  
                 
                   
                     α 
                     ⁡ 
                     
                       ( 
                       
                         jω 
                         m 
                       
                       ) 
                     
                   
                   
                     
                       T 
                       H 
                     
                     ⁡ 
                     
                       ( 
                       
                         jω 
                         m 
                       
                       ) 
                     
                   
                 
                  
               
             
           
         
       
     
     The harmonic controller  20  may be provided with additional functionality, for example to avoid using harmonic components if the associated phase shift indicates that it is prone to error and risks resulting in positive feedback. Errors in the phase shift become more significant as the frequency of the component increases because the phase shift is affected more by the delay element. Compensating for higher frequency components is not as important because the inertia of the system filters the torque disturbance effect. Therefore if the calculated phase shift is larger than a specified level the respective integrator  32  in the relevant loop can be ramped down to zero if required. 
     Further, depending on the time constant associated with the gain block  30 , the value of the integrator  32  will settle over a number of iterations until the periodic perturbations are compensated for. To facilitate compensation from start up, the value of the integrator  32  can be stored in a memory on power down and this stored value can then be loaded in the integrator  32  when the system is next started up to avoid having to re-converge the harmonic controller  20 . 
     A test rig used to demonstrate the effectiveness of the harmonic controller is now described with  FIG. 5 . The harmonic controller  20  is implemented in a software function  40  provided as an application module to a drive  42  controlling a permanent magnet servo motor to follow a constant position ramp (constant speed). Another permanent magnet servo motor  46  is connected to the shaft of the motor  44  and is controlled by a drive  48  loaded with an application module having a software function which causes the motor  46  to produce periodic torque disturbance on the shaft of the motor  44 . The results are presented in  FIG. 6   a  (the motors running at 200 rpm with the harmonic controller  20  disabled) and  6   b  (the motor is running at 200 rpm with the harmonic controller  20  enabled). The channels are assigned as follows: 
     Channel 1: Position reference (intra-period) 
     Channel 2: Position error (amplified) 
     Channel 3: Output of harmonic controller  20   
     Channel 4: Torque disturbance produced by motor  46   
     It can be seen that switching on the harmonic controller  20  eliminates the position error and causes the output of the harmonic controller  20  to mirror the torque disturbance. It is interesting to note that, due to the limited harmonic content of the torque signal from the harmonic controller  22  (m=10), the difference in the width of the positive and negative torque disturbance pulses is translated to a difference in magnitude, rather than widths of the torque signal from the harmonic controller  20 , which has the same effect as a change in pulse widths due to the integration of the torque input by the inertia of the motors. 
     It will be understood that the above description of a specific embodiment has been made by way of example only and that the present disclosure is more widely applicable, as explained above. In particular, the controllers described above may be implemented in dedicated hardware, software or a combination of these two, with the boundaries between the logical components referred to above being drawn for convenience of exposition rather than to limit the actual implementation. As to the controlled system  22 , it will be understood that the above description is not limited to any specific controlled system. For example, the position or speed loops could be omitted or augmented with additional feed forward control, for example, speed or torque prediction. Different models could be used for the motor and mechanical system. The motor may be a rotating or linear motor, with reference to angle, torque, etc, construed accordingly as position or force in the case of a linear motor. Further, the above description is not limited to motors driving mechanical systems but may also be applicable to any controlled system in which a feedback quantity of the controlled system is subject to periodic perturbations. The output of the harmonic controller, of course, changes as a function of the controlled system and application. For a controlled system including a motor, control quantities such as force, current or flux can be used instead of torque without departing from the above description. The output of the harmonic controller, of course, changes as a function of the controlled system and application. For a control system including a motor, control quantities such as force, current or flux can be used instead of torque without departing from the above description. 
     It will be understood that the above description is made by way of example to illustrate the concepts and principles underlying the present disclosure and not to limit the scope of the claimed invention, as set out in the appendent claims.