Motor Controller with Stall Detection

The motor control system addresses the challenge of accurately detecting motor stall conditions in sensorless FOC motor controllers by using a stall detector that estimates q-axis voltage and applies thresholds, achieving reliable detection and improved accuracy across various conditions.

JP7692996B2Active Publication Date: 2025-06-16ALLEGRO MICROSYSTEMS LLC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023526937
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-01-29
Filing Date
2021-12-20
Publication Date
2025-06-16
Estimated Expiration
2041-12-20

AI Technical Summary

Technical Problem

Existing sensorless field-oriented control (FOC) motor controllers face challenges in accurately detecting motor stall conditions, particularly during motor oscillation and transient conditions, due to variations in motor parameters and inaccurate sensorless control frequency lock.

Method used

A motor control system that includes a stall detector configured to estimate the q-axis voltage and compare it to thresholds, allowing for accurate detection of motor stall conditions without relying on motor inductance parameters, and incorporating a debounce function for improved accuracy during startup and high-speed transients.

Benefits of technology

The solution enables reliable stall detection during motor oscillation and transient conditions, improves detection accuracy under varying startup and high-speed conditions, and reduces computational intensity and complexity, while being independent of motor parameter variations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007692996000008
    Figure 0007692996000008
  • Figure 0007692996000009
    Figure 0007692996000009
  • Figure 0007692996000010
    Figure 0007692996000010
Patent Text Reader

Abstract

A motor control system for controlling operation of a motor having multiple windings includes a gate driver that provides control signals to one or more switching elements that control voltages applied to the multiple windings, and a field oriented control (FOC) controller configured to generate PWM signals for coupling to the gate driver, the FOC controller comprising a d-axis control loop configured to generate an applied d-axis voltage and a q-axis control loop configured to generate an applied q-axis voltage. A stall detector is configured to calculate an estimate of the q-axis voltage and compare the applied q-axis voltage to a threshold based on the estimate to detect a stall condition of the motor.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure generally relates to motor controllers, and more particularly to stall detection in sensorless field-oriented control (FOC) motor controllers.

Background Art

[0002] As is well known, various types of control systems are used to implement motor control in various application fields. For example, in some motor control systems, the electromotive force or back electromotive force (BEMF) generated by a spinning motor is measured, the position and / or speed of the motor is determined, and feedback is provided to the controller.

[0003] In another motor control system called a vector control or field-oriented control (FOC) system, the stator current is controlled to control the strength of the magnetic field in the motor to maintain a magnetic field orthogonal to the rotor flux. The so-called d-axis, or direct axis, may correspond to the position of the motor, and the q-axis, or quadrature axis, is perpendicular to the d-axis. To rotate the motor, the applied magnetic field is maintained perpendicular to the d-axis. FOC improves efficiency by providing maximum torque at a given speed with minimal power consumption.

[0004] Regardless of the control method, some motor control systems utilize separate sensors to detect the position and / or speed of the motor for use by the controller. Such types of systems are sometimes referred to as "sensor-based" systems. One motor type that generally utilizes sensor-based control systems is the permanent magnet synchronous motor (PMSM).

[0005] In another motor control system, separate sensors are not used to detect motor position and / or speed, and it may be called a "sensorless system". Such a system includes electronic circuitry for estimating motor position and / or speed. One motor type that often utilizes sensorless control is the brushless DC motor (BLDC).

[0006] Motors and their control systems are widely used in automotive and other safety-critical application areas. There are various specifications that describe the requirements regarding acceptable motor control quality levels, failure rates, and overall functional safety.

[0007] The electric motor may sometimes stall. For example, the electric motor may stop moving at a particular position due to unexpected load conditions and may vibrate back and forth (i.e., oscillate). The ability to correct stall conditions depends on the accurate detection of the conditions. SUMMARY OF THE INVENTION

[0008] A motor control device and technique for detecting motor stall conditions in an FOC control system are described herein. The detection is based on a comparison between the applied q-axis voltage Vq and one or more thresholds generated based on the calculated estimated Vq of the q-axis voltage. E The advantages of the described configuration include stall detection during motor oscillation, detection of inaccurate sensorless control frequency lock, independence from motor parameter variation errors (since the motor inductance parameter is not used to estimate the q-axis voltage), relatively low computational intensity and complexity, and improved detection accuracy under startup and high-speed transient conditions by using a debounce function.

[0009] According to the present disclosure, a motor control system for controlling the operation of a motor having a plurality of windings includes a gate driver that provides a control signal to one or more switching elements that control the voltage applied to the plurality of windings, a field-oriented control (FOC) controller, and a stall detector. The FOC controller may be configured to generate a PWM signal for coupling to the gate driver and may include a d-axis control loop configured to generate an applied d-axis voltage and a q-axis control loop configured to generate an applied q-axis voltage. The stall detector may be configured to calculate an estimate of the q-axis voltage and compare the applied q-axis voltage to a threshold based on the estimate to detect a stall condition of the motor.

