METHOD OF DETERMINING A POSITION OF A ROTOR OF A BRUSHLESS PERMANENT MAGNET MOTOR

20230327587 · 2023-10-12

Assignee

Inventors

Cpc classification

International classification

Abstract

A method of determining a position of a rotor of a brushless permanent magnet motor includes measuring a current value indicative of current flowing through a phase winding of the motor and providing a reference voltage value indicative of a voltage applied to the phase winding of the motor. The method includes calculating a phase of back EMF induced in the phase winding using the measured current value and the reference voltage value, and determining a zero-crossing point of the back EMF induced in the phase winding using the calculated phase of back EMF induced in the phase winding. The method includes generating a rotor position signal based on the determined zero-crossing point.

Claims

1. A method of determining a position of a rotor of a brushless permanent magnet motor, the method comprising measuring a current value indicative of current flowing through a phase winding of the motor, providing a reference voltage value indicative of a voltage applied to the phase winding of the motor, calculating a phase of back EMF induced in the phase winding using the measured current value and the reference voltage value, determining a zero-crossing point of the back EMF induced in the phase winding using the calculated phase of back EMF induced in the phase winding, and generating a rotor position signal based on the determined zero-crossing point.

2. The method as claimed in claim 1, wherein the phase of back EMF induced in the phase winding is calculated using the equation: - E p h X I p h X R p h X + ( L self phX - L mutual phX ) dI p h X d t - V p h X ; where E.sub.phX is the back EMF induced in the phase winding X, L.sub.selfphX is the self-inductance of the phase winding X, L.sub.mutualphX is the s mutual inductance of the phase winding X with other phase windings of the motor, I.sub.phX is the current value indicative of current flowing through the phase winding X, R.sub.phX is the resistance of the phase winding X, and V.sub.phX is the reference voltage value indicative of the voltage applied to the phase winding X.

3. The method as claimed in claim 1, wherein determining a zero-crossing point of the back EMF induced in the phase winding comprises utilising any of a calculated phase of back EMF induced in the phase winding, an amplitude representative of the amplitude of back EMF induced in the phase winding, and a frequency representative of the frequency of back EMF induced in the phase winding.

4. The method as claimed in claim 1, wherein calculating a phase of back EMF induced in the phase winding comprises integrating the equation: - E p h X I p h X R p h X + ( L self phX - L mutual phX ) dI p h X d t - V p h X ; to obtain a relationship representative of integrated back EMF.

5. The method as claimed in claim 4, wherein calculating a phase of back EMF induced in the phase winding comprises equating integrated back EMF to an integral of a sinusoidal waveform representative of back EMF induced in the phase winding.

6. The method as claimed in claim 4, wherein calculating a phase of back EMF induced in the phase winding comprises equating a relationship representative of integrated back EMF with an integral of a sinusoidal waveform representative of back EMF induced in the phase winding.

7. The method as claimed in claim 1, wherein the method comprises utilising a determined zero-crossing point of back EMF induced in the phase winding to calculate an electrical period of the rotor.

8. The method as claimed in claim 1, wherein the method comprises utilising a determined zero-crossing point of back EMF induced in the phase winding to calculate a speed of the rotor.

9. The method as claimed in claim 1, wherein the method comprises utilising a determined zero-crossing point of back EMF induced in the phase winding to generate a signal representing continuous position of the rotor.

10. The method as claimed in claim 9, wherein the method comprises controlling a voltage applied to the phase winding of the motor based on the signal representing continuous position of the rotor.

11. The method as claimed in claim 10, wherein the method comprises controlling the voltage applied to the phase winding of the motor using space vector pulse width modulation.

12. The method as claimed in claim 11, wherein the method comprises controlling the voltage using 5-step space vector pulse width modulation.

13. The method as claimed in claim 1, wherein the method comprises obtaining the reference voltage value from a look-up table based on at least one of a measured DC link voltage and a calculated rotor speed.

14. The method as claimed in claim 1, wherein the reference voltage value comprises a sinusoidal voltage value.

15. The method as claimed in claim 1, wherein the method comprises calculating a reference back EMF waveform, and calculating an error offset for the determined zero-crossing point of back EMF induced in the phase winding using the reference back EMF waveform.

16. The method as claimed in claim 15, wherein the calculated reference back EMF waveform is dependent on the reference voltage value.

17. The method as claimed in claim 1, wherein the method further comprises controlling the brushless permanent magnet motor to obtain a desired rotor power using a closed feedback loop.

18. The method as claimed in claim 1, wherein the brushless permanent magnet motor comprises a plurality of phase windings, and the method comprises measuring a current value indicative of current flowing through only one phase winding of the motor, providing a reference voltage value indicative of a voltage applied to the only one phase winding of the motor, calculating a phase of back EMF induced in the only phase winding using the measured current value and the reference voltage value, determining a zero-crossing point of the back EMF induced in the only one phase winding using the calculated phase of back EMF induced in the phase winding, and generating a rotor position signal based on the determined zero-crossing point.

