Methods and apparatus for generating current commands for an interior permanent magnet (IPM) motor

In one aspect, an apparatus includes a motor and inverter configured to provide input power to the motor. The apparatus may also include a data store comprising at least one entry including a first torque command, a first motor speed, and a first DC voltage value, where the first torque command and the first motor speed and the first DC voltage value are associated with a first current output and a processor. The processor receives a torque input, a DC voltage input, and a motor speed input and identifies the current output associated with the torque input, the DC voltage input, and the motor speed input based on another motor speed different than the motor speed input and another DC voltage different than the DC voltage input and the motor speed input, and output the determined current output to cause the inverter to provide the input power to the motor.

BACKGROUND

Field of the Invention

This disclosure relates to methods, systems, and apparatus of driving a motor, and more particularly, to methods for accurately generating current output commands when operating in a field-weakening region of the motor based on a reduced number of look-up tables.

Description of the Related Art

Electric motor control systems often involve the generation and storage of a plurality of data points for given input signals and corresponding output commands or values to select based on the input signals. In some embodiments, the data points may be stored in a data store, which may be conceptually formed as one or more lookup tables each corresponding to a particular DC input voltage (such as from a battery) to an inverter that generates 3-phase AC voltage inputs to the motor. In some implementations, a lookup table may exist for given increments of DC inverter input voltage through the voltage range of the DC inverter input that may be encountered during use of the motor. Each lookup table may be populated with a two-dimensional array of output current commands that control the inverter. Along one axis of each lookup table is a torque command value (e.g. a desired torque designated by the user of the motor), while along the other axis of each lookup table is a motor speed input (e.g. the rotation rate of the motor that exists at the time the torque command is received). Accordingly, the output current commands may correspond to a necessary command current in order to produce the torque command given a particular existing motor speed input and DC inverter input voltage.

The output current commands populating each lookup table may correspond to the particular values of voltage input, motor speed input, and torque command input. For example, at 50V, a motor speed input of 5000 RPM and a torque command input of 100 Nm may produce currents P1, whereas if the inverter input is 100V, the same motor speed and torque command inputs may produce currents P2, where currents P1and P2are different. The more lookup tables that exist (e.g., the more voltages that have associated lookup tables), the more accurate or granular the output current commands can be. If the DC inverter input voltage is a voltage that is between two voltages for which lookup tables are available, a linear interpolation process may be used to produce a current command output that is appropriately also between two lookup table entries in the higher and lower DC input voltage tables adjacent to the actual DC inverter input voltage.

However, this linear interpolation process may not be possible to accurately perform given the lookup tables in memory at high motor speeds and/or high torque command input. Additionally, creating these lookup tables takes substantial time and effort as they are based on experimental measurements made during motor testing.

SUMMARY OF THE INVENTION

The systems, methods, and apparatus of this disclosure each have several innovative aspects, no single one of which is solely responsible for the desirable attributes disclosed herein.

One innovative aspect of the subject matter described in this disclosure can be implemented in an apparatus. The apparatus comprises a motor, an inverter configured to provide input power to the motor, and a DC power bus configured to provide input power to the inverter. The apparatus further comprises a data store comprising information defining inverter currents for producing different motor torque outputs at different motor speeds and different DC power bus voltages. The apparatus also comprises a processor. The processor is configured to receive a torque command, a DC power bus voltage measurement, and a motor speed measurement. The processor is further configured to determine, using the data store, an inverter current command based at least in part on the torque command, the DC power bus voltage measurement, and the motor speed measurement, wherein the determining is further based at least in part on a motor speed value different than the motor speed measurement and a DC power bus voltage value different than the DC power bus voltage measurement. The processor is also further configured to control the inverter based at least in part on the determined inverter current command.

Another innovative aspect of the subject matter described in this disclosure can also be implemented in a method of controlling torque output by a motor in accordance with torque commands. The method comprises storing information defining inverter currents for producing different motor torque outputs at different motor speeds and DC power bus voltages in a data store. The method also comprises receiving a torque command, a DC power bus voltage measurement, and a motor speed measurement. The method further comprises determining, using the stored information, an inverter current command based at least in part on the torque command, the DC power bus voltage measurement, and the motor speed measurement, wherein the determining is further based at least in part on a motor speed value different than the motor speed measurement and a DC power bus voltage value different than the DC power bus voltage measurement. The method further also comprises controlling an inverter based at least in part on the determined inverter current command.

Another innovative aspect of the subject matter described in this disclosure can also be implemented in an apparatus An apparatus for controlling torque output by a motor in accordance with torque commands. The apparatus comprises means for driving, means for providing power to the driving means, and means for providing input power to the power providing means. The apparatus also comprises means for storing information that defines inverter currents for producing different motor torque outputs at different motor speeds and DC power bus voltages and means for receiving a torque command, a DC power bus voltage measurement, and a motor speed measurement. The apparatus further comprises means for determining, using the stored information, an inverter current command based at least in part on the torque command, the DC power bus voltage measurement, and the motor speed measurement, wherein the determining is further based at least in part on a motor speed value different than the motor speed measurement and a DC power bus voltage value different than the DC power bus voltage measurement. The method also further comprises means for controlling the storing means based at least in part on the determined inverter current command.

