Patent Publication Number: US-7586286-B2

Title: Method and apparatus for motor control

Description:
BACKGROUND 
   1. Field 
   The present disclosure generally relates to motor control, and more particularly relates to permanent magnet or interior permanent magnet motor control. 
   2. Description of the Related Art 
   The permanent magnet (PM) synchronous motor possesses many appealing characteristics for various applications, including pure-electric or hybrid-electric vehicles. The maximum input power of a vehicle is dictated, in part, by the size of the power sources (i.e., battery, fuel cell engine, supercapacitor, etc.). Direct current (DC) power is the product of the DC voltage and DC current. Quite often, the DC bus voltage varies with motor output power (i.e., Torque*Speed). As a result, rapid changes in vehicle load may cause large fluctuations in the DC bus voltage. 
   Traction electric motors may be used to propel electric or hybrid vehicles. A traction electric motor drive is often required to perform over a wide operating range. Typically the operating range of an electric machine, such as the traction electric motor, is divided into two regions: a constant torque region and a constant power region. It is important to maintain the ability to change quickly and smoothly between the constant torque and constant power modes of operation. 
   Interior permanent magnet (IPM) synchronous motors are also used in electric vehicle traction drives due to their positive features such as high efficiency and high power density. Such applications require the motor drives to work in a wide speed range and constant power while maintaining high efficiency. In the high speed range, or in field-weakening mode operation, the optimal motor current commands are not only a function of speed and requested torque, but also a function of various motor parameters, DC bus voltage and motor temperature. 
   Existing PM or IPM motor control methods and apparatus, particularly in electric or hybrid vehicle applications, may perform poorly when the DC bus voltage varies. Rapid fluctuation of the DC bus voltage, for example due to rapidly changing power demands, exacerbates this problem, and existing PM or IPM motor control systems and methods are typically unable to adequately compensate. Furthermore, due to the multiple optimal curves and boundaries imposed on the motor current commands, simple regulators that can control the motor torque output precisely and quickly in the high speed and/or the field weakening operating regions do not appear to be available. Accordingly, a control system method and apparatus is desirable. 
   BRIEF SUMMARY OF THE INVENTION 
   A system and method for controlling a permanent magnet motor are disclosed. According to one embodiment, a method comprises receiving a torque command and a flux command; receiving information corresponding to a direct current (DC) bus voltage and a motor speed; computationally determining feedforward direct-axis current information and feedforward quadrature-axis current information from a plurality of parameters associated with the permanent magnet motor; determining a current signal (i dq *) based upon at least the requested torque command, the flux command, the DC bus voltage, the motor speed, the feedforward direct-axis current information, and the feedforward quadrature-axis current information; and controlling a power inverter that converts DC power into alternating current (AC) power that is supplied to the permanent magnet motor, such that the permanent magnet motor is operated in accordance with the determined i dq *. 
   According to another embodiment, a system which controls a permanent magnet motor comprises feedforward direct-axis current information that is computationally determined from a plurality of parameters associated with the permanent magnet motor; feedforward quadrature-axis current information that is computationally determined from the plurality of parameters associated with the permanent magnet motor; a current regulator that receives a current signal (i dq *) determined from a received torque command, information corresponding to a DC bus voltage, information corresponding to a motor speed, the feedforward direct-axis current information, and the feedforward quadrature-axis current information, and that generates a control signal based upon the received signal command (i dq *); and a power inverter controllably coupled to the current regulator that converts received DC power into AC power based upon the control signal generated by the current regulator. 
   According to yet another embodiment, a method for controlling a permanent magnet motor comprises computationally determining a direct-axis current feedforward table from a plurality of parameters associated with the permanent magnet motor; computationally determining a quadrature-axis current feedforward table from the plurality of parameters associated with the permanent magnet motor; determining a current command comprising a direct-axis current determined from the direct-axis current feedforward table and a quadrature-axis current determined from the quadrature-axis current feedforward table; and controlling a power inverter that converts DC power into AC power that is supplied to the permanent magnet motor, such that the permanent magnet motor is operated in accordance with the determined direct-axis current and the determined quadrature-axis current. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the drawings, identical reference numbers identify similar elements or acts. The sizes and relative positions of elements in the drawings are not necessarily drawn to scale. For example, the shapes of various elements and angles are not drawn to scale, and some of these elements are arbitrarily enlarged and positioned to improve drawing legibility. Further, the particular shapes of the elements, as drawn, are not intended to convey any information regarding the actual shape of the particular elements, and have been solely selected for ease of recognition in the drawings. 
       FIG. 1  is a schematic diagram of a torque feedforward compensation system implemented in an electric or hybrid vehicle. 
       FIG. 2  is a block diagram of an exemplary embodiment of a motor control system which converts direct current (DC) power into alternating current (AC) power to drive the motor. 
       FIG. 3  is a graph depicting the equations and boundaries defining an operating range for the feedforward controls based upon constant motor parameters. 
       FIG. 4  is a flow chart illustrating operating parameter calculations based upon the feedforward information of  FIG. 2 . 
       FIG. 5  is a graph illustrating exemplary stator inductance (L q ) values within the motor current range. 
       FIG. 6  is a flow chart illustrating a recursive calculation process employed by selected embodiments of the torque feedforward compensation system. 
       FIG. 7  is a graph depicting the equations and boundaries defining an operating range for the current signals based upon tested motor parameters. 
       FIG. 8  is an exemplary two-dimensional, graphical representation of the feedforward direct-axis current information, graphically represented as a three-dimensional surface. 
       FIG. 9  is an exemplary two-dimensional, graphical representation of the feedforward quadrature-axis current information, graphically represented as a three-dimensional surface. 
   

   DETAILED DESCRIPTION 
   In the following description, certain specific details are set forth in order to provide a thorough understanding of various embodiments. However, one skilled in the art will understand that the embodiments may be practiced without these details. In other instances, well-known structures associated with PM motors, controllers, microprocessors, and various electrical components have not been shown or described in detail to avoid unnecessarily obscuring descriptions of the embodiments. 
   Unless the context requires otherwise, throughout this specification and claims which follow, the word “comprise” and variations thereof, such as, “comprises” and “comprising” are to be construed in an open, inclusive sense, that is as “including, but not limited to.” 
   The headings provided herein are for convenience only and do not interpret the scope or meaning of the claimed invention. 
     FIG. 1  is a schematic diagram of a torque feedforward compensation system  100  implemented in an electric or hybrid vehicle  102 . The torque feedforward compensation system  100  provides, in part, control signals for operation of a permanent magnet (PM) traction motor  104  mechanically coupled to drive at least one wheel  106 . In the various embodiments, the motor  104  may be a permanent magnet (PM) traction motor, an interior permanent magnet (IPM) traction motor, or other suitably controllable electric motor. Further, such motors may be operable in a generation mode, such as during regenerative braking operations. 
   The vehicle  102  includes a DC power source  108 , for example, a battery, fuel cell system, and/or super-capacitor, which is electrically coupled to the motor  104  by way of a motor controller  110 , such as an analog circuit, digital circuit and/or programmed microprocessor. The motor controller  110  embodies control logic for supplying the torque and flux currents to the motor  104  in accordance with various algorithms generally discussed hereinbelow. 
   GLOSSARY OF SYMBOLS 
   The following symbols, related to a PM motor, appear in the description that follows:
         i d =direct-axis (d-axis) stator current   i q =quadrature-axis (q-axis) stator current   i dq =d-axis and q-axis current   i d *=direct-axis current signal   i q *=quadrature-axis current signal   i dq *=d-axis and q-axis current signal   L d =d-axis stator inductance   L q =q-axis stator inductance   P=number of pole pairs of the motor   p=operator indicating mathematical differentiation with respect to time   r s =stator resistance   T=PM motor generated airgap torque   T L =load torque   V DC =DC bus voltage   v o =operating motor voltage   V o =maximum motor voltage   λ ds =d-axis stator flux linkage   λ qs =q-axis stator flux linkage   λ PM =permanent magnet flux linkage   λ o =operating flux linkage   v ds =d-axis stator voltage   v qs =q-axis stator voltage   ω r =electric angular speed   θ rm =rotor mechanical speed   γ=flux linkage
 