19. The method as claimed in claim 1, wherein the brushless permanent magnet motor comprises a plurality of phase windings, and the method comprises measuring a plurality of current values each indicative of current flowing through a respective phase winding of the motor, providing a plurality of reference voltage values each indicative of a voltage applied to the respective phase winding of the motor, calculating a phase of back EMF induced in each phase winding using the respective measured current value and the respective reference voltage value, determining a zero-crossing point of the back EMF induced in each phase winding using the calculated phase of back EMF induced in the phase winding, and generating a rotor position signal based on the determined zero-crossing points.

20. The method as claimed in claim 1, wherein the method comprises determining an initial back emf zero-crossing point and an initial rotor speed in an initialisation step, and generating the rotor position signal based on the initial back emf zero-crossing point and the initial rotor speed.

21. The method as claimed in claim 20, wherein determining the initial back emf zero-crossing point comprises turning off all power switches of the brushless permanent magnet motor, monitoring a phase voltage of the phase winding of the motor, and utilising a zero-crossing point of the phase voltage as the initial back emf zero-crossing point.

22. The method as claimed in claim 21, wherein determining the initial back emf zero-crossing point comprises turning off all power switches of the brushless permanent magnet motor, monitoring the phase voltage of the phase winding of the motor to determine at least two zero-crossing points of the phase voltage, and utilising the most recent zero-crossing point of the phase voltage as the initial back emf zero-crossing point.

23. The method as claimed in claim 22, wherein determining the initial rotor speed comprises utilising the most recent zero-crossing point of the phase voltage and a previously determined zero-crossing point of the phase voltage, and calculating a time period between the most recent zero-crossing point of the phase voltage and the previously determined zero-crossing point of the phase voltage.

24. A brushless permanent magnet motor comprising a controller configured to obtain a current value indicative of current flowing through a phase winding of the motor, obtain a reference voltage value indicative of a voltage applied to the phase winding of the motor, calculate a phase of back EMF induced in the phase winding using the measured current value and the reference voltage value, determine a zero-crossing point of the back EMF induced in the phase winding using the calculated phase of back EMF induced in the phase winding, and generate a rotor position signal based on the determined zero-crossing point.

25. A data carrier comprising machine readable instructions for the operation of a controller of a brushless permanent magnet motor to obtain a current value indicative of current flowing through a phase winding of the motor, obtain a reference voltage value indicative of a voltage applied to the phase winding of the motor, calculate a phase of back EMF induced in the phase winding using the measured current value and the reference voltage value, determine a zero-crossing point of the back EMF induced in the phase winding using the calculated phase of back EMF induced in the phase winding, and generate a rotor position signal based on the determined zero-crossing point.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0045] FIG. 1 is a schematic diagram illustrating a first embodiment of a motor system according to the present invention;

[0046] FIG. 2 is a schematic illustration of seven-step space vector pulse width modulation;

[0047] FIG. 3 is a schematic illustration of five-step space vector pulse width modulation for use with the motor system of FIG. 1;

[0048] FIG. 4 is a flow diagram illustrating a method of controlling the motor system of FIG. 1;

[0049] FIG. 5 is a first diagram illustrating waveforms utilised in controlling the motor system of FIG. 1;

[0050] FIG. 6 is a second diagram illustrating waveforms utilised in controlling the motor system of FIG. 1;

[0051] FIG. 7 is a schematic diagram illustrating a further embodiment of a motor system according to the present invention;

[0052] FIG. 8 is a schematic diagram illustrating a further embodiment of a motor system according to the present invention;

[0053] FIG. 9 is a schematic diagram illustrating waveforms utilised in controlling the motor system of FIG. 8;

[0054] FIG. 10 is a schematic diagram illustrating a further embodiment of a motor system according to the present invention;

DETAILED DESCRIPTION OF THE INVENTION

[0055] A motor system, generally designated 10, is illustrated schematically in FIG. 1. The motor system 10 comprises a three-phase brushless permanent magnet motor 12 and a control system 14. As shown in FIG. 1, the motor system 10 is powered by an AC mains power supply 16.

[0056] The motor 12 comprises a two-pole permanent magnet rotor 18 that rotates relative to a stator 20 having six coils. It will be appreciated by a person skilled in the art that the teachings referred to herein will be generally applicable to motors having different number of rotor poles and stator coils. Conductive wires are wound about the stator 20 to form three phase windings 22 connected in either of a so-called “star configuration”, ie with the three phase windings 22 coupled together with a common neutral node, or in a so-called “delta configuration”, ie with an end of one winding couple to a beginning of another winding or vice versa. The three phase windings 22 will be referred to herein as phase A, phase B, and phase C, although it will be appreciated that other notation, for example U, V, W, may also be used.

[0057] The control system 14 comprises a rectifier 24, a DC-DC boost converter 26, a DC link filter 28, an inverter 30, a current sensor 32, and a controller 34.

[0058] The rectifier 24 is a full-wave bridge of diodes that rectifies the output of the AC mains power supply 12 to provide a DC link voltage.

[0059] The DC-DC boost converter 26 is any appropriate boost converter that boosts the DC link voltage and supplies the boosted DC link voltage to the inverter 30. In some embodiments it will be appreciated that the DC-DC boost converter may be omitted.