DETAILED DESCRIPTION

The following description is directed to certain implementations for the purposes of describing the innovative aspects of this disclosure. However, a person having ordinary skill in the art will readily recognize that the teachings herein can be applied in a multitude of different ways. The described implementations may be implemented in any device, apparatus, or system that can be configured to drive an IPM, or similar, motor, whether in motion or stationary. More particularly, it is contemplated that the described implementations may be included in or associated with a variety of IPM or similar motor applications such as, but not limited to: electric pumps, electric vehicles, appliances, and a variety of electric motor driven devices. Thus, the teachings are not intended to be limited to the implementations depicted solely in the Figures, but instead have wide applicability as will be readily apparent to one having ordinary skill in the art.

Various industries and applications commonly use closed loop current control to regulate motor torque in high performance motor drives. Closed loop current control systems may respond to constantly changing conditions in the system operating environment. For example, when driving electric motors, the closed loop current control systems may provide for continual monitoring and control over operation of the electric motor via feedback and various conditions monitoring. The closed loop current control systems may automatically adjust inputs and aspects of the system to maintain desired states.

A plurality of lookup tables in memory may store current commands based on maximum torque per amp (MTPA) for the IPM motor drive system. In some embodiments, the memory may comprise a data store, within which the various data entries may be formatted or structured in the lookup tables. Initial testing processes may generate the lookup tables. The inputs to the lookup tables may be torque command, measured DC voltage, and measured motor speed. The output of the lookup table may be the current commands used to drive the IPM motor drive system (for example, (id, iq) current values). The current commands may correspond to the voltages that are input to an inverter for driving the motor. Each lookup table may correspond to a different voltage, where the voltage corresponds to a DC voltage bus measurement at the inverter that drives the motor. The initial testing processes may generate the lookup tables by operating the IPM motor drive system at each of the torque command inputs and motor speed inputs of the lookup table for each voltage, varying the voltage within a range of available voltages for the IPM motor drive system to generate the plurality of lookup tables for each varied voltage within the range of available voltages.

In operation of the IPM motor drive system, when the torque command is received (for example, based on a desired acceleration, etc.), along with the measured DC voltage and the motor speed, the appropriate lookup table is selected from the plurality of lookup tables based on the measured DC voltage (e.g., when the measured DC voltage is 100V, the 100V lookup table is selected). The system then uses the torque command and the measured motor speed within the selected lookup table to identify (e.g., lookup) the current commands to be output to the IPM motor drive system. Examples of two lookup tables are shown in Tables 1 and 2 below. When the measured DC voltage is 100V, the torque command is 75, and the motor speed is 125, the Table 1 lookup table will be selected and will output (id5, iq5). If the measured DC voltage is 150V, the torque command is 100, and the motor speed is 130, the Table 2 lookup table will be selected and will output (id19, iq19). The current command has two components, an idcomponent and an iqcomponent.

FIG. 1shows a block diagram of an exemplary motor drive control system, such as that used in an internal permanent magnet (IPM) motor drive system. The IPM motor drive system100may include various components or representative components, such as MTPA lookup tables (lookup tables)102, current regulator104, 2-to-3-phase converter106, pulse width modulated (PWM) inverter108, IPM motor110, position sensor112, speed detector114, 3-to-2-phase converter116, voltage meter118, torque command input120, position feedback122, motor speed feedback124, 3-phase current feedback126, 2-phase current feedback128calculated from the 3-phase measured current values, DC voltage measurement130, and output current commands132. In some embodiments, the DC voltage measurement130corresponds to the DC voltage bus measurement at the inverter108. The output current commands132are shown inFIG. 1having two values (i*ds, i*qs); however, for simplicity, the two values of the output current commands132will be referred to herein as a single output current command132. The lookup tables102may correspond to the lookup tables described above in relation to Tables 1 and 2 and may have the torque command input120, the motor speed feedback124, and the DC voltage measurement130as inputs. Accordingly, the appropriate lookup table102may be selected from the plurality of lookup tables102based on the DC voltage measurement130, and the appropriate lookup table102may be used to identify the output current command132based on the torque command input120and the motor speed feedback124. The output current command132may feed to the current regulator104, which may feed a corresponding voltage to the 2-to-3-phase converter106based on the DC voltage measurement130and the 2-phase current feedback128.

