METHOD AND DEVICE FOR DETERMINING A POSITION OF A ROTOR OF A THREE-PHASE MOTOR

20230066163 · 2023-03-02

Assignee

Inventors

Cpc classification

International classification

Abstract

The present invention concerns a method and a device for determining a position of a rotor of a three-phase motor using a FOC system. The invention: —determines, by a proportional-integral controller, a first control voltage vector at a first instant, —transforms the first control voltage vector using an inverse Park transform, —sums the transformed first control voltage vector to a regular polygonal voltage pattern applied during a given duration, —performs a PWM from the sum of the transformed first control voltage vector and the regular polygonal voltage pattern, —controls the motor with the pulse-width modulation, —measures the current at each phase of the motor, —estimates the position of the rotor from the measured currents and from the regular polygonal voltage pattern, —determines, at a second instant, a second control voltage vector from the measured currents and from the estimated position.

Claims

1. A method for determining a position of a rotor of a three-phase motor using a field oriented control system, characterized in that the method comprises the steps of: determining, by a proportional-integral controller, a first control voltage vector at a first instant using Park transformed motor currents and reference currents, transforming the first control voltage vector using an inverse Park transform, summing the transformed first control voltage vector to a regular polygonal voltage pattern, the regular polygonal voltage pattern being applied during a given duration, the regular polygonal voltage pattern being composed of at least three subperiods, performing a pulse-width modulation from the sum of the transformed first control voltage vector and the regular polygonal voltage pattern, controlling the motor with the pulse-width modulation, measuring the current at each phase of the motor, estimating the position of the rotor from the measured currents and from the regular polygonal voltage pattern, determining, at a second instant, a second control voltage vector from the measured currents and from the estimated position, the time between first and second instants being upper than or equal to the given duration.

2. The method according to claim 1, characterized in that the pulse-width modulation is further performed from a carrier signal, the motor is controlled by the pulse-width modulation through an inverter and the currents are measured at the extremums of the carrier signal, the regular polygonal voltage pattern being composed of plural consecutive subperiods, each subperiod being equal to an integer number times half the period of the carrier signal, and starting at one extremum of the carrier signal.

3. The method according to claim 2, characterized in that the position of the rotor is estimated from a polygonal current response, which is built from a number of current measurements, equal to the number of subperiods plus one, and the difference between the first and last current measurements is used to modify the other current measurement in order to obtain a polygonal current response.

4. The method according to claim 3, characterized in that the estimation of the position of the rotor from the measured currents and from the regular polygonal voltage pattern is performed using a number of coefficients that is equal to the number of subperiods and the coefficients are determined from the polygonal current response.

5. The method according to claim 3, characterized in that the estimation of the position of the rotor from the measured currents and from the regular polygonal voltage pattern is performed from the polygonal current response that forms a constellation of points using a minimum mean square error method, in order to find a straight line passing through the gravity center of constellation of points with an angle with q axis and having a minimal distance with the set of points in the constellation, the angle being the position of the rotor.

6. The method according to claim 3, characterized in that the method comprises further steps of: estimating a first rotational speed of the rotor from the first estimated position of the rotor, determining the periodicity of the control voltage vector from the first estimated rotational speed, determining the periodicity of the regular polygonal voltage pattern from the periodicity of the control voltage vector.

7. The method according to claim 3, characterized in that the method further comprises the steps of: estimating inductance values of the motor from the measured currents and from the regular polygonal voltage pattern, determining a value of a voltage that is used to generate the regular polygonal voltage pattern from the estimated inductance values.

8. The method according to claim 6, characterized in that the method further comprises the step of: transforming the second control voltage vector using an inverse Park transform, performing a pulse-width modulation from the transformed second control voltage vector, controlling the motor with the pulse-width modulation, measuring the current at each phase of the motor, estimating a second rotor position of the rotor according to the first estimated rotor position, first estimated rotor speed, and the periodicity of the control voltage vector, determining a third control voltage pattern from the measured currents and from the estimated second rotor position.

9. The method according to claim 1, characterized in that the regular polygonal voltage pattern has a null average value in a dq reference frame.

10. The method according to claim 9, characterized in that one regular polygonal voltage pattern is summed for each phase and the regular polygonal voltage pattern is inverted or permuted at each determination of a control voltage vector.

11. The method according to claim 6, characterized in that the method further comprises the step of memorizing the estimated inductance values.