[0010] The features may include one or more of the following individually or in combination with other features. The stall detector may include a threshold generator configured to generate a high threshold and a low threshold based on an estimate of the q-axis voltage for comparison with the applied q-axis voltage. The stall detector may further include a timer, and the stall detector may be configured to reset the timer when the applied q-axis voltage is less than the high threshold or greater than the low threshold. If the applied q-axis voltage remains above the high threshold or below the low threshold for a predetermined timeout interval of the timer, a stall condition of the motor may be detected. The stall detector may be configured to generate a stall signal indicating the stall condition of the motor in response to the detection of the stall condition. The stall detector may include a debounce filter configured to generate the stall signal. The stall detector may be configured to calculate an estimated q-axis voltage as follows.

[0011]

Number

[0012] Here, W r is the observed motor speed, K t is the BEMF constant, I qis the applied q-axis current, and R is the motor phase resistance. The FOC controller may include a position-frequency observer configured to generate the motor position estimate θ and the observed motor speed W r and may include a current measurement circuit coupled to one or more of the plurality of windings to measure the current through the windings. Each of the d-axis control loop and the q-axis control loop of the FOC controller may include a proportional-integral (PI) unit.

[0013] A method for detecting a stall condition in a motor having a plurality of windings is also described, the method comprising applying a controlled voltage to the plurality of windings, measuring the current through one or more of the plurality of windings, and using a field-oriented control (FOC) controller including a d-axis control loop configured to generate the applied d-axis voltage and a q-axis control loop configured to generate the applied q-axis voltage, generating a PWM signal for coupling to a gate driver configured to apply the controlled voltage to the plurality of windings. The method may further include calculating an estimate of the q-axis voltage, comparing the applied q-axis voltage to a threshold based on the estimate, and detecting a stall condition of the motor based on the comparison.

[0014] The features may include one or more of the following individually or in combination with other features. The method may further include generating a threshold based on a programmable variable. Generating the threshold may include generating a high threshold based on a high programmable variable and generating a low threshold based on a low programmable variable. Detecting the stall condition may include resetting a timer when the applied q-axis voltage becomes less than the high threshold or greater than the low threshold. If the applied q-axis voltage remains higher than the high threshold or lower than the low threshold for a predetermined timeout interval of the timer, a stall condition of the motor may be detected. The method may further include generating a stall signal indicating the detection of the stall condition. Generating the stall signal may include using a debounce filter. Calculating the estimated q-axis voltage may include using the following equation.

[0015] [Number]

[0016] where W r is the observed motor speed, K t is the BEMF constant, I q is the applied q-axis current, and R is the motor phase resistance.

[0017] A motor control system for controlling the operation of a motor having a plurality of windings is also described. The motor control system is configured to generate a PWM signal for coupling to a gate driver based on a received request signal, and includes a field-oriented control (FOC) controller including a d-axis control loop configured to generate an applied d-axis voltage and a q-axis control loop configured to generate an applied q-axis voltage, and means for detecting a stall condition of the motor based on an estimation of the q-axis voltage. The stall condition detecting means may include means for calculating an estimation of the q-axis voltage, means for generating a threshold based on the estimation of the q-axis voltage, and means for comparing the applied q-axis voltage with the threshold.

[0018] The above features can be more fully understood from the following description of the drawings. The drawings serve to explain and aid in the understanding of the disclosed technology. Since it is often impractical or impossible to illustrate and describe every possible embodiment, the given drawings show one or more exemplary embodiments. Accordingly, the drawings are not intended to limit the scope of the broad concepts, systems, and techniques described herein. Like numbers in each figure indicate like elements.

Brief Description of the Drawings

[0019]

Figure 1

Figure 2

Figure 3

Modes for Carrying Out the Invention

[0020] Referring to FIG. 1, a motor control system 10 includes a FOC controller 14, an inverter and current sensing block 20, and a stall observer 30 configured to control a motor 40. The motor 40 has a plurality of windings, and a voltage 22 is applied to the windings by the inverter block 20. The FOC controller 14 includes a d-axis control loop configured to generate an applied d-axis voltage Vd 60 and a q-axis control loop configured to generate an applied q-axis voltage Vq 72. The gate driver of the FOC controller 14 provides a control signal 18 (i.e., a PWM signal) to the switches of the inverter block 20 to control the motor winding voltage 22 in order to achieve a desired speed corresponding to the speed demand signal Wr * 24, and may include a space vector pulse width modulation (SVPWM) block 16.