The 2-to-3-phase converter106can convert the 2-phase voltage signal output by the current regulator104to a three-phase voltage signal to be fed to the PWM inverter108, which can output a generated three-phase AC voltage to the IPM motor110. In some embodiments, the PWM inverter108may be connected to a DC voltage bus, which may provide input power to the PWM inverter108. The position sensor112can generate the position feedback122, which the speed detector114can use to generate the motor speed feedback124. The 3-to-2-phase converter can use the position feedback122when converting the three-phase current feedback126to the two-phase current feedback128, and the 2-to-3 phase converter can use the position feedback122when converting the two-phase output voltage from the current regulator104to the three-phase voltage input to the PWM inverter108. The voltage meter118can generate the DC voltage measurement130at the PWM inverter108. The PWM inverter108can convert the three-phase DC voltage received from the 2-to-3 phase converter to a three-phase AC voltage that powers the IPM motor110. The lookup tables102and the current regulator104can both use the DC voltage measurement in identifying the output current command132and the conversion of the output current command to output voltages, respectively. Detailed operation of the functional blocks of the IPM motor drive system100is known in the art, and need not be described in detail.

As described above, a processor (not shown inFIG. 1) may use the lookup tables102to identify the output current command132given the torque command input120, the DC voltage measurement130, and the motor speed feedback124. The processor may select the lookup table102that corresponds to the DC voltage measurement130when the DC voltage measurement is received with the command torque input120and the motor speed feedback124. However, there may be instances when there is no lookup table102corresponding exactly to the DC voltage measurement130. For example, the DC voltage measurement130may be 353V and there may only be lookup tables102for 350V and 355V. Accordingly, the processor may calculate by interpolation the output current command132for the DC voltage measurement130based on corresponding values in the existing 350V and 355V lookup tables102.

When interpolating the output current command132based on lookup tables102corresponding to voltages that bound the DC voltage measurement130(Vmeas), the processor can first select the necessary lookup tables. The processor may select a first lookup table from the plurality of lookup tables102that bounds the Vmeason the low side (e.g., the lookup table for a first voltage lower than the Vmeashaving a lookup table) and a second lookup table that bounds the Vmeason the high side (e.g., the lookup table for a first voltage higher than the Vmeashaving a lookup table). Accordingly, for the example described above, the processor may select the first lookup table for Vlow, where Vlow=350V, and the second lookup table for Vhigh, where Vhigh=355V. Accordingly, Vlow<Vmeas<Vhigh. The interpolation may proceed by the processor first identifying Idlowin the first lookup table (Vlow) based on the torque command input120(Tcmd) and the motor speed feedback124(ωr), and then identifying Idhighin the second lookup table (Vhigh) based on the torque command input120Tcmdand motor speed feedback124ωr. The processor then uses Equation 1 below to interpolate the output current command132Idmeascorresponding to the DC voltage measurement130(Vmeas):
Idmeas=Idlow+(Idhigh−Idlow)*(Vmeas−Vlow)/(Vhigh−Vlow)  (Equation 1)

The linear interpolation described above is applicable for any situations where the torque command input120(Tcmd) exists in both lower and higher (Vlowand Vhigh, respectively) lookup tables in relation to the DV voltage measurement130. For example, the linear interpolation described would provide accurate current outputs for DC voltage measurements130within a constant torque region of the IPM motor. However, in some situations, the output current command132for a given torque command input120may only exist in a single lookup table (e.g., the second lookup table for Vhigh) because the torque command input120may be greater than the maximum torque for the Vlowlookup table at the motor speed feedback124. Accordingly, interpolation becomes less feasible and more error prone because only one lookup table can be used to source the necessary values for Equation 1.

FIG. 2ashows a graph including motor torque curves for the IPM motor drive system at a plurality of voltages including both the constant torque and field weakening regions. The graph200depicts motor torque curves for the IPM motor110(FIG. 1) at the DC voltages Vlow(Tmax_low206), Vmeas(Tmax_meas208), and Vhigh(Tmax_high210). The x-axis of the graph200depicts the motor speed (ωr) of the IPM motor110, corresponding to the motor speed feedback124ofFIG. 1, while the y-axis of the graph200depicts the torque command (Tm)120of the IPM motor110, corresponding to the torque command120ofFIG. 1. The graph200also shows a constant torque region202, where the Vlow, Vmeas, and Vhighvoltages are capable of generating the same maximum torque command values at the same motor speeds. The graph200also shows a field weakening region204, where the Vlow, Vmeas, and Vhighvoltages may generate different maximum torque command values at the same motor speeds.

