Dead-time compensation method and device for current loop, motor control system and storage medium

By employing position domain repetitive control based on rotor electrical angle in the dq axis current loop of a permanent magnet synchronous motor, constructing a rotor electrical angle array, and utilizing an insert repetitive controller, the problem of unsatisfactory dead zone compensation effect in existing systems is solved, achieving better vibration and noise suppression effects.

CN114844424BActive Publication Date: 2026-02-17GREE ELECTRIC APPLIANCE INC OF ZHUHAI
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210540076.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-18
Publication Date
2026-02-17
Estimated Expiration
2042-05-18

AI Technical Summary

Technical Problem

In the control of permanent magnet synchronous motors, the existing dead zone compensation method performs phase current judgment and phase voltage compensation in a three-phase stationary coordinate system, which is not ideal. This results in periodic pulsation of the actual current of the dq axis, causing stator vibration and noise.

Method used

A position domain repetitive control based on rotor electrical angles is added to the dq-axis current loop. By constructing a rotor electrical angle array, current loop dead zone compensation is performed. The current error is calculated and updated using an insert repetitive controller to achieve position domain repetitive control of the current loop.

Benefits of technology

It effectively suppresses the periodic pulsation of the dq axis current, reduces motor stator vibration and noise, and improves current control accuracy and compensation effect.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114844424B_ABST
    Figure CN114844424B_ABST
Patent Text Reader

Abstract

The application discloses a dead zone compensation method and device of a current loop, a motor control system and a storage medium, and the method comprises the following steps: based on a rotor electrical angle of a current axis, an array of the current axis is constructed, the current axis is a d-axis or a q-axis; the array of the current axis contains N elements, the rotor electrical angle of the current axis is divided into N equal parts, and each element is used for storing accumulated current error of a corresponding rotor electrical angle history period of the current axis, and N is a positive integer; based on the array of the current axis, a position domain repetitive control based on the rotor electrical angle of the current axis is adopted to perform dead zone compensation on a current loop of the current axis. According to the scheme, the position domain repetitive control based on the rotor electrical angle is added to the d-q axis current loop, so that the dead zone compensation can be realized, and the compensation effect is relatively ideal.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of motor technology, specifically to the field of permanent magnet synchronous motor control technology, and specifically relates to a dead zone compensation method, device, motor control system and storage medium for current loop, and particularly to a dead zone compensation method, device, motor control system and storage medium based on repetitive control of current loop. Background Technology

[0002] In motor control (such as permanent magnet synchronous motors), dead time needs to be added to the upper and lower bridge drive signal control to prevent shoot-through of the inverter. Dead time causes a deviation in amplitude and phase between the actual voltage vector and the given voltage vector. In the rotating coordinate system dq axis, this manifests as periodic pulsation of the actual current on the dq axis. The pulsation frequency of the actual current on the dq axis is 6 times or an integer multiple of the phase current frequency. The pulsating current of the actual current on the dq axis will cause the motor stator to vibrate at the same frequency, thus causing noise, namely "commutation noise". To obtain better vibration and noise suppression, dead time compensation needs to be added.

[0003] In the relevant schemes, the dead zone compensation scheme judges the phase current in a three-phase stationary coordinate system and then compensates for the phase voltage. The compensation voltage is fixed, which cannot achieve a good compensation effect.

[0004] The above content is only used to help understand the technical solution of the present invention and does not represent an admission that the above content is prior art. Summary of the Invention

[0005] The purpose of this invention is to provide a method, device, motor control system, and storage medium for dead zone compensation of a current loop, in order to solve the problem that the dead zone compensation method used in motor (such as permanent magnet synchronous motor) control, which judges the phase current in a three-phase stationary coordinate system and then compensates the phase voltage, has an unsatisfactory compensation effect. The invention achieves the effect of realizing dead zone compensation with a more ideal compensation effect by adding position domain repetitive control based on rotor electrical angle to the dq axis current loop.

[0006] This invention provides a dead-zone compensation method for a current loop, which is applied to the current loop control of a motor control system. The current loop of the motor control system includes a d-axis current loop and a q-axis current loop. The dead-zone compensation method includes: constructing an array of current axes based on the rotor electrical angle of the current axis, wherein the current axis is either the d-axis or the q-axis; the array of current axes contains N elements, wherein the rotor electrical angle of the current axis is divided into N equal parts, and each element is used to store the cumulative current error of the corresponding rotor electrical angle of the current axis for a historical period, where N is a positive integer; and, based on the array of current axes, performing dead-zone compensation on the current loop of the current axis using repetitive control of the current loop position domain based on the rotor electrical angle of the current axis.

[0007] In some implementations, under the current axis, based on the array of current axes, dead-zone compensation is performed on the current loop of the current axis using repetitive current loop position domain control based on the rotor electrical angle of the current axis. This includes: determining the current rotor electrical angle of the current axis; determining the current current error of the current axis; determining the element of the current rotor electrical angle of the current axis in the array of current axes, denoted as the current element; adding the current element to the current current error of the current axis to obtain a sum; and in the current loop of the current axis, passing the sum through PI control to obtain the current loop control quantity of the current axis.

[0008] In some implementations, under the current axis, based on the array of the current axes, dead-zone compensation is performed on the current loop of the current axis using repetitive control of the current loop position domain based on the rotor electrical angle of the current axis. The method further includes updating the current element in the array of the current axes based on the current current error of the current axis within the current period of the rotor electrical angle of the current axis.

