Patent Description:
Permanent Magnet Synchronous Motors (PMSM) or Brushless DC (BLDC) motors are increasingly popular electric motor designs, 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 PMSMs or BLDC motors suitable for applications with restricted space. Sensorless motor control techniques may be used to detect a motor component position status for such motors. This may be done by detecting 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, BEMF. However, sensorless motor control techniques have a drawback that a 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 <NUM> ("Automatic electrical controls for household and similar use") or IEC <NUM>-<NUM> ("House and Similar Electrical appliances"). As a result, some existing solutions for detecting locked rotor conditions are extremely difficult at a practical level.

<CIT> discloses a method for detecting a rotor lock condition in a sensorless PMSM by calculating an estimated rotor speed and estimated BEMF values using a BEMF observer and generating a BEMF error threshold value as a function of the estimated rotor speed subject to a minimum threshold value. A rotor lock condition can be detected if the BEMF falls outside a BEMF threshold.

A problem with this approach is that the rotor lock condition can only be detected after the fault has occurred, i.e. once the rotor has physically locked. In some cases this may not provide adequate safety protection, for example when damage could occur as a result of a fault condition.

According to a first aspect there is provided an electric motor controller comprising:.

The detector circuit may be configured to cause the driver circuit to disable the motor if a fault is detected.

The detector circuit may be configured to output a fault indication if a fault is detected.

The rotor speed error threshold may be defined from the rotor speed demand signal.

The rotor speed error threshold may be a range within around +/-<NUM>% or +/-<NUM>% of the rotor speed demand signal.

According to a second aspect there is provided an electric motor system comprising:.

The electric motor may be a permanent magnet synchronous motor.

According to a third aspect there is provided a method of detecting a fault in an electric motor controller, the electric motor controller comprising:.

The detector circuit may cause the driver circuit to disable the motor if a fault is detected.

The detector circuit may output a fault indication if a fault is detected.

Embodiments will be described, by way of example only, with reference to the drawings, in which:.

It should be noted that the Figures are diagrammatic and not drawn to scale. Relative dimensions and proportions of parts of these Figures have been shown exaggerated or reduced in size, for the sake of clarity and convenience in the drawings. The same reference signs are generally used to refer to corresponding or similar feature in modified and different embodiments.

<FIG>, reproduced from <CIT> referred to above, is a schematic block diagram of an electric motor system <NUM>, which uses a sensorless locked rotor detector <NUM>. The electric motor system <NUM> includes a motor control circuit <NUM>, motor <NUM>, and power source <NUM>. The motor control circuit <NUM> includes a processor <NUM>, driver circuit <NUM>, and measurement circuits <NUM>. Processor <NUM> includes a sensorless locked rotor detector <NUM>, which may be implemented in hardware or in software by accessing or including memory to store the sensorless locked rotor detector <NUM>. In whatever form implemented, the sensorless locked rotor detector <NUM> may include first, second and third calculation modules <NUM>, <NUM>, <NUM> for calculating first and second BEMF values, a filtered BEMF value and a BEMF error threshold value based on outputs from the measurement circuits <NUM>. The first calculation module <NUM> computes the second estimated BEMF voltage value êq as the q coordinate component of an estimated BEMF value. The second calculation module <NUM> computes the filtered BEMF difference value as the filtered difference between the first estimated BEMF voltage value êδ and the second estimated BEMF voltage value êq. The third calculation module <NUM> computes the BEMF error threshold value as a function of the estimated rotor angular speed value ω̂ , subject to a minimum or baseline threshold BEMF value.

Measurement circuits <NUM> include a current measurement circuit <NUM> and a DC bus voltage measurement circuit <NUM>. The motor <NUM> includes a rotor <NUM>, stator <NUM> and shaft <NUM>, the shaft <NUM> being mechanically coupled to the rotor <NUM>. Windings are disposed in the motor <NUM>, which are connected to the motor control circuit <NUM> by conductors <NUM>, <NUM>, <NUM>. The conductors <NUM>, <NUM>, <NUM> are connected to outputs of the driver circuit <NUM> and to inputs of the measurement circuits <NUM>. The measurement circuits <NUM> are connected to the processor <NUM> by one or more connection lines <NUM>. The processor <NUM> is connected to the driver circuit <NUM> by one or more connection lines <NUM> to allow the processor <NUM> to control the driver circuit <NUM>. The power source <NUM> is connected to the driver circuit <NUM> via live (L) and neutral (N) conductors <NUM>, <NUM> to provide power for the driver circuit <NUM>. The power source <NUM> may be provided with more than two outputs, for example in a three phase system.

