This relates to rotor angle estimation for permanent magnet and brushless direct current motors.
Permanent magnet (PM) and brushless direct current (BLDC) motors are used in computer peripherals (disk drives, printers), hand-held power tools, vehicles ranging from model aircraft to automobiles, etc. PM and BLDC motors eliminate the need for brushes and provide high power to weight ratio, high speed, and high torque generation.
A permanent magnet motor is a type of motor where a fixed stator causes rotation of a movable rotor. The rotor typically includes multiple magnets embedded in or connected to the rotor, and the stator typically includes multiple conductive windings. Electrical current in the windings generates a rotating magnetic field that interacts with the magnets of the rotor, causing the rotor to rotate. Because the stator has multiple windings, the motor load as seen by the controller is inductive.
“Sensorless” motor control refers to an approach where one or more characteristics of a motor, such as motor speed or rotor position, are mathematically derived without direct sensor measurement. Sensorless motor control typically avoids the use of separate speed and position sensors that are mechanically attached to a motor.
A brushless motor controller injects a periodic signal into a field oriented controller of the brushless motor. Phase currents in stator windings of the brushless motor are measured. A d-axis current and a q-axis current are determined with a transform of the phase currents. The d-axis and the q-axis currents are demodulated to extract an angle dependent current signature that includes a sine component of a rotor angle estimate and a cosine component of the rotor angle estimate. The rotor angle estimate is determined by processing the sine component and the cosine component.
In the drawings, like elements are denoted by like reference numerals for consistency.
The challenge of low-speed sensorless position estimation is well-documented; see, for example: M. J. Corley and R. D. Lorenz. “Rotor position and velocity estimation for a salient pole PMSM at standstill and high speeds.” The absence of a significant back-EMF signal at low rotor speeds necessitates the employment of high-frequency signal injection methods that exploit rotor saliency to estimate rotor angle based on rotor position dependent signatures in voltage and current. These algorithms can be partitioned into two stages, namely, the extraction of a position error dependent signature followed by a tracking observer such as a phase locked loop (PLL) that updates the estimated position in order to drive the position error to zero. Such approaches can fail at large step changes in load because of a breakdown in the linearity of the PLL model.
An approach is presented herein to overcome limitations in rotor position sensing based on a PLL model due to large step changes in load that may cause a breakdown in the linearity of the PLL model. The approach described hereinbelow improves the angle estimation accuracy by compensating for phase lags introduced by a demodulation process. Information from the sine and cosine components of the angle error may be employed at high values of angle error where prior methods fail. Effective use of angle error information at large values of angle error provides a robust solution and may be extended to arbitrary mappings between angle error and current signature.
As will be described in more detail hereinbelow, extraction of angle information from d and q channels may be performed and then followed by a look up table (LUT) and a phase compensator block. Improved estimation accuracy at slow motor speed may be provided by compensating for demodulation functions in this manner.
The systems and methods that are used vary depending on the speed of the motor. When the motor is stationary, or more specifically, when the rotor is stationary relative to the stator, the position of the rotor is determined by injecting a square wave voltage into the motor and measuring the location or phase and direction of magnetic flux. The position of the rotor refers to the angle of the rotor and the terms “rotor position” and “rotor angle” are used synonymously. When the motor is operating at low speed, the rotor velocity is determined by injecting or superimposing a square wave onto a driving voltage of the motor and measuring the current into the motor. When the motor is operating at high speed, conventional systems and methods based on back emf (electromagnetic field) may be used to determine the position of the rotor.
A cross sectional view of an example motor 100 is shown in
The maximum torque of the motor 100 is generated when the orientation of the input current waveform to the windings 110 is approximately perpendicular to the position of the magnetic flux field in the rotor 104. For permanent magnet motors, such as the motor 100, the flux orientation is equal to the position of the rotor 104. As a result, the maximum torque is achieved in the motor 100 if the instantaneous position of the rotor 104 is known so that the input current can be positioned accordingly. The current position refers to the phase of the input current in the windings 110 relative to the position of the rotor 104. By using the devices and methods disclosed herein, the position of the rotor 104 is quickly determined, which enables a motor controller (not shown in
The field oriented controller 300 includes a speed controller 302 that receives a reference speed input signal of ωref from a user or external source. The speed controller 302 compares the reference speed input ωref to an estimated speed {circumflex over (ω)}re output from the position speed estimation logic 320. The output of the speed controller 302 is a reference current in the q axis that is compared to the measured current in the q axis by current control 304. Current controller 304 generates a q axis voltage Vq. An input Id,ref is also received from an external source and is compared to the measured current Id by current controller 304 which generates a d axis driving voltage Vd.
In this example, the periodic signal 306 is approximately a square wave signal having a frequency within a range of approximately 2 to 10 KHz. The periodic signal 306 is injected via adder 307 at the output of the current controller 304 in an appropriately selected coordinate frame, such as d-q frame 201, 202
The voltages Vq and Vd are input to an inverse Park transform logic 308 that generates the voltages in the alpha/beta domain Vαβ, see axis 205, 206 in
The voltages in the alpha/beta domain Vαβ are input to a space vector modulator (SVM) 310. The SVM 310 generates a three-phase driving signal for the motor 100, pulse width modulates (PWM) it, and amplifies the resultant PWM signal. The amplified three-phase PWM signals are then provided to a three-phase inverter 312 to drive the motor 100.
Current sensors (not shown) monitor the current into the motor 100 provided by inverter 312. The current sensors may be low value resistors that produce a voltage signal that is proportional to the phase currents in motor 100. In some examples, one of the three phases is monitored and in other examples, two or three phases are monitored. The voltage signals are analog values and are input to an analog to digital converter (ADC) 314, which outputs digital values representing the measured currents. The digital values of the current are input to a Clarke transform function 316 that outputs the alpha/beta domain currents Iα, Iβ or representations of the currents Iα, Iβ, see axis 205, 206 in
The currents Iαβ are input to a Park transform function 318 that performs a Park transform. The estimated rotor angle {circumflex over (θ)}re is input to the Park transform 318 as described in more detail hereinbelow. The Park transform function 318 generates the currents iq and id, or estimated values representing the currents, as described above. The Park transform device 318 uses the rotor angle {circumflex over (θ)}re in determining or calculating the currents iq and id. The output currents of the Park transform function 318 are input to current controller 304.
The alpha/beta domain currents Iαβ or representations of the currents Iαβ are also input to the position speed estimation (PSE) logic 320. The PSE logic 320 generates the estimated rotor angle {circumflex over (θ)}re and the estimated velocity {circumflex over (ω)}re using PLL tracking observer 424 (
When a periodic voltage signal is injected in the d-axis of the estimated reference frame, the high-frequency components of the reflected currents in the d and q axes are given by expression (2).
A more detailed mathematical analysis of signal injection is provided in U.S. Pat. No. 9,270,220, entitled “circuits and Methods of Determining Position and Velocity of a Rotor,” granted Feb. 23, 2016, which is incorporated by reference herein. The term “p” used herein in expression (1) denotes a derivative operator d/dt. Expanding expression (1) yields the same equations shown in U.S. Pat. No. 9,270,220.
It is evident that the error signal in the current is modulated up by the carrier frequency. Park transform 421 generates q-axis current Iq from currents Iα, Iβ. The q-axis current in the estimated reference frame Iq{circumflex over (r)} is demodulated by demodulation logic 422 and low pass filtered (LPF) in LPF 423 to attenuate the high frequency components at 2ωi. The goal of this step is to extract an error signal, proportional to sin 2({circumflex over (θ)}re−θre).
One approach works on the principle that when the angle error is small, sin(2({circumflex over (θ)}re−θre))˜2({circumflex over (θ)}re−θre), i. e, the output of the demodulation step can be used as a substitute for the position error. An observer can be designed to drive the angle error to zero and extract rotor angle.
The constants K1, K2, and K3 are observer gains that, are set so that the poles of the Luenberger observer 624 are stable. Mathematically, the poles of the transfer function of the Luenberger observer 624 are analyzed to make sure that they are in the left half plane of the s-domain, which assures stability. Because the Luenberger observer 624 is stable, the error eΘ is guaranteed to go to zero in a finite amount of time. The term b is a viscous damping term that represents any resistive torque in the motor 100,
where the constant K is defined by expression (4).
By using the Luenberger observer 624, the system is guaranteed to converge if the poles of the observer are correctly designed. The inductance variance is very small, so the term L2 is a small value and will not have a very significant effect on the value of K. In some embodiments, the inductance is measured as a function of rotor angle ΘR, so that the value of L2 is measured.
One part of this ambiguity, a factor of two, arises from the fact that the periodic component in the current is a function of twice the angle error. Thus, both the north-south (N-S) and south-north (S-N) rotor orientations lead to the same inductance value. This issue can be resolved by exploiting the saturation behavior of the rotor core as described in U.S. Pat. No. 9,270,220, entitled “Circuits and Methods of Determining Position and Velocity of a Motor,” granted Feb. 23, 2016, which is incorporated by reference herein. The behavior of the current magnitude for different orientations of the magnet in the rotor 104 (
The remaining factor of two in the rotor position ambiguity arises from the use of only the sine component of the angle error in the estimation process. The low-pass filtering logic 423 (
This component can be subtracted out by subtractor 824 assuming knowledge of the amplitude of the injected signal Vi, it's frequency ωi, and the inductances L0 and L2. Standard averaging methods to remove the DC component are limited at lower speeds where the attenuation provided by the averaging function is small. In other examples, another known or later developed techniques may be used to remove the DC term.
The outputs of the demodulation stage can be processed by a look up table 827 to extract an intermediate estimate of rotor angle. The LUT may be created based on simulations of the motor or by measurements of an actual motor, for example. The LUT may be organized as a two-dimensional array that is indexed using both the sine and the cosine components.
This estimate is further corrected for the phase lag introduced by the demodulation filters using LPF phase compensation logic 828 to obtain an accurate estimate of the rotor angle. Compensation logic 828 generates rotor angle {circumflex over (θ)}re which is then provided to Park transform logic 318 (
It can be seen from expression (2) that the sine and cosine parts of the angle error are modulated by the injected frequency. Hence, they are first demodulated to baseband, and low pass filtered to remove the high frequency demodulation byproduct. The DC offset present as an additive term to the cosine component is first removed. The angle is initially estimated via a look up table (LUT) that implements an inverse tangent function in the simple case or a more sophisticated mapping that represents the relation between the angle error and the current signature. The sophisticated mapping may be determined by simulation of a motor or by testing of an actual motor, for example.
Thus, a rotor angle estimation scheme using a lookup table as described herein extracts position information from both the d and q components of the current. Further, a look up table, such as LUT 827, can be used to generalize the map from the demodulated current signature to the rotor angle. A phase correction block, such as phase angle correction block 828, enables greater flexibility in the demodulation filter design which can introduce significant phase delay when designed for higher passband attenuation and thereby improves the angle estimation accuracy. The rotor angle estimation scheme described herein reduces rotor position ambiguity from four possibilities to two, which can be further eliminated by measuring average current in response to core behavior during saturation, as described in more detail hereinabove. The rotor angle estimation scheme described herein is more robust to large load steps which can cause conventional PLL based approaches to not function as desired.
Control logic 1301 monitors the estimated rotor angle error value produced by the observer rotor angle estimation logic 420. When the motor is initially at rest, the PLL observer logic is selected. While the estimated rotor angle error is below a threshold value, the {circumflex over (ω)}re and {circumflex over (θ)}re outputs are provided by the PLL rotor angle estimation logic 420 to speed control logic 302 and Park transform 318 respectively in response to control logic 1301. When the rotor angle error estimation exceeds the threshold value, then the {circumflex over (ω)}re and {circumflex over (θ)}re outputs are provided by the LUT rotor angle estimation logic 820 to speed control logic 302 and Park transform 318 respectively in response to control logic 1301. In this example, the threshold value may be adjustable under control of a system controller. A rotor angle error threshold value of approximately 30 degrees provides a good balance.
Once the speed of motor 100 exceeds an emf speed threshold at which control based on back emf (electromagnetic field) from motor 100 can be used, then control system 300 may switch over and use back emf based estimation techniques for speed control purposes.
At 1402, a periodic signal is injected into a speed controller of a brushless motor, such as brushless motor 100 of
At 1404, phase currents in the field windings of the motor are measured. The current sensors may be low value resistors that produce a voltage signal that is proportional to the field currents in the motor. In some examples, one of the three phases is monitored and in other examples, two or three phases are monitored. The voltage signals are analog values and are input to an analog to digital converter (ADC), which outputs digital values representing the measured currents.
At 1406, the signals represented the measured field current are transformed to generate a d-axis current signal and a q-axis current signal. In this example, a Clark transform is used the generate alpha/beta domain currents, and then a Park transform is used to transform the alpha/beta domain currents to the d-axis and q-axis current signals.
At 1408, the d-axis and q-axis currents are demodulated to extract sine and cosine components of a rotor angle because the sine and cosine parts of the angle error are modulated by the injected frequency. In this example, the Id current, is demodulated using sin(ωit) and low pass filtered to remove high frequency components. The Iq current is demodulated using sin(ωit) and low pass filtered to remove high frequency components. The demodulated q-axis component contains a DC term which can be subtracted out assuming knowledge of the amplitude of the injected signal Vi, it's frequency ωi, and the inductances L0 and L2, as described in more detail hereinabove. Standard averaging methods to remove the DC component are limited at lower speeds where the attenuation provided by the averaging function is small.
At 1410, a rotor angle estimate is determined by processing the sine and cosine components of the rotor angle. The outputs of the demodulation stage can be processed by a look up table (LUT), such as LUT 827 (
At 1504, the current speed of the rotor is compared to an emf threshold. Once the speed of a motor, such as motor 100 (
At 1508, selection logic decides which estimation technique to use. In this example, an estimated rotor angle error is compared to an error threshold, however, in other examples a different parameter may be used to select which estimation technique to use. While the estimated rotor angle error is less than the error threshold, rotor angle and rotor speed is estimated at 1510 using an observer model, such as PLL observer 424 (
At 1512, while the estimated rotor angle is greater than the error threshold, rotor angle and rotor speed is estimated using both sine and cosine components of the HFI signal. As described in more detail hereinabove, d-axis and q-axis components of measured phase currents may be demodulated and filtered to extract the sine and cosine components which are then used to access a lookup table that provides an estimated rotor angle and speed. Phase compensation is used to correct for phase lag that is introduced by the demodulation filters. A current estimated rotor angle {circumflex over (θ)}re and a rotor speed estimate {circumflex over (ω)}re is output from the compensation logic.
At 1514, a north-south orientation of the rotor is determined based on the rotor saturation behavior by determining an average value of the current magnitude resulting, from the injected signal, as described in more detail hereinabove.
At 1516, the estimated rotor angle {circumflex over (θ)}re generated at 1512, 1510 or 1506 is then provided to a Park transform, such as Park transform logic 318 (
In described examples, a PLL observer or a Luenberger observer is used. In other examples, other known or later developed observers may be used.
In described examples, a lookup table is used to process the sine and cosine components. In another example, a complex mathematical model may be used to process the sine and cosine components to produce an estimated rotor angle error and estimated rotor speed.
In described examples, the motor control, such as motor control 300 (
In described examples, Park and Clark transform functions are used to process the measured phase current. In other examples, other known or later developed transform functions may be used for processing the measured phase current.
In described examples, a square wave is used as the injected signal; however, other signal types such as a sine wave can be used. Some rounding of the signal edges may occur.
In described examples, an error threshold of approximately 30 degrees is used. This value is not critical and may be selected from a wide range of values.
In described examples, a load of 0.2-0.3 Nm for example motor 100 is illustrated. In other examples, motors that are designed for larger or smaller loads may be operated using the same control techniques as described hereinabove.
In described examples, a field oriented control loop for controlling motor rotational speed is illustrated. In other examples, a field oriented control loop needing position and velocity estimation for other uses, such as position control, velocity control, torque control, etc. may utilize the LUT based estimation techniques described hereinabove.
In this description, the term “couple” and derivatives thereof mean an indirect, direct, optical, and/or wireless electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, through an indirect electrical connection via other devices and connections, through an optical electrical connection, and/or through a wireless electrical connection.
Modifications are possible in the described examples, and other examples are possible, within the scope of the claims.
Number | Name | Date | Kind |
---|---|---|---|
5585709 | Jansen | Dec 1996 | A |
6492788 | Agirman | Dec 2002 | B1 |
8693220 | Klodowski | Apr 2014 | B2 |
9270220 | Magee | Feb 2016 | B2 |
9305548 | Kennewick et al. | Apr 2016 | B2 |
9548686 | Magee | Jan 2017 | B2 |
9825564 | Magee | Nov 2017 | B2 |
9991777 | Lynch et al. | Jun 2018 | B2 |
9998052 | Shimada | Jun 2018 | B2 |
20070040528 | Tomigashi | Feb 2007 | A1 |
20110309781 | Tomigashi | Dec 2011 | A1 |
20140225548 | Xu | Aug 2014 | A1 |
20140327379 | Yang | Nov 2014 | A1 |
20150357956 | Shimada | Dec 2015 | A1 |
20170006303 | Sethuraman et al. | Jan 2017 | A1 |
Entry |
---|
Matthew J. Corley and Robert D. Lorenz, “Rotor Position and Velocity Estimation for a Salient-Pole Permanent Magnet Synchronous Machine at Standstill and High Speeds”, IEEE Transactions on Industry Applications, vol. 34, No. 4, Jul./Aug. 1998, pp. 784-789. |
Ji-Noon Jang, et al, “Analysis of Permanent-Magnet Machine for Sensorless Control Based on High-Frequency Signal Injection”, IEEE Transactions on Industrial Applications, vol. 40, No. 6, Nov./Dec. 2004, pp. 1595-1604. |
Limei Wang and Robert D. Lorenz, “Rotor Position Estimation for Permanent Magnet Synchronous Motor Using Saliency-Tracking Self-Sensing Method”, Industry Applications Conference, 2000, Oct. 8-12, 2000, Rome, Italy, pp. 445-450. |
Patrick L. Jansen and Robert D. Lorenz, “Transducerless Position and Velocity Estimation in Induction and Salient AC Machines”, IEEE Transactions on Industry Applications, vol. 31, No. 2, Mar./Apr. 1995, pp. 240-246. |
Patrick Carner, “Increased Integration, Improved Feature Sets and New Software for Motor Control Systems: C2000 Piccolo F2805x microcontrollers”, whitepaper, Texas Instruments, Inc., Nov. 2012, pp. 1-9. |
“Clarke & Park Transforms on the TMS320C2xx”, Application Report Literature No. BPRA048, Texas Instruments, Inc., 1997, pp. 1-46. |
Bianchi, N. et al. “Effect of Stator and Rotor Saturation on Sensorless Rotor Position Detection.” IEEE Transactions on Industry Applications, vol. 49, No. 3, May/Jun. 2013, pp. 1333-1342. |
Barcaro, M. et al. “Iron Saturation Impact on High Frequency Sensorless Control of Synchronous Permanent Magnets Motor.” 978-1-5090-2538-1 @2016 IEEE, pp. 1085-1091. |
Li, Y. et al. “Improved Rotor-Position Estimation by Signal Injection in Brushless AC Motors, Accounting for Cross-Coupling Magnetic Saturation.” IEEE Transactions on Industry Applications, vol. 45, No. 5, Sep./Oct. 2009, pp. 1843-1850. |
Raca, D. et al. “Carrier-Signal Selection for Sensorless Control of PM Synchronous Machines at Zero and Very Low Speeds.” IEEE Transactions on Industry Applications, vol. 46, No. 1, Jan./Feb. 2010, pp. 167-178. |
Reigosa, D. D. et al. “Measurement and Adaptive Decoupling of Cross-Saturation Effects and Secondary Saliences in Sensorless Controlled IPM Synchronous Machines.” IEEE Transactions on Industry Applications, vol. 44, No. 6, Nov./Dec. 2008. pp. 1758-1767. |
Number | Date | Country | |
---|---|---|---|
20200169204 A1 | May 2020 | US |