[0021] According to the present disclosure, a stall observer 30 (also referred to herein as a stall detector 30 as an alternative) calculates an estimate of the q-axis voltage Vq to detect a stall condition of a motor, generates one or more thresholds based on the estimated q-axis voltage, and is configured to compare the applied q-axis voltage Vq with the threshold. The stall detector 30 may include a threshold generator configured to generate a high threshold Vq E and a low threshold Vq EH for comparison with the applied q-axis voltage Vq. Using this configuration, a stall condition of the motor can be detected, and a stall condition signal, or simply a stall signal 36, can be generated to provide an indication of whether a stall condition has occurred. The stall signal 36 can be provided to a circuit and system configured to take actions such as turning off the motor and / or restarting it. EL The current 28 passing through the motor windings can be measured by the current sensing circuit of block 20. Various circuits are possible for this purpose. For example, one or more sense resistors can measure the current 28 passing through another motor winding. Such so-called "shunt resistors" have a relatively low resistance to avoid a significant effect on the motor current. It will be understood that it is not necessary to measure all three phase currents since the sum of the three phase currents is equal to zero, and thus the third current can be calculated as the negative sum of the two measured winding currents.

[0022] The d-axis control loop of the FOC controller 14 may include a transducer 50 responsive to the measured phase current 28 and further to the observed motor position signal θ

[0023] 82 to generate the applied d-axis voltage Vd60, a summing element 58, and a proportional-integral (PI) control unit 70. The observed motor position signal θ r 82, which will be further described below, is here simply stated to represent an estimate of the observed rotor position. The d-axis feedback current Id56 can be coupled to the summing element 58, and the summing element 58 is used to obtain the d-axis reference current signal 52Id r * ​can be summed with the feedback current (i.e., the difference is obtained), but in application fields where weak field weakening is not applied, the d-axis reference current signal 52Id * can be set to zero. The output of the summing element 58 provides a signal 54 for coupling to the PI control unit 70. The PI control unit 70 is configured to apply proportional-integral control to the signal 54 to generate the applied d-axis voltage signal Vd 60. Thus, when the d-axis reference current signal 52Id * is zero, the signal 54 is equal to the d-axis feedback current Id 56, and the applied d-axis voltage 60 is the proportional-integral representation of the d-axis feedback current Id 56.

[0024] The q-axis control loop of the FOC controller 14 may include the converter 50, the summing element 68, and the PI control unit 70 to generate the applied q-axis voltage signal Vq 72. More specifically, the converter 50 controls the motor torque output, generates a q-axis feedback current Iq 66 that may be coupled to the summing element 68, and uses the summing element 68 to generate a signal 64 for coupling to the PI control unit 70. The q-axis reference current signal Iq * 62 is compared with the q-axis feedback current signal Id 66 (i.e., the difference is obtained). The q-axis reference current signal 62Iq * is the speed demand signal Wr * 24 and the observed speed signal Wr 26 (e.g., using the summing element 32). The PI control unit 70 is configured to apply proportional-integral control to the signal 64 to generate the applied q-axis voltage signal Vq 72.

[0025] The converter 50 may implement a Clarke transformation or other processing to convert the motor winding currents Ia,b,c 28 to two-dimensional orthogonal stationary quantities i α ,i β and further apply a Park transformation to convert the two-axis stationary system i α ,i β to a two-axis rotating system i q ,i dcan be converted, the d-axis current is aligned with the rotor flux, and the q-axis current (torque generating component) is orthogonal to the rotor flux. From the three-phase motor winding currents Ia,b,c28 to the two-dimensional quantities i α ,i β For the conversion to, the observed motor position signal θ r 82 is used by the converter 50.

[0026] The converter 76 is coupled to receive the applied d-axis voltage Vd60, the applied q-axis voltage Vq72, and the observed motor position signal θ r 82, and is configured to convert such control signals from the d,q region to the three-phase motor control signal 78 for coupling to the SVPWM block 16. For example, the converter 76 can implement an inverse Park transformation to convert the two-axis rotation signals Vq,Vd to the stationary two-axis system and ultimately to the three-axis signal 78. In this configuration, the outputs of the PI control unit 70 (i.e., the applied d-axis voltage signal Vd60 and the applied q-axis voltage signal Vq72) are rotated using the conversion angle and returned to the stationary reference frame to obtain the orthogonal voltage values Vα and Vβ. Then, the voltages Vα and Vβ are mathematically converted back to the three-phase voltages Va, Vb, and Vc, and the three-phase voltages Va, Vb, and Vc determine the new PWM duty cycle. The observed motor position signal θ r 82 is used by the converter 76 for the conversion from the two-dimensional quantities Vα and Vβ to the three-phase voltages Va, Vb, and Vc78.

[0027] The speed demand signal Wr * 24 can be a user-provided input received from an external device and generally indicates the required speed of the motor 40. The speed demand signal Wr *24 can be provided in various formats, such as Single Edge Nibble Transmission (SENT) format, Serial Peripheral Interface (SPI) format, Local Interconnect Network (LIN) format, CAN (Controller Area Network) format, Inter-Integrated Circuit (I2C) format, or other signal formats. The speed demand signal Wr * 24 can be a voltage signal having a selected voltage value that indicates the desired speed of the motor 40. The speed demand signal Wr * 24 can also be a pulse width modulation (PWM) signal having a selected duty cycle that represents the desired speed of the motor 40. The speed demand signal Wr * In an embodiment where 24 is a PWM signal, the duty cycle of the PWM control signal 18 can be proportional to the duty cycle of the speed demand signal. Further, the speed demand signal Wr * 24 can be a digital signal having a digital value that represents the desired speed of the motor 40.