[0060] The DC link filter 28 comprises a capacitor that smooths the relatively high frequency ripple that arises from switching of the inverter 30.

[0061] The inverter 30 comprises a full bridge of six power switches Q1-Q6 that couple the DC link voltage to the phase windings 22. The power switches Q1-Q6 are controlled in response to signals provided by the controller 34, as will be described in more detail hereafter.

[0062] The current sensor 32 in FIG. 1 comprises a shunt resistor R.sub.shuntA located on a low side of the leg of the inverter 30 corresponding to the windings of phase A.

[0063] The controller 34 controls operation of the power switches Q1-Q6 of the inverter 30 in a manner that will be described in further detail below. The controller 34 comprises a microcontroller having a processor, a memory device, and a plurality of peripherals (for example ADC, comparators, timers etc). The memory device stores instructions for execution by the processor, as well as control parameters for use by the processor.

[0064] As seen in FIG. 1, the controller 34 operates a plurality of control blocks to control the motor 12. Whilst shown in FIG. 1 as control blocks forming part of the controller 34, it will be appreciated that embodiments where the control blocks are stored and/or run on separate components to the controller 34 are also envisaged.

[0065] The control blocks of FIG. 1 comprise a power lookup table 36, a 3D lookup table 38, a voltage reference generator 40, a switching timing generator 42, a switching controller 44, and a rotor position calculator 46.

[0066] The motor 12 of FIG. 1 is controlled to obtain a desired power, and so the controller 34 obtains a reference power P.sub.REF from the power lookup table 36. The reference power P.sub.REF, along with an estimated speed of the rotor ω.sub.e, the calculation of which will be described hereinafter, and a DC link voltage V.sub.DC, are used to index the 3D lookup table 38 to obtain a desired voltage magnitude ∥v∥* and a desired voltage phase δ*.

[0067] The desired voltage magnitude ∥v∥* and the desired voltage phase δ* are passed to the voltage reference generator 40, along with an estimated rotor position signal θ.sub.e, the calculation of which will be discussed hereafter, and the DC link voltage V.sub.DC. The voltage reference generator 40 generates an orthogonal representation on α-β axes of the voltages to be applied to each of the three phase windings 22, with the orthogonal voltages denoted v.sub.α* and v.sub.β*. The orthogonal voltages v.sub.α* and v.sub.β* are calculated as shown below:

[00003] v α * = .Math. v .Math. * .Math. sin ( θ e + δ * - π + + T s 2 .Math. ω e ) V D C v β * = .Math. v .Math. * .Math. sin ( θ e + δ * - 3 π 2 ++ T s 2 .Math. ω e ) V D C

where ∥v∥* is the desired voltage magnitude, θ.sub.e is the estimated rotor position signal, δ* is the desired phase voltage, T.sub.s is 1/f.sub.sw with f.sub.sw being the sampling frequency, and ω.sub.e is the estimated speed of the rotor.

[0068] The orthogonal voltages v.sub.α* and v.sub.β* are passed to the switching timing generator 42, which is configured to generate switching timings T.sub.a, T.sub.b, T.sub.0 according to a 5-step space vector pulse width modulation method.

[0069] The switching timings T.sub.a, T.sub.b, T.sub.0 have the following relationship:


T.sub.0=T.sub.s−T.sub.a−T.sub.b

[0070] The switching timings T.sub.a and T.sub.b are calculated using the following relationships:

[00004] vREF p o s i t i o n = θ e + ( δ * - 3 2 π + ( T s 2 .Math. ω e ) ) m = .Math. v .Math. * 3 V D C

with the calculation dependent on the value of vREF.sub.position as indicated in Table 1 below.

TABLE-US-00001 TABLE 1 vREF.sub.position Switch Timings [00005] .Math. < π 3 [00006] T a = m .Math. sin ( π 3 - vREF position ) .Math. T s   T.sub.b = m .Math. sin (vREF.sub.position) .Math. T.sub.s [00007] π 3 .Math. < 2 π 3 [00008] T a = m .Math. sin ( vREF position - π 3 ) .Math. T s [00009] T b = m .Math. sin ( 2 π 3 - vREF position ) .Math. T s [00010] 2 π 3 .Math. < π T.sub.a = m .Math. sin (π − vREF.sub.position) .Math. T.sub.s   [00011] T b = m .Math. sin ( vREF position - 2 π 3 ) .Math. T s [00012] π .Math. < 4 π 3 T.sub.a = m .Math. sin (vREF.sub.position − π) .Math. T.sub.s   [00013] T b = m .Math. sin ( 4 π 3 - vREF position ) .Math. T s [00014] 4 π 3 .Math. < 5 π 3 [00015] T a = m .Math. sin ( 5 π 3 - vREF position ) .Math. T s [00016] T b = m .Math. sin ( vREF position - 4 π 3 ) .Math. T s [00017] 5 π 3 .Math. < 2 π [00018] T a = m .Math. sin ( vREF position - 5 π 3 ) .Math. T s   T.sub.b = m .Math. sin (−vREF.sub.position) .Math. T.sub.s