The current measurement circuit <NUM> obtains one or more current measurements ia, ib, ic of the motor <NUM> windings. The DC bus voltage measurement circuit <NUM> obtains corresponding voltage measurements of the motor <NUM> windings. Such measurements can be complex measurements, including a direct (d) component and a quadrature (q) component.

<FIG> illustrates an electric motor system <NUM> based on the electric motor system <NUM> described above in relation to <FIG> but with the motor <NUM> comprising a rotor speed sensor <NUM>. A rotor speed signal from the rotor speed sensor <NUM> is transmitted to the detector <NUM>. The detector <NUM> may be configured to perform the same operations as the sensorless locked rotor detector together with a further function to detect a fault in the current measurement circuit <NUM> based on the above mentioned BEMF values together with a demanded rotor speed and a measured rotor speed.

<FIG> illustrates a more detailed schematic diagram of the electric motor system <NUM> of <FIG>, indicating in more detail the components of the motor control circuit <NUM>, including the detector <NUM>, motor drive circuit <NUM> and measurement circuits <NUM>. The motor drive circuit <NUM> and measurement circuits <NUM> are distributed among the components shown in <FIG>, with the measurement circuits comprising the Clarke transformation block <NUM>, Park transformation block <NUM>, and BEMF observer <NUM>. Operation of the system <NUM> is similar to that disclosed in <CIT> with the addition of a required or demanded speed input ω req and a measured rotor speed input ωmeas input to the detector <NUM> together with the outputs of estimated voltage value êδ and estimated speed value ω̂ from the BEMF observer <NUM>.

The electric motor system <NUM> comprises control system elements <NUM> for providing fault detection based on BEMF observation with rotor speed estimation together with measured and requested speed values. The motor control circuit <NUM> includes ramp block <NUM>, speed control block <NUM>, quadrature-current (Q-current) control torque block <NUM>, field control block <NUM>, direct-current (D-current) control flux block <NUM>, inverse Park transformation block <NUM>, direct-current (DC) bus ripple elimination block <NUM>, space vector modulation block <NUM>, alternating-current-to-direct-current (AC-to-DC) power conversion block <NUM>, inverter block <NUM>, Clarke transformation block <NUM>, Park transformation block <NUM>, and BEMF tracking observer block <NUM> for estimating position and speed.

In operation, the ramp block <NUM> receives a requested angular velocity signal ωreq at input <NUM> and provides an output <NUM> to adjustment block <NUM>. Adjustment block <NUM> receives an estimated angular velocity signal ω̂ at output <NUM> of BEMF observer block <NUM>. Adjustment block <NUM> subtracts ω̂ from ω req to provide an angular velocity control signal to speed control block <NUM> at output <NUM>. Speed control block <NUM> may be implemented, for example, using a proportional integral (PI) controller. Speed control block <NUM> provides an output signal to adjustment block <NUM> at output <NUM>. Adjustment block <NUM> receives a signal from Park transformation block <NUM> at output <NUM>. Adjustment block <NUM> subtracts the signal at output <NUM> from the signal at output <NUM> to provide a signal at output <NUM> to Q-current control torque block <NUM>. Q-current control torque block <NUM> may be implemented, for example, using a PI controller. Q-current control torque block <NUM> provides a signal Uq at output <NUM> to inverse Park transformation block <NUM>. 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 <NUM> provides a field control signal to adjustment block <NUM> at output <NUM>. Adjustment block <NUM> receives a motor current vector signal id from Park transformation block <NUM> at output <NUM>, where id is the d coordinate component that is collinear to the rotor flux d coordinate. Adjustment block <NUM> subtracts the id signal at output <NUM> from the field control signal at output <NUM> and provides a signal at output <NUM> to D-current control flux block <NUM>. D-current control flux block <NUM> may be implemented, for example, using PI controller. D-current control flux block <NUM> provides a signal Ud at output <NUM> to inverse Park transformation block <NUM>. 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 <NUM> provides a signal Uα at output <NUM> to DC bus ripple elimination block <NUM> and to the BEMF observer block <NUM>, and also provides a signal Uβ at output <NUM> to DC bus ripple elimination block <NUM> and to the BEMF observer block <NUM>. 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 <NUM> receives a signal Udcbus from output <NUM> of AC-to-DC power conversion block <NUM>. DC bus ripple elimination block <NUM> provides compensation for ripple on the signal Udcbus and provides signals at outputs <NUM> and <NUM> to space vector modulation block <NUM>. Space vector modulation block <NUM> provides pulse width modulation (PWM) motor drive signals PWMa,b,c to inverter block <NUM> at outputs <NUM>. A line conductor <NUM> provides a line voltage to AC-to-DC power conversion block <NUM>. A neutral conductor <NUM> provides a neutral voltage to AC-to-DC power conversion block <NUM>. AC-to-DC power conversion block <NUM> provides DC voltages to inverter block <NUM> at one or more outputs <NUM> which are filtered using DC bus capacitor <NUM> across the <NUM> outputs. Inverter block <NUM> provides motor drive signals at conductors <NUM>, <NUM>, and <NUM> to electric motor <NUM> according to PWM motor drive signals PWMa,b,c.