FIG. 2bshows a first lookup table (Vlow) of output current command values roughly corresponding to the Vlowmotor torque curve ofFIG. 2a. The lookup table250shows a two dimensional array of output current commands (corresponding to the output current commands132ofFIG. 1) having along one axis torque command (Tm) values and along the other axis motor speed (ωrr) inputs. The torque command axis ranges from 0 to τmaxwhile the motor speed axis ranges from 0 to ωmax. Empty locations252correspond to torque command and motor speed combinations for which the corresponding voltage Vlowcannot generate the necessary output current command (e.g., the torque command120cannot be generated at the voltage Vlowand the motor speed feedback124). Filled locations254correspond to torque command and motor speed feedback combinations at which the corresponding Vlowcan generate the necessary output current command (e.g., the torque command120can be generated at the voltage Vlowand the motor speed feedback124). As shown, the lookup table250depicts a more granular motor torque curve than the graph200ofFIG. 2afor the VlowDC voltage.

FIG. 2cshows a second lookup table (Vhigh) of output current command values roughly corresponding to the Vhighmotor torque curve ofFIG. 2a. The features of lookup table280are similar to those described in relation to the lookup table250ofFIG. 2band will not be described again. As shown, the lookup table280depicts a more granular motor torque curve than the graph200ofFIG. 2afor the VhighDC voltage, where the current command values of the Vlowlookup table250ofFIG. 2bare each covered by the Vhighlookup table280.

When the torque command input120is less than the Tlow_maxat the measured voltage (correspondingly less than the Thigh_max), the interpolation methods described above in relation to Equation 1 may function when a lookup table does not exist for Vmeas, so long as both the lookup tables250and280for the Vlow and Vhigh, respectively, include a value254for the combination of torque command input120and motor speed ωr. For example, at the points218(FIG. 2a) corresponding to Tcmd1and Tcmd2and ω1and ω2, respectively, the torque command inputs120exists in both the Vlowand the Vhighlookup tables, and thus the processor may use the Vlowand Vhighlookup tables to interpolate the output current command132for Vmeas, where Vlow<Vmeas<Vhigh. The points218inFIG. 2acorrespond to the locations256inFIGS. 2band 2c. Since the locations256are filled in both the lookup tables250and280, the processor may use interpolation to determine the output command current at for the torque command Tcmd, DC voltage measurement Vmeas, and motor speed ωr(because the output current command exists at these locations for both the lookup tables250and280).

However, in the field weakening region204, for example for a point212(FIG. 2a) at a commanded torque value Tcmd, the torque command does not exist in the Vlowlookup table for the speed ωr. Similarly, the location258inFIG. 2bis empty in the lookup table250(corresponding to Vlow) and filled in the lookup table280ofFIG. 2c(corresponding to Vhigh). Accordingly, since the point212(location258ofFIGS. 2band 2c) is outside the motor torque curve of the Vlow(e.g., Tcmdexceeds the maximum torque (Tmax_low214) at the VlowDC voltage and the location258is empty) the processor cannot use linear interpolation to identify the output current command for the torque command Tcmd, DC voltage measurement Vmeas, and motor speed ωr. Accordingly, an alternate method of determining the output current command132for the point212(location258) must be used.

FIG. 3shows a graph including constant torque curves, current constraints of the IPM motor drive system and voltage constraints of the IPM motor drive system. The graph300shows current and voltage polar plots in d-q coordinate space. The graph300shows an idsaxis in the x-axis direction and an iqsaxis in the y-axis direction. The graph300also shows a circular polar plot (circular plot)302which represents a current constraint of the IPM motor drive system. The graph300shows elliptical polar plots (elliptical plots)304,306, and308representing voltage constraints of the IPM motor drive system. Torque lines310represent individual torque commands corresponding to different idsand iqsvalues that will generate the corresponding torque values. The torque along each of these torque lines310is constant. Point(s) of intersection and overlap of the elliptical plots304,306, and308and the torque lines310indicate that the voltages and speeds corresponding to the elliptical plots304,306, and308are capable of generating output current commands for the torque commands of the overlapping torque lines310. The torque lines310correspond to the torque commands120(TcmdofFIG. 1), the voltages of the elliptical plots304,306, and308correspond to the voltages of the lookup tables and the DC voltage measurement130(Vlow, Vhigh, VmeasofFIG. 2), and the speed corresponds to the motor speed feedback124(FIG. 1).

The voltage determination equations of an IPM synchronous motor in a standard (d,q) state-space mathematical model reference frame are shown below in Equations 2. Equation 3 below calculates a torque of the same reference frame:

For these equations, Rscorresponds to the stator resistance, ωeis rotational speed of the electric motor, npis number of pole pairs, Vdsand Vqsare d-axis and q-axis stator voltages, respectively, idsand iqsare d-axis and q-axis stator currents, respectively, and Ldsand Lqsare the stator inductances in the d- and q-axes rotor reference frame, respectively. λfcorresponds to a permanent magnet flux linkage (e.g., torque constant) and T corresponds to the motor torque.

A d-q set of axes referenced are the axes in a (d,q) coordinate system. The d-axis (the direct axis), generally corresponds to an axis of a rotor magnet pole. The q-axis, (the quad axis), generally includes the axis at an angle of 90 degrees from the d-axis. When the rotor is stationary, the (d,q) coordinate system is a stationary reference frame. When the rotor starts rotating, the system is a rotor reference frame where the (d,q) coordinate system rotates at the rotor speed.

