METHOD AND DEVICE FOR DETERMINING A POSITION OF A ROTOR OF A THREE-PHASE MOTOR
20230066163 · 2023-03-02
Assignee
Inventors
Cpc classification
H02P21/0003
ELECTRICITY
H02P21/13
ELECTRICITY
International classification
G01R27/26
PHYSICS
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]
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065]
[0066]
[0067]
[0068]
[0069]
[0070]
[0071]
[0072]
[0073]
[0074]
[0075]
DESCRIPTION OF EMBODIMENTS
[0076]
[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
[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 and
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 stands for
and
.
[0087]
[0088] As seen in
[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]
[0097] The
[0098] The fundamental equation of the system is given as
[0099] In dq frame, this equation becomes
[0100] For salient pole machines, the flux is expressed as
[0101] In absence of permanent magnets, or assuming that the flux of permanent magnets is constant,
we get
[0102] from which yields the fundamental relation between HF flux and current terms:
[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):
[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)
[0105] Eventually, (8) rewrites as (9), which is the fundamental relation linking variations of current with variations of flux in αβ frame.
[0106] where A, B, D, X.sub.1, X.sub.2 have the following expressions:
[0107] From (10), a direct resolution of unknowns θ, L.sub.d′, L.sub.q′ can be reached upon observation of parameters A, B, D:
[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.
[0110] where {right arrow over (ϕ.sub.G)}=({right arrow over (ϕ.sub.αβ.sub.
[0111] From (9), we derive that currents necessarily evolve in αβ frame between 3 current points I.sub.αβ.sub.
[0112] where {right arrow over (I.sub.G)}=({right arrow over (I.sub.αβ.sub.
[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
[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.
[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
[0118]
[0119]
[0120] Once having completed a full triangular turn, the current I.sub.αβ.sub.
[0121] Equations (16) with constant (not gliding) gravity point can be maintained when applied to modified current levels I.sub.αβ.sub.
[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]
[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
[0128] The read-only memory, or possibly a flash memory 502, contains instructions of the program related to the algorithm disclosed in
[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]
[0133] Neglecting the effect of coupling inductances M.sub.qd, M.sub.dq≅0, the fundamental equation (9) becomes
As seen in
[0134]
[0135] More precisely, the geometrical relations are shown by omitting a scale factor of
[0136] In absence of noise, we observe that A can be obtained by two independent calculation paths:
[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:
[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:
[0140] The estimated inductance values may be memorized for example in a look up table.
[0141]
[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.
[0146] As seen in
[0147]
[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:
[0149] where a=tan(θ.sub.q). This system solves as
[0150] The square distance of a constellation point to the straight line is then given as:
[0151] The minimum total square distance of straight line to the constellation points must verify:
[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:
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.
[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.
[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:
[0159] At step S83, the estimation module 107 determines inductances estimated as:
[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]
[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
[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
Δθ 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
[0171]
[0172] Only one phase is represented for the sake of clarity, but the embodiments equally apply to the other phases.
[0173] In each
[0174] In
[0175] In
[0176] In
[0177] Compared with
[0178] In
[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.