Conductors <NUM>, <NUM>, and <NUM> from electric motor <NUM> provide signals (e.g., ia, ib and ic) to inputs of Clarke transformation block <NUM>. Clarke transformation block <NUM> provides signals iα and iβ to Park transformation block <NUM> and to BEMF observer block <NUM> at outputs <NUM> and <NUM>. Park transformation block <NUM> receives sin, cos(θ̂) -- the sine and cosine of the estimated the rotor flux angle θ̂ relative to stator phase -- at output <NUM> from BEMF observer block <NUM>. Park transformation block <NUM> provides a d component motor current vector signal (e.g., id) at output <NUM> to adjustment block <NUM> and a q component motor current vector signal (e.g., iq) at output <NUM> to adjustment block <NUM>, 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 <NUM> provides estimated angular velocity signal ω̂ to adjustment block <NUM> and to position and speed observer block <NUM> at output <NUM>. BEMF observer block <NUM> also provides sin, cos(θ̂) at output <NUM> to inverse Park transformation block <NUM> and to Park transformation block <NUM>. In addition, the BEMF observer block <NUM> provides estimated BEMF signal value êδ at output <NUM>, though this value may also be used by the BEMF observer block <NUM> to generate the angle error θerror. The motor <NUM> is provided with a position or rotation sensor <NUM>, the output from which provides a measured rotor speed signal ωmeas. The detector <NUM> also generates an estimated angular velocity signal ω̂ (which specifies the rotor angular speed) and one or more of the BEMF voltage values êδ and êγ. Using one or more of these estimated quantities, detector <NUM> may execute 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 and measures rotor speed signal to detect one or more types of faults.

Further details of the operation of the BEMF observer <NUM> are described in <CIT>, which describes the use of the BEMF error threshold value to determine a blocked rotation fault without the use of a position or rotation sensor on the motor. In applications where these and other types of faults need to be detected in time to prevent damage occurring to the motor or driving circuit, a motor speed sensor <NUM> can be used in combination with the outputs from the BEMF observer <NUM>.

<FIG> illustrates an example of a series of measured and calculated values for a motor control system in which a fault may be determined using a measured motor speed in combination with calculated BEMF values. <FIG> illustrates motor speed, calculated BEMF voltages, motor torque and motor currents for a simulated series of operations covering a startup period <NUM>, a no-load period <NUM>, a transient loaded period <NUM> and a fault injection period <NUM>. During the startup period <NUM>, the motor speed demand signal <NUM> rises and the measured and estimated motor speeds <NUM> (which are indistinguishable in <FIG> due to overlap) rise along with the demand signal <NUM>. Along with this, the calculated BEMF values <NUM>, <NUM>, <NUM> change accordingly. A lower BEMF bound <NUM> and an upper BEMF bound <NUM> lie either side of a calculated BEMF value <NUM> during this period and during the subsequent non-load period <NUM> and load transient period <NUM>. The upper and lower bounds <NUM>, <NUM> define the BEMF error threshold and the calculated BEMF value <NUM> is the estimated BEMF signal êδ, as described in more detail in <CIT>. At the start of the fault injection period <NUM>, a gradual gain fault is introduced, which leads the estimated BEMF signal êδ to move outside the BEMF error threshold defined by the upper and lower bounds <NUM>, <NUM>.