At steady state, the derivatives of Equations 2 are zero and the Equations 2 simplify to form Equations 4 below:
Vds=Rsids−ωeLqsiqs
Vqs=Rsiqs+ωeLdsids+ωeλf(Equations 4)

Voltage and current ratings of the IPM motor and the PWM inverter may limit torque and speed of IPM motor controlled by the PWM inverter. The maximum phase voltage Vs_maxmay be determined based on the DC link voltage and may be calculated according to Equation 5 below:
Vds2+Vqs2≦Vs_max2(Equation 5)
Thus, the maximum phase voltage Vs_maxmay correspond to the total voltage from the combination of the Vdand Vqvoltages.

The maximum current Is_maxavailable to the IPM motor and the PWM inverter limits the current of the inverter and the motor, shown by Equation 6.
ids2+iqs2≦Is_max2(Equation 6)
Thus, the maximum phase current is_maxmay correspond to the total current from the combination of the idand iqcurrents.

Equations 4 may be inserted into Equation 6, and the stator resistance can generally be neglected in field-weakening regions and calculations where the rotational speed is high. Accordingly, Equation 7, which produces the voltage constraints, reduces as follows:

The Vds2term of Equation 5 is replaced with the Vdsequation of Equations 4, while the Vqs2term of Equation 5 is replaced with the Vqsequation of Equations 4. The Vs_max2term on the right-hand side of the Equation 7 now depicts a ratio of maximum phase voltage and speed. The resulting ratio of the maximum phase voltage and speed may be replaced with various combinations of other voltages and speeds. FromFIG. 3described above, the point Tm2corresponds to the current (id, iq) needed to generate the torque line310aat the DC voltage measurement130Vmeasat the motor speed ωr. As shown, the ellipse308(corresponding to Vhigh, ωr) is larger than the ellipse306(corresponding to Vmeas, ωr), which is larger than ellipse304(corresponding to Vlow, ωr). The ellipse308may be adjusted to match the ellipse306by either reducing the voltage Vhighand maintaining the speed CO, or maintaining the voltage Vhighand increasing the speed ωrbased on the voltage ellipse equations. Accordingly, the ωhighcan be calculated based on known Vmeas, Vhigh, and ωrvia Equation 8 below, which comes from the voltage ellipse equations:

Accordingly, because the voltage constraint ellipse for Vmeasand ωris the same size as the voltage ellipse for Vhighand ωhigh, Equation 9 below may be generated from Equations 7 and 8:

Lds2⁡(ids+λfLds)2+Lqs2⁢iqs2≤(Vmeasnp⁢ωr)2=(Vhighnp⁢ωhigh)2(Equation⁢⁢9)
Thus, the output current command at Vmeasmay be determined based on the output current command at Vhighfor a higher speed ωhighthan ωrfor the same torque command.

Similarly, as the ellipse304may be adjusted to match the ellipse306by either increasing the voltage Vlowand maintaining the speed ωlowor maintaining the voltage Vlowand decreasing the speed ωlowbased on the voltage ellipse equations, the output current command at Vmeasmay be determined based on the output current command at Vlowfor a lower speed ωlowthan ωrfor the same torque command. Accordingly, the ωlowcan be calculated based on known Vmeas, Vlow, and ωrvia Equation 10 below, which also comes from the voltage ellipse equations:

Accordingly, because the voltage constraint ellipse for Vmeasand ωris the same size as the voltage ellipse for Vlowand ωlow, Equation 11 below may be generated from Equations 7 and 10:

FIG. 4ashows a graph including motor torque curves for the IPM motor drive system at a plurality of voltages indicating current lookup using an extrapolated motor speed. The graph400includes many of the same features as graph200ofFIG. 2that will not be described again here. The graph400includes the point212at Tcmdand ωr. Based on the discussion above, since the point212is above the Tmax_lowtorque curve214for the Vlowlookup table, interpolation will not result in an accurate output current command for the given DC voltage measurement and motor speed feedback. However, using Equations 7 and 8 discussed above, the Vhighlookup table may be used to determine the output current commands at the Vhighvoltage, ωhighmotor speed, and torque command Tcmd. Point420depicts the point at Vhighhaving the speed ωhighand the same torque command Tcmd. Accordingly, the Vhighlookup table may be used with the speed ωhighand the torque command Tcmdto identify the output current commands which, as shown by Equation 9 above, equates to the output current commands for the Vmeasat the speed ωr. Similarly, using Equations 10 and 11 discussed above, the Vlowlookup table may be used to determine the output current commands at the Vlowvoltage, ωlowmotor speed, and torque command Tcmd. Point422depicts the point at Vlowhaving the speed ωlowand the same torque command Tcmd. Accordingly, the Vlowlookup table may be used with the speed ωlowand the torque command Tcmdto identify the output current commands which, as shown by Equation 11 above, equates to the output current commands for the Vmeasat the speed ωr.