[0028] Based on the applied d-axis voltage 60 and the applied q-axis voltage 72, the d-axis feedback current Id56 and the q-axis feedback current Iq66, and further in response to the motor resistance value R and the motor magnetic resistance value L (collectively denoted as 84), the position frequency observer 80 can generate the observed motor position signal θ r 82 and the observed speed signal Wr26. The motor resistance R and the motor magnetic resistance L can be user programmable as may be based on the specifications of the motor 40. The observer 80 can include a neural network-based "online" learning, a model reference adaptive system (MRAS), a Kalman filter, an adaptive non-linear flux observer, and / or a sliding mode observer. As described above, the observed motor position signal θ r 82 can be used by the converter 50 to provide a conversion angle for signal conversion, and the observed speed signal Wr26 is the q-axis reference current signal 62Iq *can be used to generate.

[0029] As described above, the stall detector 30 calculates an estimate of the q-axis voltage Vq in order to detect the stall condition of the motor, generates one or more thresholds based on the calculated estimate of the q-axis voltage, and is configured to compare the applied q-axis voltage Vq72 with the threshold. For this purpose, the stall detector 30 can respond to the applied q-axis voltage Vq72, the q-axis feedback current Iq66, and further the motor winding resistance value R and the back-EMF constant Kt (collectively denoted as 74). E As described above, the stall detector 30 calculates an estimate of the q-axis voltage Vq in order to detect the stall condition of the motor, generates one or more thresholds based on the calculated estimate of the q-axis voltage, and is configured to compare the applied q-axis voltage Vq72 with the threshold. For this purpose, the stall detector 30 can respond to the applied q-axis voltage Vq72, the q-axis feedback current Iq66, and further the motor winding resistance value R and the back-EMF constant Kt (collectively denoted as 74).

[0030] The stall detector 30 may include a processor 100, and the processor 100 is used to calculate an estimate of the q-axis voltage Vq. E The estimate of the q-axis voltage Vq E can be estimated based on the following equation (1).

[0031]

Equation

[0032] Here, R represents the resistance of the motor phase in ohms, Iq is the q-axis current 66 in amperes, Wr is given by the observed rotor speed signal 26 in radians per second, Ld is the d-axis inductance of one motor phase in henries, which can be a user-programmable value, Id is the d-axis current 56 in amperes, Kt is the back-EMF constant in V / (rad / s), which can be a user-programmable value, Lq is the q-axis inductance of one motor phase in henries, which can be a user-programmable value, and ρ represents the rate of change (i.e., the derivative) of the product of Lq and Iq.