[0009] In some implementations, during the current period of the rotor electrical angle of the current axis, updating the current element in the array of the current axis based on the current current error of the current axis includes: calculating a new element based on the current current error of the current axis using the transfer function of the insert repetitive controller, and updating the current element in the array of the current axis with the new element.

[0010] In conjunction with the above method, another aspect of the present invention provides a dead-zone compensation device for a current loop, which is applied to the current loop control of a motor control system. The current loop of the motor control system includes a d-axis current loop and a q-axis current loop. The dead-zone compensation device for the current loop includes: a construction unit configured to construct an array of current axes based on the rotor electrical angle of the current axis, wherein the current axis is either a d-axis or a q-axis; the array of current axes contains N elements, wherein the rotor electrical angle of the current axis is divided into N equal parts, and each element is used to store the cumulative current error of the corresponding rotor electrical angle historical period of the current axis, where N is a positive integer; and a compensation unit configured to perform dead-zone compensation on the current loop of the current axis based on the array of current axes and using repetitive control of the current loop position domain based on the rotor electrical angle of the current axis.

[0011] In some embodiments, the compensation unit, under the current axis, performs dead-zone compensation on the current loop of the current axis by employing current loop position domain repetitive control based on the rotor electrical angle of the current axis, based on the array of the current axes. This includes: determining the current rotor electrical angle of the current axis; determining the current current error of the current axis; determining the element of the current rotor electrical angle of the current axis in the array of the current axes, denoted as the current element; adding the current element to the current current error of the current axis to obtain a summation result; and in the current loop of the current axis, passing the summation result through PI control to obtain the current loop control quantity of the current axis.

[0012] In some embodiments, the compensation unit, under the current axis, performs dead-zone compensation for the current loop of the current axis by employing current loop position domain repetitive control based on the rotor electrical angle of the current axis, based on the array of the current axes. It further includes updating the current element in the array of the current axes based on the current current error of the current axis within the current period of the rotor electrical angle of the current axis.

[0013] In some implementations, the compensation unit updates the current element in the array of the current shaft based on the current current error of the current shaft within the current cycle of the rotor electrical angle of the current shaft, including: calculating a new element using the transfer function of the insert repetitive controller based on the current current error of the current shaft, and updating the current element in the array of the current shaft with the new element.

[0014] In conjunction with the above-mentioned device, the present invention further provides a motor control system, including: the dead zone compensation device for the current loop described above.

[0015] In conjunction with the above method, the present invention further provides a storage medium comprising a stored program, wherein, when the program is executed, the device in which the storage medium is located executes the dead-zone compensation method for the current loop described above.

[0016] Therefore, the solution of the present invention suppresses the periodic pulsation of the dq-axis current by adding position domain repetitive control based on rotor electrical angle to the dq-axis current loop. Thus, dead zone compensation can be achieved and the compensation effect is relatively ideal by adding position domain repetitive control based on rotor electrical angle to the dq-axis current loop.

[0017] Other features and advantages of the invention will be set forth in the description which follows, and will be apparent in part from the description, or may be learned by practicing the invention.

[0018] The technical solution of the present invention will be further described in detail below with reference to the accompanying drawings and embodiments. Attached Figure Description

[0019] Figure 1 This is a schematic flowchart of an embodiment of the dead zone compensation method for the current loop of the present invention;

[0020] Figure 2 This is a schematic flowchart of an embodiment of the method of the present invention for dead-zone compensation of the current loop of the current axis;

[0021] Figure 3 This is a schematic diagram of an embodiment of the dead zone compensation device for the current loop of the present invention;

[0022] Figure 4 This is a schematic diagram showing the correspondence between adjacent elements when the rotor electrical angle is divided into 72 equal parts on the d-axis.

[0023] Figure 5 This is a flowchart illustrating an embodiment of a dead-zone compensation method based on repetitive current loop control.

[0024] Figure 6 A schematic diagram of an embodiment of a d-axis current loop repetitive controller;

[0025] Figure 7 This is a schematic diagram of the dq-axis current error curve without repetition.

[0026] Figure 8 This is a schematic diagram of the dq-axis current error curve after adding repetitive control.

[0027] Figure 9 A schematic diagram of the d-axis repetitive control output curve and the d-axis current error curve;

[0028] Figure 10This is a schematic diagram of the q-axis repetitive control output curve and the q-axis current error curve.

[0029] Referring to the accompanying drawings, the reference numerals in the embodiments of the present invention are as follows:

[0030] 102 - Building element; 104 - Compensation element. Detailed Implementation

[0031] To make the objectives, technical solutions, and advantages of this invention clearer, the technical solutions of this invention will be clearly and completely described below in conjunction with specific embodiments and corresponding drawings. Obviously, the described embodiments are only a part of the embodiments of this invention, and not all of them. Based on the embodiments of this invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this invention.

[0032] Considering that in the dead-time compensation schemes of the relevant approaches, the voltage compensated in the three phases is Td / Ts*Udc, which is a fixed voltage and cannot achieve a good compensation effect. Here, Td is the dead time, Ts is the current sampling period, and Udc is the bus voltage. Furthermore, the dead-time compensation schemes of the relevant approaches require detection of phase current polarity or sector, which is easily affected by detection interference and also cannot achieve a good compensation effect.

[0033] Repetitive control is used for high-precision control of repetitive trajectories in servo systems. The reason why repetitive control can improve the tracking accuracy of the system is based on the internal model principle. In other words, repetitive control is based on the internal model principle and can effectively suppress periodic disturbances.