12. A device for determining a position of a rotor of a three-phase motor using a field-oriented control system, characterized in that the device comprises: means for determining, by a proportional-integral controller, a first control voltage vector at a first instant using Park transformed motor currents and reference currents, means for transforming the first control voltage vector using an inverse Park transform, means for summing the transformed first control voltage vector to a regular polygonal voltage pattern, the regular polygonal voltage pattern being applied during a given duration, the regular polygonal voltage pattern being composed of at least three subperiods, means for performing a pulse-width modulation from the sum of the transformed first control voltage vector and the regular polygonal voltage pattern, means for controlling the motor with the pulse-width modulation, means for measuring the current at each phase of the motor, means for estimating the position of the rotor from the measured currents and from the regular polygonal voltage pattern, means for determining, at a second instant, a second control voltage vector from the measured currents and from the estimated position, the time between first and second instants being upper than or equal to the given duration.

Description

BRIEF DESCRIPTION OF DRAWINGS

[0057] The characteristics of the invention will emerge more clearly from a reading of the following description of example embodiments, the said description being produced with reference to the accompanying drawings, among which:

[0058] FIG. 1 represents an example of a Field-Oriented Control system in which the present invention is implemented.

[0059] FIG. 2 represents an example of PWM signals with a triangular voltage injection according to the invention.

[0060] FIG. 3 represents the injected voltage pattern.

[0061] FIG. 4 represents the differential flux response.

[0062] FIG. 5 represents the differential current response.

[0063] FIG. 6 represents the constellation of extreme points of current during rotation of the motor.

[0064] FIG. 7 represents the constellation of extreme points of current during the rotation of the motor after a compensation is applied.

[0065] FIG. 8 represents an architecture of the estimation module that estimates the position of a rotor of a motor.

[0066] FIG. 9 represents a first example of an algorithm for estimating the position of a rotor of a motor.

[0067] FIG. 10 represents measurable geometric relation in a triangular current response.

[0068] FIG. 11 represents a second example of an algorithm for estimating the position of a rotor of a motor.

[0069] FIG. 12 represents an identification of q axis by a linear regression method.

[0070] FIG. 13 represents the distances between constellation points and q axis.

[0071] FIG. 14 represents an example of an algorithm that may executed by the position evaluation module after the execution of the algorithm disclosed in FIG. 9 or 11.

[0072] FIG. 15 represents the rotational speed of the motor is very low, and the control interval T.sub.CTRL between two consecutive voltage patterns is large.

[0073] FIG. 16 represents the rotational speed of the motor is high, and the estimation module reduces the time interval T.sub.CTRL.

[0074] FIG. 17 represents the rotational speed of the motor is very low, with a large control interval T.sub.CTRL.

[0075] FIG. 18 represents the rotational speed of the motor is very low, with a large control interval T.sub.CTRL.

DESCRIPTION OF EMBODIMENTS

[0076] FIG. 1 represents an example of a Field-Oriented Control system in which the present invention is implemented.

[0077] Field-Oriented Control (FOC) is a variable-frequency drive control method in which the stator currents of a three-phase AC electric motor are identified as two orthogonal components that can be visualized with a vector. In αβ reference frame representative of the stator, the vector rotates around the origin in synchronism with the rotor. In dq reference frame representative of the rotor, the vector is stabilised around reference current levels using (PI) controller. Depending on application, current reference can be as example determined from torque reference, which can itself be determined from a speed controller.

[0078] Typically, proportional-integral (PI) controllers are used to keep the measured current components at their reference values.

[0079] The Pulse-Width modulation (PWM) of the variable-frequency drive defines the timings of inverter switching according to the stator voltage references that are the output of the PI current controllers.

[0080] FOC is used to control AC synchronous and induction motors.

[0081] It was originally developed for high-performance motor applications that are required to operate smoothly over a full speed range, generate full torque at zero speed, and have high dynamic performance including fast acceleration and deceleration.

[0082] The Field-Oriented Control system comprises a proportional-integral controller PI 100 that calculates the voltages V.sub.d* and V.sub.q* for the torque and flux at the desired speed required by the machine to reach the reference currents I.sub.d* and I.sub.q*. The required voltages V.sub.d* and V.sub.q* are then transformed back to the voltages V.sub.a*, V.sub.b* and V.sub.c* using an inverse Park transform 101. A pattern generation module 102 provides three injection patterns that are respectively added to the voltages V.sub.a*, V.sub.b* and V.sub.c* by an adding module 103. The voltages V.sub.a**, V.sub.b** and V.sub.c** at the output of the adding module 103 are pulse-width modulated by a pulse-width modulation module PWM 104. The pulse-width modulated signals are then provided to inverter legs of a three-phase inverter 105 for regulating an amount of voltage from a DC voltage source not shown in FIG. 1 to be provided to each phase terminals of a motor 106.