Motor Control
       

     FIG. 2  is a block diagram of an exemplary embodiment of a motor control system  200  controlling the conversion of direct current (DC) power into alternating current (AC) power to drive the motor  104 . The exemplary embodiment of the motor control system  200  comprises a feedforward module  202 , a feedback module  204 , and a saturation control module  206 . 
   The feedforward module  202  comprises a torque limiter  208  and feedforward direct-axis and quadrature-axis current signal (i dq *) based upon the direct-axis and quadrature-axis information in feedforward table  210 . Feedforward i dq * determined signal from the feedforward direct-axis and quadrature-axis table  210  comprises a feedforward direct-axis signal (i d *) based upon the direct-axis table information  212  and a feedforward quadrature-axis signal (i q *) based upon the quadrature-axis table information  214 . The current signals i d * and i q * may be collectively referred to with the term i dq * for convenience. Similarly, the currents i d  and i q  may be collectively referred to as i dq  for convenience. This information is described in greater detail hereinbelow. 
   Feedback module  204  comprises a torque regulator  216 , a torque estimator  218 , a first summing junction  220 , and a second summing junction  222 . The torque estimator  218  receives the measured motor currents (i d  and i q ) and estimates motor torque (T est ). 
   An exemplary saturation control module  206  comprises a proportional integrator (PI) regulator  224 , a first summing junction  226 , a second summing junction  228 , a multiplier junction  230 , and division junctions  232 ,  234 . Other embodiments of the saturation control module  206  may be used by alternative embodiments of a motor control system  200 . Various possible implementation of the saturation control module  206  are known in the art and are not described in detail herein for brevity. 
   Other components of the motor control system  200  include a current regulator  236 , a first transformation function device  238 , a space vector modulation block  240 , a second transformation function device  242 , current transformers  246 ,  248 , and a power inverter  250 . The processes performed by these devices are described in greater detail hereinbelow with respect to at least their functionality within the operation of the torque feedforward compensation system  100 . In alternative embodiments, these components may be arranged in a different order, some components may be omitted, and/or other components (not shown) may be added. Implementation of such devices are known in the art and are not described in detail herein for brevity. 
   Various signals, such as actual motor input phase currents, motor rotor position/speed (θ rm  and/or ω r ), and DC bus voltage (V dc ), are sensed and processed by the motor control system  200 . Sensing the above-described signals and converting them into data formats suitable for use by the motor control system  200  is generically illustrated by the transformation function device  242 . Any suitable sensors or transducers may be used, such as the non-limiting, exemplary current transformers  246 ,  248 . In this exemplary embodiment, current transformers  246 ,  248  sense the AC current from the power inverter that powers the motor  104 , and thereby provide the inputs to the transformation function device  242 . Such sensors or transducers, and the associated information conversions performed by the transformation function device  242 , are well known and are not described herein for brevity. 
   Feedforward module  202  receives a torque command (T cmd ) signal. The torque command (T cmd ) signal corresponds to a desired operating function that is to be performed by motor  104 , such as acceleration of vehicle  102  ( FIG. 1 ). The torque command (T cmd ) signal is received by the summing junction  222  and combined with the output of the torque regulator  216 , described in greater detail below. The output T o  is provided to the feedforward direct-axis and quadrature-axis current information in feedforward table  210 , via the torque limiter  208  (described in greater detail below). 
   The feedforward direct-axis and quadrature-axis current information in feedforward table  210  is used to generate a current signal (i dq *), wherein the current signal i dq * includes i d * and i q * current signal components. The current command signals i dq * (control signals, i d * and i q *) are inputs into the current regulator  236  to operate the power inverter  250 . The power inverter control signals are generated by the current regulator  236 , the transformation function device  238 , the space vector modulation block  240 , and/or other components (not shown) associated with generating signals suitable for controlling power inverter  250 . The above-described current signals i dq *, i d *, and i q * may be alternatively referred to as signal commands i dq *, i d *, and i q * for convenience. 
   As noted above, feedback module  204  monitors input and output parameters of the motor  104  during operation. The transformation function device  238  receives information corresponding to the AC phase currents of the motor  104 , and determines the measured currents i d  and i q  therefrom. Information corresponding to the determined measured currents i d  and i q  is communicated to the torque estimator  218  and current regulator  236 . 
   The torque estimator  218  estimates torque output of the motor  104  in accordance with equation (5) below. Alternative embodiments may use other suitable torque estimation algorithms. Such known torque estimation algorithms are not described herein for brevity. Output to the torque estimator  218  (T est ) is communicated to the summing junction  220 . 
   First summing junction  220  sums the T cmd  and T est  signals, and determines an error signal (T err ) which is communicated to the torque regulator  216 . The torque regulator  216  output is summed with T cmd  at the second summing junction  222 , and the output T o  is provided to the torque limiter  208 . Accordingly, if the estimated torque is not at least substantially equal to the torque command (T cmd ), the feedback module  204  effects a correction so that the actual torque of motor  104 , as estimated by the torque estimator  218 , is modified to be substantially equal to the torque command (T cmd ). 
   Physical and/or electrical constraints of the motor  104 , such as limits on the power output and motor speed, and limits to the DC voltage on the DC bus  252 , effectively limit torque output of motor  104 . Limits to torque output are imposed by the torque limiter  208 , which limits torque to a predefined torque limit. In some embodiments, the torque limit may be a variable limit based upon operating conditions of the motor  104  and/or other components of the torque feedforward compensation system  100 . If the input T o  is less than a maximum output torque or torque limit, the output (T o ′) of the torque limiter  208  is equal to T o . However, if the input T o  is greater than or equal to the maximum output torque or torque limit, the output (T o ′) of the torque limiter  208  is limited to a torque limit (T lim ). Accordingly, output (T o ′) of the torque limiter  208  is the lesser of either the T o  from the second summing junction  222  or the torque limit (T lim ). 
   As described hereinbelow in greater detail, the feedforward direct-axis and quadrature-axis current information in feedforward table  210  is generated based on various parameters of motor  104 , the current limit curve  308  ( FIG. 3 ), the maximum torque per voltage (MTPV) curve  310 , and the peak torque per ampere (PTPA) curve  312 . The graph  212  is illustrated for convenience as a graphical representation of the direct-axis current feedforward current information, from which the signal i d * is determined. Similarly, the graph  214  is illustrated for convenience as a graphical representation of the quadrature-axis current feedforward information, from which the signal i q * is determined. 
   The feedforward information  212 ,  214  is conceptually illustrated as three-dimensional graphs for illustrative purposes and to conceptually describe operation of the various embodiments of the torque feedforward compensation system  100 . Feedforward information  212 ,  214  may be implemented as a predefined feedforward table or the like in preferred embodiments, may be implemented as real-time or near real-time algorithms in other embodiments, or may be implemented as the illustrated graphs in yet other embodiments. 
   It will be appreciated that the feedforward direct-axis current information  212  and the feedforward quadrature-axis current information  214  may be implemented in any suitable format and/or methodology. Information  212 ,  214  may reside in any suitable memory medium  254 . Information residing therein may be retrieved and executed by any suitable processor or processing system  256 , including state machines or the like, when the various operations are performed in accordance with the embodiments described herein. Such systems and methods for storing data, and the associated retrieving and processing of the information therein, are known and are not described herein for brevity. 
   Current regulator  236  receives the determined signal i dq * (d-axis and q-axis current signals), and currents i d  and i q  (current feedback). Current regulator  236  converts the information into a commanded voltage (V dq ). V dq  is based on a suitable motor model of motor  104 , and may be used for steady-state voltage output control. The PI regulator  224 , described in greater detail below, may be used for transient current regulation and steady state regulation due to parameter errors. Ideally in steady state, the PI regulator  224  output is close to zero, and the feedforward voltage output from the feedforward module  202  controls the motor  104  by providing the commanded torque/power, via V dq . 
   The saturation control module  206  also prevents output of current regulator  236  from deep saturation that would otherwise slow down the current/torque dynamic responses of the motor  104  and introduce harmonic distortion in the motor current and voltage. The PI regulator  224  regulates a modulation index to the commanded level at high motor speed when the voltage limit is reached. The output of the PI regulator  224  reduces the flux signal input to the feedforward direct-axis and quadrature-axis current information in feedforward table  210 , which shrinks the voltage ellipse (described in greater detail hereinbelow), and consequently, reduces the modulation index output. 
   Motor d-q Model 
   When the rotor of motor  104  rotates synchronously with an electrical angular speed ω r , the flux linkage and the voltage equation of motor  104  may be expressed as follows:
 
 v   ds   =r   s   i   ds   +pλ   ds −ω r λ qs   (1)
 
 v   qs   =r   s   i   qs   +pλ   qs +ω r λ ds   (2)
 