[0034] While some solutions incorporate a time-domain repetitive controller into the dq-axis current loop, determining the controller's delay time based on different rotor electrical angular velocities, the implementation process is quite complex. Therefore, this invention proposes a dead-zone compensation method based on repetitive current loop control, specifically a dead-zone compensation method based on position-domain current loop repetitive control of the rotor's electrical angle in the dq-axis rotating coordinate system.

[0035] According to embodiments of the present invention, a method for compensating for dead time in a current loop is provided, such as... Figure 1 The diagram shows a flowchart of an embodiment of the method of the present invention. The dead-time compensation method for the current loop is applied to the current loop control of a motor control system. The current loop of the motor control system includes a d-axis current loop and a q-axis current loop. The dead-time compensation method for the current loop includes steps S110 and S120.

[0036] In step S110, an array of current axes is constructed based on the rotor electrical angle of the current axis, where the current axis is either the d-axis or the q-axis. The array of current axes contains N elements, where the rotor electrical angle of the current axis is divided into N equal parts. Each element stores the cumulative current error for the corresponding historical period of the rotor electrical angle of the current axis, and N is a positive integer. The value of N is related to the control precision of the current loop of the current axis; the more precise the control precision, the smaller N becomes.

[0037] The present invention establishes an array containing N elements on each of the d and q axes, such as the d-axis array Rd[N] and the q-axis array Rq[N], where N is a positive integer. The d-axis array Rd[N] and the q-axis array Rq[N] correspond to the rotor electrical angles. The elements in the d-axis array Rd[N] and the q-axis array Rq[N] are used to store the cumulative current error for the corresponding historical period of the rotor electrical angle.

[0038] Figure 4 This diagram illustrates the correspondence between adjacent elements when the rotor electrical angle is divided into 72 equal parts along the d-axis. The rotor electrical angle is estimated by the controller using a sensorless approach. Taking the d-axis as an example, and setting N=72, the electrical angle is divided into 72 equal parts, with an angular interval of 5° between adjacent elements. The correspondence is as follows: Figure 4 As shown.

[0039] In step S120, under the current axis, based on the array of the current axes, the current loop position domain repetitive control based on the rotor electrical angle of the current axis is used to perform dead zone compensation on the current loop of the current axis.

[0040] This invention proposes a dead-zone compensation method based on repetitive current loop control in the dq-axis rotating coordinate system. By incorporating repetitive position domain control based on rotor electrical angles into the dq-axis current loop, periodic pulsations in the dq-axis current are suppressed, thereby achieving dead-zone compensation. In this invention, dead-zone compensation using repetitive position domain control based on rotor electrical angles in the dq-axis avoids phase current polarity detection and achieves better vibration and noise suppression than related phase current and phase voltage dead-zone compensation methods. The repetitive position domain controller based on electrical angles is easy to implement and has strong universality.

[0041] Due to the existence of dead time, the actual current of the dq axis exhibits periodic pulsations that are 6 times or an integer multiple of the fundamental frequency of the phase current. Since the motor needs to operate at different speeds, the fundamental frequency of the phase current is not constant, making time-domain repetitive control quite complex. However, the solution of this invention, using position-domain repetitive control based on the rotor's electrical angle, can be implemented more conveniently because the disturbance frequency is consistently 6 times or an integer multiple of the rotor's electrical angle frequency at different speeds.

[0042] In some embodiments, the specific process of performing dead-zone compensation on the current loop of the current axis in step S120, based on the array of the current axes and using the current loop position domain repetitive control based on the rotor electrical angle of the current axis, is described in the following exemplary description.

[0043] The following is combined with Figure 2 The schematic diagram shown is a flowchart of an embodiment of the method of the present invention for dead-zone compensation of the current loop of the current axis. It further illustrates the specific process of dead-zone compensation of the current loop of the current axis in step S120, including steps S210 to S240.

[0044] Step S210: Determine the current rotor electrical angle of the current shaft. For example, the current rotor electrical angle of the current shaft can be estimated by the controller using a sensorless method.

[0045] Step S220: Determine the current current error of the current axis. For example: Based on the given current and the actual current of the current axis, determine the absolute value of the current difference between the given current and the actual current of the current axis as the current current error of the current axis.

[0046] Step S230: Determine the element of the current rotor electrical angle of the current shaft in the array of the current shafts, and denot it as the current element. Then add the current element to the current current error of the current shaft to obtain the sum.

[0047] Step S240: In the current loop of the current axis, the summation result is passed through PI control to obtain the current loop control quantity of the current axis. For example, when the current axis is the d-axis, the obtained current loop control quantity Ud is the d-axis.

[0048] Figure 5 This is a flowchart illustrating an embodiment of a dead-time compensation method based on repetitive current loop control. (Combined with...) Figure 4 The example shown is as follows: Figure 5 As shown, taking the d-axis as an example, the dead-time compensation method based on current loop repetitive control includes:

[0049] Step 1: The rotor electrical angle is estimated by the controller using a sensorless solution, resulting in the current d-axis rotor electrical angle. This can be achieved as follows: Figure 4 The d-axis rotor electrical angle is shown in the d-axis array. Based on the current d-axis rotor electrical angle, the d-axis array pointer n is calculated, and then the d-axis array Rd[n] corresponding to the d-axis array pointer n is obtained.