[0083] The current I.sub.a, I.sub.b and I.sub.c are measured at each phase terminal of the motor and provided to an estimation module 107 and to a Park transform module 108. The measurements of I.sub.a, I.sub.b and are performed in a synchronous manner in respect of the PWMs signal. The measurements of I.sub.a, I.sub.b and I.sub.c are performed at points P.sub.1, P.sub.2 and P.sub.3 in FIG. 2. The outputs of the Park transform module 108 custom-character and custom-character are provided to the proportional-integral controller PI 100. The proportional-integral controller PI 100 compares the measured and reference currents and filters the difference using a weighted sum of proportional and integral terms of the observed difference.

[0084] It should be noted that the PI controller 100, the transformation modules 101 and 108, the estimation module 107 are activated at a given vector control frequency f.sub.CTRL.

[0085] The estimation module 107 provides an estimate of the angle {circumflex over (θ)} of the rotor to the inverse Park transform 101 and to the Park transform module 108.

[0086] In FIG. 1, I.sub.dq* stands for I.sub.d* and I.sub.q*, V.sub.dq* stands for V.sub.d* and V.sub.q* , V.sub.adc* stands for V.sub.a*, V.sub.b* and V.sub.c*, V.sub.adc** stands for V.sub.a**, V.sub.b** and V.sub.c**, I.sub.abc stands for I.sub.c, I.sub.a, I.sub.b and I.sub.c and custom-character stands for custom-character and custom-character.

[0087] FIG. 2 represents an example of PWM related signals with a triangular voltage injection according to the invention.

[0088] As seen in FIG. 2, the injection pattern, named also polygonal regular voltage pattern, is typically composed of 3 PWM subperiods T.sub.1, T.sub.2, T.sub.3 of equal duration T.sub.c=½f.sub.sw of a pulse width modulated signal PWMs provided by the pulse-width modulation module PWM 104. The voltages V.sub.a*, V.sub.b*and V.sub.c*issued by the PI controller 100 are assumed constant during the duration of the injection pattern (T.sub.1+T.sub.2+T.sub.3). The voltage pattern varies across subperiods for example as follows. During T.sub.1, the voltage −V.sub.o is added to V.sub.a*, the voltage +V.sub.o is added to V.sub.b*and the voltage +V.sub.o is added to V.sub.c*. During T.sub.2, the voltage +V.sub.o is added to V.sub.a*, the voltage −V.sub.o is added to V.sub.b* and the voltage +V.sub.o is added to V.sub.c*. During T.sub.3, the voltage +V.sub.o is added to V.sub.a*, the voltage +V.sub.o is added to V.sub.b* and the voltage −V.sub.o is added to V.sub.c*. The offset voltage V.sub.o is chosen to provide sufficient current ripple in order to avoid noise and/or interference. The injected HF voltage pattern forms an equilateral triangle in frame as shown in FIG. 3.

[0089] It has to be noted here that the regular polygonal voltage patterns are inverted or permuted at each determination of a control voltage vector.

[0090] According to invention, the injection pattern can be of any size, but is always composed of N subperiods T1, T2, . . . , TN of equal duration, e.g. Tc=K/2f.sub.sw, where K is an integer. The sum of voltage pattern across subperiods is identical across each phase, so that the phase-to-phase voltage averaged across the duration of the injection pattern is unmodified by the injection pattern.

[0091] The PWM controller 104 compares the reference voltage levels V.sub.a**, V.sub.b**, V.sub.c** with the carrier signal PWMs and produces control signals to the inverter 105.

[0092] The carrier signal PWMs is periodic, with a frequency identical to the switching frequency f.sub.sw of inverter legs. The comparison is made at much higher frequency rate (f.sub.PWM, few MHz) to keep good controllability of inverter voltage.

[0093] According to the invention, it should be noted that the switching frequency is not equal to the vector control frequency. Especially, the reference voltage levels V.sub.a*, V.sub.b* and V.sub.c are constant over the total duration of the injected pattern. Thus, the control frequency is smaller than the switching frequency (N.f.sub.CTRL<2.f.sub.sw).