[0071] The values of the switch timings T.sub.a, T.sub.b, T.sub.0 are passed to the switching controller 44, which controls the six power switches Q1-Q6 of the inverter 30 using space vector pulse width modulation based on the switching timings T.sub.a, T.sub.b, T.sub.0. For traditional space vector pulse width modulation four voltage vectors are utilised v0 (000), v7 (111) and the two voltage vectors neighbouring the reference voltage vector as defined by VREF.sub.position, with a 0 indicating a low-side one of the corresponding six power switches Q1-Q6 conducting, and a 1 indicating a high-side one of the corresponding six power switches Q1-Q6 conducting. Thus, for example, for the voltage vector V1, the high-side switch corresponding to phase A is conducting, whilst the low-side switches for phase B and phase C are conducting.

[0072] Example timings for traditional seven-step space vector pulse width modulation when vREF.sub.position is less than π/3 are: v0 is applied for times T1 and T8, v1 is applied for times T2 and T7, v2 is applied for times T3 and T6, and v7 is applied for times T4 and T5, with the timing relationships shown below:


T3=T6=T.sub.b/2


T2=T7=T.sub.a/2


T1=T8=T4=T5=T.sub.0/4

[0073] An example illustrating the switching for such traditional space vector pulse width modulation using seven-step space vector pulse width modulation is illustrated in FIG. 2. For reasons that will be discussed hereinafter, the present invention more desirably makes use of five-step space vector pulse width modulation, in which the voltage vector v7 (111) (all high-side switches conducting and high-side freewheeling taking place) is not utilised. An example illustrating the switching for five-step space vector pulse width modulation is illustrated in FIG. 3.

[0074] In the manner described above, the controller 34 is able to control switching of the six power switches Q1-Q6 such that appropriate voltages are applied to drive rotation of the rotor 18.

[0075] It will be appreciated from the discussion above that in order to control rotation of the rotor 18, knowledge of the rotor position and rotor speed is needed. As will now be discussed, the controller 34 employs a sensorless scheme for estimating position and speed of the rotor 18, and controls operation of the power switches Q1-Q6 of the inverter 30 in response to the estimated position and speed of the rotor 18.

[0076] To employ the sensorless scheme, as shown in FIG. 1, the controller 34 comprises the rotor position calculator 46. The rotor position calculator 46 includes a zero-crossing estimator 48, an electrical period calculator 50, and a position signal generator 52.

[0077] In the embodiment of FIG. 1, only values relating to phase winding A are utilised, although it will be appreciated that the following discussion could equally apply to phase winding B or phase winding C. Furthermore, embodiments are also envisaged, as will be outlined hereafter, where values relating to multiple phase windings are utilised.

[0078] In the absence of any significant saturation or saliency, the voltage equation for any of the phase windings 22 may be expressed as

[00019] - E p h X = I p h X R p h X + ( L self phX - L mutual phX ) dI p h X d t - V p h X

where E.sub.phX is the back EMF induced in the phase winding X, L.sub.selfphX is the self-inductance of the phase winding X, L.sub.mutualphX is the mutual inductance of the phase winding X with other phase windings of the motor, I.sub.phX is the current value indicative of current flowing through the phase winding X, R.sub.phX is the resistance of the phase winding X, and V.sub.phX is the reference voltage value indicative of the voltage applied to the phase winding X.

[0079] The zero-crossing estimator 48 uses this voltage equation to estimate zero-crossings of back EMF in phase winding A, as will now be described.

[0080] The zero-crossing estimator 48 receives a signal, I.sub.A, representing a current value indicative of current flowing through phase winding A, from the shunt resistor R.sub.shuntA The zero-crossing estimator 48 also receives the desired voltage phase δ* from the 3D lookup table 38, and the orthogonal voltage v.sub.α* from the voltage reference generator. In the orthogonal representation on α-β axes of the voltages to be applied to each of the three phase windings, the orthogonal voltage v.sub.α* corresponds to the voltage applied to phase winding A, and so v.sub.α* may be taken as reference voltage value indicative of a voltage applied to phase winding A without further manipulation. Where phase windings B and/or C are utilised, further manipulation of the orthogonal voltages v.sub.α* and v.sub.β* may be required to obtain reference voltage values indicative of the voltages applied to phase winding B or C.

[0081] The zero-crossing estimator 48 further receives a previously estimated rotor position signal θ.sub.e from the position signal generator 52. This enables the rotor position signal to be updated based on the outputs from the zero-crossing estimator 48.

[0082] Using the self-inductance, L.sub.selfphA, the mutual inductance of the phase winding A with other phase windings of the motor L.sub.mutualphA, and the resistance, R.sub.phA, of the phase winding A, which are known quantities, in combination with the signal, I.sub.A, which is the current value indicative of current flowing through the phase winding A, and the orthogonal voltage v.sub.α*, which is the reference voltage value indicative of the voltage applied to the phase winding A, the zero-crossing estimator 48 is able to determine zero-crossing points of back EMF induced in the phase winding A in the following manner.

