Discrete filtering method and discrete filter for position redundancy processing of BLDC motors
Patent Information
- Application Number
- CN202211315851.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-26
- Publication Date
- 2026-06-30
- Estimated Expiration
- 2042-10-26
AI Technical Summary
Because of deviations in the processing, installation, calibration, and measurement of the two position sensors in the BLDC motor, inconsistencies in position information occur between them during normal operation, which often leads to misjudgments when verifying position information during mass production.
A discrete filtering method is used to calculate the position deviation values of the main position sensor and the auxiliary position sensor, and then use a filter to remove local deviations to obtain a stable position deviation value, which is used to determine the sensor status.
It effectively eliminates relative deviations between sensors, reduces misjudgments during mass production, obtains stable reference data, and analyzes sensor status.
Smart Images

Figure CN115664379B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of motor technology, specifically to a discrete filtering method and discrete filter for position redundancy processing of BLDC motors. Background Technology
[0002] High-performance motor drive systems require real-time rotor position information for dynamic control. This rotor position information is typically obtained using position sensors mounted on the motor, such as photoelectric encoders, rotary transformers, and magnetic encoders. However, while rotor position sensors can provide accurate position information to improve system performance, as hardware components, they also pose a risk of failure. Especially when the system operates under high vibration or high speed, rotor sensor failure can cause uncontrolled motor torque, potentially harming the drive system, the load, and even nearby personnel.
[0003] Currently, several methods have been proposed to utilize another position signal, possibly an auxiliary position sensor or software-estimated position information, as a redundant system to improve reliability. The main methods for position redundancy processing include: 1. Studying different methods to obtain position information, including hardware position sensors or software position estimation; 2. Studying how different position information can be mutually verified to identify position sensor failures; 3. Studying how to handle sensor failures to minimize their impact on the system.
[0004] Regarding the application of the second method in actual mass production, deviations during the processing, installation, calibration, and measurement of two position sensors in practical applications lead to inconsistencies between different position information even during normal operation. This inconsistency can vary randomly during mass production, sometimes significantly, often causing misjudgments during position information verification. For example, Hall sensors in brushless DC motors (BLDC) provide feedback signals every 60 electrical degrees, and the installation of Hall sensors typically has a deviation of ±5 degrees. If two Hall sensors are used for position redundancy, the maximum deviation between the two sensors can reach 10 degrees during mass production, interfering with deviation judgment in position redundancy. In reality, because the position sensors themselves are effective, the average deviation across multiple positions is small; however, at a specific local position, the superposition of the deviations from the two position sensors results in a large deviation. Summary of the Invention
[0005] To overcome the problem that deviations occur during the processing, installation, calibration, and measurement of two position sensors in practical applications, resulting in inconsistencies between different position information during normal operation, and that these inconsistencies can vary randomly and sometimes significantly during mass production, often leading to misjudgments when verifying position information, this invention provides a discrete filtering method and discrete filter for BLDC motor position redundancy processing.
[0006] The technical solution of this invention is as follows:
[0007] In a first aspect, the present invention provides a discrete filtering method for position redundancy processing of BLDC motors, comprising:
[0008] Step S1: When the main position sensor sends a feedback signal, read the angle value of the auxiliary position sensor once, and calculate and input the current position deviation value of the main position sensor and the auxiliary position sensor based on the current feedback signal number and the read angle value of the auxiliary position sensor.
[0009] Step S2: Calculate the average deviation value of the last 6 position deviation values;
[0010] Step S3: Calculate the difference between the current position deviation value and the average deviation value;
[0011] Step S4: Calculate the local deviation value at the current angle point based on the average deviation value, the difference value, and the filter coefficients.
[0012] Step S5: Calculate and output the filtered position deviation value based on the current position deviation value and the local deviation value.
[0013] According to the discrete filtering method for BLDC motor position redundancy processing described above, the formula for calculating the position deviation value is as follows:
[0014] phase_diff=index*60-theta_check
[0015] Where phase_diff is the current position deviation value, index is the current feedback signal number, and theta_check is the angle value read from the auxiliary position sensor.
[0016] According to the discrete filtering method for BLDC motor position redundancy processing in the above scheme, step S1 further includes:
[0017] Define a first array of 6 elements, and store the calculated current position deviation value in the first array. The first array is used to store the last 6 position deviation values.
[0018] According to the discrete filtering method for BLDC motor position redundancy processing described above, step S2 further includes:
[0019] When the motor is rotating forward, if the current feedback signal number is equal to 6, then the average deviation value is updated.
[0020] When the motor reverses, if the current feedback signal number is equal to 1, then the average deviation value is updated.
[0021] According to the discrete filtering method for BLDC motor position redundancy processing in the above scheme, step S4 includes:
[0022] Define a second array of 6 elements to store the local deviation value at each angle point.
[0023] According to the discrete filtering method for BLDC motor position redundancy processing described above, the formula for calculating the local deviation value is as follows:
[0024] asym_position(index)=asym_position(index)*α+difference_to_average*(1-α)
[0025] Where asym_position(index) is the local deviation value at the current angle point, index is the current feedback signal number, difference_to_average is the difference between the current position deviation value and the average deviation value, and α is the filter coefficient.
[0026] Based on the discrete filtering method for BLDC motor position redundancy processing described above, the formula for calculating the filtered position deviation value is as follows:
[0027] filtered_phase_diff=phase_diff-asym_position(index)
[0028] Where filtered_phase_diff is the filtered position deviation value, phase_diff is the current position deviation value, and asym_position(index) is the local deviation value at the current angle point.
[0029] According to the discrete filtering method for BLDC motor position redundancy processing described above, after step S5, the method further includes:
[0030] Step S6: When the motor rotates forward, the current feedback signal number is incremented by 1. If the incremented feedback signal number is greater than or equal to 7, the incremented feedback signal number is set to 1.
[0031] Step S7: When the motor reverses, the current feedback signal number is reduced by 1. If the reduced feedback signal number is less than or equal to 0, the reduced feedback signal number is set to 6.
[0032] Furthermore, after step S7, the following steps are also included:
[0033] Step S8: Determine the redundancy of the position sensor based on the filtered position deviation value.
[0034] Secondly, the present invention provides a discrete filter for BLDC motor position redundancy processing, comprising:
[0035] The input module is used to read the angle value of the auxiliary position sensor once when the main position sensor provides a feedback signal, and to calculate and input the current position deviation value of the main position sensor and the auxiliary position sensor based on the current feedback signal number and the read angle value of the auxiliary position sensor.
[0036] The first calculation module is used to calculate the average deviation value of the last 6 position deviation values;
[0037] The second calculation module is used to calculate the difference between the current position deviation value and the average deviation value;
[0038] The third calculation module is used to calculate the local deviation value at the current angle point based on the average deviation value, the difference value, and the filter coefficients.
[0039] The output module is used to calculate and output the filtered position deviation value based on the current position deviation value and the local deviation value.
[0040] Compared with the prior art, the beneficial effects of the present invention are as follows:
[0041] This invention can effectively obtain the position deviation of two position sensors (either position sensors or position estimation algorithms are applicable) of a BLDC motor, thereby filtering out local position deviations of the position sensors. This can effectively eliminate the problem of the deviation range expansion caused by the relative deviation between the two sensors, reduce misjudgments caused by mutual verification of position information during mass production, and obtain stable reference data under mass production. At the same time, the relative deviation information between the two position sensors can be extracted for analysis and judgment of the relative deviation information between the two position sensors, which can be used to analyze and judge the status of the two position sensors. Attached Figure Description
[0042] Figure 1 This is a flowchart of the method according to the first embodiment of the present invention;
[0043] Figure 2 The waveform diagram of the current position deviation value is the periodic input of the first embodiment of the present invention. The horizontal axis is the number of sampling points, with 6 sampling points constituting one electrical cycle. The vertical axis is the angle value, with the unit being degrees.
[0044] Figure 3 This is a waveform diagram of the position deviation value after periodic output filtering in the first embodiment of the present invention. The horizontal axis represents the number of sampling points, with 6 sampling points constituting one electrical cycle. The vertical axis represents the angle value, with the unit being degrees.
[0045] Figure 4 This is a waveform diagram of the deviation values of each angle point of the position sensor extracted by the second array asym_position[6] in the first embodiment of the present invention. The horizontal axis is the number of sampling points, and each 6 points is one electrical cycle. The vertical axis is the angle value, and the unit is degrees.
[0046] Figure 5 This is a structural framework diagram of the second embodiment of the present invention. Detailed Implementation
[0047] To make the technical problems, technical solutions, and beneficial effects of the present invention clearer, the present invention will be further described in detail below with reference to the accompanying drawings and embodiments.
[0048] It should be noted that the terms "comprising" and "having," and any variations thereof, in the specification and claims of this invention are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device that includes a series of steps or units is not limited to the steps or units listed, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or devices.
[0049] Example 1
[0050] Please see Figure 1 This invention provides a discrete filtering method for position redundancy processing of BLDC motors, comprising the following steps:
[0051] Step S1: When the main position sensor sends a feedback signal, read the angle value of the auxiliary position sensor once, and calculate and input the current position deviation value of the main position sensor and the auxiliary position sensor based on the current feedback signal number and the read angle value of the auxiliary position sensor.
[0052] Specifically, the main position sensor of the BLDC motor uses a switched Hall sensor, which has a feedback signal every 60 electrical degrees. Therefore, there are 6 feedback values for one revolution of the motor rotor. The auxiliary position sensor of the BLDC motor needs to provide continuous position angle. This can be achieved by using a switched Hall sensor and interpolating with a phase-locked loop (PLL), or by using a position estimation method, or even by directly using a continuous position sensor.
[0053] In the above steps, the current position deviation value of the main position sensor and the auxiliary position sensor is defined as phase_diff. The position deviation value phase_diff reflects the deviation of the main position sensor and the auxiliary position sensor in the actual application process such as processing, installation, calibration and measurement. It also includes the erroneous position information when there is a position fault. It is the input of the discrete filter. The current feedback signal number of the main position sensor is defined as index. The index starts from 1 and cycles between 1 and 6 as the motor rotor rotates. The angle value of the auxiliary position sensor is defined as theta_check. A first array of 6 elements last_phase_diffs[6] is defined to store the last 6 position deviation values phase_diff. After calculating the current position deviation value phase_diff, the current position deviation value phase_diff is written into the first array last_phase_diffs[index] for storage.
[0054] The mathematical calculation for step S1 is described as follows:
[0055] phase_diff=index*60-theta_check
[0056] last_phase_diffs(index)=phase_diff
[0057] Step S2: Calculate the average deviation of the last 6 position deviation values.
[0058] Specifically, a variable `average` is defined to store the average deviation value between the primary and auxiliary position sensors. The average deviation value `average` corresponds to the average position deviation value collected within a 360-degree cycle. In the absence of position faults, this data reflects the average relative deviation information between the primary and auxiliary position sensors.
[0059] The mathematical calculation for step S2 is described as follows:
[0060]
[0061] In the above steps, when the motor is rotating forward, if the current feedback signal number is equal to 6, the average deviation value is updated. The mathematical calculation is described as follows:
[0062] if (index == 6)
[0063]
[0064] When the motor reverses, if the current feedback signal number is equal to 1, the average deviation value is updated. The mathematical calculation is described as follows:
[0065] if (index == 1)
[0066]
[0067] Step S3: Calculate the difference between the current position deviation value and the average deviation value.
[0068] Specifically, define a variable difference_to_average as the difference between the current position deviation value phase_diff and the average deviation value average.
[0069] The mathematical calculation for step S3 is described as follows:
[0070] difference_to_average=phase_diff–average
[0071] Step S4: Calculate the local deviation value at the current angle point based on the average deviation value, the difference value, and the filter coefficient.
[0072] Specifically, a second array of 6 elements, asym_position[6], is defined to store the local deviation value at each angle point. After calculating the local deviation value at each angle point, the local deviation value at that angle point is stored in the second array asym_position[6]. The local deviation value is the deviation that occurs in the processing, installation, calibration, measurement, etc. of the main position sensor and the auxiliary position sensor in actual application, extracted from the position deviation value. This data extracts the relative deviation information between the main position sensor and the auxiliary position sensor, which can be used to analyze and judge the initial state of the position sensor.
[0073] The mathematical calculation for step S4 is described as follows:
[0074] asym_position(index)=asym_position(index)*α+difference_to_average*(1-α)
[0075] Here, α represents the filter, and α is between 0 and 1.
[0076] Of course, in other embodiments, the mathematical calculation of step S4 can also be described as follows:
[0077] asym_position(index)=asym_position(index)*α / K+difference_to_average*(K-α) / K
[0078] Where K is greater than α, and α is between 0 and K, the two mathematical calculations described above are equivalent.
[0079] Step S5: Calculate and output the filtered position deviation value based on the current position deviation value and the local deviation value.
[0080] Specifically, a variable `filtered_phase_diff` is defined as the filtered value of the current position deviation value `phase_diff`, which is also the output of the filter. The filtered deviation value `filtered_phase_diff` is the deviation after removing local deviations from the position deviation, reflecting the erroneous position information during position faults. If there is no position fault, this deviation value is stable and near 0, thus effectively reducing normal installation deviations between the main position sensor and the auxiliary position sensor, obtaining stable reference data for mass production, and using it to analyze and improve production quality.
[0081] The mathematical calculation for step S5 is described as follows:
[0082] filtered_phase_diff=phase_diff-asym_position(index)
[0083] Step S6: When the motor rotates forward, the current feedback signal number is incremented by 1, waiting for the next feedback signal; if the incremented feedback signal number is greater than or equal to 7, then the incremented feedback signal number is set to 1. The mathematical calculation is described as follows:
[0084] index = index + 1
[0085] if (index >= 7)
[0086] index = 1
[0087] Step S7: When the motor reverses, the current feedback signal number is decreased by 1, waiting for the next feedback signal; if the decreased feedback signal number is less than or equal to 0, then the decreased feedback signal number is set to 6. The mathematical calculation is described as follows:
[0088] index = index - 1;
[0089] if (index <= 0) index = 6
[0090] The discrete filtering method for BLDC motor position redundancy processing described above can effectively obtain the position deviation of BLDC motor position sensors (applicable to both position sensors and position estimation algorithms). By filtering out the local position deviation of the position sensors, the normal deviation between position sensors can be effectively reduced, and stable reference data can be obtained under mass production.
[0091] In a preferred embodiment, the discrete filtering method for BLDC motor position redundancy processing described above further includes:
[0092] Step S8: Determine the redundancy of the position sensor based on the filtered position deviation value.
[0093] Specifically, the filtered position deviation value (filtered_phase_diff) is used to analyze and determine the status of the position sensor.
[0094] It is important to understand that the order of steps in the discrete filtering method for handling BLDC motor position redundancy described above can be slightly adjusted within the limits allowed by the algorithm, as long as it does not affect the overall computational framework. For example, step S5 can be placed before step S1, or steps S6 and S7 can be placed after step S4, and so on.
[0095] The simulation verification of the discrete filtering method for the above-mentioned BLDC motor position redundancy processing is as follows:
[0096] Assuming a BLDC motor is equipped with a main position sensor and an auxiliary position sensor, and the angular deviation between the main and auxiliary position sensors at each angle point is very small, the filtering effect after using the discrete filtering method for BLDC motor position redundancy processing described above is shown in the table below:
[0097]
[0098] Because the sensor deviation is periodic, the position deviation value phase_diff is periodically input as the motor rotates one revolution, such as... Figure 2 As shown in the table above, the deviations of the input main position sensor and the auxiliary position sensor are both within ±5 degrees. However, due to the randomness of the deviation distribution, the deviation range of the main position sensor and the auxiliary position sensor expands to -7 to 10 degrees.
[0099] After filtering using the discrete filtering method described above for BLDC motor position redundancy processing, with α = 0.875, the filtered data after the simulated motor runs for 50 revolutions is as follows: Figure 3 As shown. From Figure 3As can be seen, as the motor rotates, the filtered data quickly converges to 1 degree, indicating that the average deviation between the two position sensors is very small. Furthermore, the discrete filtering method used in the BLDC motor position redundancy processing described above can quickly remove periodic deviations. This ensures high consistency in deviation results even with large-scale installations, eliminating random fluctuations caused by the position sensor's own deviations and the problem of widened deviation ranges caused by relative deviations between the two position sensors. Because the filtered deviation data has very little fluctuation, a significant change in the data would occur if a position sensor malfunctions. Therefore, a relatively small threshold parameter can be set to identify sensor failures.
[0100] from Figure 4 It can be seen that the second array asym_position[6] extracts the deviation information of each angle point of the position sensor.
[0101]
[0102] The table above is a comparison table of the accuracy of the deviation information of each angle point of the position sensor extracted by the second array asym_position[6] after the motor runs 50 revolutions. As can be seen from the table above, the deviation information of each angle point of the position sensor extracted by the second array asym_position[6] is basically close to the actual deviation of the design. Therefore, the deviation information of each angle point of the position sensor extracted by asym_position[6] is accurate and effective, and can be used to analyze the relative deviation of the two sensors.
[0103] Example 2
[0104] Please see Figure 5 This invention provides a discrete filter for BLDC motor position redundancy processing, including an input module 1, a first calculation module 2, a second calculation module 3, a third calculation module 4, and an output module 5.
[0105] Input module 1 is used to read the angle value of the auxiliary position sensor once when the main position sensor provides a feedback signal, and to calculate and input the current position deviation value between the main position sensor and the auxiliary position sensor based on the current feedback signal number and the read angle value of the auxiliary position sensor.
[0106] The first calculation module 2 is used to calculate the average deviation value of the last 6 position deviation values.
[0107] The second calculation module 3 is used to calculate the difference between the current position deviation value and the average deviation value.
[0108] The third calculation module 4 is used to calculate the local deviation value at the current angle point based on the average deviation value, the difference value, and the filter coefficient.
[0109] Output module 5 is used to calculate and output the filtered position deviation value based on the current position deviation value and the local deviation value.
[0110] The discrete filter for BLDC motor position redundancy processing provided in this embodiment of the invention can execute the above-described method embodiment, and its implementation principle and technical effect are similar, so they will not be described again here.
[0111] In a preferred embodiment, the discrete filter for BLDC motor position redundancy processing described above further includes a judgment module 6. The judgment module 6 is used to determine the redundancy of the position sensor based on the filtered position deviation value.
[0112] It should be understood that those skilled in the art can make improvements or modifications based on the above description, and all such improvements and modifications should fall within the protection scope of the appended claims.
[0113] The present invention has been described above with reference to the accompanying drawings. Obviously, the implementation of the present invention is not limited to the above-described manner. Any improvements made using the inventive concept and technical solution of the present invention, or the direct application of the inventive concept and technical solution of the present invention to other situations without modification, are all within the protection scope of the present invention.
Claims
1. A discrete filtering method for position redundancy processing of BLDC motors, characterized in that, include: Step S1: When the main position sensor sends a feedback signal, read the angle value of the auxiliary position sensor once, and calculate and input the current position deviation value of the main position sensor and the auxiliary position sensor based on the current feedback signal number and the read angle value of the auxiliary position sensor. Step S2: Calculate the average deviation value of the last 6 position deviation values; Step S3: Calculate the difference between the current position deviation value and the average deviation value; Step S4: Calculate the local deviation value at the current angle point based on the average deviation value, the difference value, and the filter coefficients. Step S5: Calculate and output the filtered position deviation value based on the current position deviation value and the local deviation value; The formula for calculating the local deviation value is as follows: ; Where asym_position(index) is the local deviation value at the current angle point, index is the current feedback signal number, difference_to_average is the difference between the current position deviation value and the average deviation value, and α is the filter coefficient.
2. The discrete filtering method for BLDC motor position redundancy processing according to claim 1, characterized in that, The formula for calculating the position deviation value is: ; Where phase_diff is the current position deviation value, index is the current feedback signal number, and theta_check is the angle value read from the auxiliary position sensor.
3. The discrete filtering method for BLDC motor position redundancy processing according to claim 1, characterized in that, Step S1 also includes: Define a first array of 6 elements, and store the calculated current position deviation value in the first array. The first array is used to store the last 6 position deviation values.
4. The discrete filtering method for BLDC motor position redundancy processing according to claim 1, characterized in that, Step S2 also includes: When the motor is rotating forward, if the current feedback signal number is equal to 6, then the average deviation value is updated. When the motor reverses, if the current feedback signal number is equal to 1, then the average deviation value is updated.
5. The discrete filtering method for BLDC motor position redundancy processing according to claim 1, characterized in that, Step S4 includes: Define a second array of 6 elements to store the local deviation value at each angle point.
6. The discrete filtering method for BLDC motor position redundancy processing according to claim 1, characterized in that, The formula for calculating the filtered position deviation value is as follows: filtered_phase_diff=phase_diff-asym_position(index) Where filtered_phase_diff is the filtered position deviation value, phase_diff is the current position deviation value, and asym_position(index) is the local deviation value at the current angle point.
7. The discrete filtering method for BLDC motor position redundancy processing according to claim 1, characterized in that, After step S5, the following also includes: Step S6: When the motor rotates forward, the current feedback signal number is incremented by 1. If the incremented feedback signal number is greater than or equal to 7, the incremented feedback signal number is set to 1. Step S7: When the motor reverses, the current feedback signal number is reduced by 1. If the reduced feedback signal number is less than or equal to 0, the reduced feedback signal number is set to 6.
8. The discrete filtering method for BLDC motor position redundancy processing according to claim 7, characterized in that, After step S7, the following also includes: Step S8: Determine the redundancy of the position sensor based on the filtered position deviation value.
9. A discrete filter for position redundancy processing of BLDC motors, characterized in that, include: The input module is used to read the angle value of the auxiliary position sensor once when the main position sensor provides a feedback signal, and to calculate and input the current position deviation value of the main position sensor and the auxiliary position sensor based on the current feedback signal number and the read angle value of the auxiliary position sensor. The first calculation module is used to calculate the average deviation value of the last 6 position deviation values; The second calculation module is used to calculate the difference between the current position deviation value and the average deviation value; The third calculation module is used to calculate the local deviation value at the current angle point based on the average deviation value, the difference value, and the filter coefficients. The output module is used to calculate and output the filtered position deviation value based on the current position deviation value and the local deviation value; The formula for calculating the local deviation value is as follows: ; Where asym_position(index) is the local deviation value at the current angle point, index is the current feedback signal number, difference_to_average is the difference between the current position deviation value and the average deviation value, and α is the filter coefficient.
Citation Information
Patent Citations
Arc sensing seam tracking control method and device based on harmonic analysis
CN106363279A
A decoding method and system of a sine and cosine magnetic encoder
CN109714059A