A BLDC driving method and system based on SPWM
By detecting the current and speed in the BLDC motor drive system in real time and dynamically adjusting the acceleration curve and sinusoidal voltage, the problem of low starting efficiency of the BLDC motor under frequent starts and load changes is solved, and a more efficient motor start is achieved.
Patent Information
- Application Number
- CN202211267179.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-17
- Publication Date
- 2025-01-24
- Estimated Expiration
- 2042-10-17
AI Technical Summary
Existing BLDC motors have low startup efficiency and may lead to startup failures when they are frequently started and stopped or load changes.
The BLDC drive method based on SPWM is used to detect the driver's current and motor speed by real -time detection of the driver, and dynamically adjust the acceleration curve and sine voltage to ensure that the motor speed reaches the preset threshold.
In the complex application scenarios, improve the startup efficiency of the BLDC motor to ensure that the motor can stabilize and quickly start, and it is suitable for the scene of the load size or inertia.
Smart Images

Figure CN115664276B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of motor control, and in particular to a BLDC driving method and system based on SPWM. Background Art
[0002] SPWM is sinusoidal pulse width modulation, and SPWM (Sinusoidal PWM) is a relatively mature and widely used PWM method. BLDC is a brushless DC motor. The key technology to drive BLDC is to detect the motor rotor position and be able to complete the motor rotor commutation at an accurate position to achieve the best control effect.
[0003] At present, the method for estimating the motor position basically adopts the back-EMF method, that is, detecting the back-EMF zero-crossing signal of the suspended phase to infer the position of the motor rotor. When the motor starts, the back-EMF signal is basically zero, so the motor needs to reach a certain speed to detect the accurate back-EMF zero-crossing signal. Therefore, getting the motor to rotate at a sufficient speed when the back-EMF signal is extremely small has become a difficulty in starting BLDC.
[0004] The traditional starting method is a three-stage drive method, that is, pre-positioning, open-loop acceleration and dragging according to a preset acceleration signal, and switching into a closed loop. In situations where fixed motors and fixed loads are used, this method is highly practical, and its starting sequence is relatively stable, which is suitable for large BLDC drive situations with low starting requirements; however, in applications that require frequent starting and stopping, if fast driving is to be achieved, the traditional three-stage drive method may fail to start, and in applications with variable load size or inertia, the traditional drive method cannot complete the starting work. Summary of the invention
[0005] The present invention provides a BLDC driving method and system based on SPWM, which can realize BLDC driving in complex application occasions and improve the starting efficiency of the motor.
[0006] In order to solve the above technical problems, an embodiment of the present invention provides a BLDC driving method based on SPWM, the method comprising:
[0007] Start the motor, detect the driver current and motor speed in real time, and determine whether the motor speed reaches a preset driving threshold;
[0008] If the motor speed reaches a preset driving threshold, a six-step commutation operation is performed;
[0009] If the motor speed does not reach the preset driving threshold, the acceleration curve and the sinusoidal voltage are adjusted according to the driver current so that the motor speed reaches the preset threshold, and then a six-step commutation operation is performed; wherein the acceleration curve is the acceleration curve when the motor speed changes in a sinusoidal curve, and the sinusoidal voltage is the sinusoidal voltage acting on the three-voltage line of the motor.
[0010] The method provided by the present invention adopts an adaptive variable acceleration curve and variable voltage to drive the motor during the motor starting process, realizes the dynamic adjustment of the SPWM three-phase sinusoidal wave frequency and sinusoidal voltage, is applicable to scenarios with variable load size or inertia, realizes BLDC driving in complex application scenarios, and improves the starting efficiency of the motor.
[0011] Further, the adjusting the acceleration curve and the sinusoidal voltage according to the driver current is specifically:
[0012] Real-time detection of driver current;
[0013] If the driver current is higher than a preset threshold, the acceleration curve is compressed and the sinusoidal voltage is reduced;
[0014] If the driver current is less than a preset threshold value and the motor loses step, the acceleration curve is stretched and the sinusoidal voltage is increased.
[0015] The method provided by the present invention detects the magnitude of the driver current in real time, dynamically adjusts the acceleration curve according to the magnitude of the current, and further realizes dynamic adjustment of the sinusoidal voltage, and can realize BLDC drive in scenarios with variable load size or inertia.
[0016] Furthermore, after adjusting the acceleration curve and the sinusoidal voltage, a corresponding speed curve is generated according to the acceleration curve, a corresponding motor three-phase angle increment is calculated according to the corresponding speed curve, and the motor speed is controlled according to the corresponding motor three-phase angle increment.
[0017] Furthermore, before starting the motor, it is also necessary to obtain a sine table required for BLDC operation, and set the maximum and minimum values of the sinusoidal voltage amplitude according to the sine table required for BLDC operation.
[0018] The present invention also provides a BLDC drive system based on SPWM, which includes a judgment module, a regulation module and a six-step commutation module;
[0019] The judgment module is used to detect the driver current and the motor speed in real time, and judge whether the motor speed reaches a preset driving threshold;
[0020] The regulating module is used to adjust the acceleration curve and the sinusoidal voltage according to the driver current so that the motor speed reaches a preset threshold;
[0021] The six-step commutation module is used to perform a six-step commutation operation.
[0022] Further, the adjusting the acceleration curve and the sinusoidal voltage according to the driver current is specifically:
[0023] Real-time detection of driver current;
[0024] If the driver current is higher than a preset threshold, the acceleration curve is compressed and the sinusoidal voltage is reduced;
[0025] If the driver current is less than a preset threshold value and the motor loses step, the acceleration curve is stretched and the sinusoidal voltage is increased.
[0026] Furthermore, the system also includes a control module, which is used to generate a corresponding speed curve according to the acceleration curve after adjusting the acceleration curve and the sinusoidal voltage, calculate the corresponding motor three-phase angle increment according to the corresponding speed curve, and control the motor speed according to the corresponding motor three-phase angle increment.
[0027] Furthermore, before the system is operated, it is necessary to obtain a sine table required for BLDC operation, and set the maximum and minimum values of the sinusoidal voltage amplitude according to the sine table required for BLDC operation.
[0028] The system provided by the present invention adopts an adaptive variable acceleration curve and variable voltage method to drive the motor during the motor starting process, realizes the dynamic adjustment of the SPWM three-phase sinusoidal wave frequency and sinusoidal voltage, can be applied to scenarios with variable load size or inertia, realizes BLDC drive in complex application scenarios, and improves the starting efficiency of the motor.
[0029] The present invention also provides a terminal device, which includes a processor, a memory, and a computer program stored in the memory and configured to be executed by the processor, and when the processor executes the computer program, the SPWM-based BLDC driving method as claimed in claim is implemented.
[0030] The present invention also provides a computer-readable storage medium, which includes a stored computer program, wherein when the computer program is running, the device where the computer-readable storage medium is located is controlled to execute the SPWM-based BLDC driving method as claimed in claim 1. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] Figure 1 : A flow chart of a BLDC driving method based on SPWM provided in Embodiment 1 of the present invention;
[0032] Figure 2: A flowchart of a specific example of a BLDC driving method based on SPWM provided in Embodiment 1 of the present invention;
[0033] Figure 3 : A structural schematic diagram of a BLDC drive system based on SPWM provided in Example 2 of the present invention. DETAILED DESCRIPTION
[0034] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0035] Embodiment 1
[0036] Please refer to Figure 1 , is a flow chart of a BLDC driving method based on SPWM provided in the first embodiment of the present invention, which mainly includes step 101 to step 102, and the specific method of each step is as follows:
[0037] Step 101: Start the motor, detect the driver current and the motor speed in real time, and determine whether the motor speed reaches a preset driving threshold.
[0038] It should be noted that how to make the motor reach a sufficient speed is the difficulty of BLDC driving. When the motor speed does not reach the preset driving threshold, BLDC cannot complete the driving.
[0039] In this embodiment, the carrier frequency of the three-phase sine wave does not change during the system driving process, and the carrier frequency of the three-phase sine wave is set between 16Khz and 20Khz.
[0040] Step 102: If the motor speed reaches a preset driving threshold, a six-step commutation operation is performed; if the motor speed does not reach the preset driving threshold, the acceleration curve and the sinusoidal voltage are adjusted according to the driver current to make the motor speed reach the preset threshold, and then a six-step commutation operation is performed.
[0041] The acceleration curve is an acceleration curve when the motor speed changes in a sinusoidal curve, and the sinusoidal voltage is a sinusoidal voltage acting on the three-voltage line of the motor.
[0042] Further, the adjusting the acceleration curve and the sinusoidal voltage according to the driver current is specifically:
[0043] Real-time detection of driver current;
[0044] If the driver current is higher than a preset threshold, the acceleration curve is compressed and the sinusoidal voltage is reduced;
[0045] If the driver current is less than a preset threshold value and the motor loses step, the acceleration curve is stretched and the sinusoidal voltage is increased.
[0046] In this embodiment, compressing the acceleration curve is specifically: compressing the acceleration curve in the x direction in the XY coordinate system; stretching the acceleration curve is specifically: stretching the acceleration curve in the x direction in the XY coordinate system. The XY coordinate system is a plane rectangular coordinate system established with the horizontal coordinate being time and the vertical coordinate being acceleration.
[0047] In this embodiment, the preset threshold value of the motor driver current is generally set within 8 times of the rated current.
[0048] In this embodiment, a corresponding speed curve can be generated according to the acceleration curve, and a corresponding voltage amplitude curve can be generated according to the corresponding speed curve. Generating a corresponding voltage amplitude curve according to the corresponding speed curve is a prior art and will not be described in detail here.
[0049] It should be noted that compressing the acceleration curve will increase the rate of change of acceleration per unit time, and stretching the acceleration curve will reduce the rate of change of acceleration per unit time. The corresponding speed curve is obtained by integrating the acceleration curve. Therefore, when the acceleration curve changes, the corresponding speed curve will also change accordingly.
[0050] It should be noted that when the corresponding speed curve changes, the corresponding voltage amplitude curve will also change accordingly.
[0051] The method provided by the present invention detects the magnitude of the driver current in real time, dynamically adjusts the speed acceleration curve according to the current magnitude, and further realizes dynamic adjustment of the sinusoidal voltage, and can realize BLDC drive in scenarios with variable load magnitude or inertia.
[0052] Furthermore, after adjusting the acceleration curve and the sinusoidal voltage, a corresponding speed curve is generated according to the acceleration curve, a corresponding motor three-phase angle increment is calculated according to the corresponding speed curve, and the motor speed is controlled according to the corresponding motor three-phase angle increment.
[0053] The three-phase angle increment of the motor can be obtained by calculating the corresponding speed curve according to the integral formula. The specific calculation method is prior art and will not be repeated here.
[0054] In this embodiment, during the BLDC driving process, the acceleration curve is adjusted according to the driver current, and then the speed curve is adjusted according to the acceleration curve, and then the sinusoidal voltage and the motor three-phase angle increment are adjusted according to the corresponding speed curve, thereby achieving the adjustment of the motor speed.
[0055] Furthermore, before starting the motor, it is also necessary to obtain a sine table required for BLDC operation, and set the maximum and minimum values of the sinusoidal voltage amplitude according to the sine table required for BLDC operation.
[0056] Setting the maximum and minimum values of the sinusoidal voltage amplitude according to the sinusoidal table required for the BLDC operation is a prior art and will not be described in detail here.
[0057] It should be noted that, in the process of adjusting the sinusoidal voltage, the amplitude of the sinusoidal voltage cannot exceed the maximum value and the minimum value of the preset sinusoidal voltage amplitude.
[0058] In this embodiment, the magnitude of the sinusoidal voltage amplitude is generally set to 0.05-0.95 times the motor bus voltage value; when the load is small, the sinusoidal voltage amplitude is usually set within 0.5 times the motor bus voltage value, and when the load is large, the sinusoidal voltage amplitude is usually set between 0.8-0.9 times the motor bus voltage value.
[0059] In this embodiment, a specific example of a BLDC driving method based on SPWM is provided, which is a flowchart of a specific example of a BLDC driving method based on SPWM provided in Embodiment 1 of the present invention. In this example, 128 subdivisions are adopted, and an S-type acceleration curve is adopted as an acceleration curve. Before starting the motor, a PWM module and an ADC module of the motor need to be configured, wherein the PWM module is used to drive an external device of the motor, and the ADC module is used to detect the driver current in real time:
[0060] Start the motor, detect the driver current and motor speed in real time, and the motor speed does not reach the preset drive threshold;
[0061] If the driver current is higher than a preset threshold, the acceleration curve is compressed, the rate of change of acceleration per unit time is increased, and the sinusoidal voltage is reduced;
[0062] Generate a corresponding speed curve according to the acceleration curve, calculate a corresponding motor three-phase angle increment according to the corresponding speed curve, control the motor speed according to the corresponding motor three-phase angle increment, until the motor speed reaches a preset driving threshold, and then perform a six-step commutation operation;
[0063] After completing the six-step commutation operation, the motor completes driving.
[0064] It should be noted that the three-phase brushless motor has a three-phase stator. In order to prevent the rotor from being locked by the stator, two of the phases must be energized in a specific way and in sequence at the same time to generate a rotating magnetic field. This specific power-on sequence is generally divided into 6 steps according to the different spatial positions of the rotor, so it is called "six-step commutation"; the specific process of the six-step commutation operation is existing technology and will not be repeated here.
[0065] The method provided by the present invention adopts an adaptive variable acceleration curve and variable voltage to drive the motor during the starting process, realizes the dynamic adjustment of the SPWM three-phase sinusoidal wave frequency and sinusoidal voltage, is applicable to scenarios with variable load size or inertia, realizes BLDC driving in complex application scenarios, and improves the starting efficiency of the motor.
[0066] Embodiment 2
[0067] Please refer to Figure 3 , is a structural schematic diagram of a BLDC drive system based on SPWM provided in Embodiment 2 of the present invention, the system includes a judgment module 201, an adjustment module 202 and a six-step commutation module 203;
[0068] The judging module 201 is used to detect the driver current and the motor speed in real time, and judge whether the motor speed reaches a preset driving threshold;
[0069] The regulating module 202 is used to adjust the acceleration curve and the sinusoidal voltage according to the driver current so that the motor speed reaches a preset threshold;
[0070] The six-step commutation module 203 is used to perform a six-step commutation operation.
[0071] Further, the adjusting the acceleration curve and the sinusoidal voltage according to the driver current is specifically:
[0072] Real-time detection of driver current;
[0073] If the driver current is higher than a preset threshold, the acceleration curve is compressed and the sinusoidal voltage is reduced;
[0074] If the driver current is less than a preset threshold value and the motor loses step, the acceleration curve is stretched and the sinusoidal voltage is increased.
[0075] Furthermore, the system also includes a control module, which is used to generate a corresponding speed curve according to the acceleration curve after adjusting the acceleration curve and the sinusoidal voltage, calculate the corresponding motor three-phase angle increment according to the corresponding speed curve, and control the motor speed according to the corresponding motor three-phase angle increment.
[0076] Furthermore, before the system is operated, it is necessary to obtain a sine table required for BLDC operation, and set the maximum and minimum values of the sinusoidal voltage amplitude according to the sine table required for BLDC operation.
[0077] The more detailed working principle and steps of this embodiment can be referred to, but not limited to, the relevant records of the first embodiment.
[0078] The system provided by the present invention adopts an adaptive variable acceleration curve and variable voltage method to drive the motor during the motor starting process, realizes the dynamic adjustment of the SPWM three-phase sinusoidal wave frequency and sinusoidal voltage, can be applied to scenarios with variable load size or inertia, realizes BLDC drive in complex application scenarios, and improves the starting efficiency of the motor.
[0079] The specific embodiments described above further illustrate the purpose, technical solutions and beneficial effects of the present invention. It should be understood that the above description is only a specific embodiment of the present invention and is not intended to limit the scope of protection of the present invention. It is particularly pointed out that for those skilled in the art, any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present invention should be included in the scope of protection of the present invention.
Claims
1. A BLDC driving method based on SPWM, characterized in that: include: Start the motor, detect the driver current and motor speed in real time, and determine whether the motor speed reaches a preset driving threshold; If the motor speed reaches a preset driving threshold, a six-step commutation operation is performed; If the motor speed does not reach the preset driving threshold, the acceleration curve and the sinusoidal voltage are adjusted according to the driver current so that the motor speed reaches the preset threshold, and then a six-step commutation operation is performed; wherein the acceleration curve is the acceleration curve when the motor speed changes in a sinusoidal curve, and the sinusoidal voltage is the sinusoidal voltage acting on the three-voltage line of the motor; The step of adjusting the acceleration curve and the sinusoidal voltage according to the driver current is as follows: Real-time detection of driver current; If the driver current is higher than a preset threshold, the acceleration curve is compressed and the sinusoidal voltage is reduced; If the driver current is less than a preset threshold value and the motor is out of step, the acceleration curve is stretched and the sinusoidal voltage is increased; The compressing the acceleration curve is specifically: compressing the acceleration curve in the X direction in the XY coordinate system; The stretching of the acceleration curve is specifically: in an XY coordinate system, stretching the acceleration curve in the X direction; wherein the XY coordinate system is a plane rectangular coordinate system established with the horizontal coordinate being time and the vertical coordinate being acceleration; After adjusting the acceleration curve and the sinusoidal voltage, a corresponding speed curve is generated according to the acceleration curve, a corresponding motor three-phase angle increment is calculated according to the corresponding speed curve, and the motor speed is controlled according to the corresponding motor three-phase angle increment.
2. A BLDC driving method based on SPWM as claimed in claim 1, characterized in that: Before starting the motor, it is also necessary to obtain a sine table required for BLDC operation, and set the maximum and minimum values of the sinusoidal voltage amplitude according to the sine table required for BLDC operation.
3. A BLDC drive system based on SPWM, characterized in that: The system includes a judgment module, an adjustment module and a six-step reversing module; The judgment module is used to detect the driver current and the motor speed in real time, and judge whether the motor speed reaches a preset driving threshold; The regulating module is used to adjust the acceleration curve and the sinusoidal voltage according to the driver current so that the motor speed reaches a preset threshold; The six-step reversing module is used to perform a six-step reversing operation; The step of adjusting the acceleration curve and the sinusoidal voltage according to the driver current is as follows: Real-time detection of driver current; If the driver current is higher than a preset threshold, the acceleration curve is compressed and the sinusoidal voltage is reduced; If the driver current is less than a preset threshold value and the motor is out of step, the acceleration curve is stretched and the sinusoidal voltage is increased; The compressing the acceleration curve is specifically: compressing the acceleration curve in the X direction in the XY coordinate system; The stretching of the acceleration curve is specifically: in an XY coordinate system, stretching the acceleration curve in the X direction; wherein the XY coordinate system is a plane rectangular coordinate system established with the horizontal coordinate being time and the vertical coordinate being acceleration; After adjusting the acceleration curve and the sinusoidal voltage, a corresponding speed curve is generated according to the acceleration curve, a corresponding motor three-phase angle increment is calculated according to the corresponding speed curve, and the motor speed is controlled according to the corresponding motor three-phase angle increment.
4. A BLDC drive system based on SPWM as claimed in claim 3, characterized in that: Before the system is run, it is also necessary to obtain a sine table required for BLDC operation, and set the maximum and minimum values of the sinusoidal voltage amplitude according to the sine table required for BLDC operation.
5. A terminal device, characterized in that: The invention comprises a processor, a memory and a computer program stored in the memory and configured to be executed by the processor, wherein the processor implements the SPWM-based BLDC driving method according to any one of claims 1 to 2 when executing the computer program.
6. A computer-readable storage medium, characterized in that: The computer-readable storage medium includes a stored computer program, wherein when the computer program is executed, the device where the computer-readable storage medium is located is controlled to execute the SPWM-based BLDC driving method according to any one of claims 1 to 2.
Citation Information
Patent Citations
Stepper driver system with current feedback
US20030214265A1
Method of controlling speed of BLDC motor and method of controlling cooling speed of refrigerator using the same
US20070133957A1
System, method, and program product for controlling communication of disk drive motor
US6339303B1
Cited By
Motor control mode switching circuit and motor control system
CN119966310A