[0050] For example: combining Figure 4In the example shown, if the current electrical angle of the d-axis rotor is 10°, and Figure 4 The angle interval in the d-axis array shown is 5°. Therefore, the d-axis array pointer n corresponding to the current d-axis rotor electrical angle of 10° is = the current d-axis rotor electrical angle of 10° / the angle interval 5° in the range of d-axis rotor electrical angles = 2. Then, the element of pointer n=2 in the d-axis array is read to obtain the d-axis array Rd[2] corresponding to the d-axis array pointer 2.

[0051] Step 2: Calculate the d-axis current error ErrId.

[0052] For example, in the d-axis current loop, the d-axis current error ErrId is determined based on the difference between the given d-axis current and the actual d-axis current.

[0053] Step 4: Add the d-axis current error ErrId to the d-axis array Rd[n] corresponding to the d-axis array pointer n to obtain the sum.

[0054] Step 5: The summation result obtained in Step 4 is then processed by the PI controller to obtain the d-axis current loop control quantity Ud.

[0055] In some implementations, step S120, under the current axis, based on the array of the current axes, employs current loop position domain repetitive control based on the rotor electrical angle of the current axis to perform dead zone compensation on the current loop of the current axis, further includes: within the current period of the rotor electrical angle of the current axis, updating the current element in the array of the current axes based on the current current error of the current axis.

[0056] like Figure 5 As shown, taking the d-axis as an example, the dead-zone compensation method based on current loop repetitive control also includes: after step 5, step 6 needs to be executed.

[0057] Step 6: Update the d-axis array Rd[n] corresponding to the d-axis array pointer n, and ensure that the d-axis array Rd[n] corresponding to the d-axis array pointer n is updated only once in this cycle, and then return to step 1.

[0058] In some implementations, during the current period of the rotor electrical angle of the current axis, updating the current element in the array of the current axis based on the current current error of the current axis includes: calculating a new element based on the current current error of the current axis using the transfer function of the insert repetitive controller, and updating the current element in the array of the current axis with the new element.

[0059] Figure 6This is a schematic diagram of an embodiment of a d-axis current loop repetitive controller. The present invention employs an insert-type repetitive controller, which can achieve good results without changing the original PI control parameters. Taking the d-axis current loop as an example, the control block diagram of the d-axis current loop repetitive controller is as follows. Figure 6 As shown.

[0060] exist Figure 6 In the example shown, ErrId represents the d-axis current error. The d-axis current error ErrId is added to the d-axis array Rd[n] (0 ≤ n < N) corresponding to the pointer n of the d-axis array Rd[N], and then passed through a PI (Proportional-Integral) controller to obtain the d-axis current loop control quantity Ud. Gain1 is an input gain less than 1, used to attenuate noise in the error signal. Gain2 is a constant less than 1, used to improve the stability of the repetitive controller. -N For the delay element, the delay time in the time domain is one current fundamental period and is time-varying, while the delay angle in the position domain is fixed at 360 degrees. The discrete transfer function of the repetitive controller is:

[0061] (1).

[0062] like Figure 6 As shown, the d-axis current error ErrId is input to the first input terminal of the first adder. After passing through an insertion repeating controller, the d-axis current error ErrId is input to the second input terminal of the first adder. The output terminal of the first adder, after passing through a PI controller, outputs the d-axis current loop control quantity Ud.

[0063] In the insertion repetitive controller, the d-axis current error ErrId, after passing through the input gain module Gain1, is output to the first input terminal of the second adder. The output of the second adder, after passing through the delay element Z... -N The output then points to the d-axis array Rd[n] corresponding to the pointer n of the d-axis array Rd[N]. On the other hand, it is delayed by a delay factor Z of 2. -N The feedback is then sent to the second input of the second adder.

[0064] The purpose of updating the d-axis array Rd[n] corresponding to the d-axis array pointer n is to further reduce the d-axis current error and improve the control accuracy of the d-axis current loop. When updating the d-axis array Rd[n], the new d-axis array Rd[n] can be calculated using the discrete transfer function of the repetitive controller according to the above formula (1), and the original d-axis array Rd[n] can be updated using the new d-axis array Rd[n]. In the next control cycle, the new d-axis array Rd[n] can be used for control. For example: combined with Figure 4 and Figure 6In the example shown, if the pointer n=2 in the d-axis array, and a new d-axis array Rd[2] is calculated, then the new d-axis array Rd[2] is used to replace the original d-axis array Rd[2].

[0065] To ensure that the d-axis array Rd[n] corresponding to the pointer n of the d-axis array is updated only once in the current control cycle, this can be implemented by the controller according to the program settings. For example, within a control cycle (such as within 360°), an updated d-axis array Rd[n] can be marked as updated, and then will not be updated again within the current control cycle until the next control cycle is entered, at which point a new update of the d-axis array Rd[n] is allowed. The reason for updating the d-axis array Rd[n] only once within a control cycle is to ensure the stability of the control and avoid frequent updates of the d-axis array Rd[n] that could lead to control instability.

[0066] Figure 7 This is a schematic diagram of the dq-axis current error curve under non-repetitive control. Under non-repetitive control, the dq-axis current error versus the output curve of the repetitive controller is shown below. Figure 7 As shown.

[0067] Figure 8 This is a schematic diagram of the dq-axis current error curve after adding repetitive control. The curves showing the dq-axis current error versus the output curve of the repetitive controller after adding repetitive control are as follows. Figure 8 As shown. Comparison Figure 7 and Figure 8 As can be seen from the example shown, after adding repetitive control, the amplitude of the current periodic pulsation decreases, and the vibration and noise of the motor stator also decrease.