FIG. 4bshows a first lookup table (Vhigh) of output current command values roughly corresponding to the Vhighmotor torque curve ofFIG. 4aand showing the extrapolated motor speed for Vhighthat corresponds to the Vmeasand ωr. The lookup table480can include many of the same features as lookup table280ofFIG. 2that will not be described again here.FIG. 4bshows how the Vhighlookup table may be used to determine the output current command for the Vmeas, ωr, and Tcmdinputs where interpolation is not an option, as described above in relation to Equations 7-9. As noted above, given Equation 8, Vmeas, ωr, and Vhighmay be used to identify the speed ωhigh. Because the voltage constraint ellipse formed by the Vhigh, ωhighwill directly overlap with the voltage constraint ellipse formed by Vmeas, ωr, the output current command at Vhigh, ωhighis equal to the output current command at Vmeas, ωr. Accordingly, the output current command of location460of the Vhighlookup table (Vhigh, ωhigh) is equal to the output current command of (Vmeas, ωr) for the torque command Tcmd.

FIG. 4cshows a second lookup table (Vlow) of output current command values roughly corresponding to the Vhighmotor torque curve ofFIG. 4aand showing the extrapolated motor speed for Vlowthat corresponds to the Vmeasand ωr. The lookup table450can include many of the same features as lookup table250ofFIG. 2that will not be described again here.FIG. 4cshows how the Vlowlookup table may be used to determine the output current command for the Vmeas, ωr, and Tcmdinputs where interpolation is not an option, as described above in relation to Equations 10-11. As noted above, given Equation 10, Vmeas, ωr, and Vlowmay be used to identify the speed ωlow. Because the voltage constraint ellipse formed by the Vlow, ωlowwill directly overlap with the voltage constraint ellipse formed by Vmeas, ωr, the output current command at Vlow, ωlowis equal to the output current command at Vmeas, ωr. Accordingly, the output current command of location440of the Vlowlookup table (Vlow, ωlow) is equal to the output current command of (Vmeas, ωr) for the torque command Tcmd.

While the methods and apparatus for generating current commands for an interior permanent magnet (IPM) motor described above are discussed in relation and applicability to the field weakening region of the IPM motor, these same methods and apparatus function similarly in the constant torque region of the IPM motor. Accordingly, the current command identification within the constant torque region of the IPM described as currently being performed using lookup tables may instead be performed using the current command generation equations described above. Instead of interpolating the current commands as described by Equation 1 above, the current commands may instead by identified using Equations 9 and 11.

Use of Equations 9 and 11 to generate the current commands may reduce the number of lookup tables required. Reducing the number of lookup tables reduces the amount of memory dedicated to lookup tables, the time required to perform the initial testing processes used to generate the lookup tables, and the amount of time required to identify the current using the lookup tables, as less time is spent identifying appropriate lookup tables, etc. In some embodiments, the lookup tables stored in the memory may be replaced with two lookup tables, one for the lowest possible minimum voltage for the system and one for the highest possible maximum voltage for the control system. Based on these two lookup tables, the control system may generate the current commands for any voltage between the minimum and maximum voltages using Equations 9 and 11. The methods discussed herein may work for the entire torque speed range. In some embodiments, the lookup tables stored in the memory may be replaced with a single lookup table, for example at the maximum or minimum voltage for the control system. From the single lookup table, the Equations 7-9 or 10-11 may be used to identify the current commands for any DC voltage measurements. As discussed above, the output current command (ids, iqs) is ideal, estimated values identified during initial testing processes. Accordingly, these pre-calibrated and/or stored output current commands may not account for real world constraints. In some situations, the output current command (ids, iqs) may need to be corrected to avoid issues that may arise when current commands that exceed the voltage constraints of the IPM are applied to the IPM.

FIG. 5shows a graph including a current constraint circle of the IPM motor drive system and a voltage limit constraint of the IPM motor drive system. The graph500includes a current constraint circle502(similar to the circular plot302ofFIG. 3) and a voltage ellipse constraint504(similar to the elliptical plots304,306, and308). Operating points for the IPM motor operating according to the constraints shown in graph500should be in the area where the current circle502and the voltage ellipse504overlap. Ideally, the (ids, iqs) current command output from the lookup tables discussed above should conform to the depicted current and voltage constraints (e.g., a point corresponding to the (ids, iqs) current command output should lie within the area of overlap) in order to maintain complete control of the motor at all speeds.