[0094] As example, the carrier signal PWMs is triangular, and the inverter 105 connects in parallel a voltage DC source and one inverter leg per phase. When the reference voltage of one phase gets higher than the carrier signal, the PWM controller 104 switches the corresponding inverter leg into its high state, connecting the phase terminal of the machine to the upper side of the DC voltage source. Reversely, when the reference voltage of one phase gets lower than the carrier signal, the PWM controller switches the corresponding inverter leg into its low state, connecting the phase terminal of the machine to the lower side of the DC voltage source.

[0095] The addition of a voltage vector to the reference voltages V.sub.a*, V.sub.b*, V.sub.c*, causes the modification of position and duration of inverter states, so as to effectively impose the desired voltage levels, averaged during the period of the carrier signal PWMs.

[0096] FIGS. 3, 4, 5 represent triangular flux injection in a frame.

[0097] The FIG. 3 represents the injected voltage pattern, the FIG. 4 represents the differential flux response and the FIG. 5 represents the differential current response.

[0098] The fundamental equation of the system is given as

[00001] V abc = RI abc + d ϕ abc dt ( 1 )

[0099] In dq frame, this equation becomes

[00002] V dq = RI dq + w [ 0 - 1 1 0 ] ϕ dq + d ϕ dq dt ( 2 )

[0100] For salient pole machines, the flux is expressed as

[00003] ϕ dq = [ L d 0 0 L q ] I dq + ϕ PM ( 3 )

[0101] In absence of permanent magnets, or assuming that the flux of permanent magnets is constant,

[00004] d ϕ P M d t = 0 ,

we get

[00005] d ϕ d q d t = [ L d 0 0 L q ] dI d q d t + [ d L d d t 0 0 d L q d t ] I dq ( 4 )

[0102] from which yields the fundamental relation between HF flux and current terms:

[00006] d ϕ d q dt = [ L d M q d M dq L d ] d I d q dt ( 5 )

[0103] where L.sub.d′ and L.sub.q′ are differential inductances, and M.sub.qd, M.sub.dq are coupling inductances given by (6) and (7):

[00007] L d = L d + d L d dI d I d ; L q = L q + d L q dI q I q ; ( 6 ) M q d = d L d dI q I d ; M dq = d L q dI d I q ( 7 )

[0104] Using the notation C=cos(θ), S=sin(θ), where θ is the direction of the d-axis of the rotor in αβ frame, the relation becomes (5)

[00008] d ϕ α β dt = [ C S - S C ] [ L d M qd M dq L q ] [ C - S S C ] d I αβ d t ( 8 )

[0105] Eventually, (8) rewrites as (9), which is the fundamental relation linking variations of current with variations of flux in αβ frame.

[00009] d I αβ d t = [ B - Δ A + X 2 A + X 1 D + Δ ] d ϕ α β dt ( 9 )

[0106] where A, B, D, X.sub.1, X.sub.2 have the following expressions:

[00010] A = C S ( 1 L d - 1 L q ) , B = C 2 L d + S 2 L q , D = S 2 L d + C 2 L q ( 10 ) X 1 = S 2 M q d - C 2 M d q L d L q - M q d M d q , X 2 = S 2 M d q - C 2 M q d L d L q - M q d M d q , Δ = - CS M q d + M d q L d L q - M q d M d q ( 11 )

[0107] From (10), a direct resolution of unknowns θ, L.sub.d′, L.sub.q′ can be reached upon observation of parameters A, B, D:

[00011] tan ( 2 θ ) = 2 A B - D ( 12 ) L d = 2 D + B + 2 A sin ( 2 θ ^ ) ( 13 ) L q = 2 D + B - 2 A sin ( 2 θ ^ ) ( 14 )

[0108] The problem of direct estimation of position and of differential inductances therefore consists in identifying the parameters A, B, D from the observed triangular current response.

[0109] At standstill, when the machine has zero speed, zero acceleration, the reference voltage V.sub.a*, V.sub.b*, V.sub.c* from PI controller 100 precisely compensates for the ohmic losses. The flux evolves in αβ frame between 3 flux points ϕ.sub.αβ.sub.1, ϕ.sub.αβ.sub.2, ϕ.sub.αβ.sub.3, as shown in FIG. 4, which can be determined by time integration of the injected voltage pattern.