where
 
λ ds   =L   d   i   ds +λ PM   (3)
 
λ qs   =L   q   i   qs .  (4)
 
   The equation for electromagnetic motor torque may be expressed as follows:
 
 T   em =(3 P/ 2)(λ PM   i   q   +i   d   i   q ( L   d   −L   q ))  (5)
 
   L d  and L q  are stator d-axis and q-axis inductance, r s  is the stator resistance, λ PM  is permanent magnet flux linkage, and P is the number of pole pairs of the motor  104 . In one embodiment, the motor torque equation (5) is implemented in a processing system such that an estimated motor torque (T est ,  FIG. 2 ) is computationally determined on a real-time, or near real-time, basis, based upon the determined i d  and i q  of motor  104 . For example, i d  and i q  of motor  104  may be determined from input current sensed by current transformers  246 ,  248 . 
   Basic Equations and Boundaries 
   The following describes basic equations and boundaries relevant to defining or determining operation of various embodiments of the motor control system  200 . Description of the equations and boundaries are limited for brevity. An exemplary source of the basic equations and boundaries described herein may be found in “Design Analysis and Control of Interior PM Synchronous Machines,” Tutorial Course Notes, IEEE IAS, Oct. 3, 2004, which is incorporated herein by reference in its entirety. 
   Voltage Ellipse Equation 
   In steady state, the transient changes of the motor current can be ignored. Also, motor stator resistance in equation (1) and (2) can be ignored. Accordingly, the magnitude of the motor voltage (square for convenience) is:
 
 v   0   2   =v   ds   2   +v   qs   2 =ω r   2 ( L   q   2   i   qs   2 +( L   d   i   ds +λ PM ) 2 ).  (6)
 
   For a given DC bus voltage, V dc , the maximum output AC voltage is V 0 =2V dc /π. Therefore the voltage ellipse equation is: 
                         (       i   ds     +       λ   PM     /     L   d         )     2         (     γ   /     L   d       )     2       +       i   qs   2         (     γ   /     L   q       )     2         =   1           (   7   )               