[0068] In the solution of this invention, the q-axis current loop repetitive controller is similar to the d-axis current loop repetitive controller, and will not be described in detail here.

[0069] In related dead-zone compensation schemes, if compensation is performed under three-phase conditions, the phase current polarity needs to be detected, which is easily affected by detection interference. If compensation is performed under two-phase stationary coordinates α-β, sector determination is required, which is also easily affected by detection interference. However, the scheme of this invention, under the dq axis, since all signals are DC, polarity determination is not required, making it easier to implement. Verification shows that using the scheme of this invention, the 6th harmonic of the dq axis current decreases from... Figure 7 , Figure 8 The comparison error curve diagram clearly shows this.

[0070] Figure 9 This is a schematic diagram of the d-axis repetitive control output curve and the d-axis current error curve. Figure 10 This is a schematic diagram of the q-axis repetitive control output curve and the q-axis current error curve. In other words... Figure 9 It can display the d-axis repetitive control output and the d-axis current error. Figure 10 It can display the q-axis repetitive control output and the q-axis current error. (Comparison) Figure 9 and Figure 10 The example shown illustrates that repetitive control output is essentially an accumulation of current errors at the same rotor electrical angle. Figure 9 and Figure 10 In the example shown, the repeated control of the dq axis output curve is actually a time-based representation of each element in the dq axis array.

[0071] In this invention, a repetitive position domain controller based on rotor electrical angle is specifically employed in the dq-axis current loop to suppress periodic pulsations in the dq-axis current, thereby achieving dead-zone compensation. While some solutions also employ repetitive control for dead-zone compensation along the dq-axis, these are time-domain repetitive controls, which are more complex to implement in time-varying periods (where the motor frequency changes). This invention, however, incorporates a position domain repetitive control based on rotor electrical angle into the dq-axis current loop, which is easier to implement.

[0072] By adopting the technical solution of this embodiment, the periodic pulsation of the dq axis current is suppressed by adding position domain repetitive control based on rotor electrical angle to the dq axis current loop. Thus, dead zone compensation can be achieved and the compensation effect is relatively ideal by adding position domain repetitive control based on rotor electrical angle to the dq axis current loop.

[0073] According to embodiments of the present invention, a dead-zone compensation device for a current loop corresponding to a dead-zone compensation method for a current loop is also provided. See also Figure 3 The diagram shows a structural schematic of an embodiment of the device of the present invention. The dead-zone compensation device for the current loop is applied to the current loop control of a motor control system. The current loop of the motor control system includes a d-axis current loop and a q-axis current loop. The dead-zone compensation device for the current loop includes a construction unit 102 and a compensation unit 104.

[0074] The construction unit 102 is configured to construct an array of current axes based on the rotor electrical angle of the current axis, where the current axis is either a d-axis or a q-axis. The array of current axes contains N elements, where the rotor electrical angle of the current axis is divided into N equal parts. Each element stores the cumulative current error of the corresponding rotor electrical angle historical period for the current axis, where N is a positive integer. The value of N is related to the control precision of the current loop of the current axis; the more precise the control precision, the smaller N. For the specific functions and processing of the construction unit 102, please refer to step S110.

[0075] The present invention establishes an array containing N elements on each of the d and q axes, such as the d-axis array Rd[N] and the q-axis array Rq[N], where N is a positive integer. The d-axis array Rd[N] and the q-axis array Rq[N] correspond to the rotor electrical angles. The elements in the d-axis array Rd[N] and the q-axis array Rq[N] are used to store the cumulative current error for the corresponding historical period of the rotor electrical angle.

[0076] Figure 4 This diagram illustrates the correspondence between adjacent elements when the rotor electrical angle is divided into 72 equal parts along the d-axis. The rotor electrical angle is estimated by the controller using a sensorless approach. Taking the d-axis as an example, and setting N=72, the electrical angle is divided into 72 equal parts, with an angular interval of 5° between adjacent elements. The correspondence is as follows: Figure 4 As shown.

[0077] The compensation unit 104 is configured to perform dead-zone compensation on the current loop of the current axis based on an array of current axes and using repetitive control of the current loop position domain based on the rotor electrical angle of the current axis. The specific functions and processing of the compensation unit 104 are described in step S120.

[0078] This invention proposes a dead-zone compensation device based on repetitive current loop control in the dq-axis rotating coordinate system. By incorporating repetitive position domain control based on rotor electrical angles into the dq-axis current loop, periodic pulsations in the dq-axis current are suppressed, thereby achieving dead-zone compensation. In this invention, dead-zone compensation using repetitive position domain control based on rotor electrical angles in the dq-axis avoids phase current polarity detection and achieves better vibration and noise suppression than related phase current and phase voltage dead-zone compensation devices. The repetitive position domain controller based on electrical angles is easy to implement and has strong universality.

[0079] Due to the existence of dead time, the actual current of the dq axis exhibits periodic pulsations that are 6 times or an integer multiple of the fundamental frequency of the phase current. Since the motor needs to operate at different speeds, the fundamental frequency of the phase current is not constant, making time-domain repetitive control quite complex. However, the solution of this invention, using position-domain repetitive control based on the rotor's electrical angle, can be implemented more conveniently because the disturbance frequency is consistently 6 times or an integer multiple of the rotor's electrical angle frequency at different speeds.

