Field of the Invention
The invention relates generally to the field of electric motors. In one aspect, the present invention relates to sensorless permanent magnet synchronous motors (PMSM) and application safety.
Description of the Related Art
Permanent Magnet Synchronous Motors (PMSM) or Brushless DC (BLDC) motors are increasingly popular electric motor design which replaces wear-prone brushed DC motors with an electronic controller that improves the reliability of the unit and reduces the footprint and size, making such PMSM or BLDC motors suitable for applications where space is tight. However, the absence of mechanical or electrical contact between the stator and rotor of the PMSM or BLDC motors presents challenges with determining the relative positions of the component parts. One position-indicating arrangement is to use sensors (e.g., incremental encoders) to detect a motor component position status as part of the motor control function, but such sensors add cost and increase complexity (due the additional sensors, wiring, connectors, soldering, etc.), reduce reliability (due in part to the sensor connectors that are prone to contamination from dirt and humidity), and are not suitable for applications (e.g., where the rotor is in closed housing and the number of electrical entries must be kept to a minimum, such as in a compressor, or in applications where the motor is immersed in a liquid such as some pumps). To address such shortcomings, sensorless motor control techniques may be used to detect a motor component position status. For example, one position-indicating arrangement is to detect the potential or electromotive force (EMF) generated in the windings which gives rise to secondary magnetic field that opposes the original change in magnetic flux driving the motor's rotation. In resisting the motor's natural movement, the EMF is referred to as a “back” EMF. However, sensorless motor control techniques have a drawback that the rotor mechanical block or stall condition may not be recognized by the sensorless algorithm. The inability to detect a locked or stopped rotor presents potential application safety concerns which are increasingly required for household motor control application standards, such as IEC 60730 (“Automatic electrical controls for household and similar use”) or IEC 60335-1 (“House and Similar Electrical appliances”). As a result, the existing solutions for detecting locked rotor conditions are extremely difficult at a practical level.
The present invention may be understood, and its numerous objects, features and advantages obtained, when the following detailed description is considered in conjunction with the following drawings.
A sensorless motor control method and apparatus are described for detecting a stalled or locked rotor (a.k.a., motor lock, blocked motor) to reliably and efficiently provide safety protection to address various problems in the art where limitations and disadvantages of conventional solutions and technologies will become apparent to one of skill in the art after reviewing the remainder of the present application with reference to the drawings and detailed description provided herein. In selected embodiments, a software-based method and apparatus are provided for detecting the locked rotor of a permanent magnet synchronous motor (PMSM) by using a BEMF observer system to generate estimated BEMF and speed quantities (e.g., an estimated rotor angular speed value {circumflex over (ω)} and a first estimated BEMF voltage value êδ). Based on the estimated BEMF and speed quantities, a locked rotor fault detector may implement a sensorless field-oriented control algorithm which computes a BEMF error threshold value (BEMFErrorThreshold) and a filtered BEMF difference value (BEMFErrorFilt) for processing with the estimated rotor angular speed value {circumflex over (ω)} at a fault handler. For example, a second estimated BEMF voltage value êq may be computed from specified motor constant values and the estimated rotor angular speed value {circumflex over (ω)}, and then subtracted from the first estimated BEMF voltage value êδ to generate a filtered BEMF difference value (BEMFErrorFilt) In addition, the BEMF error threshold value (BEMFErrorThreshold) may be computed as the product of a BEMF threshold coefficient (CBEMFThresholdCoef) and the absolute value of the estimated rotor angular speed value {circumflex over (ω)}, subject to a first minimum threshold BEMF value (CBEMFThresholdMin). Since the locked rotor fault detector computations are based on electrical parameters for the estimated BEMF and speed quantities that can be measured in a motor control circuit without using sensors, the detection processing can, for example, be located remotely from the motor, such by executing an interrupt service routine on a microcontroller or microprocessor unit. In addition, the method and apparatus can be used to comply with safety standards without the need for sensors in the electric motor to verify proper operation of the motor.
Referring now to
Measurement circuits 106 may include a current measurement circuit 107 and a direct current (DC) bus voltage measurement circuit 108. Motor 102 includes a rotor 109, stator 110, and shaft 111. Shaft 111 is mechanically coupled to rotor 109. Windings are disposed within motor 102. For example, stator windings may be provided to create a magnetic field in stator 110. As another example, rotor windings may be provided to create a magnetic field in rotor 109. As will be appreciated, the rotor windings act like a generator as they cut through magnetic field lines, generating a potential in the windings that is called an electromotive force (EMF). According to Lenz's law, this EMF gives rise to secondary magnetic field that opposes the original change in magnetic flux driving the motor's rotation. In simpler terms, the EMF resists the motor's natural movement and is referred to as a “back” EMF. For a given motor of fixed magnetic flux and number of windings, the magnitude of the EMF is proportional to the angular velocity of the rotor. Manufacturers of PMSM or BLDC motors specify a parameter known as the back EMF constant that can be used to estimate back EMF for a given speed. The potential across a winding can be calculated by subtracting the back EMF value from the supply voltage. Motors are designed such that when they are running at rated speed, the potential difference between the back EMF and supply voltage will cause the motor to draw the rated current and deliver the rated torque.
Motor control circuit 101 is connected to motor 102 via one or more conductors 112, 113, and 114. Conductor(s) 112, 113, and 114 are connected to outputs of driver circuit 105 and to inputs of measurement circuits 106. Measurement circuits 106 are connected to processor 103 via one or more connection lines 116 to provide measurements from measurement circuits 106 to processor 103. Processor 103 is connected to driver circuit 105 via one or more connection lines 115 to allow processor 103 to control driver circuit 105. Power source 119 is connected to driver circuit 105 via a line (L) conductor 117 and neutral (N) conductor 118 to provide power for driver circuit 105 to apply to motor 102. Alternatively, the power source can be provided with more than 2 line outputs, for example 3-phase system with 3 (L1, L2, L3) or four lines (L1, L2, L3, N).
Measurement circuits 106 can obtain measurements of parameters of motor 102. Current measurement circuit 107 can obtain one or more current measurements of motor 102, such as ia, ib and ic. In similar fashion, DC bus voltage measurement circuit 108 can obtain one or more voltage measurements of motor 102. Each of current measurement circuit 107 and DC bus voltage measurement circuit 108 can obtain a plurality of measurements, for example, with respect to the plurality of conductors 112, 113, and 114. Thus, for example, single phase and multiple phase (e.g., three-phase) motors can be controlled. Measurements can be, for example, complex measurements, which can include a direct component and a quadrature component sampled 90 degrees of phase away from the direct component. Magnetic components of motor 102, such as rotor 109 and stator 110, can include permanent magnetic components and electromagnetic components or entirely electromagnetic components.
Electric motor system 100 can be implemented to control operation of various types of motors 102, such as DC permanent magnet synchronous motors (PMSM), brushless DC (BLDC) motors, switched reluctance (SR) motors, AC induction motors (ACIM), and other motor types. Different control instructions can be executed by processor 103 to accommodate different motor types, for example, using field oriented control (FOC), voltage-over-frequency (V/Hz), and slip control. Different components can be used in driver circuit 105 to drive different motor types. For example, components compatible with voltages of different polarities can be used to implement driver circuit 105 for AC motors. Different components can be used in measurement circuits 106 to measure currents and voltages of different motor types. In the case of an alternating current (AC) motor, measurement circuits 106 can be capable of measuring AC signals. As an example, an AC bus voltage measurement circuit may be used in place of DC bus voltage measurement circuit 108. In accordance with at least one embodiment, DC bus voltage measurement circuit 108 may be implemented generally as a voltage measurement circuit not specifically limited to DC or AC voltage measurement.
Referring now to
In operation, the ramp block 231 receives a requested angular velocity signal ωreq at input 247 and provides output 248 to adjustment block 270. Adjustment block 270 receives an estimated angular velocity signal {circumflex over (ω)} at output 249 of tracking observer block 271. Adjustment block 270 subtracts {circumflex over (ω)} from ωreq to provide an angular velocity control signal to speed control block 232 at output 250. Speed control block 232 may be implemented, for example, using a proportional integral (PI) controller. Speed control block 232 provides an output signal to adjustment block 245 at output 251. Adjustment block 245 receives a signal from Park transformation block 242 at output 252. Adjustment block 245 subtracts the signal at output 252 from the signal at output 251 to provide a signal at output 253 to Q-current control torque block 233. Q-current control torque block 233 may be implemented, for example, using a PI controller. Q-current control torque block 233 provides a signal uq at output 254 to inverse Park transformation block 236. In this case, the signal uq represents the q coordinate component for the rotor related orthogonal coordinate reference frame system (d,q).
Field control block 234 provides a field control signal to adjustment block 246 at output 255. Adjustment block 246 receives a motor current vector signal id from Park transformation block 242 at output 256, where id as the d coordinate component that is collinear to the rotor flux d coordinate. Adjustment block 246 subtracts the id signal at output 256 from the field control signal at output 255 and provides a signal at output 257 to D-current control flux block 235. D-current control flux block 235 may be implemented, for example, using PI controller. D-current control flux block 235 provides a signal ud at output 258 to inverse Park transformation block 236. In this case, the signal ud represents the d coordinate component for the rotor related orthogonal coordinate reference frame system (d,q).
Inverse Park transformation block 236 provides a signal uα at output 259 to DC bus ripple elimination block 237 and to the BEMF observer block 271, and also provides a signal Up at output 260 to DC bus ripple elimination block 237 and to the BEMF observer block 271. In this case, the signals uα, uβ represent orthogonal coordinate components for the stator related orthogonal coordinate reference frame system (α, β). DC bus ripple elimination block 237 receives a signal Udcbus from output 265 of AC-to-DC power conversion block 239. DC bus ripple elimination block 237 provides compensation for ripple on the signal Udcbus and provides signals at outputs 261 and 262 to space vector modulation block 238. Space vector modulation block 238 provides pulse width modulation (PWM) motor drive signals PWMa, b, c to inverter block 240 at outputs 263. A line conductor 117 provides a line voltage to AC-to-DC power conversion block 239. A neutral conductor 118 provides a neutral voltage to AC-to-DC power conversion block 239. AC-to-DC power conversion block 239 provides DC voltages to inverter block 240 at one or more outputs 265 which are filtered using DC bus capacitor 264 across the outputs. Inverter block 240 provides motor drive signals at conductors 112, 113, and 114 to electric motor 102 according to PWM motor drive signals PWMa, b, c.
Conductors 112, 113, and 114 from electric motor 102 provide signals (e.g., ia, ib and ic) to inputs of Clarke transformation block 241. Clarke transformation block 241 provides signals iα and iβ to Park transformation block 242 and to BEMF observer block 271 at outputs 266 and 267. Park transformation block 242 receives sin, cos({circumflex over (θ)})—the sine and cosine of the estimated the rotor flux angle {circumflex over (θ)} relative to stator phase—at output 269 from BEMF observer block 271. Park transformation block 242 provides a d component motor current vector signal (e.g., id) at output 256 to adjustment block 246 and a q component motor current vector signal (e.g., iq) at output 252 to adjustment block 245, where the d coordinate component of the motor current vector id is collinear to the rotor flux d coordinate, and where the q coordinate component of the motor current vector iq is orthogonal to the rotor flux d coordinate. BEMF observer block 271 provides estimated angular velocity signal {circumflex over (ω)} to adjustment block 270 and to position and speed observer block 271 at output 249. BEMF observer block 271 also provides sin, cos({circumflex over (θ)}) at output 269 to inverse Park transformation block 236 and to Park transformation block 242. In addition, the BEMF observer block 271 provides estimated BEMF signal value êδ at output 272, though this value may also be used by the BEMF observer block 271 to generate the angle error ⊖error.
In accordance with selected embodiments, the motor 102 may be constructed without including position or rotation sensors. Instead, the motor control circuit 101 includes sensorless locked rotor detector 280 which relies on the BEMF observer 271 to generate estimated quantities for the angular velocity signal {circumflex over (ω)}(which specifies the rotor angular speed) and one or more of the BEMF voltage values êδ and êγ. Using one or more of these estimated quantities, the sensorless locked rotor detector 280 may executed one or more algorithms to derive a BEMF error threshold value (BEMFErrorThreshold) and a filtered BEMF difference value (BEMFErrorFilt) for processing with the estimated rotor angular speed value {circumflex over (ω)} to detect locked rotor faults as described more fully hereinbelow.
To provide additional details for an improved understanding of selected embodiments of the present disclosure, reference is now made to
The transformed supply voltages uγ, uδ at outputs 305, 306 are provided, respectively to adjustment blocks 309, 327. Adjustment block 309 also receives a signal from the PI controller block 307 at signal line 308 which represents the estimated BEMF signal value êγ. Adjustment block 309 also receives a signal from d-axis inductance parameter block 320 at output 323. Adjustment block 309 subtracts the signal at output 323 from the sum of the signals at lines 306 and 308 to provide a signal at output 310 to the d-axis motor parameter model block 340. At the model block 340, the input signal 310 is applied to the RL motor circuit model (1/((s×Ld)+R)) based on the motor parameters Ld (d-axis inductance), s (Laplace operator), and R (stator resistance), thereby generating an output at signal line 317. In addition to the transformed supply voltage uδ, the adjustment block 327 receives a signal from the PI controller block 325 at signal line 326 which represents the estimated BEMF signal value êδ. Adjustment block 327 also receives a signal from q-axis inductance parameter block 321 at output 324. Adjustment block 327 subtracts the signal at output 324 from the sum of the signals at lines 305 and 326 to provide a signal at output 328 to the q-axis motor parameter model block 341. At the model block 341, the input signal 328 is applied to the RL motor circuit model (1/((s×Lq)+R)) based on the motor parameters Lq (q-axis inductance), s (Laplace operator), and R (stator resistance), thereby generating an output at signal line 329. In selected embodiments, the observer topology (blocks: 340, 341, 320, 321, 307, 325; signals: 305, 306, 308, 310, 319, 315, 316, 317, 328, 329, 331, 323, 324, 322, 326 and summation points: 309, 318, 327, 330) is based on the Luenberger type of observer utilizing electrical part of mathematical model of the motor (blocks: 340, 341). In this approach, the mathematical model is transformed from the continuous time domain to a discrete time domain by any convenient discretization method. Output signals 308 and 326 are further processed to estimate position 303, 313 and angular speed 322
The transformed current vector components iγ, iδ at outputs 315, 316 are provided, respectively, to adjustment blocks 318, 330. At adjustment block 318, the output signal 317 from the motor parameter model block 340 is subtracted from the transformed current vector components it at signal line 315 to provide a signal at output 319 to the PI controller block 307. In similar fashion, adjustment block 330 also receives the output signal 329 from the motor parameter model block 341 where it is subtracted from the signal at line 316 to provide a signal at output 331 to the PI controller block 325.
The transformed current vector components iγ, iδ at outputs 315, 316 are also provided, respectively, as cross-coupled inputs to the q and d axis inductance parameter blocks 321, 320 which also receive the estimated rotor angular speed value {circumflex over (ω)}(rad/s) at input line 322. In this configuration, the d and q axis inductance parameter blocks 320, 321 respectively provide output signals 323, 324 to the adjustment blocks 309, 327.
As depicted, the Luenberger-based BEMF observer system 300 uses (stator) voltage and current vectors, estimated position information and the stator inductance and resistance to extract the rotor position estimated error {circumflex over (θ)}error by estimating the BEMF signal values êδ and êγ. This is achieved by feeding the current observer with the sum of the actual applied motor voltage, cross-coupled rotational term (which corresponds to the motor saliency) and compensator corrective output. The observer provides estimated BEMF signal values êδ and êγ as disturbance because back-EMF is not included in observer model. As will be appreciated, the accuracy of the estimated BEMF signal values êδ and êγ depends on the correctness of the motor parameters (R, Ld, Lq), the fidelity of the reference stator voltage, and the quality of compensator, such as bandwidth, phase lag and so on.
To provide additional details for an improved understanding of selected embodiments of the present disclosure, reference is now made to
Using the estimated BEMF signal values êδ and êγ generated by the BEMF observer system 300, any desired extraction process may be used to attain estimates of the electrical rotor position signal {circumflex over (θ)} and its rotor speed {circumflex over (ω)}. These known approaches may include using the estimated BEMF signal values êδ and êγ as inputs to an inverse tangent extraction block which calculates the rotor position estimated error {circumflex over (θ)}error between real and virtual rotating reference frame for further processing to extract the estimated electrical rotor position signal {circumflex over (θ)} and estimated rotor speed {circumflex over (ω)}. Referring now to
Since the extraction block 500 shown in
As will be appreciated from the foregoing, the BEMF observer system 300 (shown in
As indicated above, the estimated BEMF signal values êδ and êγ and rotor angular speed value {circumflex over (ω)} may be used to compute fault detection parameters—including a BEMF error threshold value (BEMFErrorThreshold) and a filtered BEMF difference value (BEMFErrorFilt)—for processing with the estimated rotor angular speed value {circumflex over (ω)} to detect locked rotor conditions at a fault handler. To derive the fault detection parameters, it is first noted that the first estimated BEMF voltage value êδ, which is generated as the γ coordinate component output of the BEMF observer (e.g., BEMF observer 271), is proportional to the rotor angular speed ω, such that êδ≃c·ω, where c is a coefficient. In addition, it is understood that the amplitude of estimated BEMF voltage value êδ converges to real motor back-EMF voltage eq, orthogonal to rotor flux d coordinate, such that eq≃êδ. Finally, it is understood that the back-EMF voltage eq is approximately dependent on the rotor angular speed co and motor constant Ke (e.g., eq=Ke·ω). With this understanding, the voltage amplitude of the BEMF signal êq can therefore be estimated from the estimated speed {circumflex over (ω)}, such that êq=cBemfCoef·{circumflex over (ω)}+cBemfOffset·sgn({circumflex over (ω)}), where the coefficient terms cBemfCoef and cBemfOffset are defined by measurement on the real motor to provide, respectively, a BEMF coefficient (cBemfCoef) and a BEMF offset coefficient (cBemfOffset). In this equation, the second term (cBemfOffset·sgn({circumflex over (ω)})) is included to account for some offset caused by the inverter and other system offsets. In addition, it will be understood that the sgn({circumflex over (ω)}) term represents the sign function so that the function output is +1 if {circumflex over (ω)}>0, and is −1 if {circumflex over (ω)}<0.
Using the computed voltage amplitude of the BEMF signal êq, a first fault detection parameter may be computed as a filtered BEMF difference value (BEMFErrorFilt) with respect to the estimated BEMF signal value êδ (generated by the BEMF observer) êq using a variety of calculations. For example, a first option is to calculate the first fault detection parameter as a filtered absolute difference, BEMFErrorFilt=Filter(abs(êδ−êq)), where the simplest filter can be implemented as a first order filter having the transfer function:
where Tf is a filter time constant defined by application specific dynamic behavior. As will be appreciated, more sophisticated filtering can be used.
As will be appreciated, other options exist for calculating the filtered BEMF difference value. For example, a second option is to calculate the first fault detection parameter as a filtered difference, BEMFErrorFilt=Filter(êδ−êq) (e.g., without computing the absolute value of the difference (êδ−êq). In addition, a third option is to calculate the first fault detection parameter as a filtered and squared difference, BEMFP2ErrorFilt=Filter ((êδ−êq)2). A fourth option is to calculate the first fault detection parameter as a filtered product of the absolute difference that is normalized by multiplying by a nonlinear scaling function (SCF), BEMFErrorFilt=Filter(abs(êδ−êq)*SCF). A fifth option is to calculate the first fault detection parameter as a filtered square of the product of the difference multiplied by the nonlinear scaling function (SCF), BEMFErrorFilt=Filter((êδ−êq)*SCF)2). For example, the filtered BEMF difference value can be calculated using a modification of the error value. One of the possible implementation of the nonlinear scaling function could be as follows:
Where the ωMin is angular speed limit which can be constant, or variable. The filtered error is then BEMFErrorFilt=Filter (abs(êδ−êq)*SCF) or BEMFErrorFilt=Filter (((êδ−êq)*SCF)2) respectively. However calculated, the filtered BEMF difference value, BEMFErrorFilt, provides a filtered back-EMF error measure between the estimated BEMF signal values êδ from the BEMF observer and the êq term calculated from the estimated speed and motor constant.
When deriving the filtered BEMF difference value (BEMFErrorFilt), it will be appreciated that there will be imprecision in the computation of the estimated BEMF signal êq=cBemfCoef·{circumflex over (ω)}+cBemfOffset·sgn({circumflex over (ω)}), due to coefficient errors, observer model error, motor parameters variation, observer dynamic error etc., that effect the accuracy of the coefficient terms, cBemfCoef, cBemfOffset. To account for such errors and variations, a second fault detection parameter, BEMF error threshold value (BEMFErrorThreshold), may be computed as a BEMF error threshold value that is dependent on the estimated rotor angular frequency value {circumflex over (ω)}. For example, the BEMF error threshold value (BEMFErrorThreshold) may be computed as the product of a BEMF error threshold coefficient (CBEMFThresholdCoef) and the absolute value of the estimated rotor angular speed value {circumflex over (ω)}, subject to a first minimum threshold BEMF value (CBEMFThresholdMin), such that
For this computation of the BEMF error threshold value (BEMFErrorThreshold({circumflex over (ω)})), the coefficients CBemfThresholdMin, CBemfThresholdCoef can be set experimentally by taking measurements on the real motor. And when computed as a function of the estimated rotor angular speed value {circumflex over (ω)}, the size of the BEMF error threshold value increases in relation to the estimated rotor angular speed value {circumflex over (ω)}, thereby allowing for imprecisions in the estimated BEMF signal êq. To illustrate this relationship, reference is now made to
In a first example embodiment for detecting a locked rotor fault, a fault is indicated if the absolute value of the filtered absolute difference BEMFErrorFilt exceeds the BEMF error threshold value (BEMFErrorThreshold({circumflex over (ω)})) or if the absolute value of the estimated rotor angular speed value {circumflex over (ω)} falls below a minimum stall speed (e.g., abs({circumflex over (ω)})<ωStallMin) Stated another way, a fault is detected:
if (abs(BEMFErrorFilt)>BEMFErrorThreshold)
OR
(abs({circumflex over (ω)})<ωStallMin).
In a second example embodiment for detecting a locked rotor fault, a fault is indicated if the absolute value of the filtered difference (BEMFErrorFilt=Filter(êδ−êq)) exceeds the BEMF error threshold value (BEMFErrorThreshold({circumflex over (ω)})) or if the absolute value of the estimated rotor angular speed value {circumflex over (ω)} falls below a minimum stall speed (e.g., abs({circumflex over (ω)})<ωStallMin) Stated another way, a fault is detected:
if (abs(BEMFErrorFilt=Filter(êδ−êq))>BEMFErrorThreshold)
OR
(abs({circumflex over (ω)})<ωStallMin).
In a third example embodiment for detecting a locked rotor fault, a fault is indicated if the absolute value of the filtered and squared difference (BEMFErrorFilt=Filter ((êδ−êq)2)) exceeds the squared BEMF error threshold value (BEMFErrorThreshold({circumflex over (ω)})2) or if the absolute value of the estimated rotor angular speed value {circumflex over (ω)} falls below a minimum stall speed (e.g., abs({circumflex over (ω)})<(ωStallMin). Stated another way, a fault is detected:
if (BEMFErrorFilt>BEMFErrorThreshold2)
OR
(abs({circumflex over (ω)})<ωStallMin).
To provide additional details for an improved understanding of selected embodiments of the present disclosure, reference is now made to
The back-EMF observer block 801 may be implemented with a back electromotive force observer 802 which generates a first estimated BEMF voltage value êδ as the δ coordinate component at signal line 803 or signal line 804. Alternatively, the back electromotive force observer 802 may generate an estimation error ⊖error between real and virtual rotating reference frame at signal line 804. The back-EMF observer block 801 may also be implemented with an angle tracking observer 805 which receives either the first estimated BEMF voltage value êδ or the estimation error ⊖error received on the signal line 804, and generates therefrom an estimate of the rotor angular speed {circumflex over (ω)} at signal line output 806. In selected embodiments, the angle tracking observer 805 determines the angular speed and position of input functional signal 804. The estimated rotor angular speed {circumflex over (ω)} 806 is provided to the first calculation block 808 and second calculation block 809.
At the first calculation block 808, a second estimated BEMF voltage signal êq is calculated from the motor constant and estimated speed to generate the second estimated BEMF signal êq at output 810. For example, the second estimated BEMF signal êq can computed as a function of the estimated speed {circumflex over (ω)}, such that êq=cBemfCoef·{circumflex over (ω)}+cBemfOffset·sgn({circumflex over (ω)}), where BEMF coefficient (cBemfCoef) and BEMF offset coefficient (cBemfOffset) are defined by measurement on the real motor to provide.
At the second calculation block 809, the BEMF error threshold value is calculated from the estimated speed and defined physical limits to generate the BEMF error threshold value (BEMFErrorThreshold) at output 811. For example, using the BEMF error threshold coefficient (CBEMFThresholdCoef) to represent experimentally-set physical limits of the motor, the BEMF error threshold value BEMFErrorThreshold can computed as a product of a BEMF error threshold coefficient (CBEMFThresholdCoef) and the absolute value of the estimated rotor angular speed value {circumflex over (ω)}, subject to a first minimum threshold BEMF value (CBEMFThresholdMin) if the computed product goes below the first minimum threshold BEMF value.
At adjustment block 807, the second estimated BEMF signal êq is subtracted from the first estimated BEMF voltage value êδ to yield a difference value at signal output 812. The difference value is applied directly or indirectly to the filter block 814. For example, the difference value may be processed by a normalization block 813A, in which the signal 812 amplitude is multiplied by the nonlinear scaling function SCF. The SCF can be calculated from the input speed absolute value abs({circumflex over (ω)}) of signal 806, and angular speed limit ωMinLimit. In addition or in the alternative, the difference value 812 may be processed by a magnitude functional block 813B which computes the absolute value from the difference value provided at line 812 (or from block 813A). Alternatively, the difference value may be processed by a squaring functional block 813C which computes the square of the difference value provided at line 812 (or from block 813A). Whichever processing is applied, the filter 814 processes the results to provide a filtered back-EMF error measure (BEMFErrorFilt) at signal output line 815 which represents the error between the estimated BEMF voltage value êδ (from the BEMF observer 801) and the second estimated BEMF voltage value êq (calculated at calculation block 808 from the estimated speed and motor constant).
At the fault handler block 817, the estimated speed {circumflex over (ω)} is received at signal input line 806, along with the filtered back-EMF error measure (BEMFErrorFilt) 815 and the BEMF error threshold value (BEMFErrorThreshold) 811. These signal inputs may be processed at the fault handler block 817 as a interrupt service routine to detect a locked or stalled rotor condition if the absolute value of the filtered back-EMF error measure is greater than the BEMF error threshold value (e.g., abs(BEMFErrorFilt)>BEMFErrorThreshold) or if the absolute value of the estimated speed {circumflex over (ω)} is less than a minimum stall speed (e.g., abs({circumflex over (ω)})<ωStallMin).
Turning now to
At step 902, the motor current measurements are sensed or otherwise obtained and transformed into the d,q coordinate system. In selected embodiments, one or more measured motor current measurements ia, ib and ie are transformed into signals iα and iβ in the stator-related orthogonal coordinate reference frame system (α, β) using a Clarke transformation process, and then the signals iα and iβ are transformed into signals id and iq in the rotor-related orthogonal coordinate reference frame system (d, q) using a Park transformation process.
At step 903, the back-EMF observer processes the received signal information as a d,q system observer to generate rotor position and speed information from the conventionally defined back-EMF values, along with the stator resistance R and the d-axis and q-axis stator inductance values Ld, Lq. In selected embodiments, the back-EMF observer is implemented as a Luenberger-based BEMF observer which runs in virtual rotating frame (γ,δ) shifted to the rotating frame dq by estimation error ⊖error to generate estimated back-EMF signals êδ and êγ.
At step 904, the back-EMF observer extracts the estimated rotor position {circumflex over (θ)} and rotor speed {circumflex over (ω)}. In selected embodiments, the rotor position and speed information uses estimated back-EMF signals êδ and êγ with an angle tracking observer to generate an angle error ⊖error which is processed to generate an unfiltered rotor speed that is filtered or smoothed to extract the estimated rotor speed {circumflex over (ω)}. Additional processing of the unfiltered rotor speed (e.g., with integral block) is used to generate the estimated rotor position {circumflex over (θ)}.
At step 905, the transformed signals id and iq are supplied to the d and q current controllers, respectively. In selected embodiments, the id signal and field control signal are combined and supplied to the D-current controller, while the iq signal and speed control signal are combined and supplied to the Q-current controller to generate, respectively, the ud and uq voltage signals as the d and q coordinate components of the rotor voltage vector.
At step 906, the ud and uq voltage signals are used to calculate the 3-phase pulse width modulation (PWM) signals and settings for controlling the electric motor. In selected embodiments, an inverse Park transformation process is used to transform the ud and uq voltage signals into voltage signals uα, uβ that are processed for application to the electric motor, such as by providing the voltage signals uα, uβ to a DC bus ripple elimination block that provides compensated signals to space vector modulation block which provides pulse width modulation (PWM) motor drive signals PWMa, b, c to inverter block which provides motor drive signals to the electric motor.
At step 907, locked rotor fault detection parameters are calculated based on estimated BEMF and speed quantities (e.g., an estimated rotor angular speed value {circumflex over (ω)} and a first estimated BEMF voltage value êδ) generated by the BEMF observer. For example, a second estimated BEMF voltage value êq may be computed from specified motor constant values (e.g., cBemfCoef, cBemfOffset) and the estimated rotor angular speed value {circumflex over (ω)}(e.g., êq=cBemfCoef·{circumflex over (ω)}+cBemfOffset·sgn({circumflex over (ω)})), and then subtracted from the first estimated BEMF voltage value êδ to generate a filtered BEMF difference value (BEMFErrorFilt). In addition, the BEMF error threshold value (BEMFErrorThreshold) may be computed as the product of a BEMF threshold coefficient (CBEMFThresholdCoef) and the absolute value of the estimated rotor angular speed value {circumflex over (ω)}, subject to a first minimum threshold BEMF value (CBEMFThresholdMin).
At step 908, the estimated rotor speed {circumflex over (ω)} and locked rotor fault detection parameters are processed to detect a fault condition when either of two conditions is met. In selected embodiments, the first condition occurs when the filtered BEMF difference value (BEMFErrorFilt) exceeds the BEMF error threshold value (BEMFErrorThreshold). In other embodiments, the first condition occurs when the filtered BEMF difference value (BEMFErrorFilt) exceeds the square of the BEMF error threshold value (BEMFErrorThreshold). In selected embodiments, the second condition occurs when the absolute value of the estimated rotor angular speed value {circumflex over (ω)} is less than a minimum stall speed (e.g., ωStallMin). If either of the first or second conditions occurs (affirmative outcome to detection step 908), a locked rotor fault flag may be set at step 909. With the locked rotor fault flag set, the application can enter a fault condition operation to stop motor operation and wait, generate an error indication, await expiration of a fault timeout, etc. In addition or in the alternative, the locked rotor fault can be handled as a motor restart where the microcontroller resets the system and peripheral values (including fault state settings), prepares the motor for restart, and then executes motor run operations which include periodic execution of the sensorless field-oriented control interrupt service routine. However, if neither of the first or second conditions occurs (negative outcome to detection step 908), there is no locked rotor fault detected, and the field-oriented control interrupt service routine ends or returns (step 910).
By now it should be appreciated that there is provided herein a method and apparatus for detecting a rotor lock condition in a permanent magnet synchronous motor. In the disclosed methodology and apparatus, a BEMF observer determines an estimated rotor speed {circumflex over (ω)} and a first estimated back electromotive force (BEMF) voltage value in an estimated rotor-related reference frame. For example, the first estimated BEMF voltage value êδ may be computed as a δ coordinate in virtual rotating reference frame (γ,δ). Based on at least a first motor constant and the estimated rotor speed {circumflex over (ω)}, a second estimated BEMF voltage value is calculated. For example, the second estimated BEMF voltage value êq=cBemfCoef·{circumflex over (ω)}+cBemfOffset·sgn({circumflex over (ω)}) may be computed as a q coordinate in virtual rotating reference frame (d,q). The difference between the first estimated BEMF voltage value êδ and the second estimated BEMF value êq is optionally normalized by the SCF function, further processed either by absolute function or square function and filtered by the digital filter to generate filtered BEMF error BEMFErrorFilt. Using the first êδ and second êq estimated BEMF voltage values, a filtered BEMF error value is generated, such as by filtering an absolute value of a difference between the first êδ and second êq estimated BEMF voltage values, or by filtering a difference between the first êδ and second êq estimated BEMF voltage values, or by filtering a squared difference between the first êδ and second êq estimated BEMF voltage values or by filtering absolute value of a difference between the first êδ and second êq estimated BEMF voltage values which is normalized by the SCF function or by filtering squared difference between the first êδ and second êq estimated BEMF voltage values which is normalized by the SCF function before power by two calculation. In addition, a BEMF error threshold value is generated as a function of the estimated rotor speed {circumflex over (ω)} subject to a minimum threshold BEMF value, such as by calculating a product of a BEMF threshold coefficient (CBEMFThresholdCoef) and an absolute value of the estimated rotor speed {circumflex over (ω)}, subject to the minimum threshold BEMF value. Finally, at least the BEMF error filter value and the BEMF error threshold value are used to detect if a rotor lock condition exists. In selected embodiments, the rotor lock condition is detected by determining if an absolute value of the BEMF error filter value exceeds the BEMF error threshold value. In other embodiments, the rotor lock condition is detected by determining if an absolute value of the BEMF error filter value exceeds the BEMF error threshold value. In yet other embodiments, the rotor lock condition is detected by squaring the BEMF error threshold value to generate a squared BEMF error threshold value and determining if the BEMF error filter value exceeds the squared BEMF error threshold value. In addition, the step of detecting if the rotor lock condition exists may include detecting if an absolute value of the estimated rotor speed value {circumflex over (ω)} falls below a minimum stall speed (ωStallMin).
In another form, there is provided an electric motor controller and associated method of operation. As disclosed, the controller includes a back electromotive force (BEMF) measurement circuit for determining a first estimated back electromotive force (BEMF) voltage value (e.g., êδ) in an estimated rotor-related reference frame (e.g., virtual rotating reference frame (γ,δ)) and for determining an estimated rotor speed {circumflex over (ω)}. The controller also includes a processor coupled to the back EMF measurement or estimation circuit to calculate fault detection parameters, including a second estimated back electromotive force (BEMF) voltage value (e.g., êq) in a rotor-related reference frame (e.g., rotating reference frame (d,q)) based on at least a first motor constant and the estimated rotor speed {circumflex over (ω)}. The processor also calculates a BEMF error filter value based on a difference between the first and second estimated back electromotive force (BEMF) voltage values. For example, the BEMF error filter value may be calculated by filtering an absolute value of a difference between the first and second estimated BEMF voltage values, or by filtering a difference between the first and second estimated BEMF voltage values, or by filtering a squared difference between the first and second estimated BEMF voltage values or by filtering absolute value of a difference between the first and second estimated BEMF voltage values which is normalized by the SCF function or by filtering squared difference between the first and second estimated BEMF voltage values which is normalized by the SCF function before power by two calculation. The processor also calculates a BEMF error threshold value as a function of the estimated rotor speed {circumflex over (ω)} subject to a minimum threshold BEMF value. For example, the BEMF error threshold value may be calculated as a product of a BEMF threshold coefficient (CBEMFThresholdCoef) and an absolute value of the estimated rotor speed {circumflex over (ω)}, subject to the minimum threshold BEMF value. The processor is coupled to an electric motor driver circuit for providing drive signals for controlling delivery of power to an electric motor, where the processor is configured to detect if a rotor lock condition exists at the electric motor based on at least the BEMF error filter value and the BEMF error threshold value. In addition, the processor is configured to cause the electric motor driver circuit to discontinue application of power to the electric motor upon detecting a rotor lock condition.
In yet another form, there is provided a system and method of operation for detecting locked rotor in a permanent magnet synchronous motor. The disclosed system includes a device for producing an estimated rotor speed {circumflex over (ω)} and a first estimated BEMF voltage value êδ as a δ coordinate in virtual rotating reference frame (γ,δ). The system also includes an estimator block coupled to receive the estimated rotor speed {circumflex over (ω)} from the device for computing a second estimated BEMF voltage value comprises calculating a second estimated BEMF voltage value êq=cBemfCoef·{circumflex over (ω)}+cBemfOffset·sgn({circumflex over (ω)}) as a q coordinate in rotating reference frame (d,q). In the system, a threshold block is coupled to receive the estimated rotor speed {circumflex over (ω)} from the device for computing a BEMF error threshold signal as a product of a BEMF threshold coefficient (CBEMFThresholdCoef) and an absolute value of the estimated rotor speed {circumflex over (ω)}, subject to a minimum threshold BEMF value. In addition, a filtered back-EMF error block is coupled to the device and the estimator block for receiving the first estimated BEMF voltage value êδ and the second estimated BEMF voltage value êq, whereby the filtered back-EMF error block outputs a BEMF error filter signal indicative of a filtered comparison between the first estimated BEMF voltage value êδ and the second estimated BEMF voltage value êq. Finally, the system includes a fault handler coupled to the estimator block and threshold block for detecting a rotor lock condition based on at least the BEMF error filter signal and the BEMF error threshold signal.
Various illustrative embodiments of the present invention have been described in detail with reference to the accompanying figures. While various details are set forth in the foregoing description, it will be appreciated that the present invention may be practiced without these specific details, and that numerous implementation-specific decisions may be made to the invention described herein to achieve the device designer's specific goals, such as compliance with process technology or design-related constraints, which will vary from one implementation to another. While such a development effort might be complex and time-consuming, it would nevertheless be a routine undertaking for those of ordinary skill in the art having the benefit of this disclosure. For example, selected aspects are depicted with reference to simplified block diagrams and flow charts illustrating design and operational details of a sensorless locked rotor detector method and apparatus without including every device feature or aspect in order to avoid limiting or obscuring the present invention. Such descriptions and representations are used by those skilled in the art to describe and convey the substance of their work to others skilled in the art, and the omitted details which are well known are not considered necessary to teach one skilled in the art of how to make or use the present invention.
Although the described exemplary embodiments disclosed herein are directed to a method and apparatus in which locked rotor faults are detected by comparing a computed BEMF error threshold value to the filtered difference between an estimated back-EMF signals êδ (from the back-EMF observer) and an estimated BEMF voltage value êq (calculated from motor constant and estimated speed {circumflex over (ω)}) in the context of 3-phase PMSM motor operation, the present invention is not necessarily limited to the example embodiments which illustrate inventive aspects of the present invention that are applicable to a wide variety of electric motor systems. Thus, the particular embodiments disclosed above are illustrative only and should not be taken as limitations upon the present invention, as the invention may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. For example, the methodology of the present invention may be applied using estimated BEMF signal in other coordinate domains than expressly set forth herein. In addition, the process steps may be performed in an alternative order than what is presented. Furthermore, those skilled in the art will recognize that boundaries between the functionality of the above described operations merely illustrative. The functionality of multiple operations may be combined into a single operation, or the functionality of a single operation may be distributed in additional operations. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be altered in various other embodiments. Accordingly, the foregoing description is not intended to limit the invention to the particular form set forth, but on the contrary, is intended to cover such alternatives, modifications and equivalents as may be included within the spirit and scope of the invention as defined by the appended claims so that those skilled in the art should understand that they can make various changes, substitutions and alterations without departing from the spirit and scope of the invention in its broadest form.
As disclosed herein, the sensorless locked rotor detector computer product, computing device, system, method, and apparatus may include or use computer program code executable on one or more central processing units or other processing devices to calculate locked rotor fault detection parameters for use in detecting locked rotor fault conditions. As such, the sensorless locked rotor detector may be implemented by way of executable program code stored within a non-transitory computer program. As used herein, the expression non-transitory will be understood to refer to the non-ephemeral nature of the storage medium itself rather than to a notion of how long the stored information itself may persist in a stored state. Accordingly, memories that might otherwise be viewed, for example, as being volatile (such as many electronically-erasable programmable read-only memories (EPROM's) or random-access memories (RAM's)) are nevertheless to be viewed here as being “non-transitory” whereas a signal carrier in transit is to be considered “transitory” notwithstanding that the signal may remain in transit for a lengthy period of time.). In other embodiments, the sensorless locked rotor detector may be implemented by microcontroller, microprocessor, advanced RISC machine (ARM) processor, field-programmable gate array (FPGA) and/or ad-hoc hardware (e.g., dedicated silicon solutions) in which the sensorless locked rotor detector algorithms are advantageously embodied for more efficient processing and improved computational performance.
Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature or element of any or all the claims. As used herein, the terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. In addition, the term “coupled,” as used herein, is not intended to be limited to a direct coupling or a mechanical coupling. Furthermore, the terms “a” or “an,” as used herein, are defined as one or more than one. Also, the use of introductory phrases such as “at least one” and “one or more” in the claims should not be construed to imply that the introduction of another claim element by the indefinite articles “a” or “an” limits any particular claim containing such introduced claim element to inventions containing only one such element, even when the same claim includes the introductory phrases “one or more” or “at least one” and indefinite articles such as “a” or “an.” The same holds true for the use of definite articles. Unless stated otherwise, terms such as “first” and “second” are used to arbitrarily distinguish between the elements such terms describe. Thus, these terms are not necessarily intended to indicate temporal or other prioritization of such elements.