FOC (field oriented control) is highly desired in motor control applications because of advantageous characteristics such as improved performance especially for PMSM (permanent magnet synchronous motor) applications. PMSM applications include two motor types: SPM (surface permanent magnet) and IPM (interior permanent magnet) motors.
Observers, on the other hand, are control loops that are designed to estimate or ‘observe’ internal variables of the system without directly measuring the variables. For example, a position observer estimates the rotor angular position without using an actual position sensor.
Sensorless observers, which estimate rotor angular position and motor speed, are highly desired and are usually implemented together with FOC. Some advantages of sensorless observers include cost reduction by eliminating the position sensor, increased system reliability because the sensor can fail, and increases maximum operating temperature of the motor since position sensors are mounted on the motor and usually cannot operate at high temperatures. Another type of observer that is used in certain FOC controllers is a flux observer which estimates stator flux without using flux sensors.
There are two major FOC methods for PMSMs, namely SFO (stator frame orientation) controllers and RFO (rotor frame orientation) controllers. For sensorless control in RFO, a rotor position observer is required. For sensorless control in SFO, a rotor position observer and a stator flux observer are needed.
Conventional sensorless observers cannot achieve zero-phase-shift at all speeds. Non-zero phase-shift in an estimated position means the motor is not operating at MTPA (maximum torque per amp) which means less than optimal efficiency. Efficiency is particularly critical for battery power applications, where minimizing unnecessary losses is of utmost importance to maximize battery run time. Also, conventional sensorless observers are not adaptive which means the observer does not adapt based on the operating condition of the PMSM.
Conventional sensorless observers are not universal in that conventional sensorless observers are unable to support both PMSM types, namely SPM (surface permanent magnet) and IPM (interior permanent magnet) motors and at the same time support both FOC (field oriented control) methods, namely RFO (rotor frame orientation) control and SFO (stator frame orientation) control. Most conventional sensorless observers only work for SPM-type motors and not IPM-type motors. Most conventional sensorless observers work for RFO control type. No single conventional sensorless observer works for both IPM and SPM while also supporting both SFO and RFO control types at the same time.
Thus, there is a need for improved sensorless observer methodology.
According to an embodiment of a controller for a permanent magnet synchronous motor, the controller comprises: a first control loop comprising a first filter, wherein the first filter has a back-EMF voltage vector input, a magnetic flux vector output with a constant phase shift that is independent of motor speed, and an amplitude response that is inversely proportional to rotor electrical frequency, wherein the first control loop is configured to: generate an adjusted magnetic flux vector from the magnetic flux vector output by the first filter and compensate for the constant phase shift introduced by the first filter; estimate the rotor electrical frequency from the adjusted magnetic flux vector; and feedback a filtered version of the rotor electrical frequency estimate to the first filter as an estimation of the rotor electrical frequency.
Those skilled in the art will recognize additional features and advantages upon reading the following detailed description, and upon viewing the accompanying drawings.
The elements of the drawings are not necessarily to scale relative to each other. Like reference numerals designate corresponding similar parts. The features of the various illustrated embodiments can be combined unless they exclude each other. Embodiments are depicted in the drawings and are detailed in the description which follows.
Described herein are embodiments of a zero-phase-shift observer (control loop) that is universal in that both SPM and IPM motor types and both RFO and SFO control methods are supported. The zero-phase-shift observer also is adaptive in that control parameters are not constant and instead adapt to changes in the operating point and speed of the motor. The zero-phase-shift observer enables zero-phase-shift at all speeds, ensuring the motor operates at the MTPA condition which is important for battery powered applications where minimizing unnecessary losses is of utmost importance to maximize battery run time. The zero-phase-shift observer has the ability to observe both rotor position (for RFO and SFO) and stator flux (for SFO).
Described next, with reference to the figures, are exemplary embodiments of the zero-phase-shift observer (control loop).
The controller 100 includes a zero-phase-shift observer (control loop) 106 having a first filter H(s). The first filter H(s) has a back-EMF voltage vector input eαβ(θr), a magnetic flux vector output λαβ(θr+θp′) with a constant phase shift θp′ that is independent of motor speed, and an amplitude response
that is inversely proportional to rotor electrical frequency ωr. The zero-phase-shift observer (control loop) 106 generates an adjusted magnetic flux vector λαβ′(θr+θp′) from the magnetic flux vector output λαβ(θr+θp′) of the first filter H(s) to be able to extract the rotor angle, and compensates for the constant phase shift θp′ introduced by the first filter H(s). The zero-phase-shift observer (control loop) 106 estimates the rotor electrical frequency {circumflex over (ω)}r from the adjusted magnetic flux vector λαβ′(θr+θp′). The phase-shift observer (control loop) 106 feeds back a filtered version of the rotor electrical frequency estimate |{circumflex over (ω)}r,filt| to the first filter H(s).
Before describing the zero-phase-shift observer (control loop) 106 in more detail, some mathematical conventions are explained next.
In general, three-phase variables (u, v, w) such as voltages, currents, fluxes, etc. can be expressed using a vector representation as follows.
The same vector definition can be used for the corresponding SRF (stationary-reference-frame) α, β, 0 and RRF (rotating-reference-frame) q, d, 0 representation of such variables, as follows:
The transformation from three-phase to SRF can be done using the following matrix (also known as Clarke transformation matrix):
The transformation from SRF to RRF can be done using the following rotation matrix (also known as Park transformation matrix):
It should be noted that the Park transform has certain properties that will be used later herein, namely:
The Park and Clarke transformation matrices can be combined to go directly from three-phase to RRF as follows:
where
Motor windings are either star connected with no ground return or delta connected. Therefore, the zero component of the currents and voltages are always zero and the vector representations can be simplified by removing the zero component as follows:
With these mathematical conventions in mind, the zero-phase-shift observer (control loop) 106 is described next in more detail in the context of the RFO control method.
The back-EMF voltage vector eαβ(θr) is then fed to the first filter H(s), which is modeled as a transfer function H(s)I in
Such criteria ensures that H(s) acts as an integrator at high frequencies, has constant phase shift at the electrical frequency of the motor 102 no matter the speed, and has −40 dB/dec of attenuation at low frequencies to eliminate DC offset due to integration and/or ADC (analog-to-digital conversion) offset and noise.
The phase shift θp at positive electrical frequencies +ωr is positive as follows:
In addition, since the impulse response h(t) is always real (no imaginary component), H(s) must have complex conjugate symmetry. Therefore:
Combining equations (14) and (15), the following can be concluded:
That is, the phase shift (θp) at positive electrical frequencies +ωr is always positive and the phase shift (−θp) at negative electrical frequencies (−ωr) is always negative.
Without loss of generalization, a scalar input to H(s) can be expressed as:
where θr, ωr, and φ are the rotor angle, rotor electrical frequency, and phase offset of x, respectively.
The Fourier transform of equation (17) yields:
Therefore, the output of H(s) in the frequency domain can be represented as follows:
Replacing H(ωr) and H(−ωr) according to equation (16) yields:
The output can then be transformed from the frequency domain back to the time domain as follows:
Using Euler's formula, equation (21) can be simplified as follows:
The constant phase shift θp′ introduced by the first H(s) can be defined as follows:
According to equation (22), when eαβ(θr) is applied as the input of H(s), the output becomes:
Equation (24) indicates that there is always a constant positive or negative phase shift θp′ at positive or negative rotor electrical frequencies ωr, respectively.
The zero-phase-shift observer (control loop) 106 includes a block 200 that applies a phase shift matrix R(−θp) to the applied current vector iαβ(θr) to generate a phase-shifted version iαβ(θr+θp′) of the applied current vector iαβ(θr) that has the same phase shift θp′ as the magnetic flux vector output λαβ(θr+θp′) of the first filter H(s).
For example, a Park transform of angle −θp′, can be applied to the SRF currents as follows:
Equation (25) indicates that by using the phase shift rotation matrix R(−θp′), the phase shift θp′ in the current iαβ(θr+θp′) will match that of the magnetic flux vector output λαβ(θr+θp′) of the first filter H(s).
The zero-phase-shift observer (control loop) 106 generates the adjusted magnetic flux vector λαβ′(θr+θp′) from the magnetic flux vector output λα62 (or +θp′) of the first filter H(s) and the phase-shifted version iαβ(θr+θp′) of the applied current vector iαβ(θr).
For example, the zero-phase-shift observer (control loop) 106 can generate the adjusted magnetic flux vector λαβ′(θr+θp′) from the magnetic flux vector output λαβ(θr+θp′) of the first filter H(s) and the phase-shifted version iαβ(θr+θp′) of the applied current vector iαβ(θr) by scaling Lq the phase-shifted version iαβ(θr+θp′) of the applied current vector iαβ(θr) and subtracting (Block 202 in
The SRF fluxes and currents can be combined as follows:
where xqdr are the corresponding RRF variables in the rotor reference frame, where d-axis is aligned with the permanent magnet flux of the motor 102.
Expanding λqdr-Lqiqdr in equation (26) yields:
Equation (27) indicates that λqdr-Lqiqdr has no vector component along the q-axis, since the adjusted magnetic flux vector λαβ′(θr+θp′) is in the same direction as the rotor electrical angle θr (used in SFO and RFO) but the magnetic flux vector output hag (θr+θp′) of the first filter H(s) is in the same direction as stator electrical angle θe (used in SFO). Accordingly:
Using equation (28), the rotor angle can be extracted as follows.
As a byproduct, the magnitude of the adjusted magnetic flux vector λββ′(θr+θp′) is as follows:
This magnitude can be used to estimate the motor torque, as described later herein. The tan−1(⋅) function in equation (29) can be implemented using a PLL (phase lock loop) 204 as shown in
The PLL 204 includes a biquad filter 206 which low pass filters the rotor electrical frequency estimate {circumflex over (ω)}r. A sign operation block 208 of the PLL 204 identifies the sign (+ or −) of the filtered version of the rotor electrical frequency estimate {circumflex over (ω)}r,filt output by the biquad filter 206. An angle change block 210 of the PLL 204 implements+/−angle change, depending on the sign of the filtered version of the rotor electrical frequency estimate {circumflex over (ω)}r,filt, as indicated by the sign operation 208.
The zero-phase-shift observer (control loop) 106 can estimate the rotor electrical angle {circumflex over (θ)}r from the adjusted magnetic flux vector λαβ′(θr+θp′). In an embodiment, a transformation block 212 of the zero-phase-shift observer (control loop) 106 transforms the adjusted magnetic flux vector λαβ′(θr+θp′) by the estimated rotor electrical angle or plus the constant phase shift θp′ introduced by the first filter H(s).
For example, the transformation block 212 can implement a Park transform of the adjusted magnetic flux vector λαβ′(θr+θp′) using the estimated rotor electrical angle {circumflex over (θ)}r and apply the same offset θp′ which yields the following:
The transformation block 212 can generate an error vector λqr′ from quadrature axis (q) components of the transformed vector and a magnitude vector λdr′ from direct axis (d) components of the transformed vector as follows:
The torque of the PMSM 102, whether IPM or SPM, can be expressed as:
A torque estimation block 216 of the zero-phase-shift observer (control loop) 106 can estimate the motor torque {circumflex over (T)} from the magnitude vector λdr′ estimated by the PLL 204 in steady state as follows:
A PI (proportional integral) controller block 218 of the PLL 204 has a proportional term kp and an integral term ki/s for estimating the rotor electrical frequency {circumflex over (ω)}r based on the error λqr′ generated by the transformation block 212 from the quadrature axis (q) components of the transformed vector. The rotor electrical frequency estimate {circumflex over (ω)}r is input to the biquad filter 206 and to an integration block 220 that generates an estimate of the rotor electrical angle {circumflex over (θ)}r. The biquad filter 206 generates a filtered version of the rotor electrical frequency estimate {circumflex over (ω)}r,filt the absolute value of which is provided to the first filter H(s) via block 222 which ignores the sign (+/−) of the filtered version of the rotor electrical frequency estimate {circumflex over (ω)}r,filt.
The zero-phase-shift observer (control loop) 106 estimates the stator electrical angle {circumflex over (θ)}e and the stator flux magnitude λds′ by transforming the magnetic flux vector output λαβ(θr+θp′) of the first filter H(s) by an angle equal to the positive stator electrical angle plus the constant phase shift introduced by the first filter H(s).
In more detail, the stator electrical angle and the corresponding SFO are defined such that:
That is, in SFO control, all of the stator flux is aligned with the d-axis.
With a change of variable from θr to θe, a deductive reasoning similar to equations (17)-(24) can be used to derive λαβ in terms of the stator electrical angle θe as follows:
A second transformation block 400 of the zero-phase-shift observer (control loop) 106 applies a Park transform with angle θe∓θp′ to the fluxes in equation (37) to obtain the following:
The angle used in the second transformation block 400 is positive but in equation (38), the input vector is expressed in terms of the output vector of the second transformation block 400, so the angle is negative of what is applied.
Therefore, the stator electrical angle θe and the stator flux magnitude λds can be extracted as follows:
To realize the tan−1(⋅) function in equation (39), the zero-phase-shift observer (control loop) 106 includes a second PLL 402 to extract the stator electrical angle estimate {circumflex over (θ)}e. The second PLL 402 includes a second PI controller block 404 that has a proportional term kp and an integral term ki/s for estimating the stator electrical frequency {circumflex over (ω)}e based on the error λqs′ generated by the second transformation block 400 from the quadrature axis (q) components of the transformed vector λαβ(θe+θp′). The stator electrical frequency estimate {circumflex over (ω)}e is input to another integration block 406 that generates an estimate of the stator electrical angle {circumflex over (θ)}e.
As seen in
As seen in equation (41), the q-axis and d-axis components of the Park transform are the error and magnitude signals, respectively, as given by:
If the second PLL 402 is stable, the error (θe,error) is zero in steady state. Accordingly, the stator electrical angle estimate θe and the stator flux magnitude estimate λds′ converge to the stator electrical angle θe and the stator flux magnitude λds, respectively.
The torque in SFO control can be expressed as:
Therefore, the second PLL 402 can estimate the motor torque {circumflex over (T)} from the stator flux magnitude estimate λds and the quadrature axis (q) components of the motor current vector iqs, as a byproduct of the stator electrical angle {circumflex over (θ)}e estimation as follows:
In addition, the zero-phase-shift observer (control loop) 106 can estimate the load angle {circumflex over (δ)} by subtracting (Block 408) the rotor electrical angle estimate {circumflex over (θ)}r from the stator electrical angle estimate {circumflex over (θ)}e as follows:
The first filter H(s) of the zero-phase-shift observer (control loop) 106 is an adaptive flux extraction filter and described next in more detail with reference to
Without loss of generality, the transfer function H(s)I that represent the first filter H(s) may be represented as any transfer function that satisfies the criteria defined in equation (13). Since the phase shift θp′ of the first filter H(s) is always constant at |ωr|, this indicates that the first filter H(s) is an adaptive transfer function whose coefficients c1, c2, c3 change according to the operating point of the system. Without loss of generality, a specific realization of such an adaptive transfer function is as follows:
The third-degree polynomial in the denominator of equation (48) can be factored such that each root is proportional to the absolute electrical frequency of the rotor |ωr| as follows:
By equating equations (48) and (49), the filter coefficients {c1, c2, c3} can be determined as follows:
The first filter H(s) can be evaluated at s=jωr to see if the criteria in equation (13) are satisfied, as follows:
If A is selected such that:
then |H(|ωr|)|=1/ωr. Accordingly, the first criteria in equation (13) is satisfied.
Also, the phase shift at ωr can be found by examining equation (51) as follows:
where:
Accordingly, the second criteria in equation (13) is also satisfied.
In addition, since the nominator and denominator of H(s) are second-degree and third-degree polynomials, then
Accordingly, the third and fourth criteria in equation (13) are also satisfied.
In
The biquad filter 206 of the zero-phase-shift observer (control loop) 106 is described next in more detail with reference to
In continuous-time, the biquad filter 206 can be expressed as:
where
and K, ωzi, and ωpi are the de gain, zeros, and poles of the system, respectively.
If the sampling frequency fs is high enough compared to the bandwidth of the system, a simple forward Euler discretization can be used to go from continuous-time to discrete-time domain as follows:
Applying equation (58) to equation (56), yields:
where
To simplify the computations inside the microcontroller, the discrete-time coefficients can be scaled as follows:
A Direct-Form-II realization of the digital filter expressed in equation (59) can be used as follows:
where
Accordingly, the time-domain equivalent of equation (63) is:
The block diagram of the biquad filter 206 illustrated in
Without loss of generality, a critically-damped second-order low-pass-filter can be used as the low pass filter 206 of the zero-phase-shift observer (control loop) 106 as follows:
Although the zero-phase-shift observer (control loop) 106 is described herein in the context of PMSM applications, the flux observer part of the SFO observer architecture can also be used for observing the stator flux of induction motors, as well, and without loss of generalization.
Although the present disclosure is not so limited, the following numbered examples demonstrate one or more aspects of the disclosure.
Example 1. A controller for a permanent magnet synchronous motor, the controller comprising: a first control loop comprising a first filter, wherein the first filter has a back-EMF voltage vector input, a magnetic flux vector output with a constant phase shift that is independent of motor speed, and an amplitude response that is inversely proportional to rotor electrical frequency, wherein the first control loop is configured to: generate an adjusted magnetic flux vector from the magnetic flux vector output by the first filter and compensate for the constant phase shift introduced by the first filter; estimate the rotor electrical frequency from the adjusted magnetic flux vector; and feedback a filtered version of the rotor electrical frequency estimate to the first filter as an estimation of the rotor electrical frequency.
Example 2. The controller of example 1, wherein the first control loop is further configured to: generate the back-EMF voltage vector from an applied motor voltage vector and an applied motor current vector in a stationary reference frame; apply a phase shift to the applied current vector to generate a phase-shifted version of the applied current vector that has the same phase shift as the magnetic flux vector output by the first filter; and generate the adjusted magnetic flux vector from the magnetic flux vector output by the first filter and the phase-shifted version of the applied current vector.
Example 3. The controller of example 2, wherein the first control loop is configured to generate the adjusted magnetic flux vector by scaling the phase-shifted version of the applied current vector and subtracting the scaled and phase-shifted version of the applied current vector from the magnetic flux vector output by the first filter.
Example 4. The controller of example 2 or 3, wherein the first control loop is configured to apply a phase shift to the applied current vector by using a rotation matrix with fixed angle.
Example 5. The controller of any of examples 1 through 4, wherein the first control loop is further configured to estimate rotor electrical angle from the adjusted magnetic flux vector.
Example 6. The controller of example 5, wherein the first control loop is configured to estimate the rotor electrical frequency from the adjusted magnetic flux vector by transforming the adjusted magnetic flux vector by the estimated rotor electrical angle plus the constant phase shift introduced by the first filter.
Example 7. The controller of example 6, wherein the first control loop is configured to transform the adjusted magnetic flux vector using a phase-locked loop.
Example 8. The controller of example 6 or 7, wherein the first control loop is further configured to generate an error vector from quadrature axis components of the transformed vector and a magnitude vector from direct axis components of the transformed vector.
Example 9. The controller of example 8, wherein the first control loop is further configured to estimate motor torque from the magnitude vector.
Example 10. The controller of example 9, wherein the first control loop is configured to estimate the motor torque using a phase-locked loop.
Example 11. The controller of any of examples 5 through 9, wherein the controller is configured for rotor frame orientation (RFO) control and comprises a second control loop configured to implement motor current control based on the rotor electrical angle estimate generated by the first control loop.
Example 12. The controller of example 11, wherein the second control loop is further configured to implement motor speed control based on the rotor electrical frequency estimate generated by the first control loop.
Example 13. The controller of any of examples 1 through 12, wherein the controller is configured for stator frame orientation (SFO) control, and wherein the first control loop is further configured to estimate each of rotor electrical angle, stator electrical angle, stator flux magnitude, and load angle from the magnetic flux vector output by the first filter and the adjusted magnetic flux vector.
Example 14. The controller of example 13, wherein the first control loop is configured to estimate the stator electrical angle and the stator flux magnitude by transforming the magnetic flux vector by an angle equal to the positive stator electrical angle plus the constant phase shift introduced by the first filter.
Example 15. The controller of example 13 or 14, wherein the first control loop is configured to transform the magnetic flux vector using a phase-locked loop.
Example 16. The controller of any of examples 13 through 15, wherein the first control loop is configured to estimate the load angle by subtracting the rotor electrical angle estimate from the stator electrical angle estimate.
Example 17. The controller of any of examples 13 through 16, wherein the first control loop is further configured to estimate motor torque from the stator flux magnitude estimate and quadrature axis components of a motor current vector.
Example 18. The controller of example 17, wherein the first control loop is configured to estimate the motor torque using a phase-locked loop.
Example 19. The controller of any of examples 13 through 18, further comprising a second control loop configured to implement motor torque control based on the rotor electrical angle estimate, the stator electrical angle estimate, the stator flux magnitude estimate, and the load angle estimate generated by the first control loop.
Example 20. The controller of example 19, wherein the second control loop is further configured to implement motor speed control based on the rotor electrical angle estimate.
Example 21. The controller of any of examples 1 through 20, wherein the first filter has a plurality of coefficients, and wherein the first control loop is configured to adjust one or more of the coefficients of the first filter based on the rotor electrical frequency estimate such that the constant phase shift introduced by the first filter remains independent of motor speed.
Terms such as “first”, “second”, and the like, are used to describe various elements, regions, sections, etc. and are also not intended to be limiting. Like terms refer to like elements throughout the description.
As used herein, the terms “having”, “containing”, “including”, “comprising” and the like are open ended terms that indicate the presence of stated elements or features, but do not preclude additional elements or features. The articles “a”, “an” and “the” are intended to include the plural as well as the singular, unless the context clearly indicates otherwise.
The expression “and/or” should be interpreted to include all possible conjunctive and disjunctive combinations, unless expressly noted otherwise. For example, the expression “A and/or B” should be interpreted to mean only A, only B, or both A and B. The expression “at least one of” should be interpreted in the same manner as “and/or”, unless expressly noted otherwise. For example, the expression “at least one of A and B” should be interpreted to mean only A, only B, or both A and B.
It is to be understood that the features of the various embodiments described herein can be combined with each other, unless specifically noted otherwise.
Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that a variety of alternate and/or equivalent implementations can be substituted for the specific embodiments shown and described without departing from the scope of the present invention. This application is intended to cover any adaptations or variations of the specific embodiments discussed herein. Therefore, it is intended that this invention be limited only by the claims and the equivalents thereof.