[0080] In some embodiments, the compensation unit 104, under the current axis, performs dead-zone compensation for the current loop of the current axis by employing current loop position domain repetitive control based on the rotor electrical angle of the current axis, based on an array of current axes, including:

[0081] The compensation unit 104 is further configured to determine the current rotor electrical angle of the current shaft. For example, the current rotor electrical angle of the current shaft is estimated by the controller using a sensorless scheme. The specific function and processing of the compensation unit 104 are further described in step S210.

[0082] The compensation unit 104 is further configured to determine the current current error of the current axis. For example, based on the given current and the actual current of the current axis, the absolute value of the current difference between the given current and the actual current of the current axis is determined as the current current error of the current axis. The specific function and processing of this compensation unit 104 are further described in step S220.

[0083] The compensation unit 104 is further configured to determine the element of the current rotor electrical angle of the current shaft in the array of the current shafts, denoted as the current element. The current element is then added to the current current error of the current shaft to obtain a sum. The specific function and processing of this compensation unit 104 are further described in step S230.

[0084] The compensation unit 104 is further configured to, within the current loop of the current axis, cause the summation result to be processed by PI control to obtain the current loop control quantity of the current axis. For example, when the current axis is the d-axis, the obtained current loop control quantity Ud is the d-axis. The specific function and processing of this compensation unit 104 are further described in step S240.

[0085] Figure 5 This is a schematic flowchart of an embodiment of a dead-time compensation device based on repetitive current loop control. (In conjunction with...) Figure 4 The example shown is as follows: Figure 5 As shown, taking the d-axis as an example, the dead-time compensation device based on current loop repetitive control includes:

[0086] Step 1: The rotor electrical angle is estimated by the controller using a sensorless solution, resulting in the current d-axis rotor electrical angle. This can be achieved as follows: Figure 4 The d-axis rotor electrical angle is shown in the d-axis array. Based on the current d-axis rotor electrical angle, the d-axis array pointer n is calculated, and then the d-axis array Rd[n] corresponding to the d-axis array pointer n is obtained.

[0087] For example: combining Figure 4 In the example shown, if the current electrical angle of the d-axis rotor is 10°, and Figure 4The angle interval in the d-axis array shown is 5°. Therefore, the d-axis array pointer n corresponding to the current d-axis rotor electrical angle of 10° is = the current d-axis rotor electrical angle of 10° / the angle interval 5° in the range of d-axis rotor electrical angles = 2. Then, the element of pointer n=2 in the d-axis array is read to obtain the d-axis array Rd[2] corresponding to the d-axis array pointer 2.

[0088] Step 2: Calculate the d-axis current error ErrId.

[0089] For example, in the d-axis current loop, the d-axis current error ErrId is determined based on the difference between the given d-axis current and the actual d-axis current.

[0090] Step 4: Add the d-axis current error ErrId to the d-axis array Rd[n] corresponding to the d-axis array pointer n to obtain the sum.

[0091] Step 5: The summation result obtained in Step 4 is then processed by the PI controller to obtain the d-axis current loop control quantity Ud.

[0092] In some embodiments, the compensation unit 104, under the current axis, performs dead-zone compensation for the current loop of the current axis by employing current loop position domain repetitive control based on the rotor electrical angle of the current axis, based on the array of the current axes. The compensation unit 104 is further configured to update the current element in the array of the current axes based on the current current error of the current axis within the current period of the rotor electrical angle of the current axis.

[0093] like Figure 5 As shown, taking the d-axis as an example, the dead zone compensation device based on current loop repetitive control also includes: after step 5, step 6 needs to be executed.

[0094] Step 6: Update the d-axis array Rd[n] corresponding to the d-axis array pointer n, and ensure that the d-axis array Rd[n] corresponding to the d-axis array pointer n is updated only once in this cycle, and then return to step 1.

[0095] In some embodiments, the compensation unit 104 updates the current element in the array of the current shaft based on the current current error of the current shaft within the current cycle of the rotor electrical angle of the current shaft. Specifically, the compensation unit 104 is further configured to calculate a new element based on the current current error of the current shaft using the transfer function of the insert repeating controller, and update the current element in the array of the current shaft with the new element.

[0096] Figure 6This is a schematic diagram of an embodiment of a d-axis current loop repetitive controller. The present invention employs an insert-type repetitive controller, which can achieve good results without changing the original PI control parameters. Taking the d-axis current loop as an example, the control block diagram of the d-axis current loop repetitive controller is as follows. Figure 6 As shown.

[0097] exist Figure 6 In the example shown, ErrId represents the d-axis current error. The d-axis current error ErrId is added to the d-axis array Rd[n] (0 ≤ n < N) corresponding to the pointer n of the d-axis array Rd[N], and then passed through a PI (Proportional-Integral) controller to obtain the d-axis current loop control quantity Ud. Gain1 is an input gain less than 1, used to attenuate noise in the error signal. Gain2 is a constant less than 1, used to improve the stability of the repetitive controller. -N For the delay element, the delay time in the time domain is one current fundamental period and is time-varying, while the delay angle in the position domain is fixed at 360 degrees. The discrete transfer function of the repetitive controller is:

[0098] (1).

[0099] like Figure 6 As shown, the d-axis current error ErrId is input to the first input terminal of the first adder. After passing through an insertion repeating controller, the d-axis current error ErrId is input to the second input terminal of the first adder. The output terminal of the first adder, after passing through a PI controller, outputs the d-axis current loop control quantity Ud.