where the flux linkage is γ=V 0 /ω.
 
   Current Limit Circle 
   Output current is limited by i max , 
   
     
       
         
           
             
               
                 
                   i 
                   max 
                   2 
                 
                 = 
                 
                   
                     i 
                     ds 
                     2 
                   
                   + 
                   
                     
                       i 
                       qs 
                       2 
                     
                     . 
                   
                 
               
             
             
               
                 ( 
                 8 
                 ) 
               
             
           
         
       
     
   
   Peak Torque Per Ampere (PTPA) Curve 
   For a given torque, T, the minimum current is the shortest distance from the torque curve to the origin. The peak torque per ampere (PTPA) curve is: 
   
     
       
         
           
             
               
                 
                   i 
                   d 
                 
                 = 
                 
                   
                     
                       λ 
                       PM 
                     
                     
                       2 
                       ⁢ 
                       
                         ( 
                         
                           
                             L 
                             q 
                           
                           - 
                           
                             L 
                             d 
                           
                         
                         ) 
                       
                     
                   
                   - 
                   
                     
                       
                         
                           λ 
                           PM 
                           2 
                         
                         
                           4 
                           ⁢ 
                           
                             
                               ( 
                               
                                 
                                   L 
                                   q 
                                 
                                 - 
                                 
                                   L 
                                   d 
                                 
                               
                               ) 
                             
                             2 
                           
                         
                       
                       + 
                       
                         i 
                         q 
                         2 
                       
                     
                   
                 
               
             
             
               
                 ( 
                 9 
                 ) 
               
             
           
         
       
     
   
   Maximum Torque Per Voltage (MTPV) Control 
   For a given flux linkage magnitude, |λ dq |=√{square root over (λ d   2 +λ q   2 )}, using the equations (3) and (4), i d  may be calculated as follows: 
                     i   d     =     -         λ   PM     +     λ   d         L   d           ,       i   q     =           λ   0   2     -     λ   d   2           L   q                 (   10   )               