The graph500also includes the output current command (id_cmd, iq_cmd), which is shown as being on the perimeter of the current circle502but not on or within the voltage ellipse504. Therefore, graph500depicts a scenario where the output current command (id_cmd, iq_cmd) (e.g., point506) does not meet the voltage constraints. Errors that cause the output current command to lie outside the current and voltage constraints may include error in interpolations and calculations described above, voltage measurement errors that may occur during initial testing and control table characterization processes (e.g., voltage drop differences between calculated and real world systems, thermal effects, etc.). Accordingly, the output current command (id_cmd, iq_cmd) may be corrected to find the optimum operating point within the voltage constraints and at the same time maintain torque linearity.

FIG. 6shows a block diagram of an exemplary motor drive control system, such as that used in an internal permanent magnet (IPM) motor drive system, similar to that ofFIG. 1, including a field weakening correction system. The IPM motor drive system600can include many of the same components and features as IPM motor drive system100, which will not be described again here. The system600can also include a field-weakening correction circuit602. The field-weakening correction circuit602can include various components604as shown. However, one or more of these components604may be removed or replaced or additional components may be used to affect the same outcome as described herein. Correcting the output current command (id_cmd, iq_cmd) may begin with identifying the output voltage command (Vds, Vqs) corresponding to the output current command. In system600, the output voltage command (Vds, Vqs) is shown corresponding to the output current command (id_cmd, iq_cmd) at the output of the current regulator104. However, in some embodiments, the voltage command may be monitored or acquired at any other point within the system600. Based on Equation 5 above, the magnitude of the phase voltage Vsmay be calculated based on the commanded (Vds, Vqs) using Equation 12 below:
vs=√{square root over (vds2+vqs2)}  (Equation 12)

As shown by the field weakening circuit602, the magnitude of the phase voltage, once calculated by Equation 12, can be reduced by the reference voltage, Vref, which corresponds to the actual voltage at the motor110as limited by the PWM inverter108. The identified difference between the magnitude of the phase voltage Vsand the reference voltage Vrefcan then be manipulated to identify the total phase current delta needed to adjust the output current command (id_cmd, iq_cmd) to push the magnitude of the phase voltage Vswithin the voltage ellipse504(FIG. 5), which corresponds to finding the optimum operating point within the voltage constraints. The phase current delta, ΔIs, may be limited to negative calibration values. As shown in system600, the phase current delta, ΔIs, is identified by normalizing the difference between the magnitude of the phase voltage Vsand the reference voltage Vrefby the electrical speed ωeand applying a proportional-integral (PI) regulator to the normalized difference. In some embodiments, other methods and components may be used to identify the phase current delta from the magnitude of the phase voltage Vsand the reference voltage Vref. Once the phase current delta, ΔIs, is identified, the ΔIdand ΔIqvalues are identified from the phase current delta.

FIG. 7depicts a graph including constant torque curves, two voltage constraint ellipses, and three points corresponding to three current output commands along a single constant torque curve. The graph700depicts a first voltage constraint ellipse702and a second voltage constraint ellipse704. The graph700also depicts the three current output commands corresponding to points706,708, and710. The three points706,708, and710are all along the constant torque curve310a. The first ellipse702corresponds to the voltage constraints of the DC voltage measurement Vref, which may correspond to the actual voltage reference of the IPM motor110and PWM inverter108when the output current command is determined from the lookup table(s). The second ellipse704corresponds to the voltage constraints of the Vhighvoltage. The point706corresponds to the output current command (id_HighV, iq_HighV) where the Vhighvoltage of the second ellipse704intersects the torque curve310a. The point708corresponds to the output current command (id_cmd, iq_cmd), which corresponds to the pre-calculated output current command for the DC voltage measurement Vmeasat the torque command of torque curve310a. The point710corresponds to the output current command (i*ds, i*qs) where the first ellipse702(corresponding to the actual Vmeasvoltage constraints) intersects the torque curve310aof the torque command.

The output current command (id_cmd, iq_cmd) of point708may be determined based on identifying the output current command in a lookup table based on torque command, DC voltage measurement, and motor speed feedback inputs, interpolating values from lookup tables that are above and below a DC voltage measurement, or calculated based on a voltage at a higher motor speed feedback or at a lower voltage at a lower motor speed feedback, as discussed above. Since the output current command (id_cmd, iq_cmd) of point308is outside the first ellipse702, the output current command (id_cmd, iq_cmd) may be adjusted to move within or on the voltage constraints of the first ellipse702. If the output current command (id_cmd, iq_cmd) is within or on the voltage constraints of the first ellipse702, the output current command (id_cmd, iq_cmd) does not need to be adjusted because there is no risk of losing control of the IPM motor110at voltages and currents within the constraints.