[00012] { ϕ α β 1 .fwdarw. = ϕ G .fwdarw. + V o T c 3 [ 3 1 ϕ α β 2 .fwdarw. = ϕ G .fwdarw. + V o T c 3 [ - 3 1 ϕ α β 3 .fwdarw. = ϕ G .fwdarw. + V o T c 3 [ 0 - 2 ( 15 )

[0110] where {right arrow over (ϕ.sub.G)}=({right arrow over (ϕ.sub.αβ.sub.1)}+{right arrow over (ϕ.sub.αβ.sub.2)}+{right arrow over (ϕ.sub.αβ.sub.3)})/3 is the gravity point of the constellation of flux points. Because of the structure of applied voltage pattern (rotation of 120° and equal duration of subperiods), extreme flux points together form an equilateral triangle in αβ reference frame.

[0111] From (9), we derive that currents necessarily evolve in αβ frame between 3 current points I.sub.αβ.sub.1, I.sub.αβ.sub.2, I.sub.αβ.sub.3 as shown in FIG. 5.

[00013] { I αβ 1 .fwdarw. = I G .fwdarw. + V o T c 3 [ ( B - Δ ) 3 + A + X 2 3 ( A + X 1 ) + D + Δ I αβ 1 .fwdarw. = I G .fwdarw. + V o T c 3 [ - ( B - Δ ) 3 + A + X 2 - 3 ( A + X 1 ) + D + Δ I αβ 1 .fwdarw. = I G .fwdarw. + V o T c 3 [ - 2 ( A + X 2 ) - 2 ( D + Δ ) ( 16 )

[0112] where {right arrow over (I.sub.G)}=({right arrow over (I.sub.αβ.sub.1)}+{right arrow over (I.sub.αβ.sub.2)}+{right arrow over (I.sub.αβ.sub.3)})/3 is the gravity point of the constellation of extreme current points.

[0113] Assuming current sampling at the edges or extremums of PWMs signal carrier i.e. at points P.sub.1, P.sub.2 and P.sub.3 of FIG. 2, the current measurements are operated away from switching events and are not affected by associated ringing. At these sampling times, all motor legs are always connected to the same side of DC bus, and measured currents can be regarded as positioned at extreme points I.sub.αβ.sub.1, I.sub.αβ.sub.2, I.sub.αβ.sub.3.

[0114] The invention also applies when durations of subperiods are equal to an integer number K of half switching cycles, with a sampling frequency further reduced to 2f.sub.sw/K, and sampling timings still located at the edges of PWM signal carrier.

[0115] Irrespective of inductance levels, the triangle formed by extreme points I.sub.αβ.sub.1, I.sub.αβ.sub.2, I.sub.αβ.sub.3 is naturally elongated in the direction of the q axis for machines exhibiting some saliency ratio

[00014] L d L q > 1 .

[0116] Under rotation, the PI controller 100 outputs a voltage reference that compensates for ohmic losses and for the back electromotive force (BEMF) of the motor 106 causing the average flux to turn in αβ frame synchronously with the rotor with a given speed, which can be assumed constant over the duration of the injection pattern. The added voltage pattern produces HF variations of flux, superposed to the average rotating flux, and the HF variations of flux keep following equation (15) yet with a gravity center sliding with time.

[0117] From equation (9), we can see that the current response will follow the same behavior: HF variations according to equation (16), with a gravity center also sliding in time. This causes the constellation of points of current to no longer follow a regular structure, as it will be disclosed in FIGS. 6, 7.

[0118] FIG. 6 represents the constellation of extreme points of current during rotation of the motor.

[0119] FIG. 7 represents the constellation of extreme points of current during the rotation of the motor after a compensation is applied.

[0120] Once having completed a full triangular turn, the current I.sub.αβ.sub.4 measured at the end of injection is no longer aligned with the current I.sub.αβ.sub.1 measured just before the injection of triangular pattern, due to the rotational condition.

[0121] Equations (16) with constant (not gliding) gravity point can be maintained when applied to modified current levels I.sub.αβ.sub.1′, I.sub.αβ.sub.2′, I.sub.αβ.sub.3′ which are postprocessed according to (17) to compensate for the misalignment between measured currents I.sub.αβ.sub.1 and I.sub.αβ.sub.4 over one injection pattern cycle:

[00015] { I α β 1 .fwdarw. = I α β 4 .fwdarw. I α β 2 .fwdarw. = I α β 2 .fwdarw. + 2 ( I α β 4 .fwdarw. - I α β 1 .fwdarw. ) / 3 I α β 3 .fwdarw. = I α β 3 .fwdarw. ( I α β 4 .fwdarw. - I α β 1 .fwdarw. ) / 3 ( 17 )

[0122] It should be noted that the modification of current levels which suppresses the gliding of gravity center can equally be applied to non triangular patterns, i.e. any polygonal regular patterns.

[0123] FIG. 8 represents an architecture of the estimation module that estimates the position of a rotor of a motor.

[0124] The estimation module 107 has, for example, an architecture based on components connected together by a bus 501 and a processor 500 controlled by a program.

[0125] The bus 501 links the processor 500 to a read only memory ROM 502, a random access memory RAM 503, and an input output I/O interface I/F 505.

[0126] The input output interface I/F 505 receives the currents measurements Ia, Ib and Ic and provides the angle {circumflex over (θ)} of the rotor to the inverse Park transform 101 and to the Park transform module 108.

[0127] The memory 503 contains registers intended to receive variables and the instructions of the program related to the algorithm disclosed in FIG. 6 or 8 or 10.

[0128] The read-only memory, or possibly a flash memory 502, contains instructions of the program related to the algorithm disclosed in FIG. 6 or 8 or 10.

[0129] When the estimation module 107 is powered on, the instructions stored in the memory 503 are transferred to the random access memory 503.

[0130] The estimation module 107 may be implemented in software by execution of a set of instructions or program by a programmable computing machine, such as a PC (Personal Computer), a DSP (Digital Signal Processor) or a microcontroller; or else implemented in hardware by a machine or a dedicated component, such as an FPGA (Field-Programmable Gate Array) or an ASIC (Application-Specific Integrated Circuit).

[0131] In other words, the estimation module 107 includes circuitry enabling the estimation module 107 to perform the program.

[0132] FIG. 9 represents a first example of an algorithm for estimating the position of a rotor of a motor.

[0133] Neglecting the effect of coupling inductances M.sub.qd, M.sub.dq≅0, the fundamental equation (9) becomes

[00016] d I α β dt = [ B A A D ] d ϕ α β d t ( 18 )

As seen in FIG. 7, A, B, D parameters are then related to measured current vectors by (19).

[00017] { I α β 1 .fwdarw. = I G .fwdarw. + V o T c 3 [ B 3 + A 3 A + D I α β 2 .fwdarw. = I G .fwdarw. + V o T c 3 [ - B 3 + A - 3 A + D I α β 3 .fwdarw. = I G .fwdarw. + V o T c 3 [ - 2 A - 2 D ( 19 )

[0134] FIG. 10 represents measurable geometric relation in a triangular current response.

[0135] More precisely, the geometrical relations are shown by omitting a scale factor of

[00018] V o T c 3 .

[0136] In absence of noise, we observe that A can be obtained by two independent calculation paths:

[00019] A = I β 1 - I β 2 4 V o T = ( I α G - I α 3 ) 3 4 V o T ( 20 )

[0137] At step S61, the estimation module 107 determines A using the formula noted 20.

[0138] At step S62, the estimation module 107 determines B and D using the following equation system:

[00020] { A = I β 1 - I β 2 + ( I α G - I α 3 ) 3 4 V o T c B = I α 1 - I α 2 2 V o T c D = ( I β G - I β 3 ) 3 2 V o T c ( 21 )

[0139] Thus, upon observation of triangular current response and neglecting effect of coupling inductances, the estimation module 107 can derive coefficients (A, B, D) from (19), and ultimately determine at step S63 position θ and differential inductances using the following formulas:

[00021] tan ( 2 θ ) = 2 A B - D ( 12 ) L d = 2 D + B + 2 A sin ( 2 θ ^ ) L q = 2 D + B - 2 A sin ( 2 θ ^ )

[0140] The estimated inductance values may be memorized for example in a look up table.

[0141] FIG. 11 represents a second example of an algorithm for estimating the position of a rotor of a motor.

[0142] The effect of saliency typically causes the current to respond to a circular flux excitation with an elliptic shape. In absence of coupling inductances, the large axis of the elliptic shape can be considered aligned with q axis.

[0143] A linear regression may be applied for the direct detection of q axis from measured current response to injected equilateral flux.

[0144] At step S81, the estimation module 107 applies a Minimum Means Square Error method.

[0145] In a particular example, the injection patterns is triangular. Let us consider the constellation of three summits (x.sub.k, y.sub.k) of current response, expressed relatively to the gravity center of that constellation.

[00022] { x k = I k α - I G α y k = I k β - I G β ( 31 )

[0146] As seen in FIGS. 12-13, the Minimum Mean Square Error (MMSE) method consists in finding the straight line passing through the gravity center with an angle θ with ox axis, the straight line having a minimal distance D with the set of points in the constellation.

[0147] FIG. 12 represents an identification of q axis by a linear regression method and FIG. 13 represents the distances between constellation points and q axis.

[0148] If constellation points are projected on the straight line perpendicularly to that line, the projected points (x.sub.pk, y.sub.pk) must verify the equation system:

[00023] { ( x k - x p k ) . + ( y k - y p k ) . a = 0 a x p k = y p k ( 32 )

[0149] where a=tan(θ.sub.q). This system solves as

[00024] { x p k = x k + ay k 1 + a 2 y p k = ax k + a 2 y k 1 + a 2 ( 33 )

[0150] The square distance of a constellation point to the straight line is then given as:

[00025] d 2 ( k , θ ) = ( x k - x p k ) 2 + ( y k - y p k ) 2 = ( y k - a x k ) 2 1 + a 2 ( 34 )

[0151] The minimum total square distance of straight line to the constellation points must verify:

[00026] dD 2 = .Math. k d k 2 da = 0 d da .Math. k ( y k - ax k ) 2 1 + a 2 = 0 ( 35 )

[0152] leading to a second order polynomial of term a.


a.sup.2Σ.sub.kx.sub.ky.sub.k+a(Σ.sub.kx.sub.k.sup.2−Σ.sub.ky.sub.k.sup.2)−Σ.sub.kx.sub.ky.sub.k=0  (36)

[0153] The solution is then given as:

[00027] a = tan ( θ q ) = - χ ± χ 2 + 4 2 ( 37 ) χ = .Math. k x k 2 - .Math. k y k 2 .Math. k x k y k ( 38 )

where

[0154] Both solutions correspond to straight lines with minimum (q axis) and maximum distances to the constellation points. For positive sign of Σ.sub.kx.sub.ky.sub.k, the derivative of the distance is first positive, negative, then positive, so that only the highest optimum is a local minimum. The solution choice is alternated for negative sign of Σ.sub.kx.sub.ky.sub.k.

[00028] { .Math. k x k y k > 0 .Math. θ q = a tan ( - χ + x 2 + 4 2 ) .Math. k x k y k < 0 .Math. θ q = a tan ( - χ - χ 2 + 4 2 ) .Math. k x k y k = 0 , { .Math. k x k 2 > .Math. k y k 2 .Math. θ q = 0 .Math. k x k 2 < .Math. k y k 2 .Math. θ q = π / 2 ( 39 )

[0155] Thus, using equations (38) and (39), we can determine the angle θ.sub.q of the q axis.

[0156] At step S82, the estimation module 107 determines the rotor angle as:


θ=θ.sub.q−π/2  (40)

[0157] Differential inductances can also get estimated from the distance DI.sub.q, DI.sub.d of current constellation point to the optimal straight lines.

[00029] { D I q = .Math. k y x 2 - 2 .Math. k x k y k a + .Math. k x k 2 a 2 1 + a 2 DI d = .Math. k y k 2 + 2 .Math. k x k y k / a + .Math. k x k 2 / a 2 1 + 1 / a 2 ( 41 )

[0158] For equilateral flux triangles formulated by equation (15), the distance of flux constellation points to any straight line can be reduced to a constant, whatever the director coefficient b of the straight line:

[00030] D ϕ b = V o T c 3 ( 1 + b 3 ) 2 + ( 1 - b 3 ) 2 + ( - 2 ) 2 1 + b 2 = V o T c 2 ( 42 )

[0159] At step S83, the estimation module 107 determines inductances estimated as:

[00031] { L d = D ϕ d DI d L q = D ϕ q DI q ( 43 )

[0160] It should be noted that formulas (32) to (41) are equally applicable for non-triangular constellations, i.e. for polygonal/circular voltage injection patterns.

[0161] The estimated inductance values may be memorized for example in a look up table.

[0162] FIG. 14 represents an example of an algorithm that may executed by the position evaluation module after the execution of the algorithm disclosed in FIG. 9 or 11.

[0163] At step S10, the estimation module 107 estimates the rotational speed of the rotor from estimated position. The estimation module 107 estimates the rotational speed as

[00032] ω e = d θ dt .

[0164] At step S11, the estimation module 107 determines the vector control frequency f.sub.CTRL from the estimated speed. The vector control frequency is the frequency at which operates the proportional-integral controller PI 100, the inverse Park transform 101, the estimation module 107 and the Park transform module 108. For example, the estimation module 107 determines the vector control frequency as

[00033] f CTRL = ω e 2 π 1 8 0 Δ θ ,

Δθ position error resulting of the system latency in presence of speed. At that step, the estimation module 107 determines the control interval T.sub.CTRL as the inverse of the vector control frequency f.sub.CTRL.

[0165] At step S12, the estimation module 107 determines the injection pattern frequency from the estimated speed. For example, the estimation module 107 determines the injection pattern frequency as f.sub.inject=f.sub.CTRL/P where P is the ratio between vector control frequency f.sub.CTRL and an unaudible low frequency, e.g. 100 Hz.

[0166] At low speeds, this enables to reduce the injection frequency, and thus reduces audible noise generated by the injected pattern. In addition, HF iron losses are reduced. The accuracy of position in presence of speed is constant.

[0167] At step S13, the estimation module 107 determines an injection voltage level V.sub.o from the estimated inductances and an injection frequency f.sub.inject.

[0168] This enables to keep current variations resulting from HF injection to some stabilised level, regardless of saturation conditions, and change of injection frequency. The current variations can be optimised to fight for measurement noise floor, while minimising HF iron losses.

[0169] As example, V.sub.o=L.ΔIf.sub.inject, where ΔI is a target level of current variations due to injection and L is an inductance estimated at step S63 or step S83. As example, L is the smallest inductance among L.sub.d′ and L.sub.q′.

[0170] At next step S14, the estimation module 107 determines the duration of subperiods of injection pattern. The duration of subperiods is a multiple K of half switching periods (½f.sub.sw). For example, the estimation module 107 determines K=2f.sub.sw/Nf.sub.inject, where Nis the size of polygonal voltage pattern, for example three in the example of FIG. 2.

[0171] FIGS. 15-18 represent in plain line the time variations of the reference voltage V.sub.a** of one phase according to various embodiments of the invention.

[0172] Only one phase is represented for the sake of clarity, but the embodiments equally apply to the other phases.

[0173] In each FIG. 11a, 11b, 11c, 11d, the voltage pattern has duration T.sub.pattern, which is the sum of subperiods, and a size equal to the offset voltage V.sub.o. The duration of voltage pattern is always smaller than the control interval T.sub.CTRL, the time interval between consecutive updates of control voltage vector according to the invention, and the voltage pattern is superposed to the control voltage vector V.sub.a*, which is represented in dashed line.

[0174] In FIG. 15, the rotational speed of the motor is very low, and the control interval T.sub.CTRL between two consecutive voltage patterns is large. The number of minor flux loops resulting from the invention is small, resulting in limited iron losses in the magnetic core of the machine.

[0175] In FIG. 16, the rotational speed of the motor is high, and the estimation module 107 reduces at step S11 the time interval T.sub.CTRL. The controllability of the motor is increased compared with FIG. 15, the rotor position can be determined at high speed.

[0176] In FIG. 17, the rotational speed of the motor is very low, with a large control interval T.sub.CTRL, identical to the one in FIG. 15. The estimation module 107 increases the duration of voltage pattern according to step S12, and also reduces the offset voltage V.sub.o. The number and size of minor flux loops is identical to the one of FIG. 15.

[0177] Compared with FIG. 15, the injection frequency is smaller. As a result, the audible noise generated by the voltage pattern is shifted to low frequencies, and produces less burden to human ears. Furthermore, the current response is less prone to high frequency effects (e.g., eddy currents, excess loss), and level of HF iron losses resulting from voltage injection is reduced.

[0178] In FIG. 18, the rotational speed of the motor is very low, with a large control interval T.sub.CTRL, identical to that in FIG. 15. In this example, the voltage pattern is injected only once every K=3 control intervals. At control intervals including injection, the estimation module 107 estimates rotor position as in step S63, and also estimates the speed of the motor from estimated rotor position. At control intervals without injection, the estimation module 107 extrapolates the rotor position according to last estimated rotor position, last estimated rotor speed, and T.sub.CTRL determined at step S11. Estimation module 107 serialises the estimated and extrapolated position towards modules 101 and 108, so that current controller keeps fast operation in spite of absence of injection patterns.

[0179] As example, the rotor position Theta at time t is extrapolated from last known rotor position and rotor speed at time t.sub.last from Theta(t)=Theta(t.sub.last)+Speed*(t−t.sub.last). The speed is estimated at control intervals including injection as Speed=(Theta(t.sub.inj,n)−Theta(t.sub.inj,n-1))/(t.sub.inj,n−t.sub.inj,n-1), where Theta(t.sub.inj,n) is the rotor position estimated according to the invention at steps S63 or S82.