[0100] In the insertion repetitive controller, the d-axis current error ErrId, after passing through the input gain module Gain1, is output to the first input terminal of the second adder. The output of the second adder, after passing through the delay element Z... -N The output then points to the d-axis array Rd[n] corresponding to the pointer n of the d-axis array Rd[N]. On the other hand, it is delayed by a delay factor Z of 2. -N The feedback is then sent to the second input of the second adder.

[0101] The purpose of updating the d-axis array Rd[n] corresponding to the d-axis array pointer n is to further reduce the d-axis current error and improve the control accuracy of the d-axis current loop. When updating the d-axis array Rd[n], the new d-axis array Rd[n] can be calculated using the discrete transfer function of the repetitive controller according to the above formula (1), and the original d-axis array Rd[n] can be updated using the new d-axis array Rd[n]. In the next control cycle, the new d-axis array Rd[n] can be used for control. For example: combined with Figure 4 and Figure 6In the example shown, if the pointer n=2 in the d-axis array, and a new d-axis array Rd[2] is calculated, then the new d-axis array Rd[2] is used to replace the original d-axis array Rd[2].

[0102] To ensure that the d-axis array Rd[n] corresponding to the pointer n of the d-axis array is updated only once in the current control cycle, this can be implemented by the controller according to the program settings. For example, within a control cycle (such as within 360°), an updated d-axis array Rd[n] can be marked as updated, and then will not be updated again within the current control cycle until the next control cycle is entered, at which point a new update of the d-axis array Rd[n] is allowed. The reason for updating the d-axis array Rd[n] only once within a control cycle is to ensure the stability of the control and avoid frequent updates of the d-axis array Rd[n] that could lead to control instability.

[0103] Figure 7 This is a schematic diagram of the dq-axis current error curve under non-repetitive control. Under non-repetitive control, the dq-axis current error versus the output curve of the repetitive controller is shown below. Figure 7 As shown.

[0104] Figure 8 This is a schematic diagram of the dq-axis current error curve after adding repetitive control. The curves showing the dq-axis current error versus the output curve of the repetitive controller after adding repetitive control are as follows. Figure 8 As shown. Comparison Figure 7 and Figure 8 As can be seen from the example shown, after adding repetitive control, the amplitude of the current periodic pulsation decreases, and the vibration and noise of the motor stator also decrease.

[0105] In the solution of this invention, the q-axis current loop repetitive controller is similar to the d-axis current loop repetitive controller, and will not be described in detail here.

[0106] In related dead-zone compensation schemes, if compensation is performed under three-phase conditions, the phase current polarity needs to be detected, which is easily affected by detection interference. If compensation is performed under two-phase stationary coordinates α-β, sector determination is required, which is also easily affected by detection interference. However, the scheme of this invention, under the dq axis, since all signals are DC, polarity determination is not required, making it easier to implement. Verification shows that using the scheme of this invention, the 6th harmonic of the dq axis current decreases from... Figure 7 , Figure 8 The comparison error curve diagram clearly shows this.

[0107] Figure 9 This is a schematic diagram of the d-axis repetitive control output curve and the d-axis current error curve. Figure 10 This is a schematic diagram of the q-axis repetitive control output curve and the q-axis current error curve. In other words... Figure 9 It can display the d-axis repetitive control output and the d-axis current error. Figure 10 It can display the q-axis repetitive control output and the q-axis current error. (Comparison) Figure 9 and Figure 10 The example shown illustrates that repetitive control output is essentially an accumulation of current errors at the same rotor electrical angle. Figure 9 and Figure 10 In the example shown, the repeated control of the dq axis output curve is actually a time-based representation of each element in the dq axis array.

[0108] In this invention, a repetitive position domain controller based on rotor electrical angle is specifically employed in the dq-axis current loop to suppress periodic pulsations in the dq-axis current, thereby achieving dead-zone compensation. While some solutions also employ repetitive control for dead-zone compensation along the dq-axis, these are time-domain repetitive controls, which are more complex to implement in time-varying periods (where the motor frequency changes). This invention, however, incorporates a position domain repetitive control based on rotor electrical angle into the dq-axis current loop, which is easier to implement.

[0109] Since the processing and functions implemented by the device in this embodiment are basically the same as the embodiments, principles and examples of the aforementioned methods, any details not covered in the description of this embodiment can be found in the relevant descriptions in the aforementioned embodiments, and will not be repeated here.

[0110] By adopting the technical solution of the present invention, the periodic pulsation of the dq axis current is suppressed by adding position domain repetitive control based on rotor electrical angle to the dq axis current loop, and dead zone compensation can be achieved more conveniently.

[0111] According to an embodiment of the present invention, a motor control system corresponding to a dead-time compensation device for a current loop is also provided. This motor control system may include the dead-time compensation device for the current loop described above.

[0112] Since the processing and functions implemented by the motor control system in this embodiment are basically the same as those in the embodiments, principles and examples of the aforementioned device, any details not covered in this embodiment can be found in the relevant descriptions in the aforementioned embodiments, and will not be repeated here.

[0113] By employing the technical solution of this invention, and by adding position domain repetitive control based on rotor electrical angle to the dq axis current loop to suppress the periodic pulsation of the dq axis current, a better vibration and noise suppression effect can be achieved.

[0114] According to an embodiment of the present invention, a storage medium corresponding to a dead-zone compensation method for a current loop is also provided, the storage medium including a stored program, wherein the program controls the device where the storage medium is located to execute the dead-zone compensation method for the current loop described above when the program is executed.