Accordingly, decreasing the iqscomponent and increasing the idscomponent of the output current command along the constant torque line310afrom the point708to the point710will bring the output current command within the voltage constraints of the first ellipse702and maintain the torque production. As discussed above, output current commands for a given torque command can be determined for higher voltage than the reference voltage Vrefand the DC measured voltage Vmeas(e.g. Vb, where Vb>Vrefand/or Vmeas), for example at output current command (id_HighV, iq_High). As the voltage step from point306(e.g., (id_HighV, iq_HighV)) to point308(e.g., (id_cmd, iq_cmd)) is small, the curvature of the constant torque curve between the two points can be ignored and assumed to be linear to the (ids, iqs) current changes. Accordingly, Equation 13 below provides for identifying the slope of the line between the two points306and308, which can also be attributed to the line between the two points308(e.g., (id_cmd, iq_cmd)) and310(e.g., (i*ds, i*qs)) due to its short length:

Expanding Equation 14 provides Equation 14-1:
id_cmd2+2id_cmdΔId+ΔId2+iq_cmd2+2iq_cmdΔIq+ΔIq2=Is2+2isΔIs+ΔIs2(Equation 14-1)
Since ΔId, ΔIq, and ΔIsare quite small compare to id_cmd, iq_cmd, and is, ΔId2, ΔIq2, ΔIs2can be neglected. Also, iq_cmd=Iscos β, id_cmd=Issin β. β is shown inFIG. 7to be the angle between the Iq axis and a line that passes from the origin (0,0) on the (d,q) axis and the current command point (id_cmd, iq_cmd). Ismay be the length of the line from the origin (0,0) on the (d,q) axis to the current command point (id_cmd, iq_cmd). Thus, Ismay be identified based on the (id_cmd, iq_cmd) and the angle β. The angle β may be identified from the current command point (id_cmd, iq_cmd) using Equations 14-2:

β=tan-1⁢id⁢_⁢cmdiq⁢_⁢cmd(Equation⁢⁢14⁢-⁢2)
After simplification, ΔIdand ΔIqcan be calculated as shown by Equation 15:

The phase current delta, ΔIs, is output from the field weakening circuit602as ΔIdand ΔIqadjustments to the output current command (id_cmd, iq_cmd). An alternative solution can also be used if computational throughput is a significant concern. In practical case, ΔIdand ΔIqobtained using equations (16) will be sufficient to move the operating point inside the voltage limit along, and maintain the torque production at the same time.

Accordingly, the final output current commands, compensating for the corrections discussed above, can be calculated via Equations 17:
ids*=id_cmd+ΔId
iqs*=iq_cmd+ΔIq(Equation 17)

In the analysis above, the idscurrent delta may be a negative value, because the current may be adjusted to increase the idscurrent, which would require an additional −negative idsas the idscurrent increases along the negative axis. Alternatively, the iqscurrent delta may be either negative or positive. The iqscurrent delta may be negative when the command current is positive, thus reducing the iqscurrent. When the command current is negative (for example when braking the motor), the iqscurrent delta may be positive to reduce the negative iqscurrent.

A microprocessor may be any conventional general purpose single- or multi-chip microprocessor such as a Pentium® processor, a Pentium® Pro processor, a 8051 processor, a MIPS® processor, a Power PC® processor, or an Alpha® processor. In addition, the microprocessor may be any conventional special purpose microprocessor such as a digital signal processor or a graphics processor. The microprocessor typically has conventional address lines, conventional data lines, and one or more conventional control lines.

The system may be used in connection with various operating systems such as Linux®, UNIX® or Microsoft Windows®.

The system control may be written in any conventional programming language such as C, C++, BASIC, Pascal, or Java, and ran under a conventional operating system. C, C++, BASIC, Pascal, Java, and FORTRAN are industry standard programming languages for which many commercial compilers can be used to create executable code. The system control may also be written using interpreted languages such as Perl, Python or Ruby.

It will be appreciated by those skilled in the art that various modifications and changes may be made without departing from the scope of the described technology. Such modifications and changes are intended to fall within the scope of the implementations. It will also be appreciated by those of skill in the art that parts included in one implementation are interchangeable with other implementations; one or more parts from a depicted implementation can be included with other depicted implementations in any combination. For example, any of the various components described herein and/or depicted in the Figures may be combined, interchanged or excluded from other implementations.

It should be noted that the terms “couple,” “coupling,” “coupled” or other variations of the word couple as used herein may indicate either an indirect connection or a direct connection. For example, if a first component is “coupled” to a second component, the first component may be either indirectly connected to the second component or directly connected to the second component. As used herein, the term “plurality” denotes two or more. For example, a plurality of components indicates two or more components.

In the foregoing description, specific details are given to provide a thorough understanding of the examples. However, it will be understood by one of ordinary skill in the art that the examples may be practiced without these specific details. For example, electrical components/devices may be shown in block diagrams in order not to obscure the examples in unnecessary detail. In other instances, such components, other structures and techniques may be shown in detail to further explain the examples.

The previous description of the disclosed implementations is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these implementations will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other implementations without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the implementations shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.