As in <CIT>, a fault may be detected if the estimated BEMF signal <NUM> lies outside the threshold region defined by upper and lower bounds <NUM>, <NUM> or if the estimated rotor angular speed value <NUM> falls below a minimum stall speed. Another type of fault may be detected if the measured rotor angular speed value <NUM> differs from the required rotor speed ω req or estimated rotor speed ω̂ by no more than a predefined amount, for example within +/- <NUM>% or +/-<NUM>%. A measure of the actual rotor speed is required for determination of such faults, which may relate to faults within the motor control circuit <NUM> rather than in the motor <NUM>. Such faults may for example result from a gain or offset error in the current measurement circuit <NUM>, which may be gradual or abrupt, or from an input to the current measurement circuit <NUM> being disconnected. Such faults can be detected when the estimated BEMF signal lies outside the BEMF threshold defined by the upper and lower bounds <NUM>, <NUM> while the measured rotor speed value <NUM> is within a rotor speed error threshold. In a general aspect therefore, a fault in the motor control circuit may be detected by the detector <NUM> when the estimated BEMF signal êδ lies outside of a calculated BEMF error threshold and the measured rotor angular speed is within a rotor speed error threshold.

The fault may for example be indicated, as shown in <FIG>, by the measured rotor speed <NUM> being maintained after injection of the fault (i.e. at the start of the fault injection period <NUM>) while the estimated BEMF value <NUM> falls outside the BEMF error threshold. As the estimated BEMF signal <NUM> rises above the upper BEMF bound <NUM> within around <NUM> of the fault being injected, the calculated torque <NUM> rises above the measured torque <NUM> and the measured currents <NUM> begin to rise, while the measured rotor speed <NUM> remains constant. In other examples, a fault may be indicated by the calculated torque and measured currents rising, falling or oscillating while the measured speed is maintained within the rotor speed error threshold.

An advantage of determining a fault in the motor control circuit using a combination of the estimated BEMF signal and a measured rotor speed is that the fault can be detected prior to the motor exhibiting any changes that may result from the error. Any damage that might result from the fault could therefore be prevented by detecting the fault early and, for example, disabling the motor. <FIG> illustrates a schematic diagram of a method of detecting a fault in a PMSM control circuit during operation of the PMSM. In a first step <NUM>, the detector <NUM> receives an estimated BEMF value êδ and an estimated rotor speed value ω̂ from the BEMF observer <NUM>, a measured rotor speed ωmeas from the rotor speed sensor <NUM> and a required rotor speed ω req from the driving circuit <NUM>. The detector <NUM> then calculates a BEMF error threshold, BEMFErrorThreshold and a rotor speed threshold (step <NUM>), the rotor speed threshold being determined from either or both of the estimated rotor speed value ω̂ and the required rotor speed ωreq. The detector <NUM> then compares the estimated BEMF value êδ to the BEMF error threshold value (step <NUM>) and the measured rotor speed to the rotor speed threshold. If the estimated BEMF value êδ is outside the BEMF error threshold and the measured rotor speed ωmeas is within the rotor speed threshold, a fault is detected (step <NUM>). The detector <NUM> may then disable the motor and/or output a fault indication (step <NUM>).

Claim 1:
An electric motor controller (<NUM>) comprising:
a driver circuit (<NUM>) configured to drive an electric motor (<NUM>) in response to a received speed demand signal (ωreq);
a measurement circuit (<NUM>) configured to measure current through windings (<NUM>, <NUM>, <NUM>) of the electric motor (<NUM>), the measurement circuit comprising a back emf, BEMF, observer (<NUM>) configured to determine an estimated BEMF value (êδ), a BEMF error threshold and an estimated rotor angular speed value (ω̂) from the measured currents;
a detector circuit (<NUM>) configured to receive the rotor speed demand signal (ωreq), the estimated BEMF value (êδ), the BEMF error threshold, the estimated rotor angular speed value (ω̂) and a measured rotor speed (ωmeas) from a rotor speed sensor (<NUM>) on the electric motor (<NUM>) and to detect a fault in the electric motor controller (<NUM>) if the estimated BEMF value (êδ) lies outside the BEMF error threshold and the measured rotor speed (ωmeas) is within a defined rotor speed error threshold.