To maximize the torque with respect to λ d ,
 
                   λ   d     =           -     L   q       ⁢     λ   PM       +           (       L   q     ⁢     λ   PM       )     2     +     8   ⁢       (       L   q     -     L   d       )     2     ⁢     λ   0   2               4   ⁢     (       L   q     -     L   d       )                 (   11   )               
Notice that for a given motor speed, ω r , and DC bus voltage, V dc , the flux linkage is:
 
   
     
       
         
           
             
               
                 
                   λ 
                   0 
                 
                 = 
                 
                   
                     
                       2 
                       ⁢ 
                       
                         V 
                         dc 
                       
                     
                     
                       π 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         ω 
                         r 
                       
                     
                   
                   . 
                 
               
             
             
               
                 ( 
                 12 
                 ) 
               
             
           
         
       
     
   
   Feedforward Current Information 
     FIG. 3  is a graph  300  depicting the equations and boundaries defining an operating range for the currents, i d  and i q , based upon an assumption of constant motor parameters. The operating region  302  corresponds to an exemplary operating range for the current i dq  for various commanded torque and flux linkage. Illustrated are exemplary torque curves  304   a - 304   c , a plurality of exemplary voltage ellipses  306   a - 306   c , an exemplary current limit (I Limit) curve  308 , an exemplary maximum torque per voltage (MTPV) curve  310 , and an exemplary peak torque per ampere (PTPA) curve  312 . Accordingly, the operating region  302  is bounded by the current limit curve  308 , the MTPV curve  310  and the PTPA curve  312 . 
   As noted in equation (7), if all the motor parameters are fixed (and presumed linear for purposes of  FIG. 3 ), then the ellipses are only parameter functions of the flux linkage γ=V 0 /ω. The center of the ellipses is at (−λ PM /L d , 0), and the semi-major and semi-minor axes are γ/L d  and γ/L q . 
   For every given torque, DC bus voltage, and motor speed,  FIG. 3  illustrates that there exist a torque curve and a voltage ellipse curve. The torque curve intercepts with the voltage ellipse and the boundaries, such as the PTPA curve, the MTPV curve, and the current limit circle.  FIG. 3  illustrates various currents i d  and i q  for the reference torque input (Newton-meters, Nm) and flux linkage level (Weber). The intersection points of the various curves illustrated in  FIG. 3  defining desirable operating parameters are calculated, and treated as follows:
         The torque curve has a single intersection with each of PTPA (id_t_ptpa, iq_t_ptpa) and MTPV (id_t_mtpv, iq_t_mtpv) curves.   If a proper torque range is specified, the torque range always has two intersection points with the current limit circle, except one point, which is the intersection point of PTPA and the current limit circle. At this point, the torque reaches its maximum. Among the two points, only the left side one (id_t_lim, iq_t_lim) is used for the feedforward current information determination.   Depending on the flux linkage input value, the torque curve can have one, two, or no intersection point(s) with the voltage ellipse. If the torque curve has only one intersection, from the definition of MTPV curve, the torque curve should meet the MTPV curve at the same time. If the torque curve has two intersection points, only the right side intersection point (id_t_v, iq_t_v) is used for the feedforward current information determination, because they are separated by the MTPV curve.   An additional intersection point, the intersection between MTPV and the PTPA (id_t_ptpa, iq_t_ptpa) curve will be used for the feedforward current information determination later.   Depending on the flux level, the voltage ellipses have one or no intersections with the current limit circle. In the case of one intersection with the current limit circle, it generates the current output limit, id_v_lim, for that specific flux level.       

   With the above definitions of the intersection points, the outputs from the feedforward direct-axis and quadrature-axis current information in feedforward table  210  should be inside the operating region  302 , as illustrated in  FIG. 3 . For example, the torque curve  304   a  and different voltage ellipses, bounded by the MTPV and PTPA curves, yield the outputs shown with “+” symbols  314 . 
   With respect to the quadrature-axis current i q  of the graph  300 , the voltage ellipses  306  and the voltage limit  308  are symmetric around the x-axis (direct-axis current i d ). Depending upon the operating conditions, the torque reference value can be either positive or negative. If the torque reference value is negative, the output from the feedforward direct-axis and quadrature-axis tables  210  would have a negative quadrature current i q  value. That is, if the commanded torque is negative, a negative sign for the quadrature current i q  results. In one embodiment, to simplify the calculations of the feedforward direct-axis and quadrature-axis tables  210 , only positive quadrature current i q  values are considered. 
     FIG. 4  is a flow chart  400  illustrating operating parameter calculations based upon the feedforward direct-axis and quadrature-axis current information  210  ( FIG. 2 ). The flow chart  400  shows the architecture, functionality, and operation of a possible implementation of software for implementing operation of the torque feedforward compensation system  100 . In this regard, each block may represent a module, segment, or portion of code that comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in  FIG. 4 , may include additional functions, and/or may omit some functions. For example, two blocks shown in succession in  FIG. 4  may in fact be executed substantially concurrently, the blocks may sometimes be executed in the reverse order, or some of the blocks may not be executed in all instances, depending upon the functionality involved, as will be further clarified hereinbelow. All such modifications and variations are intended to be included within the scope of this disclosure. 
   With respect to  FIG. 4 , the term “num_int” corresponds to the number of intersection points between a voltage ellipse  306  ( FIG. 3 ) and the commanded torque curve. The term “id” corresponds to the direct-axis current i d . The terms “mtpv” and “ptpa” correspond to the above-described MTPV curve  310  and the PTPA curve  312 , respectively. The term “t” corresponds to torque, the term “v” corresponds to a voltage ellipse  306 , the term “ffd” corresponds to a feedforward, and the term “lim” corresponds to the current limit circle  308 . 
   For example, the term “id_t_v” corresponds to the direct-axis current i d  at a point where torque intercepts the voltage ellipse. The term “id_t_ptpa” corresponds to the direct-axis current i d  at a point where torque intercepts the PTPA curve. Similarly, the term “id_t_mtpv” corresponds to the direct-axis current i d  at a point where torque intercepts the MTPV curve. 
   For a given DC bus voltage and motor speed, and therefore a given flux and commanded torque, the process starts at block  402 . The number of intersection points are checked at block  404 . If the number of intersection points at block  404  is one or zero (the No condition), the direct-axis current i d  is found at the intersection of the MTPV curve and the voltage ellipse at block  406 . When no intersection is found, the torque command is too large to produce. At this flux condition, the maximum torque that can be produced is at the same point where the voltage ellipse intersects with the MTPV curve. The resultant current i d  is the same as in the case of the intersection point. However, if at block  402  the number of intersection points is two (the Yes condition), the process proceeds to block  408 . 
   At block  408 , if the direct-axis current i d  at the point where torque intercepts the voltage ellipse is greater than or equal to a point for a direct-axis current i d  where torque intercepts the PTPA curve (the Yes condition), the process proceeds to block  410  where the direct-axis current i d  is found at the intersection of the torque curve and the PTPA curve. (In situations where the torque curve has two intersections with the voltage ellipse from the definition of the MTPV, the two points are separated by the corresponding MTPV line. Accordingly, for the same torque with the smaller current, id_t_v uses the point on the right side of MTPV.) However, if at block  408  the direct-axis current i d  at the point where torque intercepts the voltage ellipse is less than or equal to a point for the direct-axis current i d  where torque intercepts the PTPA curve (the No condition), the process proceeds to block  412 . 
   At block  412 , if the intersection of the torque and the voltage ellipse is greater than or equal to a point for a direct-axis current i d  where torque intercepts the MTPV curve (the Yes condition), the process proceeds to block  418 . If the intersection of the torque and the voltage ellipse is less than the point for the direct-axis current i d  where torque intercepts the MTPV curve (the No condition), the process proceeds to block  416 . 
   At block  416 , if the direct-axis current i d  at the point where torque intercepts the MTPV curve is greater than a point for a direct-axis current i d  where torque intercepts the current limit circle (the No condition), the process proceeds to block  420  where the direct-axis current i d  is found at the intersection of the torque curve and the MTPV curve. However, if at block  416  the direct-axis current i d  at the point where torque intercepts the MTPV curve is less than or equal to a point for the direct-axis current i d  where torque intercepts the current limit circle (the Yes condition), the process proceeds to block  422  where the direct-axis current i d  is found at the intersection of the torque curve and the current limit circle. 
   Returning to block  418 , if the direct-axis current i d  at the point where torque intercepts the voltage ellipse curve is less than or equal to a point for a direct-axis current i d  where torque intercepts the current limit circle (the No condition), the process proceeds to block  424  where the direct-axis current i d  is found at the intersection of the torque curve and the current limit circle. However, if at block  418  the direct-axis current i d  at the point where torque intercepts the voltage ellipse is greater than a point for the direct-axis current i d  where torque intercepts the current limit circle (the Yes condition), the process proceeds to block  426  where the direct-axis current i d  is found at the intersection of the torque curve and the voltage ellipse. 
   Of note, with the direct-axis current i d  determined in accordance with the process of  FIG. 4 , the quadrature-axis current i q  may be determined in accordance with equation (7) above. 
   The above process illustrated in  FIG. 4  is based on the assumption that the motor parameters are constant (linear). However, in reality, motor parameters are not constant. For example, machine inductances have a wide range of change with respect to different motor currents mainly due to the effects of saturation. 
     FIG. 5  is a graph  500  illustrating exemplary stator inductance (L q ) values within the motor current range. Similarly, L d  and λ PM  are also functions of the motor current. Depending on the ways of modeling the parameters of motor  104 , the parameters can be analytical functions of i d  and i q . Analytical functions could be nonlinear in some embodiments. The various parameters can alternatively be measured by experiments and saved in the form of lookup tables or the like in other embodiments. 
   When the motor parameters change over a wide range, close to 40% for L q  as shown in  FIG. 5 , the optimal curves and boundaries of  FIG. 3  may no longer be sufficiently accurate in some embodiments. In such situations, the outputs of the feedforward direct-axis and quadrature-axis current information in feedforward table  210  ( FIG. 2 ) are away from the ideal positions. That is, the motor  104  should operate inside the shaded area shown in  FIG. 3 . However, the actual outputs of the feedforward direct-axis and quadrature-axis current information in feedforward table  210  might be outside of the operating region  302 , or alternatively, the actual outputs of the feedforward direct-axis and quadrature-axis current information in feedforward table  210  could be inside of the operating region  302 , but away from the optimal operating points, if nonlinearities exist but are not considered. Operation away from the operating points within the operating region  302  may increase the burden of the current regulator  236 , may saturate the output of the current regulator  236 , and/or may cause operation in an unstable region. 
   Nonlinearity Effects 
   To accommodate the above-described parameter-varying situation, a recursive calculation process may be used by alternative embodiments for the outputs of the feedforward module  202 . Various embodiments may assume that the operating parameters of motor  104  can be characterized by analytical expressions, or may alternatively assume the operating parameters of motor  104  can be characterized in a lookup table or the like developed from experimental data. 
   Recursive calculations may be based upon the following, where f, g and w correspond to any suitable function operating on the direct-axis and quadrature-axis currents:
 
 L   d   =f ( i   d   ,i   q )
 
 L   q   =g ( i   d   ,i   q )
 
