METHOD OF DETERMINING A POSITION OF A ROTOR OF A BRUSHLESS PERMANENT MAGNET MOTOR
20230327587 · 2023-10-12
Assignee
Inventors
Cpc classification
H02P23/0031
ELECTRICITY
H02P2207/05
ELECTRICITY
International classification
H02P23/00
ELECTRICITY
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:
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:
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]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051]
[0052]
[0053]
[0054]
DETAILED DESCRIPTION OF THE INVENTION
[0055] A motor system, generally designated 10, is illustrated schematically in
[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
[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
[0065] The control blocks of
[0066] The motor 12 of
[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:
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:
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
[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
[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
[0077] In the embodiment of
[0078] In the absence of any significant saturation or saliency, the voltage equation for any of the phase windings 22 may be expressed as
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:
[0086] If we substitute s=(Fs/ω)x, then we get:
[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:
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:
[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:
for unit amplitude, and a period of 2π.
[0092] From the integration of the back EMF equation above, we know that:
[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
[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:
[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:
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
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:
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
[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
[0112] In an alternative embodiment, such as the embodiment of
[0113] The majority of the motor system 200 of
[0114] The motor system 200 of
[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
[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:
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:
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
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
[0129] A further embodiment of the motor system 400 is shown in
[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.