[0083] Integrating the voltage equation gives the relationship representative of integrated back EMF below:


∫.sub.−a.sup.a−E(t)dt=R∫.sub.−a.sup.aI.sub.A(t)dt+L.sub.self(I.sub.A(a)−I.sub.A(−a)−L.sub.mutual(I.sub.A(a)−I.sub.A(−a))−∫.sub.−a.sup.av.sub.α*(t)dtt

where −a and a are boundary values at the beginning and end of a measurement interval. This value is denoted as Bemf.sub.integ.

[0084] The back EMF induced in the phase winding 22 can also be fairly accurately approximated by a sinusoidal waveform having the following equation:


E(t)=Asin(ωt−φ)+noise(t)

where E(t) is the back EMF, A is the amplitude of the back EMF, ω is the angular frequency of the back EMF in radians per second, and φ is the phase of the back EMF in radians. Noise(t) represents any noise present in the back EMF signal. The integral of the noise component of the back EMF equation approximates to zero, and hence can effectively be ignored.

[0085] If we let Fs be the sampling frequency over a measurement interval from −h to h, we let s be the time in samples, and t be the time in seconds, such that s=Fst, then the value Bemf.sub.integ_norm, can also be written as the estimated integral of the sinusoidal back EMF waveform on the interval [−h, h] in samples:

[00020] Bemf i n t e g = - h h E ( s ) d s = - h h A sin ( ω s F s - φ ) ds

[0086] If we substitute s=(Fs/ω)x, then we get:

[00021] Bemf i n t e g = - h ω F s h ω F s A sin ( x - φ ) F s ω d x = A F s ω - h ω F s h ω F s sin ( x - φ ) dx

[0087] It can be seen that a normalisation constant for the integral given above is A.Math.(Fs/ω), where Fs is the sampling frequency. It can also be observed that the integration limit h ω/F.sub.s is half of the measurement interval expressed as the angle of back EMF in radians.

[0088] The amplitude, A, depends linearly on the motor speed and is commonly expressed via the motor-specific constant M.sub.100K, which is the amplitude in volts at the speed of 100,000 RPM. This constant depends on the motor construction, varies slightly with temperature, and can be determined by characterisation during a resynchronisation phase of the motor 12. The amplitude is thus given by:

[00022] A = M . 1 0 3 f R P M 1 0 5 = M 1 0 3 .Math. 60 .Math. f pp .Math. 10 5

where f.sub.RPM is the motor speed in RPM, and pp is the pole pair number of the rotor (in the present case 1).

[0089] The normalisation constant for the integral of the back EMF therefore becomes:

[00023] A F s ω = A F s 2 π f = M 1 0 3 .Math. 60 .Math. F s 2 π .Math. pp .Math. 10 5

[0090] The expression (60 Fs)/(pp.Math.10.sup.5) equals the number of samples per electrical period at 100,000 RPM for a four-pole motor, i.e. at the speed for which the M constant is specified. This can be thought of as the frequency normalisation factor, whereas M.Math.10.sup.3 can be thought of as the amplitude normalisation factor.

[0091] Thus it can be seen from that for known values amplitude and frequency of back EMF, we can calculate the phase of the back EMF induced in the phase winding using the following relationship:

[00024] sin φ = A F s ω - h ω F s h ω F s sin ( x - φ ) dx 2 sin ( h ω F s )

for unit amplitude, and a period of 2π.

[0092] From the integration of the back EMF equation above, we know that:

[00025] sin φ = A F s ω - h ω F s h ω F s sin ( x - φ ) dx 2 sin ( h ω F s ) = R - a a I A ( t ) dt + L self ( I A ( a ) - I A ( - a ) ) L m u t u a l ( I A ( a ) - I A ( - a ) ) - - a a v α * ( t ) dt 2 sin ( h ω F s )

[0093] Then by utilising the values for the current value indicative of current flowing through the phase winding, the reference voltage value indicative of the voltage applied to the phase winding, and converting the argument of the denominator into radians, we can determine a value for sin φ. The phase, φ, is then obtained by applying the arcsin function.

[0094] Once the phase has been calculated, known amplitude and/or frequency values stored in memory for the given rotor speed, or indeed calculated amplitude and/or frequency values for the given rotor speed, can be used in combination with the phase to determine zero-crossing points of back EMF induced in the phase winding 22, for example using a representation of the back EMF waveform.

[0095] A method 100 of determining the position of the rotor 18 is illustrated in the flow diagram of FIG. 4.

[0096] The method 100 comprises measuring 102 a current value indicative of current flowing through the phase winding A, and providing 104 a reference voltage value indicative of a voltage applied to the phase winding A. The method 100 comprises calculating 106 a phase of back EMF induced in the phase winding A using the measured current value and the reference voltage value, and determining 108 a zero-crossing point of the back EMF induced in the phase winding using the calculated phase of back EMF induced in the phase winding. The method comprises and using 110 the calculated phase of back EMF induced in the phase winding to generate a rotor position signal.

[0097] Knowledge of the zero-crossing points of back EMF induced in the phase winding 22 allows calculation of various values which can be used by the electrical period calculator 50, and the position signal generator 52 to generate the estimated rotor position signal θ.sub.e. In particular, the zero-crossing estimator 48 outputs values for the time period from the previous back EMF zero-crossing point to the start of the most recent sampling period, bemfzc_to_sofs, and the time period from the previous back EMF zero-crossing point to the end of the most recent sampling period, bemfzc_to_eofs, with bemfzc_to_sofs and bemfzc_to_eofs output to the electrical period calculator 50, along with an indication of which phase was sampled, Ph_sampled, which in this case is phase A.

[0098] The mid-period angle of the sampling period relative to a previous zero-crossing of back EMf, mid_period_angle, can be calculated using the arcsin function dependent on the value of sin φ:


sin φ≤1.fwdarw.arcsin(sin φ−1)=mid_period_angle


sin φ>1.fwdarw.arcsin(sin φ−1)+90°=mid_period_angle

[0099] A mid-period time, mid_period_time, is derived from the following:

[00026] mid_period _time = mid_period _angle .Math. T a_old 3 6 0

[0100] where T.sub.a_old is a previously known or previously calculated electrical period. Then the time period from the previous back EMF zero-crossing point to the start of the most recent sampling period, bemfzc_to_sofs, and the time period from the previous back EMF zero-crossing point to the end of the most recent sampling period, bemfzc_to_eofs, are then calculated by:

[00027] bemfZC_to _sofs = mid_period _time - N 2 .Math. T s bemfZC_to _eofs = mid_period _time + N 2 .Math. T s

with these values being passed to the electrical period calculator 50.

[0101] The electrical period calculator 50 calculates the electrical period between zero-crossings of back EMF induced in the phase winding 22 using the following:


Ta.sub.period=bemfZC_to_eofs.sub.old+deltaT−bemfZC_to_eofs

where bemfZC_to_eofs.sub.old is a previously calculated time period from a previously calculated or known back EMF zero crossing to the end of a previous sampling period, and deltaT is given by deltaT=timer.sub.endA−timer.sub.endA_old, where timer.sub.endA is the timer value at the end of sampling.

[0102] The electrical period calculator 50 outputs the calculated electrical period, Ta.sub.period, and the time period from the previous back EMF zero-crossing point to the end of the most recent sampling period, bemfzc_to_eofs, which is also referred to as the phase delay, phaseA.sub.delay, to the position signal generator 52, whilst also using the calculated rotor speed, given by

[00028] ω a = 2 π T a period ,

to index the 3D lookup table 38.

[0103] The position signal generator 52 generates the estimated rotor position signal θ.sub.e using the following relationship:

[00029] θ e = mod ( 2 π T a period .Math. ( t + phase A delay ) , 2 π )

where t is the running time which is reset to zero at the end of the sampling period, ie at timer.sub.endA.

[0104] The estimated rotor position signal θ.sub.e is referenced from a negative to a positive zero-crossing of the back EMF induced in phase winding A, with the estimated rotor position signal θ.sub.e being passed to the voltage reference generator 40 to be used to control the motor 12 as discussed above.

[0105] In such a manner, the controller 34 may obtain an estimated rotor position signal θ.sub.e in a sensorless manner, without requiring either a sensor or additional hardware components. The relationships between the various time periods discussed above can be seen in FIGS. 5 and 6.

[0106] In control of brushless permanent magnet motors, it is common to apply an acceleration control scheme to accelerate the motor quickly to a certain speed, before applying a different control scheme. The method 100 described above is typically only employed once the rotor 18 has been accelerated to a certain speed, for example a speed in excess of 40 krpm, and hence the controller 34 is required to transition from the initial acceleration control scheme (details of which are not pertinent to the present invention, and which may take many forms) to the method 100.

[0107] From the discussion of the method 100 above it will be appreciated that the estimated rotor position signal θ.sub.e output by the controller 34 is the function of its previous output, and hence that an initial back emf value and initial rotor speed value are needed to implement the control in the manner described above. In certain acceleration control schemes, accurate determination of the back emf value and rotor speed are not possible.

[0108] Thus in some embodiments the method 100 of the present invention includes an initialisation step. The initialisation step includes implementation of a so-called “resynchronisation period” in which the power switches Q1-Q6 are turned off. In such a period the back emf induced in the phase windings 22 is equal to the phase voltage, and hence zero-crossings of back emf can be monitored by monitoring the phase voltage. The resynchronisation period typically lasts for a period sufficient to determine two consecutive zero-crossings of the same polarity transition (ie two zero-crossings where the phase voltage transitions from positive to negative, or two zero-crossings where the phase voltage transitions from negative to positive), and this allows determination of the speed of the rotor 18 from these two consecutive zero-crossings.

[0109] The latter back emf zero-crossing determined during the resynchronisation period and the rotor speed can be used as initialisation values for the algorithms described in relation to the method 100 above.

[0110] Although described above in relation to two consecutive zero-crossings of the same polarity transition, it will be appreciated that two consecutive zero-crossings of different polarity transitions (ie one negative to positive and one positive to negative, or vice versa), or indeed that non-consecutive zero-crossings may be utilised to determine the initialisation values, with the calculation for speed of the rotor 18 being modified accordingly.

[0111] In the embodiment of FIG. 1, only phase winding A is utilised in the generation of the estimated rotor position signal θ.sub.e, and the estimated rotor position signal θ.sub.e is only updated once per 360 electrical degrees, ie once per back EMF cycle.

[0112] In an alternative embodiment, such as the embodiment of FIG. 7, phase windings B and C are also utilised in the generation of the estimated rotor position signal θ.sub.e.

[0113] The majority of the motor system 200 of FIG. 7 is the same as the motor system 10 of FIG. 1, and like reference numerals will be used for the sake of clarity.

[0114] The motor system 200 of FIG. 7 differs from the motor system 10 of FIG. 1 in that the current sensor 32 in FIG. 7 comprises three shunt resistors R.sub.shuntA, R.sub.shuntB, R.sub.shuntC, with each shunt resistor located on a low side of the leg of the inverter 30 corresponding the respective phase winding. The controller 34 of the motor system 200 comprises an additional control block in the form of a voltage transformation block 202.

[0115] The zero-crossing estimator 48 is to calculate a phase of back EMF induced in each of the phase windings A,B,C and to determine appropriate zero-crossing points in the manner described above, with the calculations for each phase being performed sequentially with around 120 electrical degrees of separation.

[0116] To achieve this, the zero-crossing estimator 48 receives signals I.sub.A, I.sub.B, and I.sub.C from the shunt resistors R.sub.shuntA, R.sub.shuntB, R.sub.shuntC, with each signal I.sub.A, I.sub.B, and I.sub.C representing a current value indicative of current flowing through the respective phase winding during excitation of that phase winding. In some embodiments, a time-division multiplexer (not-shown) is used to provide signals I.sub.A, I.sub.B, and I.sub.C to the zero-crossing estimator 48.

[0117] The zero-crossing estimator 48 further receives signals v.sub.A*, v.sub.B* , and v.sub.C* from the voltage transformation block 202. As mentioned above, in the orthogonal representation on α-β axes of the voltages to be applied to each of the three phase windings, the orthogonal voltage v.sub.α* corresponds to the voltage applied to phase winding A, and so v.sub.α* may be taken as reference voltage value indicative of a voltage applied to phase winding A without further manipulation. Where phase windings B and/or C are utilised, further manipulation of the orthogonal voltages v.sub.α* and v.sub.β* may be required to obtain reference voltage values indicative of the voltages applied to phase winding B or C. The voltage transformation block 202 provides this manipulation in the form of an inverse Clark transformation applied to orthogonal voltages v.sub.α* and v.sub.β*to generate signals v.sub.A*, v.sub.B*, and v.sub.C*, which are sinusoidal waveforms that each are a reference voltage value indicative of a voltage applied to the respective phase winding of the motor during excitation of that phase winding.

[0118] Using the signals I.sub.A, I.sub.B, and I.sub.C, and the signals v.sub.A* , v.sub.B* , and v.sub.C*, the controller 34 can update the estimated rotor position signal θ.sub.e once every 120 electrical degrees, which may provide improved accuracy of position estimation compared to a controller that only updates the estimated rotor position signal θ.sub.e once every 360 electrical degrees.

[0119] A further embodiment of a motor system 300 is illustrated schematically in FIG. 8. The motor system 300 of FIG. 8 has a further control block to the motor system 200 of FIG. 7 in the form of a reference zero-crossing estimator 302. The calculated back EMF zero-crossing points determined by the zero-crossing estimator 48 may not be entirely accurate, for example due to hardware delays and software dead time, and so the reference zero-crossing estimator 302 is to provide a reference back EMF zero-crossing time based on the reference voltage value indicative of a voltage applied to the phase winding, with the reference back EMF zero-crossing time providing an error offset to the estimated back EMF zero-crossing point calculated by the zero-crossing estimator 48.

[0120] The reference zero-crossing estimator 302 receives the desired voltage phase δ* from the 3D lookup table 38, and the signals v.sub.A* v.sub.B*, and v.sub.C* from the voltage transformation block 202. It will be appreciated that, where only one phase winding 22, for example phase winding A, is used for the back EMF zero-crossing point determination, the reference zero-crossing estimator 302 may instead receive the orthogonal voltage v.sub.α*, from the voltage reference generator 40. Using these values, and associated timing values, the reference zero-crossing estimator 302 calculates a reference value for the back EMF zero-crossing point to the start of the most recent sampling period, bemfzc_to_sofs.sub.REF using the equation:


bemfZC_to_sofs.sub.REF=(dt−v.sub.phase_REF_t)

where V.sub.phase_REF_t is the period between the estimated back EMF zero-crossing point and the zero-crossing point of the reference voltage waveform, and dt is the period from the zero-crossing point of the reference voltage waveform to the start of sampling.

[0121] The period between the estimated back EMF zero-crossing point and the zero-crossing point of the reference voltage waveform, v.sub.phase_REF_t, is given by the following equation:

[00030] v phase_REF _t = δ * 3 6 0 .Math. T a_old + T s 2

where T.sub.a_old is the previous calculate or previous known electrical period, and T.sub.s is 1/f.sub.sw, with f.sub.sw being the sampling frequency.

[0122] The period from the zero-crossing point of the reference voltage waveform to the start of sampling, dt, is given by:


dt=t.sub.1−t.sub.0+t.sub.2

where t.sub.0 is the time at the first sampling point after the reference voltage waveform transitions from a negative value to a positive value, and t.sub.1 is the time at the start of sampling.

[0123] The value t.sub.2 is the time period between the zero-crossing point of the reference voltage waveform and the time at the first sampling point after the reference voltage waveform transitions from a negative value to a positive value, to, and is calculated by the following:

[00031] t 2 = v phREF_sample .Math. T s v phREF_sample - v phREF_sample _old

where v.sub.phREF_sample is the voltage value at the first sampling point after the reference voltage waveform transitions from a negative value to a positive value, and v.sub.phREF_sample_old is the voltage value at the last sampling point before the reference voltage waveform transitions from a negative value to a positive value.

[0124] The reference zero-crossing estimator 302 passes the signal bemfzc_to_sofs.sub.REF to the electrical period calculator 50, where it is utilised alongside the calculated time period from the previous back EMF zero-crossing point to the start of the most recent sampling period, bemfzc_to_sofs, and the time period from the previous back EMF zero-crossing point to the end of the most recent sampling period, bemfzc_to_eofs.

[0125] In the embodiment of FIG. 8, the electrical period calculator 50 calculates an error offset value, error_offset, which is the difference between the reference time period from the previous back EMF zero-crossing point to the start of the most recent sampling period, bemfzc_to_sofs.sub.REF, and the calculated time period from the previous back EMF zero-crossing point to the start of the most recent sampling period, bemfzc_to_sofs:


error_offset=bemfZC_to_sofs.sub.REF−bemfZC_to_sofs

[0126] The final determined electrical period, Ta.sub.perioddet is then given by:


Ta.sub.perioddet=Ta.sub.period+(error.sub.offset−error_offset.sub.old)

where error_offset.sub.old is the previous calculated or known error offset, and


Ta.sub.period=bemfZC_to_eofs.sub.old+deltaT−bemfZC_to_eofs

[0127] The time period between the estimated back EMF zero-crossing point and the end of sampling is then given by:


phaseA.sub.delay=bemfZC_to_eofs+error_offset

[0128] In such a manner the reference zero-crossing estimator 302 may be used to compensate for errors in the calculated back EMF zero-crossing points determined by the zero-crossing estimator 48, for example due to hardware delays and software dead time. Example waveforms where the reference zero-crossing estimator 302 are used can be seen in FIG. 9, with ZC.sub.REF denoting the zero-crossing point estimated using the reference zero-crossing estimator 302, and ZC.sub.est denoting the zero-crossing point estimated using the zero-crossing estimator 48.

[0129] A further embodiment of the motor system 400 is shown in FIG. 10. The motor system 400 is substantially the same as the motor system 300 of FIG. 8, save that the motor system 400 of FIG. 10 includes a PI controller 402 that implements a PI control loop. From the discussion above it can be seen that the estimated rotor position signal θ.sub.e output by the controller is the function of its previous output, which may result in instability in the control.

[0130] The PI controller 402 receives the DC link voltage V.sub.DC from voltage divider circuit and a terminal current value I.sub.Term from a terminal shunt resistor R.sub.shuntTerm located on the low side of the inverter 30. The values V.sub.DC and I.sub.Term are used, along with a motor efficiency map, to calculate an input power P.sub.input to the rotor 18. This input power P.sub.input is compared by the PI controller 402 to the reference power P.sub.REF from the power lookup table 36 to obtain a correction factor PI.sub.mod, which is applied to the reference value for the back EMF zero-crossing point to the start of the most recent sampling period, bemfzc_to_sofs.sub.REF using the equation:


bemfZC_to_sofs.sub.REF=(dt−v.sub.phase_REF_t)+PI.sub.mod

[0131] This modification impacts on the estimated rotor position signal θ.sub.e and the calculated rotor speed ω.sub.A, and hence is fed-back to both the indexing of the 3D lookup table 38, and the voltage reference generator 40, and may allow for enhanced stability of control.

[0132] Although described above in relation to calculating input power to the rotor 18, it will be appreciated that, for example, the PI control loop may instead utilise DC link power, or other appropriate power values associated with the motor 12, depending on the desired control parameters for the motor.

[0133] Whilst the motor systems described above have been described as receiving power from an AC power supply, it will be recognised that the teachings herein are also applicable to motor systems that receive power from a DC power supply, with appropriate modification that will be apparent to a person skilled in the art.

[0134] It will further be appreciated that any measured values discussed herein, for example I.sub.A, I.sub.B, I.sub.C, V.sub.DC, or any generated signals discussed herein, for example error_offset, phaseA.sub.delay, ω.sub.e, or θ.sub.e, may be filtered or averaged to reduce noise and erroneous spikes or to improve stability.