[0115] Since the processing and functions implemented by the storage medium in this embodiment are basically the same as the embodiments, principles and examples of the aforementioned methods, any details not covered in this embodiment can be found in the relevant descriptions in the aforementioned embodiments, and will not be repeated here.

[0116] The technical solution of this invention suppresses the periodic pulsation of the dq-axis current by adding position domain repetitive control based on rotor electrical angle to the dq-axis current loop. It is easy to implement and has strong universality.

[0117] In summary, it is readily understood by those skilled in the art that, without conflict, the aforementioned advantageous methods can be freely combined and superimposed.

[0118] The above description is merely an embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of the claims of the present invention.

Claims

1. A method for dead-zone compensation of a current loop, characterized in that, The dead zone compensation method for the current loop is applied to the current loop control of the motor control system. The current loop of the motor control system includes: a d-axis current loop and a q-axis current loop; the dead-zone compensation method of the current loop includes: Based on the rotor electrical angle of the current axis, construct an array of the current axis, which is either the d-axis or the q-axis; the array of the current axis contains N elements, the rotor electrical angle of the current axis is divided into N equal parts, and each element is used to store the cumulative current error of the corresponding rotor electrical angle of the current axis in the historical period, where N is a positive integer; Under the current axis, based on the array of the current axes, the current loop position domain repetitive control based on the rotor electrical angle of the current axis is used to perform dead zone compensation on the current loop of the current axis.

2. The dead-zone compensation method for the current loop according to claim 1, characterized in that, Under the current axis, based on the array of current axes, current loop position domain repetitive control based on the rotor electrical angle of the current axis is used to perform dead-zone compensation on the current loop of the current axis, including: Determine the current rotor electrical angle of the current axis; Determine the current current error of the current axis; The element of the current rotor electrical angle of the current shaft in the array of the current shaft is determined and denoted as the current element; the current element is added to the current current error of the current shaft to obtain the sum; In the current loop of the current axis, the summation result is passed through PI control to obtain the current loop control value of the current axis.

3. The dead-zone compensation method for the current loop according to claim 2, characterized in that, Under the current axis, based on the array of current axes, current loop position domain repetitive control based on the rotor electrical angle of the current axis is used to perform dead-zone compensation on the current loop of the current axis, and further includes: Within the current period of the rotor electrical angle of the current axis, the current element in the array of the current axis is updated based on the current current error of the current axis.

4. The dead-zone compensation method for the current loop according to claim 3, characterized in that, Within the current period of the rotor electrical angle of the current axis, based on the current current error of the current axis, the current element in the array of the current axis is updated, including: Based on the current current error of the current axis, a new element is calculated using the transfer function of the insertion repeating controller, and the current element in the array of the current axis is updated with the new element.

5. A dead-zone compensation device for a current loop, characterized in that, The dead zone compensation device for the current loop is applied to the current loop control of the motor control system. The current loop of the motor control system includes: a d-axis current loop and a q-axis current loop; the dead-zone compensation device of the current loop includes: The construction unit is configured to construct an array of current axes based on the rotor electrical angle of the current axis, wherein the current axis is either the d-axis or the q-axis; the array of current axes contains N elements, wherein the rotor electrical angle of the current axis is divided into N equal parts, and each element is used to store the cumulative current error of the corresponding rotor electrical angle historical period of the current axis, where N is a positive integer; The compensation unit is configured to perform dead-zone compensation on the current loop of the current axis by employing current loop position domain repetitive control based on the rotor electrical angle of the current axis, based on an array of the current axes.

6. The dead-zone compensation device for the current loop according to claim 5, characterized in that, The compensation unit, under the current axis, based on the array of the current axes, employs repetitive control of the current loop position domain based on the rotor electrical angle of the current axis to perform dead-zone compensation for the current loop of the current axis, including: Determine the current rotor electrical angle of the current axis; Determine the current current error of the current axis; The element of the current rotor electrical angle of the current shaft in the array of the current shaft is determined and denoted as the current element; the current element is added to the current current error of the current shaft to obtain the sum; In the current loop of the current axis, the summation result is passed through PI control to obtain the current loop control value of the current axis.

7. The dead-zone compensation device for the current loop according to claim 6, characterized in that, The compensation unit, under the current axis, based on the array of current axes, employs repetitive control of the current loop position domain based on the rotor electrical angle of the current axis to perform dead-zone compensation of the current loop of the current axis, and further includes: Within the current period of the rotor electrical angle of the current axis, the current element in the array of the current axis is updated based on the current current error of the current axis.

8. The dead-zone compensation device for the current loop according to claim 7, characterized in that, The compensation unit updates the current element in the array of the current shaft based on the current current error of the current shaft within the current period of the rotor electrical angle of the current shaft, including: Based on the current current error of the current axis, a new element is calculated using the transfer function of the insertion repeating controller, and the current element in the array of the current axis is updated with the new element.

9. A motor control system, characterized in that, include: The dead zone compensation device for the current loop as described in any one of claims 5 to 8.

10. A storage medium, characterized in that, The storage medium includes a stored program, wherein, when the program is executed, it controls the device containing the storage medium to perform the dead zone compensation method for the current loop as described in any one of claims 1 to 4.

Citation Information

Patent Citations

  • Method for determining q-axis current compensation value of permanent magnet synchronous motor and pulsation suppression metho

    CN110880895A

  • Permanent magnet synchronous motor driver harmonic current suppression system and suppression method based on repetitive control and feedforward compensation

    CN112003545A