[0033] Equation (1) is obtained by not applying field weakening (i.e., Id *It can be simplified by setting it to 0 and assuming that there is no change in the Iq parameter in the steady state (i.e., ρ is approximately zero). The resulting q-axis voltage Vq E The simplified calculation of the estimation is given by the following equation (2).

[0034]

Equation

[0035] Advantageously, the simplification of the calculation of the estimation of the q-axis voltage Vq in such a form E can minimize the complexity and time of the processing in the microcontroller 100. However, as an alternative, those skilled in the art will understand that additional terms of equation (1) omitted from equation (2) can be used if necessary.

[0036] The stall detector 30 can calculate the estimation of the q-axis voltage Vq E at various times and ratios, such as once per motor control cycle (i.e., PWM cycle). In an exemplary embodiment, such an update rate can be between about 15 KHz and 35 KHz. However, this range is only an example, and those skilled in the art will understand that it can be varied to meet specific application requirements. The q-axis voltage estimation calculated in this way can be stored in a memory such as an EEPROM.

[0037] The processor 100 can generate one or more thresholds, or thresholds to which the applied q-axis voltage Vq72 can be compared. For example, the processor 100 can generate a high threshold Vq E and a low threshold Vq EH based on the estimated q-axis voltage Vq EL In an embodiment, the high threshold and the low threshold can be generated as follows.

[0038]

Equation

[0039] Here, K H and K L are a high threshold variable and a low threshold variable, respectively. As an example, K H can be between 1.0 and 3.0, and K L can be less than 1. In some embodiments, the high threshold variable K H and the low threshold variable K L can be adjusted during manufacturing. For example, these variables K H and K L can be adjusted until the detection of stall conditions disappears during normal operation. The thresholds Vq EH and Vq EL generated in this way can be stored in the EEPROM.

[0040] In this specification, the terms "processor" and "controller" are used to describe an electronic circuit that implements a function, operation, or sequence of operations. The function, operation, or sequence of operations can be hard-coded in the electronic circuit or soft-coded by instructions held in a memory device. The function, operation, or sequence of operations can be implemented using digital values or using analog signals. In some embodiments, a processor or controller can be embodied in an application-specific integrated circuit (ASIC) which can be an analog ASIC or a digital ASIC, a microprocessor having an associated program memory, and / or discrete electronic circuits which can be analog or digital. A processor or controller can include internal processors or modules that implement portions of the function, operation, or sequence of operations. Similarly, a module can include internal processors or internal modules that implement portions of the function, operation, or sequence of operations of the module.

[0041] The processor 100 detects the stall condition of the motor by comparing the applied q-axis voltage Vq72 with the thresholds Vq EH and Vq ELconfigured to compare and can thus be regarded as including a so-called comparator. More specifically, the processor 100 determines whether the applied q-axis voltage 72 is higher than a high threshold value Vq EH or lower than a low threshold value Vq EL It will be understood by those skilled in the art that the comparison function can be constituted by a digital circuit (for example, the processor 100) having an output signal having at least two states indicating that the input signal is respectively above or below the threshold level, or that the digital value is respectively above or below the digital threshold value (or another digital value). Alternatively, such a comparison function can be implemented with an analog comparator having a two-state output signal indicating that the input signal is above or below the threshold level.

[0042] The stall detector 30 may further include a timer 106 and a debounce filter 110 for use in generating a stall condition signal 36. As will be further described below, if the applied q-axis voltage Vq 72 remains higher than a high threshold value Vq EH for a predetermined timeout interval of the timer 106 or remains lower than a low threshold value Vq EL a stall condition of the motor may be detected. By "predetermined" is meant that the value is set or fixed at the factory during manufacture or later by external means, such as programming. For example, the timeout interval may be user-programmable. If the applied q-axis voltage Vq 72, which was higher than the high threshold value Vq EH then drops below the high threshold value, or if the applied q-axis voltage, which was lower than the low threshold value Vq EL increases and exceeds the low threshold value, the stall detector 30 may be configured to reset the timer 106.

[0043] The use of the debounce filter 110 is such that the condition erroneously causes the applied q-axis voltage Vq 72 to exceed a high threshold value Vq EH for reasons other than the actual motor stall condition, or to be lower than a low threshold value Vq ELWhen it can be lowered below, it can prevent false detection of stall conditions during startup and high-speed transient conditions. The debounce function will be further described below in connection with Figure 2. Here, during startup and high-speed transient conditions, (for example, the applied q-axis voltage Vq is the estimated rotor position signal θ r Based in part on 82, such an estimate may not be accurate immediately after power-up or during transients, so) the applied q-axis voltage Vq72 can rise rapidly, and the calculated estimate of the q-axis voltage Vq E will only be said to be slightly delayed. Transient conditions can include, but are not limited to, for example, going from low speed to maximum speed, or a rapid deceleration from high speed to low speed. The combination of the high threshold Vq EH and the debounce filter time can prevent false detection of stall conditions during transients and startup.

[0044] Stall detection in the described manner provides several advantages, including, but not limited to, stall detection during motor oscillation, detection of inaccurate sensorless control frequency lock, independence from motor parameter variation errors (since motor inductance parameters are not used), relatively low computational intensity and complexity, and improved detection accuracy under startup and high-speed transient conditions by using the debounce function.

[0045] Those skilled in the art will understand that the illustrated depiction of the block and its function is merely exemplary, and the implementation of the stall detector 30 can vary depending on design considerations. Further, the electronic circuits shown in the figures of this specification can be shown in the form of analog blocks or digital blocks, but it should be understood that analog blocks can be replaced by digital blocks that perform the same or similar functions, and digital blocks can be replaced by analog blocks that perform the same or similar functions. It should be understood that analog-to-digital or digital-to-analog conversion may not be explicitly shown in the figures.

[0046] Those skilled in the art will also understand that the components of the motor control system 10 can be implemented in various forms. For example, in some embodiments, as shown in the exemplary motor controller of FIG. 3, the FOC controller 14 and the stall detector 30 are implemented in an integrated circuit (IC).

[0047] Referring also to FIG. 2, a flowchart of a method 200 for detecting a motor stall condition is shown. The method starts at block 204, stall control is initiated, and a timer (e.g., timer 106 of FIG. 1) is reset. The method 200 is first implemented when a command to operate the motor is initiated. As described above, the stall detection process 200 can be implemented at various times and ratios. For example, the process 200 can be implemented once per motor control cycle.

[0048] At block 208, an estimation of the q-axis voltage Vq is calculated as described above in connection with Equation (2). After the process 200 is first implemented (i.e., after the first PWM cycle), the process 200 starts at block 208 (i.e., the timer is not re-initialized at block 204). E At block 212, one or more thresholds are generated. For example, a high threshold Vq and a low threshold Vq can be generated based on the estimation of the q-axis voltage Vq as described above in connection with Equations (3) and (4), respectively.

[0049] EH

[0050] EL E At block 214, it is determined whether a timeout has occurred (i.e., whether the timer has reached a predetermined time). In an exemplary embodiment, the timeout interval can be about 5 PWM cycles. The timeout interval can be user-programmable, or predetermined, or preset.

[0051] ​​​​If a timeout occurs, a stall condition is detected at block 232, and subsequently, the stall control process ends at block 236. Detection of the stall condition may include generating a stall signal 36 (Figure 1).

[0052] If it is determined at block 214 that no timeout has occurred, at block 216, the applied q-axis voltage Vq72 (Figure 1) is compared with a high threshold value Vq EH and a low threshold value Vq EL to determine whether the applied q-axis voltage Vq72 is higher than the high threshold value Vq EH or lower than the low threshold value Vq EL If the applied q-axis voltage Vq72 is not higher than the high threshold value Vq EH and not lower than the low threshold value Vq EL the timer is reset at block 220. On the other hand, if it is determined at block 216 that the applied q-axis voltage Vq72 is higher than the high threshold value Vq EH or lower than the low threshold value Vq EL the stall control process ends at block 236.

[0053] In the described process 200, if the applied q-axis voltage Vq72 is higher than the high threshold value Vq EH or lower than the low threshold value Vq EL for a period longer than a programmable timeout period or interval, a stall condition is detected. On the other hand, if the condition changes before the timeout period, the timer is reset (at block 220), and the stall condition needs to be persistent for another full timeout period before detection of the stall condition is triggered. In this way, method 200 provides a debounce function to avoid erroneously detecting a stall condition, especially at startup or in response to transient conditions.

[0054] When a motor stall condition occurs, the estimated q-axis voltage Vq Emay be significantly higher or lower than the applied q-axis voltage Vq72. Furthermore, the q-axis current Iq66 generally becomes much higher than under normal operating conditions for a given applied q-axis voltage Vq. Thus, in this stall scenario, the q-axis voltage 72 drops below a low threshold value Vq EL and thus a stall condition is detected. In another scenario where the applied motor speed is below the sensorless estimate and the controller cannot confirm it (i.e., as may occur due to an inaccurate sensorless control frequency lock), the estimated q-axis voltage Vq E again becomes high (as being partly based on the estimated motor speed according to Equation 2), and thus the applied q-axis voltage Vq drops below Vq EL again, thereby triggering stall condition detection.

[0055] In a motor rocking scenario where the motor 40 rocks back and forth, the q-axis current Iq66 becomes much higher than under normal operating conditions because the motor requires much higher torque each time the direction of rotation changes. In this scenario, the applied q-axis voltage Vq72 drops below a low threshold value Vq EL and thereby triggers stall condition detection.

[0056] As described above, during startup and high-speed transient conditions (e.g., the applied q-axis voltage Vq may rise rapidly because it is partly based on the estimated rotor position signal θ r 82 and such an estimate may not be accurate immediately after power-up or during a transient), and the calculated estimate of the q-axis voltage Vq E may lag slightly. Under such conditions, the applied q-axis voltage Vq exceeds a high threshold value Vq EH and thereby triggers stall detection.

[0057] (Represented by element 208), the rectangular element is shown herein as a "processing block", and (represented by element 216), the diamond-shaped element is shown herein as a "decision block", and either or both of them are to be understood to represent computer software instructions or groups of instructions. It should be noted that the flowchart of FIG. 2 represents an exemplary embodiment disclosed herein, and variations that generally follow the outlined process are considered to be within the scope of the concepts, systems, and techniques described and claimed herein. Some or all of the blocks may represent operations implemented by functionally equivalent circuits. Further, some blocks may be implemented manually and other blocks may be implemented by a machine. The flowchart does not show the syntax of any particular programming language. Rather, the flowchart shows the information that a person of ordinary skill in the art would need to manufacture a circuit and / or generate computer software to perform the required processing of a particular device. Note that many routine program elements, such as loop and variable initialization and the use of temporary variables, are not illustrated. Unless otherwise specified herein, the particular sequences described are exemplary only and, in some cases, may be changed without departing from the spirit of the concepts described and / or claimed herein, as would be understood by a person of ordinary skill in the art. Accordingly, unless otherwise stated, the processes described below are unordered and, when possible, the operations shown in the figures may be performed in any convenient or desirable order, including simultaneously.

[0058] Referring also to FIG. 3, an exemplary motor control system 300 includes a FOC controller 314, an inverter 306, and a stall observer 330 configured to control a motor 340. The motor control elements of system 300 may be implemented in the form of an integrated circuit, represented by a box 310 having connections (e.g., pins or terminals) for providing and receiving signals between other parts of the control system and other external circuits and systems. The FOC controller 314 may be the same or similar to the FOC controller 14 of FIG. 1, and the stall observer 330 may be the same or similar to the stall observer 30 of FIG. 1. One of ordinary skill in the art will understand that the depiction of which elements are internal and which are external to the controller IC 310 may vary.

[0059] The motor 340 has a plurality of windings, and a voltage is applied to the windings by the inverter 306. Although shown as a three-phase motor, the motor 340 may include more or fewer phases, in which case the motor controller 310 may be adapted to control the motor with more or fewer phases than three. The illustrated inverter 306 includes a plurality of switches Q1 to Q6 (e.g., field effect transistors, FETs) configured in a half-bridge configuration, and each half-bridge (i.e., Q1 / Q2, Q3 / Q4, and Q5 / Q6) generates a drive signal for a corresponding phase of the motor. The gate driver 316 may be identical or similar to the SVPWM circuit 16 of FIG. 1, and thus, to achieve a desired speed, control signals (i.e., PWM signals) are provided to the switches Q1 to Q6 of the inverter 306 to control the current flowing through the motor windings. The PWM control signals may be selectively coupled to the gate terminals of the switches Q1 to Q6 through the high-side gate drive output terminals GHx and the low-side gate drive output terminals GLx. More specifically, by turning on an upper transistor (e.g., one of transistors Q1, Q3, and Q5) within a given half-bridge circuit to couple the supply voltage VBB to the motor through the upper transistor, and turning on a lower transistor (e.g., one of transistors Q2, Q4, and Q6) within another half-bridge circuit to couple the ground potential GND to the motor through the lower transistor, thereby enabling current to flow through the corresponding winding of the motor, power is supplied to the motor 340.

[0060] The desired speed is the speed demand signal Wr of FIG. 1 *It can be a user input provided at the speed control terminal PWM / SPD in the form of a PWM_in signal (which can be the same as or similar to 24). The PWM_in signal can be stored in the EEPROM 332 and can be coupled to an additional block 350, and the additional block 350 is used to control selectable speed control modes. For example, in the PWM mode, the motor speed can be controlled by the duty cycle of the PWM_in signal; in the analog mode, the motor speed can be controlled by the amplitude of the analog voltage applied to the PWM / SPD pin; in the clock mode, the motor speed can be controlled by the frequency of the input clock; and in the standby mode, all circuits (except for the charge pump and VREG) can be turned off. As shown, the controller IC 310 can include a terminal LSS for coupling to the lower side source of the switch.

[0061] The motor phase current can be sensed by a sense resistor 344 coupled to the controller IC 310 at the input SENP and SENN. A current amplifier 348 can amplify the sensed motor current to couple the sensed current (which can be the same as or similar to the current signal 28 in FIG. 1) to the FOC controller 314.

[0062] The controller IC 310 can receive a supply voltage at the VBB terminal that can be supplied by an external +48V power source. The supply voltage can also be coupled to a VIN terminal for coupling to a power loss brake unit 320, and the power loss brake unit 320 can operate to decelerate the motor 340 in the event of an input power loss. A bias voltage can be generated by an external inductor and capacitor and can be coupled to one or more regulators 324 through the VBIAS terminal. For example, the VBIAS terminal can be coupled to an external Buck regulator 328 including an inductor and capacitor as shown. The switch terminal SW can be coupled to the switch (not shown) of the Buck regulator 328. The regulator 324 can generate a regulated voltage for powering the on-chip circuits and further for supplying a reference voltage at the VREF terminal.

[0063] The controller IC 310 may include a memory and a control logic block 332 such as an EEPROM or other type of non-volatile memory for storing parameters related to the operation of the motor 340, and control logic for storing various values and parameters and controlling certain functions.

[0064] Additional terminals of the controller IC 310 may include an FG / RD output to which speed information (FG) or rotation detection information (RD) may be provided based on selectable functions that can be programmed through the EEPROM 332. The Nbrake terminal may receive an external signal for controlling the motor braking function. A system clock reference signal for coupling to an internal system clock unit 338 may be received at the ROSC terminal.

[0065] In response to a signal from the control logic 332, a fault may be reported at the nFLT terminal. For example, based on the operation of the stall observer 330, a stall detection may be reported at the nFLT terminal. Other faults such as overcurrent, overvoltage, undervoltage conditions, etc. may also be detected and reported.

[0066] The stall observer 330 (also referred to herein as a stall detector 330 for the sake of alternative) calculates an estimate of the q-axis voltage Vq E to detect a stall condition of the motor, generates one or more threshold values based on the estimated q-axis voltage, and is configured to compare the applied q-axis voltage Vq with the threshold values. The stall detector 30 may include a threshold generator configured to generate a high threshold value Vq EH and a low threshold value Vq EL for comparison with the applied q-axis voltage Vq. Using this configuration, a stall condition of the motor 340 may be detected, and a stall condition signal, or simply a stall signal 336, may be generated to provide an indication of whether a stall condition has occurred. The stall signal 336 may be provided to the control logic 332 for coupling to the controller terminal nFLT.

[0067] All references cited in this specification are hereby incorporated by reference in their entirety into this specification.

[0068] Having described preferred embodiments, it will now be apparent to those skilled in the art that other embodiments incorporating the same concept may be used. Elements of the different embodiments described herein may be combined to form other embodiments not specifically described above. The various elements described in the context of a single embodiment may also be provided separately or in any suitable sub-combination. Other embodiments not specifically described herein are also within the scope of the following claims. For example, while a three-phase motor is described, the principles and techniques described apply to motors having more or fewer phases than three.

[0069] Accordingly, such embodiments should not be limited to the disclosed embodiments, but rather should be limited only by the spirit and scope of the appended claims.

Claims

1. A motor control system for controlling the operation of a motor having a plurality of windings, a gate driver that supplies a control signal to one or more switching elements that control the voltage applied to the plurality of windings, a field-oriented control (FOC) controller configured to generate a PWM signal for coupling to the gate driver, the FOC controller including a d-axis control loop configured to generate an applied d-axis voltage and a q-axis control loop configured to generate an applied q-axis voltage, a stall detector configured to calculate an estimate of the q-axis voltage based on a voltage calculated from an observed motor speed and a voltage calculated from an applied q-axis current, and to compare the applied q-axis voltage with a threshold based on the estimate A motor control system comprising.

2. The motor control system according to claim 1, wherein the stall detector includes a threshold generator configured to generate a high threshold and a low threshold based on the estimate of the q-axis voltage for comparison with the applied q-axis voltage.

3. The motor control system according to claim 2, wherein the stall detector further includes a timer, and the stall detector is configured to reset the timer when the applied q-axis voltage becomes higher than the high threshold or lower than the low threshold.

4. The motor control system according to claim 3, wherein the stall condition of the motor is detected when the applied q-axis voltage remains higher than the high threshold or lower than the low threshold for a predetermined timeout interval of the timer.

5. The motor control system according to claim 4, wherein the stall detector is configured to generate a stall signal indicating the stall condition of the motor in response to the detection of the stall condition.

6. The motor control system according to claim 5, further comprising a debounce filter configured to generate the stall signal by the stall detector.

7. The stall detector is 【Equation 1】 configured to calculate the estimated q-axis voltage according to, where Wr is the observed motor speed, Kt is the BEMF constant, Iq is the applied q-axis current, and R is the motor phase resistance, the motor control system according to claim 1.

8. The motor control system according to claim 7, further comprising a position frequency observer configured to generate a motor position estimate θ and the observed motor speed Wr by the FOC controller.

9. The motor control system according to claim 8, further comprising a current measurement circuit coupled to one or more of the plurality of windings for measuring a current through one or more of the plurality of windings.

10. The motor control system according to claim 1, wherein each of the d-axis control loop and the q-axis control loop of the FOC controller comprises a proportional integral (PI) unit.

11. A method for detecting a stall condition in a motor having a plurality of windings, comprising: applying a controlled voltage to the plurality of windings; measuring a current through one or more of the plurality of windings; generating a PWM signal for coupling the controlled voltage to a gate driver configured to apply the controlled voltage to the plurality of windings using a field oriented control (FOC) controller comprising a d-axis control loop configured to generate an applied d-axis voltage and a q-axis control loop configured to generate an applied q-axis voltage; Calculating an estimation of the q-axis voltage based on a voltage calculated from the observed motor speed and a voltage calculated from the applied q-axis current; Comparing the applied q-axis voltage with a threshold value based on the estimation of the q-axis voltage; Detecting a stall condition of the motor based on the comparison; and a method comprising the same. **Claim 12** The method according to claim 11, further comprising generating the threshold value based on a programmable variable. **Claim 13** The method according to claim 12, wherein the step of generating the threshold value includes generating a high threshold value based on a high programmable variable and generating a low threshold value based on a low programmable variable. **Claim 14** The method according to claim 11, wherein the step of detecting the stall condition includes resetting a timer when the applied q-axis voltage is less than the high threshold value or greater than the low threshold value. **Claim 15** The method according to claim 14, wherein the stall condition of the motor is detected when the applied q-axis voltage remains higher than the high threshold value or lower than the low threshold value for a predetermined timeout interval of the timer. **Claim 16** The method according to claim 15, further comprising generating a stall signal indicating the detection of the stall condition. **Claim 17** The method according to claim 16, wherein the step of generating the stall signal includes using a debounce filter. **Claim 18** The step of calculating the estimated q-axis voltage includes **[Equation 2]** including the step of using, where Wr is the observed motor speed, Kt is the BEMF constant, Iq is the applied q-axis current, and R is the motor phase resistance, the method according to claim 11.

19. A motor control system for controlling the operation of a motor having a plurality of windings, a field-oriented control (FOC) controller configured to generate a PWM signal for coupling to a gate driver based on a received request signal, the FOC controller comprising a d-axis control loop configured to generate an applied d-axis voltage and a q-axis control loop configured to generate an applied q-axis voltage; means for detecting a stall condition of the motor based on an estimation of the q-axis voltage; comprising a motor control system, wherein the estimation of the q-axis voltage is based on a voltage calculated from an observed motor speed and a voltage calculated from an applied q-axis current.

20. wherein the stall condition detecting means comprises means for calculating an estimation of the q-axis voltage, means for generating a threshold value based on the estimation of the q-axis voltage, and means for comparing the applied q-axis voltage with the threshold value; the motor control system according to claim 19.

Citation Information

Patent Citations

  • Motor control apparatus

    JP2010051151A

  • Motor drive control circuit

    JP2011078222A

  • Control device for ac motor

    JP2018143035A