λ PM   =w ( i   d   ,i   q )  (13)
 
   The model parameters in equations (13) can be as simple as a single variable linear line, a quadratic function or an exponential function. Or, the model parameters can be more complicated, such as multivariable nonlinear functions or the like. The model parameters can also be the interpolation from lookup tables or the like whose data come from real motor testing experiments or simulations such as element analysis. 
     FIG. 6  is a flow chart  600  illustrating a recursive calculation process employed by selected embodiments of the torque feedforward compensation system  100 . The flow chart  600  shows the architecture, functionality, and operation of a possible implementation of software for implementing operation of the torque feedforward compensation system  100 . In this regard, each block may represent a module, segment, or portion of code that comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in  FIG. 6 , may include additional functions, and/or may omit some functions. For example, two blocks shown in succession in  FIG. 6  may in fact be executed substantially concurrently, the blocks may sometimes be executed in the reverse order, or some of the blocks may not be executed in all instances, depending upon the functionality involved, as will be further clarified hereinbelow. All such modifications and variations are intended to be included within the scope of this disclosure. 
   As shown in the flow chart in  FIG. 6 , starting from the default motor parameters for a given torque command, motor speed and DC bus voltage, the recursive calculation of the feedforward outputs follows the following steps. The process starts at block  602 , where defaults for L d , L q  and λ PM  are set. One set of feedforward outputs, i d  and i q , are calculated at block  604  as described above and illustrated in  FIG. 4 . Using equation (13), at block  606 , the motor parameters are calculated with the current outputs determined from block  604 . One set of feedforward outputs, as described in  FIG. 4 , with new motor parameters from block  606 , is calculated at block  608 . If the output errors are within tolerances at block  610  (the YES condition), optimal outputs are obtained at block  612 . If not (the NO condition), the process goes to block  614  to calculate new currents i d  and i q . It is appreciated that the above recursive calculations of the flow chart  600  apply to all the boundaries and curves illustrated in  FIG. 3 . 
   In some embodiments, the recursive calculations of  FIG. 6  are performed off-line as part of the process of computationally determining the feedforward direct-axis and quadrature-axis current information in feedforward table  210 . In other embodiments, the recursive calculations may be performed on-line as the feedforward direct-axis and quadrature-axis current information in feedforward table  210  are computationally determined in real time. 
   The above-described operating region  302  ( FIG. 3 ) was derived under an assumption of parameter linearity. That is, feedforward module  202  generates the above-described current signal (i dq *, which includes the ideal i d * and i q  current signal components). As described above, the determined current signals i d * and i q * components are ideal values since the motor parameters used to derive the feedforward direct-axis and quadrature-axis current information in feedforward table  210  were assumed to be constants. However, in practical applications, motor parameters are not linear and vary. 
   With experimentally measured (tested) motor parameters or computed motor parameters, the voltage ellipses  306  illustrated in  FIG. 3  are no longer “regular” ellipses as illustrated in  FIG. 3  (which are based upon theoretical models and theoretical constant motor parameters).  FIG. 7  is a graph depicting the equations and boundaries defining an operating range for the determined current signal (i dq *, which includes i d * and i q * signal components) when the feedforward direct-axis and quadrature-axis current information in feedforward table  210  is based upon at least a tested direct-axis stator inductance, a tested quadrature-axis stator inductance, and a tested permanent magnet flux linkage. The new operating region  702  is the counterpart for the constant parameter operating region  302  in  FIG. 3 . 
   Resultant Current Information 
     FIG. 8  is an exemplary two-dimensional, graphical representation  800  of the feedforward direct-axis current information, graphically represented as a three-dimensional surface  802  (corresponding to the graphical representation of the feedforward direct-axis current information  212  in  FIG. 2 ). Similarly,  FIG. 9  is an exemplary two-dimensional, graphical representation  900  of the feedforward quadrature-axis current information, graphically represented as a three-dimensional surface  902  (corresponding to the graphical representation of the feedforward quadrature-axis current information  214  in  FIG. 2 ). The graphical representation  800  of the feedforward direct-axis current information, and/or the graphical representation  900  of the feedforward quadrature-axis current information, may be based upon the information illustrated in  FIG. 3  in some embodiments, or upon the information illustrated in  FIG. 7  in other embodiments. 
   Embodiments of the torque feedforward compensation system  100  analytically generate the feedforward direct-axis current information for i d  and the quadrature-axis current feedforward information for i q  using torque and flux inputs and known motor parameters L d , L q  and λ PM . For example, the above-described voltage ellipse  306   a - 306   c  (see, for example, equation (6) and  FIG. 3 ), PTPA curve  312 , MTPV curve  310 , and torque curve  304  are computationally determinable. The motor parameters L d , L q  and λ PM  may be obtained from test data and/or theoretical (design) information. Accordingly, the operating region  302  is computationally determinable ( FIG. 3  indicates the operating region  302  is bounded by the current limit circle  308 , the MTPV curve  310 , and the PTPA curve  312 ). Based upon actual operating conditions, the operating points (i d  and i q ) can be optimized or selected by the torque feedforward compensation system  100  for a specified torque command (T cmd , see  FIG. 2 ), DC bus voltage, and motor speed. In contrast, prior art feedforward tables were derived from a tedious, experimental testing of the motor over many thousands of operating points that include different motor speeds, voltage levels, currents, and torques. 
   Torque Regulator and Torque Regulator Limits 
   Feedforward control effected by embodiments of the torque feedforward compensation system  100  improves the motor control dynamic response. Due to the uncertain nature of the above-described motor parameters, feedforward control may contain steady-state errors. The torque regulator  216  is used in alternative embodiments to dynamically regulate the torque. At each motor speed and given DC bus voltage, torque is also limited by the MTPV curve equations (11) and (12), and by the maximum current limit circle equation (8). The torque limit should not be higher than the maximum torque specified for motor output. Accordingly, the actual torque limits are the intersections between the commanded torques and MTPV curves, and between the commanded torques and the current limit circle. Therefore, when the motor is asked for more torque than it can deliver, the torque limiter  208  will limit the actual torque command and prevent the motor from going into an unstable region of operation. 
   The above-described parameters used to generate the feedforward direct-axis and quadrature-axis tables  210  ( FIG. 2 ) may not be accurate for the actual operating conditions for a variety of reasons. For example, the parameters may be based upon a representative test machine. Or, the parameters may change under different operating conditions (as contrasted with the parameter determined at a particular operating condition) or change over time. Since the outputs of the feedforward direct-axis and quadrature-axis tables  210  may not be accurate for a particular machine and/or for an actual operating condition, the torque output may be away from the commanded torque. Embodiments of the regulator  216  correct the above-described error and provides a new compensated input signal, T o , to the feedforward direct-axis and quadrature-axis tables  210 . That is, the inaccuracies of the parameters are dynamically compensated. 
   Saturation Control 
   The outputs of the feedforward direct-axis and quadrature-axis current information in feedforward table  210  ( FIG. 2 ) not only generate optimal current commands, they also push the motor output to its maximum boundaries when the motor  104  is operated at high speed. This will send the PWM output into deep saturation, or into six-step mode. In such situations, depending on the current regulator outputs, saturation effects may slow the current/torque dynamic responses and introduce harmonics for the motor  104 . To prevent the deep saturation in steady state operating conditions, a saturation control module  206  is used. The modulation index output, Mi, is compared with the steady state modulation index reference, Mi_ref, and is controlled by a PI regulator  224 . If the PWM output tends to go to deep overmodulation, the output of the saturation control module  206  will reduce the flux input, γ, to the feedforward direct-axis and quadrature-axis current information in feedforward table  210 . Accordingly, the voltage ellipse, as shown in  FIG. 3 , will be reduced. As a result, the output voltage and the PWM modulation index will be reduced. Therefore, the motor current regulator  236  will stay out of deep saturation. 
   When the modulation index is regulated below 100 percent, the actual output power of the motor  104  is reduced. To provide high power output for a fast motor transient response, the saturation control module  206  runs at a slower rate so that it only controls the steady state modulation output. Accordingly, during transients, the current regulator  236  can still go into deep saturation and produce maximum output power for fast dynamic responses. 
   ALTERNATIVE EMBODIMENTS 
   Although specific embodiments of, and examples for, the torque feedforward compensation system  100  are described herein for illustrative purposes, various equivalent modifications can be made without departing from the spirit and scope of the disclosure, as will be recognized by those skilled in the relevant art. 
   The teachings provided herein of the various embodiments can be applied to other motor control systems in addition to the torque feedforward compensation system  100  generally described above. For example, the torque feedforward compensation system  100  may be embodied in software, hardware, and/or firmware. Additionally, or alternatively, many of the methods and processes described above may include optional acts or steps, and additional acts or steps may be added as will be recognized by those skilled in the relevant arts. Further, the acts or steps of many of the methods and processes described above may be executed in a different order, as will be recognized by those skilled in the relevant arts. The torque feedforward compensation system  100  can have a different organization than the illustrated embodiment, combining some functions and/or eliminating some functions. 
   These and other changes can be made in light of the above-detailed description. In general, in the following claims, the terms used should not be construed to be limiting to the specific embodiments disclosed in the specification and the claims, but should be construed to include all possible embodiments along with the full scope of equivalents to which the claims are entitled. Accordingly, the embodiments are not limited by the disclosure, but instead its scope is to be determined entirely by the following claims.