Direct torque control of AC electric machines
09831812 · 2017-11-28
Assignee
Inventors
Cpc classification
International classification
H02P21/00
ELECTRICITY
H02P21/14
ELECTRICITY
H02P21/30
ELECTRICITY
Abstract
This disclosure features an apparatus including a motor controller to generate control signals to control an electric motor. The motor controller includes a first saturation controller to generate a first saturation controller output based on feedback signals associated with the electric motor. The motor controller further includes a duty ratio modulator coupled to the first saturation controller. The duty ratio modulator is configured to determine activation times for a set of voltage vectors based on the first saturation controller output. The motor controller is configured to generate, at each switching cycle, a control signal based on the set of voltage vectors and the activation times for the set of voltage vectors, and provide the control signal for controlling the electric motor.
Claims
1. An apparatus comprising: a motor controller to generate control signals to control an electric motor, the motor controller comprising a first saturation controller to generate a first saturation controller output based on feedback signals associated with the electric motor, and a duty ratio modulator coupled to the first saturation controller, the duty ratio modulator being configured to determine activation times for a set of voltage vectors based on the first saturation controller output, wherein the motor controller is configured to generate, at each switching cycle, a control signal based on the set of voltage vectors and the activation times for the set of voltage vectors, and provide the control signal for controlling the electric motor.
2. The apparatus of claim 1, further comprising the electric motor.
3. The apparatus of claim 2, wherein the electric motor is an alternating current motor.
4. The apparatus of claim 1, wherein the first saturation controller is configured to generate the first saturation controller output based on a difference between an estimated torque of the electric motor and a reference torque.
5. The apparatus of claim 1 in which the duty ratio modulator is configured to determine the activation times for the set of voltage vectors based on a hysteresis controller output and the first saturation controller output.
6. The apparatus of claim 1 in which the feedback signals are representative of a voltage and a current applied to the electric motor.
7. The apparatus of claim 1, wherein the motor controller comprises a switching table containing sets of voltage vectors, the switching table being configured to select the set of voltage vectors based on the feedback signals.
8. The apparatus of claim 7, wherein the motor controller further comprises a hysteresis controller configured to generate a hysteresis controller output based on the feedback signals, and the switching table is configured to select the set of voltage vectors based on the hysteresis controller output.
9. The apparatus of claim 7, further comprising an estimator to estimate a torque of the electric motor and a stator flux of the electric motor based on the feedback signals, wherein the switching table is configured to select the set of voltage vectors based on a position of the stator flux within a sector of a stationary reference frame.
10. The apparatus of claim 1, wherein the set of vectors comprises at least two active vectors.
11. The apparatus of claim 1, wherein the set of vectors comprises at least one passive vector.
12. The apparatus of claim 1, wherein the set of vectors comprises at least two passive vectors.
13. The apparatus of claim 12, wherein the duty ratio modulator is configured to select a first activation time of a first passive vector and a second activation time of a second passive vector based on a predetermined weighting factor.
14. The apparatus of claim 1, wherein: the motor controller comprises a second saturation controller to generate a second saturation controller output based on the feedback signals, and the duty ratio modulator is further connected to the second saturation controller, the duty ratio modulator being configured to determine the activation times for the set of voltage vectors based on the first saturation controller output and the second saturation controller output.
15. The apparatus of claim 14, wherein the second saturation controller is configured to generate the second saturation controller output based on a difference between an estimated stator flux of the electric motor and a reference stator flux.
16. The apparatus of claim 1, further comprising an inverter coupled to the electric motor, wherein the motor controller is configured to apply the control signal to the inverter to place the inverter in one of a plurality of inverter states, each inverter state corresponding to one voltage vector among the set of voltage vectors, and the inverter being in each inverter state for a corresponding activation time.
17. The apparatus of claim 1, wherein the first saturation controller is configured such that available values of the first saturation controller output include a low state, a high state, and a range of states between the low state and the high state.
18. The apparatus of claim 17, wherein the first saturation controller is configured such that a value of the first saturation controller output corresponds to the low state if a value of the feedback signals is less than a first predefined threshold, the high state if the value of the feedback signals is greater than a second predefined threshold, and a state in the range of states if the value of the feedback signals is between the first predefined threshold and the second predefined threshold.
19. The apparatus of claim 1, wherein: the duty ratio modulator is configured to, for each switching cycle, determine a first percentage of a switching period of a switching cycle to activate a first vector of the set of vectors and a second percentage of the switching period to activate a second vector of the set of vectors, the first and second percentages being proportional to a value of the first saturation controller output, and the motor controller is configured to generate the control signal to activate the first vector for the first percentage of the switching period and to activate the second vector for the second percentage of the switching period.
20. A method of controlling an electric motor system, the method comprising: determining activation times for a set of voltage vectors based on a first saturation controller output; and generating, at each switching cycle, a control signal to control an electric motor based on the set of voltage vectors and the activation times for the set of voltage vectors.
21. The method of claim 20, further comprising generating the first saturation controller output based on a difference between an estimated torque of the electric motor and a reference torque.
22. The method of claim 20, wherein generating the control signal to control the electric motor comprises causing an alternating current to be delivered to the electric motor.
23. The method of claim 20, further comprising: receiving feedback signals indicative of a voltage and a current applied to the electric motor, and generating the first saturation controller output based on the feedback signals.
24. The method of claim 23, further comprising selecting the set of voltage vectors from predefined sets of voltage vectors based on the feedback signals.
25. The method of claim 24, further comprising estimating a torque and a stator flux based on the feedback signals, and wherein selecting the set of voltage vectors comprises selecting the set of voltage vectors based on a position of the stator flux within a sector of a stationary reference frame.
26. The method of claim 23, further comprising generating a hysteresis controller output based on the feedback signals, wherein selecting the set of voltage vectors comprises selecting the set of voltage vectors based on the hysteresis controller output.
27. The method of claim 20, wherein the set of vectors comprises at least two active vectors.
28. The method of claim 20, wherein the set of vectors comprises at least one passive vector.
29. The method of claim 20, wherein the set of vectors comprises at least two passive vectors.
30. The method of claim 20, wherein determining activation times for the set of voltage vectors comprises determining a first activation time of a first passive vector and a second activation time of a second passive vector based on a predetermined weighting factor.
31. The method of claim 20, wherein determining the activation times comprises determining the activation times for the set of voltage vectors based on the first saturation controller output and a second saturation controller output.
32. The method of claim 31, further comprising generating the second saturation controller output based on a difference between an estimated stator flux of the electric motor and a reference stator flux.
33. The method of claim 20, further comprising applying the control signal to an inverter to place the inverter in one of a plurality of inverter states, each inverter state corresponding to one voltage vector among the set of voltage vectors, and the inverter being in each inverter state for a corresponding activation time.
34. The method of claim 20, wherein available values of the first saturation controller output include a low state, a high state, and a range of states between the low state and the high state.
35. The method of claim 34, wherein a value of the first saturation controller output corresponds to the low state if a value of feedback signals from the electric motor is less than a first predefined threshold, the high state if the value of the feedback signals is greater than a second predefined threshold, and a state in the range of states if the value of the feedback signals is between the first predefined threshold and the second predefined threshold.
36. The method of claim 20, wherein: determining the activation times comprises determining a first percentage of a switching period of a switching cycle to activate a first vector of the set of vectors and a second percentage of the switching period to activate a second vector of the set of vectors, the first and second percentages being proportional to a value of the first saturation controller output, and generating the control signal at each switching cycle comprises generating the control signal to activate the first vector for the first percentage of the switching period and to activate the second vector for the second percentage of the switching period.
37. An apparatus comprising: a motor controller to generate control signals to control an electric motor, the motor controller comprising: a torque and stator flux estimator to estimate, based on a feedback current and a feedback voltage associated with the electric motor, an estimated torque and an estimated stator flux of the electric motor, a first saturation controller that receives a torque error representing a difference between the estimated torque and a reference torque and generates a first saturation controller output based on the torque error, and a second saturation controller that receives a flux error representing a difference between the estimated stator flux and a reference stator flux, and generates a second saturation controller output based on the flux error, wherein, at each switching cycle, the motor controller generates a control signal based at least on the first saturation controller output, the second saturation controller output, and a plurality of voltage vectors, and provides the control signal for controlling the electric motor.
38. The apparatus of claim 37, further comprising the electric motor.
39. The apparatus of claim 38, wherein the electric motor is an alternating current motor.
40. The apparatus of claim 37, wherein the plurality of voltage vectors comprise a zero voltage vector and a plurality of active voltage vectors.
41. The apparatus of claim 40, wherein the plurality of voltage vectors comprise a plurality of zero voltage vectors.
42. The apparatus of claim 40, wherein the motor controller modulates an output voltage based on a duty ratio vector that is a linear combination of the zero voltage vector and the plurality of active voltage vectors.
43. The apparatus of claim 42, wherein coefficients of the linear combination are determined from the first saturation controller output and the second saturation controller output, and elements of the duty ratio vector correspond to activation times of the zero voltage vector and the plurality of active voltage vectors.
44. The apparatus of claim 37, wherein the motor controller comprises a torque comparator that receives the torque error and generates a torque comparator output, the torque comparator output having a low state or a high state.
45. The apparatus of claim 44, wherein, if the torque comparator output has the low value, the plurality of voltage vectors are configured to cause the torque of the electric motor to be decreased.
46. The apparatus of claim 44, wherein, if the torque comparator output has the high value, the plurality of voltage vectors are configured to cause the torque of the electric motor to be increased.
47. The apparatus of claim 44, wherein the motor controller is configured to select a table entry from a table based on the torque comparator output, the table having a plurality of table entries each having a set of voltage vectors, and at least one of the table entries corresponding to the plurality of voltage vectors.
48. The apparatus of claim 47, wherein the estimated stator flux is located within a sector of a stationary reference frame, and the motor controller selects the table entry based on the sector within which the estimated stator flux is located.
49. The apparatus of claim 48, wherein the stationary reference frame comprises six sectors defined by the plurality of voltage vectors.
50. The apparatus of claim 48, wherein the motor controller selects the table entry from one of twelve available table entries.
51. The apparatus of claim 37, wherein the first saturation controller output increases linearly from a low value to a high value as the torque error increases.
52. The apparatus of claim 51, wherein the first saturation controller output is normalized such that the low value is zero and the high value is one.
53. The apparatus of claim 37, wherein the second saturation controller output linearly increases from a low value to a high value as the stator flux error increases.
54. The apparatus of claim 53, wherein the second saturation controller output is normalized such that the low value is zero and the high value is one.
55. The apparatus of claim 37, wherein the motor controller delivers the control signals to an inverter operable with the electric motor.
56. The apparatus of claim 37, wherein a low value of the first saturation controller output is determined based on a rotor speed of the electric motor.
57. The apparatus of claim 37, wherein a low value of the second saturation controller output is set such that a magnitude of the estimated stator flux is substantially constant.
58. An electric vehicle that comprises the electric motor and the motor controller of claim 37.
59. An industrial motor drive system that comprises the electric motor and the motor controller of claim 37.
60. The apparatus of claim 37, wherein: the first saturation controller is configured such that available values of the first saturation controller output include a low state, a high state, and a range of states between the low state and the high state, and the second saturation controller is configured such that available values of the second saturation controller output include a low state, a high state, and a range of states between the low state and the high state.
61. The apparatus of claim 60, wherein the first saturation controller is configured such that a value of the first saturation controller output corresponds to the low state if a value of the torque error is less than a first predefined threshold, the high state if the value of the torque error is greater than a second predefined threshold, and a state in the range of states if the value of the torque error is between the first predefined threshold and the second predefined threshold.
62. The apparatus of claim 37, wherein: the motor controller is configured to, for each switching cycle, determine a first percentage of a switching period of a switching cycle to activate a first vector of the plurality of vectors and a second percentage of the switching period to activate a second vector of the plurality of vectors, the first and second percentages being proportional to a value of the first saturation controller output, and generate the control signal to activate the first vector for the first percentage of the switching period and to activate the second vector for the second percentage of the switching period.
63. A method of controlling an electric motor system, comprising: estimating, based on a feedback current and a feedback voltage from an electric motor of the electric motor system, an estimated torque and an estimated stator flux; generating a first saturation controller output based on a torque error representing a difference between the estimated torque and a reference torque; generating a second saturation controller output based on a flux error representing a difference between the estimated stator flux and a reference stator flux; and generating, at each switching cycle, a control signal to control the electric motor based at least on the first saturation controller output, the second saturation controller output, and a plurality of voltage vectors to apply to the electric motor.
64. The method of claim 63, wherein generating the control signal to control the electric motor comprises causing an alternating current to be delivered to the electric motor.
65. The method of claim 63, wherein the plurality of voltage vectors comprises a zero voltage vector and a plurality of active voltage vectors.
66. The method of claim 65, wherein the plurality of voltage vectors comprise a plurality of zero voltage vectors.
67. The method of claim 65, further comprising modulating an output voltage based on a duty ratio vector that is a linear combination of the zero voltage vector and the plurality of active voltage vectors.
68. The method of claim 67, wherein coefficients of the linear combination are determined from the first saturation controller output and the second saturation controller output, and elements of the duty ratio vector correspond to activation times of the zero voltage vector and the plurality of active voltage vectors.
69. The method of claim 63, further comprising generating a torque comparator output based on the torque error, the torque comparator output having a low state and a high state.
70. The method of claim 69, wherein, if the torque comparator output is a low value, the plurality of voltage vectors are configured to cause the torque of the electric motor to be decreased.
71. The method of claim 69, wherein, if the torque comparator output is a high value, the plurality of voltage vectors are configured to cause the torque of the electric motor to be increased.
72. The method of claim 69, further comprising selecting a table entry from a table based on the torque comparator output, the table having a plurality of table entries each having a set of voltage vectors, and at least one of the tables entries corresponding to the plurality of voltage vectors.
73. The method of claim 72, further comprising selecting the table entry based on a sector of a stationary reference frame within which the estimated stator flux is located.
74. The method of claim 73, wherein the stationary reference frame comprises six sectors defined by the plurality of voltage vectors.
75. The method of claim 73, wherein the table entry is selected from among twelve available table entries.
76. The method of claim 63, wherein the first saturation controller output increases linearly from a low value to a high value as the torque error increases.
77. The method of claim 76, wherein the first saturation controller output is normalized such that the low value is zero and the high value is one.
78. The method of claim 63, wherein the second saturation controller output linearly increases from a low value to a high value as the stator flux error increases.
79. The method of claim 78, wherein the second saturation controller output is normalized such that the low value is zero and the high value is one.
80. The method of claim 63, further comprising delivering the control signals to an inverter operable with the electric motor.
81. The method of claim 63, wherein a low value of the first saturation controller output is determined based on a rotor speed of the electric motor.
82. The method of claim 63, wherein a low value of the second saturation controller output is set such that a magnitude of the estimated stator flux is substantially constant.
83. The method of claim 63, wherein the electric motor is an electric motor of an electric vehicle, and the method comprises controlling the electric motor to control a speed or acceleration of the electric vehicle.
84. The method of claim 63, wherein the electric motor is part of an industrial motor drive system.
85. The method of claim 63, wherein: available values of the first saturation controller output include a low state, a high state, and a range of states between the low state and the high state, and available values of the second saturation controller output include a low state, a high state, and a state between the low state and the high state.
86. The method of claim 85, wherein a value of the first saturation controller output corresponds to the low state if a value of the torque error from the electric motor is less than a first predefined threshold, the high state if the value of the torque error is greater than a second predefined threshold, and a state in the range of states if the value of the torque error is between the first predefined threshold and the second predefined threshold.
87. The method of claim 63, wherein: determining the activation times comprises determining a first percentage of a switching period of a switching cycle to activate a first vector of the plurality of vectors and a second percentage of the switching period to activate a second vector of the plurality of vectors, the first and second percentages being proportional to a value of the first saturation controller output, and generating the control signal at each switching cycle comprises generating the control signal to activate the first vector for the first percentage of the switching period and to activate the second vector for the second percentage of the switching period.
88. An apparatus comprising: an electric motor; and a controller means for generating control signals to control the electric motor, the controller means comprising: means for estimating, based on a feedback current and a feedback voltage from the electric motor, an estimated torque and an estimated stator flux of the electric motor, means for receiving a torque error representing a difference between the estimated torque and a reference torque, and generating a first saturation controller output based on the torque error, and means for receiving a flux error representing a difference between the estimated stator flux and a reference stator flux, and generating a second saturation controller output based on the flux error, wherein the control signals are generated based at least on the torque error, the flux error, and a table entry selected from a switching table containing information on a plurality of voltage vectors to apply to the electric motor.
89. The apparatus of claim 88, wherein: the first saturation controller is configured such that available values of the first saturation controller output include a low state, a high state, and a range of states between the low state and the high state, and the second saturation controller is configured such that available values of the second saturation controller output include a low state, a high state, and a state between the low state and the high state.
90. The apparatus of claim 89, wherein the means for receiving the torque error and generating the first saturation controller output is configured such that a value of the first saturation controller output corresponds to the low state if a value of the torque error is less than a first predefined threshold, the high state if the value of the torque error is greater than a second predefined threshold, and a state in the range of states if the value of the torque error is between the first predefined threshold and the second predefined threshold.
91. The apparatus of claim 88, wherein the control signals are generated to activate a first vector of the plurality of vectors for a first percentage of a switching period and to activate a second vector of the plurality of vectors for a second percentage of the switching period, the first and second percentages being proportional to a value of the first saturation controller output.
Description
DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17) Like reference symbols in the various drawings indicate like elements.
DETAILED DESCRIPTION
(18) A saturation controller-based direct torque control (DTC) system can reduce the torque and stator flux ripples for electric motors, such as, for example, permanent-magnet synchronous motor (PMSM) drives, using a relatively low sampling frequency (e.g., below 10,000 samples/second). The DTC system can include an electric motor coupled to an inverter that receives alternating current (AC) from the inverter. The inverter is connected to a motor controller that implements a control scheme to determine a switching state of the inverter. In control of a multiphase, multilevel inverter, available switching states of the inverter can be represented as voltage vectors in which each entry of the voltage vector corresponds to a state of each phase of the inverter. For example, in a three-phase, two-level inverter, each entry of the voltage vector can correspond to selection of one of the two levels (e.g., first and second levels) for a particular phase. A voltage vector V(1,1,0), for instance, corresponds to activation of a second level of phase a, a second level of phase b, and a first level of phase c. The motor controller can operate at a switching frequency in which the motor controller sends a control signal to the inverter at a rate corresponding to the switching frequency. The motor can generate the control signal such that the control signal corresponds to specific voltage vectors to be applied during a switching period.
(19) Nonlinear adaptive saturation controllers can be implemented into the DTC system to control the inverter. The motor controller, for example, can include a switching table that, in combination with saturation controllers, generates control signals that correspond to a selected set of voltage vectors. Each voltage vector of the set of voltage vectors can be activated for a predetermined activation time to enable delivery of AC having a desired frequency, amplitude, and phase to the motor. The activation times of the voltage vectors can be determined based on the outputs of the saturation controllers. For example, a duty ratio modulator can compute the duty ratios for each of the voltage vectors such that each selected voltage vector has an assigned on-time or activation time in the switching cycle. In this regard, for each switching cycle, the inverter is placed in multiple inverter states corresponding to the voltage vectors. Each inverter state corresponds to one of the voltage vectors, and within the switching cycle, the inverter is in each inverter state for the corresponding assigned activation time.
(20) The examples of saturation controller-based DTC systems described herein can significantly reduce the steady-state torque and flux ripples of PMSMs and other electric motors. These DTC systems can also control the electric motors with fast dynamics, robustness to disturbances, and low computational cost. The saturation controller-based DTC systems can further reduce steady-state torque tracking error at low sampling frequencies.
(21) Hysteresis Controller-Based DTC System
(22)
(23) The motor controller 115 generates several control signals 112 during operation of the electric motor 102. To generate a control signal 112 for a single switching cycle, the motor controller 115 can respond to feedback signals using two hysteresis controllers 104 and 106, a switching table 108, and an estimator 110. The estimator 110 of the motor controller 115 receives a feedback voltage u.sub.abc and a feedback current i.sub.abc which correspond to the voltage and current delivered to the motor 102—and uses those feedback values to estimate an electromagnetic torque T.sub.e and a stator flux ψ.sub.s. The estimator 110 implements, for example, a state observer system or a state-space model to generate the estimated electromagnetic torque T.sub.e and the estimated stator flux ψ.sub.s.
(24) The motor controller 115 uses the estimated electromagnetic torque T.sub.e and the stator flux ψ.sub.s directly as feedback signals for operation of the torque hysteresis controller 104 and the stator flux hysteresis controller 106. The torque hysteresis controller 104 transforms a torque error e.sub.T (the difference between the estimated torque T.sub.e and a reference torque T.sub.e*) into an torque comparator output c.sub.T. The stator flux hysteresis controller 106 transforms a stator flux error e.sub.ψ (the difference between a magnitude of the estimated stator flux |ψ.sub.s| and a magnitude of a reference stator flux |ψ.sub.s|*) into a stator flux comparator output c.sub.ψ. Each of the hysteresis controllers 104 and 106 outputs two discrete states: a low state and a high state. For example, the hysteresis controllers 104 and 106 can output the discrete states 0 or 1 for the torque comparator output c.sub.T and the stator flux comparator output c.sub.ψ, respectively.
(25) In examples in which the inverter 114 is a three-phase two-level inverter, the inverter 114 (shown in
(26) Referring back to
(27) TABLE-US-00001 TABLE 1 Switching Table 108 for the DTC System 100 Sector 1 2 3 4 5 6 c.sub.ψ = c.sub.T = 1 V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) 1 c.sub.T = 0 V.sub.7(111) V.sub.0(000) V.sub.7(111) V.sub.0(000) V.sub.7(111) V.sub.0(000) c.sub.T = −1 V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) c.sub.ψ = c.sub.T = 1 V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) 0 c.sub.T = 0 V.sub.0(000) V.sub.7(111) V.sub.0(000) V.sub.7(111) V.sub.0(000) V.sub.7(111) c.sub.T = −1 V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011)
(28) TABLE 1 shows thirty-six table entries that can be selected based on the sector number, the torque hysteresis output c.sub.T, and the flux hysteresis output c.sub.ψ. Because the torque hysteresis controller 104 outputs a two-level torque comparator output c.sub.T, and the and the stator flux hysteresis controller 106 outputs a three-level stator flux comparator output c.sub.ψ, the torque comparator output c.sub.T and the stator flux comparator output c.sub.ψ provide six distinct combinations of comparator output levels. Each of these distinct combinations can correspond to one of the six available vectors when the stator flux linkage ψ.sub.s is in a given sector.
(29) By way of example, as shown in TABLE 1, when the stator flux linkage ψ.sub.s is positioned in sector 1, one of six voltage vectors can be selected: V.sub.0, V.sub.2, V.sub.3, V.sub.5, V.sub.6, and V.sub.7. Among these vectors, four inverter vectors V.sub.2, V.sub.3, V.sub.5, V.sub.6 are active vectors, and two inverter vectors V.sub.0 and V.sub.7 are passive vectors. The inverter voltage vectors V.sub.0 and V.sub.7 are zero vectors in which, when applied, the inverter 114 delivers zero voltage and current. Referring to
If the rotor is rotating clockwise, the above-described effects will be opposite when applying the same voltage vector. Similarly, if the stator flux linkage ψ.sub.s is located in another sector (e.g., one of sectors 2-6), the switching table selects from six inverter voltage vectors, four of which are active vectors and two of which are passive vectors.
(30) In the DTC system 100 of
(31) In some examples, the motor controller 115 applies the selected voltage vector for the entire duration of time between receiving samples of the voltage v.sub.abc and the current i.sub.abc, e.g., the switching period. Upon receiving a subsequent sample, the switching table 108 can determine whether a new voltage vector should be applied based on the outputs of the hysteresis controllers 104, 106 and the estimator 110. In some implementations, the motor controller 115 applies the selected voltage vector for a predetermined duration of time less than the sampling period. After the voltage vector is applied during the switching period, the motor controller 115 can apply a passive voltage vector for the remaining duration of time before receiving a subsequent sample. The switching period can be pre-selected based on, for example, the sampling period and/or the particular type of the electric motor to be controlled.
(32) Analysis of DTC
(33) In some implementations of a PMSM, the electromagnetic torque T.sub.e can be expressed in terms of the amplitudes of the stator flux linkage ψ.sub.s and rotor flux linkage ψ.sub.m, as shown in equation (1) below:
(34)
L.sub.q and L.sub.d are the quadrature-axis (q-axis) and the direct axis (d-axis) inductances of the PMSM, respectively; ψ.sub.m is the rotor flux linkage generated by the permanent magnets of the PMSM; |ψ.sub.s| is the stator flux linkage magnitude; δ is the torque angle; and p is the number of pole pairs.
(35) Taking the derivative of equation (1) with respect to time yields
(36)
(37) After discretization of the stator flux linkage ψ.sub.s and rotor flux linkage ψ.sub.m, the torque variation between two sampling intervals can be expressed as:
(38)
where |ψ.sub.s|.sub.0 and δ.sub.0 are the stator flux magnitude and the torque angle at the reference point, respectively. Equations (2)-(5) demonstrate that the operating mode (related to |ψ.sub.s|.sub.0) and loading condition (related to δ.sub.0) will affect the weights of flux and torque angle changes on electromagnetic torque ripples.
(39) Neglecting the voltage drop caused by the stator resistance, the relationship between the stator voltage vector u.sub.s and the change of stator flux vector Δψ.sub.s can be expressed as
Δω.sub.s=u.sub.sT.sub.s (6)
where T.sub.s is the sampling time. The sampling time corresponds to the amount of time between samples received by a motor controller. The samples can correspond to data representative of the electromagnetic torque T.sub.e of the motor and the stator flux linkage ψ.sub.s, such as, for example, the voltage u.sub.abc and the current i.sub.abc delivered to the motor. The change of the torque angle can be evaluated by
Δδ=Δθ.sub.VT−ω.sub.eT.sub.s (7)
where Δθ.sub.(VT) is the change of stator flux angle when a voltage vector V.sub.i (i=0, . . . , 7) is applied for the period of T.sub.s, and ω.sub.e is the electrical rotor speed.
(40)
(41) Assuming that a switching period T.sub.s (corresponding to how often the switching table switches from one vector to another vector for a hysteresis controller-based DTC system) is infinitesimal, the change of the stator flux angle caused by the voltage vector is approximately proportional to T.sub.s. Therefore, according to equations (5)-(7), both the torque and the stator flux changes are approximately proportional to the sampling period.
(42) In the DTC system described above, the voltage vectors can be executed in the entire switching cycle, which can cause torque and flux ripples. The ripples can be even larger when the switching frequency is lower because the switching period T.sub.s increases.
(43) Equations (1)-(7) also can demonstrate the effects of zero voltage vectors on the load angle, particularly the change in the load angle M. Since the use of zero voltage vectors V.sub.0(000) and/or V.sub.7(111) will not change the position or magnitude of the stator flux vector, Δθ.sub.VT can be assumed to be zero such that the torque variation is only related to the load angle variation. Thus, according to equation (7), when using zero voltage vectors, the change of the load angle is proportional to the switching period, i.e., equation (7) can be simplified to Δδ=−ω.sub.eT.sub.s. Therefore, the torque variation is proportional to the switching period. Different selection schemes for zero vectors can be implemented to produce different switching periods that reduce torque variation.
(44) Saturation Controller-Based DTC System
(45) Based on the above analysis of the torque and stator flux ripples of the DTC system 100, the DTC system 100 of
(46) The motor controller 215 includes a switching table 208 and an estimator 210. Instead of using the hysteresis controllers 104 and 106 as implemented in the DTC system 100 to determine the voltage vector to apply to the inverter 214, the DTC system 200 uses saturation controllers 204 and 206 that provide outputs used to determine activation times of multiple voltage vectors to apply to the inverter 214 in a switching cycle. The DTC system 200 additionally includes a torque comparator 205 and a duty ratio modulator 209. The DTC system 200 delivers control signals 212 to an inverter 214, which converts DC to AC. The inverter 214 can receive DC from a DC source (not shown), and then in turn delivers voltage u.sub.abc and current i.sub.abc to the motor 202. The DTC system 200 delivers a single control signal 212 to the inverter 214 at the start of a switching cycle.
(47) The estimator 210 receives a feedback voltage u.sub.abc and a feedback current i.sub.abc, which correspond to the voltage and current delivered to the motor 202. The feedback voltage u.sub.abc and the feedback current i.sub.abc are feedback signals usable by the motor controller 215 to determine the operations of the motor 202. For example, the motor controller 215 uses these values to estimate an electromagnetic torque T.sub.e and a stator flux ψ.sub.s of the motor 202. The estimated electromagnetic torque T.sub.e and the estimated stator flux ψ.sub.s can then be used as feedback signals that are compared to reference values for the torque and the stator flux. The estimator 210 implements, for example, a state observer system or a state-space model to generate the estimated electromagnetic torque T.sub.e and the estimated stator flux ψ.sub.s.
(48) The torque saturation controller 204 then transforms a torque error e.sub.T (the difference between the estimated torque T.sub.e and a reference torque T.sub.e*) into a torque saturation controller output s.sub.T. The stator flux saturation controller 206 transforms a stator flux error e.sub.ψ (the difference between a magnitude of the estimated stator flux |ψ.sub.s| and a magnitude of a reference stator flux |ω.sub.s|*) into a stator flux saturation controller output s.sub.ψ. The torque comparator 205 transforms the torque error e.sub.T into a torque comparator output c.sub.T. The reference torque T.sub.e* and the reference stator flux |ψ.sub.s|* can correspond to desired values for the torque and the stator flux, respectively.
(49) The saturation controllers 204 and 206 can generate normalized outputs for the torque saturation controller output s.sub.T and the stator flux saturation controller output s.sub.ψ. For example, the saturation controllers 204 and 206 (shown in
(50)
where x is an input (e.g., the stator flux error e.sub.ψ or the torque error e.sub.T); B.sub.w is the upper boundary; sat(x, B.sub.w) is an output (e.g., the torque saturation controller output s.sub.T or the stator flux saturation controller output s.sub.ψ); and sgn(x) is the sign function.
(51) Referring to
(52) When the absolute value of the input x is below the boundary (or, when the input x is between the upper boundary and the lower boundary −B.sub.w), the saturation controllers 204 and 206 transform the input x into the output s such that the output s takes a value in the range of [0, 1]. 0 and 1 therefore would correspond to the values for when the saturation controllers 204 and 206 are saturated.
(53) In some examples, the range of [0, 1] is a continuous range of values that can be output by the saturation controllers 204, 206. The range of values can allow selection of the voltage vectors delivered to the inverter 214 to be more flexible so as to avoid overuse of nonzero vectors during a sampling period, which can lead to overshoot. In some examples, the value that the output s takes can be linearly proportional to the input x that the saturation controller 204 or 206 receives. The range of available values facilitates the pulse modulation for the inverter 214 and enables an adjustable duty ratio modulation within the desired limits.
(54) The duty ratio modulator 209 implements the adjustable duty ratio modulation to generate the control signal 212 used to control the motor 202 in the switching cycle. The control signal 212 activates a specific combination of switches of the inverter 214 to place the inverter 214 in a specific inverter state for an activation time determined by the duty ratio modulator 209, as described herein. The inverter 214 thereby applies a voltage and current to the motor 202 based on the control signal 212.
(55) In some implementations, the inputs of the switching table are the output c.sub.T of the torque hysteresis comparator 205 and the sector number determined by the position of the stator flux vector ψ.sub.s. The determination of these two inputs will be described below.
(56) The torque comparator 205 determines a value at the kth (current) step for the torque comparator output c.sub.T based on the following equation:
(57)
where e.sub.T is the torque error and B.sub.wh is the upper boundary of the torque comparator 205, which is substantially equal to or larger than the B.sub.w of the torque saturation controller. Equation (9) shows that the output of the torque hysteresis comparator 205 in the (k−1)th step (c.sub.T[k−1]) will be maintained in the current step k if the input e.sub.T[k] is within B.sub.w.
(58) As described earlier, in a two-level, three-phase, voltage source inverter-fed drive system, a voltage vector can be selected from eight available voltage vectors and applied to, for example, a motor. Referring back to
(59) In some implementations, the switching table 208 differs from the switching table 108 in that the switching table 208 outputs a combination of multiple voltage vectors instead of a single voltage vector as implemented in the DTC system 100. The switching table 208 receives the sector number and the torque comparator output c.sub.T (generated by the torque comparator 205) and uses those inputs to select voltage vectors from among the inverter voltage vectors V.sub.0 through V.sub.7. An example of a switching table that outputs a combination of multiple voltage vectors for the saturation controller-based DTC system 200 is given in TABLE 2 below.
(60) TABLE-US-00002 TABLE 2 Example of Switching Table 208 for the DTC System 200 Sector 1 2 3 4 5 6 c.sub.T = 1 V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) c.sub.T = 0 V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000)
(61) TABLE 2 shows twelve table entries that can be selected based on the sector number and the torque hysteresis output c.sub.T, in which each table entry includes three inverter voltage vectors. For example, when the stator flux linkage ψ.sub.s is positioned within sector 1, two potential sets of vectors can be selected, in which the first potential set includes vectors V.sub.2, V.sub.3, and V.sub.0, the second potential set includes V.sub.6, V.sub.5, and V.sub.0. Among these two sets of vectors, four inverter vectors V.sub.2, V.sub.3, V.sub.5, V.sub.6 are active vectors, and the inverter vector V.sub.0 is a passive vector. The inverter voltage vectors V.sub.0 and V.sub.7 are zero vectors. Referring back to
(62) Although both the zero vectors V.sub.0(000) and V.sub.7(111) and the active vectors V.sub.5(001) and V.sub.6(101) can decrease the torque T.sub.e, the rate at which the torque decreases is larger for the active vectors than for the zero vectors because the active voltage vectors V.sub.5(001) and V.sub.6(101) will make the stator flux vector ψ.sub.s rotate in the direction opposite to the rotating direction of the rotor flux vector ψ.sub.m. The active voltage vectors V.sub.5(001) and V.sub.6(101) therefore can cause a more significant reduction of the torque and, thus, a larger torque ripple. The active vectors V.sub.5(001) and V.sub.6(101) can be used when a large torque decrease is needed. The passive vectors V.sub.0(000) and V.sub.7(111) can be applied when a smaller torque decrease is needed.
(63) In the steady-state operation, the zero vectors can be used to decrease the torque to reduce torque ripples. If the rotor is rotating clockwise, the above-described effects will be opposite when applying the same voltage vector. A similar analysis applies to cases in which the stator flux linkage ψ.sub.s is positioned in another sector (e.g., one of sectors 2-6). Four active vectors and two passive vectors are available for each of the other sectors.
(64) In the DTC system 200 of
(65) Although both of the passive vectors V.sub.0 and V.sub.7 could be applied to decrease the torque, only the vector V.sub.0 is available for each table entry in the example of the switching table 208 shown in TABLE 2. In some implementations, as described herein, V.sub.7 is the available passive vector, or a combination of both of V.sub.0 and V.sub.7 is available. Using V.sub.0(000) only, as described with respect to TABLE 2, or V.sub.7(111) only can simplify the modulation algorithm and reduce the switching times of the inverter switches.
(66)
(67) The torque ripple 225 is shown to be contained within an interval smaller than the interval defined by the upper boundary T.sub.e*+B.sub.w and the lower boundary T.sub.e*−B.sub.w. The larger interval defined by the upper boundary T.sub.e*+B.sub.w and the lower boundary T.sub.e*−B.sub.w represents the extent of the torque ripple that may be found in the DTC system 100, which simply uses hysteresis controllers 104 and 106. The torque ripple 225 corresponds to the torque ripple that may be found in the DTC system 200, which uses the saturation controllers 204 and 206.
(68) The torque hysteresis comparator 205 provides a supplementary signal (i.e., c.sub.T) to determine when to enable a sharp torque decrease to promote the fast dynamic response of the DTC system 200. The activation time for V.sub.0(000) during a switching cycle is determined by the output s.sub.T of the torque saturation controller 204. The activation times of the active and passive vectors for the same switching cycle can be determined using methods as described in detail herein.
(69) As shown in
d=s.sub.T(s.sub.ψ−v.sub.act1+(1−s.sub.ψ).Math.v.sub.act2)+(1−s.sub.T).Math.v.sub.zero, when(c.sub.T=1) (10)
d=(1−s.sub.T)(s.sub.ψ−v.sub.act1+(1−s.sub.ψ).Math.v.sub.act2)+s.sub.T.Math.v.sub.zero, when (c.sub.T=0) (11)
where v.sub.act1, v.sub.act2 and v.sub.zero are the selected three voltage vectors shown in the same order in TABLE 2.
(70) The switching table 208 selects two active vectors v.sub.act1 and v.sub.act2 and a zero vector v.sub.zero at one time based on the position of the stator flux ψ.sub.s within one of the six sectors and the torque comparator output c.sub.T. The three elements in the desired duty ratio vector d can correspond to the activation times of each of the three selected inverter voltage vectors. For example, a duty ratio vector d of (0.2, 0.4, 0.4) can correspond to activation times of 20%, 40%, and 40% of the switching period for the active vector v.sub.act1, the active vector v.sub.act2, and the zero vector v.sub.zero. In each switching cycle, equation (10) or (11) can be used to determine the duty ratio vector d when c.sub.T equals to 1 or 0, respectively.
(71) While the switching table depicted in TABLE 2 is shown to include table entries having three distinct vectors, in some implementations, the switching table 208 for the saturation controller-based DTC system 200 can be modified so that each table entry includes additional or fewer voltage vectors. For instance, the example of the switching table 208 in TABLE 3 differs from the example of the switching table 208 in TABLE 2 in that a combination of both of the passive vectors V.sub.0(000) and V.sub.7(111) can be applied during a switching cycle.
(72) TABLE-US-00003 TABLE 3 Example of Switching Table 208 for the DTC System 200 Sector 1 2 3 4 5 6 c.sub.T = 1 V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) c.sub.T = 0 V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.0(000) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111)
(73) TABLE 3, similar to TABLE 2, shows twelve table entries that can be selected based on the sector number and the torque hysteresis output c.sub.T. In contrast to the three available vectors in each table entry of TABLE 2, each table entry in TABLE 3 includes four vectors. Thus, in the example of the switching table 208 shown in TABLE 3, the switching table 208 outputs four voltage vectors depending on the torque comparator output c.sub.T sent from the torque comparator 205. The four vectors include the two passive vectors V.sub.0 and V.sub.7 and two active vectors selected from the six active vectors V.sub.1 to V.sub.6. As shown in TABLE 3, the top two voltage vectors of each entry are active voltage vectors, and bottom two voltage vectors of each entry are the passive voltage vectors.
(74) When the stator flux linkage ψ.sub.s is positioned within sector 1, the following four scenarios describe qualitative rules for voltage vector selection to minimize the torque error e.sub.T and the stator flux error e.sub.ψ while minimizing torque ripple using TABLE 3 for the switching table 208: Scenario (1): When c.sub.T[k]=1 and c.sub.T[k−1]=0, the torque tracking error e.sub.T[k]>B.sub.w, meaning that the torque needs to be increased significantly. The active voltage vectors V.sub.2(110) and V.sub.3 (010) can increase the torque relatively faster and therefore are applied to reduce the tracking error. The durations of these two vectors in one switching cycle are assigned according to the output s.sub.ψ of the stator flux saturation controller 206 to obtain a smooth and circular stator flux trajectory. The zero vectors V.sub.0(000) and/or V.sub.7(111) can be selected by the switching table 208 but need not necessarily be used by the duty ratio modulator 209. Scenario (2): When c.sub.T[k]=c.sub.T[k−1]=1, either e.sub.T[k]>B.sub.w or |e.sub.T[k]|<B.sub.w. If e.sub.T[k]>B.sub.w, then the voltage vector assignment in scenario (1) is implemented. If |e.sub.T[k]|<B.sub.w the PMSM drive system is operating in a quasi-steady state and the torque T.sub.e can be adjusted slightly to keep the torque error e.sub.T within the boundaries B.sub.w. In this case, the active vectors V.sub.2(110) and V.sub.3 (010) can be applied for part of the entire switching cycle to keep the torque T.sub.e increasing. One or both of the active vectors V.sub.2(001) and V.sub.3 (101) can be applied for a portion of the switching cycle. The zero vectors V.sub.0(000) and/or V.sub.7(111) can be used for a certain portion of the switching cycle to reduce the torque T.sub.e and reduce the torque ripple. Scenario (3): When c.sub.T[k]=0 and c.sub.T[k−1]=1, the torque tracking error e.sub.T[k]<−B.sub.w, meaning that the torque needs to be decreased significantly. The active voltage vectors V.sub.5(001) and V.sub.6(101) can decrease the torque and therefore can be applied to reduce the tracking error. The durations of these two vectors in one switching cycle can be assigned according to the output s.sub.ψ of the stator flux saturation controller 206 in order to obtain a smooth and circular trajectory for the stator flux. The zero vectors V.sub.0(000) and/or V.sub.7(111) will be selected but not used. Scenario (4): When c.sub.T[k]=c.sub.T[k−1]=0, either e.sub.T[k]<−B.sub.x, or |e.sub.T[k]|<B.sub.w. If e.sub.T[k]<−B.sub.w, then the voltage vector assignment in scenario (3) is implemented. If |e.sub.R|[l]<B.sub.w, similar to scenario 2, the PMSM drive system is operating in a quasi-steady state and the torque T.sub.e only needs to be adjusted slightly to keep the torque error e.sub.T within the boundaries B.sub.w. In this case, the active vectors V.sub.5(001) and V.sub.6(101) are not applied for the whole switching cycle. The zero vectors V.sub.0(000) and/or V.sub.7(111) will be used for a certain period of the switching cycle to reduce the torque ripple. One or both of the active vectors V.sub.5(001) and V.sub.6(101) can be applied for a portion of the switching cycle. Scenarios (3) and (4) are usually seen in the regenerative braking mode of the PMSM.
(75) Using a combination of V.sub.0(000) and V.sub.7(111), as described above with respect to TABLE 3, may reduce the harmonics of output voltages or currents. The activation times for zero vectors in a switching cycle are determined by the output s.sub.T of the torque saturation controller 204. The activation times of the active and passive vectors for the same switching cycle can be determined using methods as described in detail herein.
(76) In this example of the switching table 208 in which a combination of V.sub.0(000) and V.sub.7(111) is used, the duty ratio modulator 209 determines the duty ratio vector d based on the following equation:
d=s.sub.T(s.sub.ψv.sub.act1+(1−s.sub.ψ).Math.v.sub.act2)++(1−s.sub.T).Math.(μ.Math.V.sub.0+(1−μ).Math.V.sub.7), when (c.sub.T=1) (12)
d=(1−s.sub.T)(s.sub.ψ−v.sub.act1+(1−s.sub.ψ).Math.v.sub.act2)+s.sub.T.Math.(μ.Math.V.sub.0+(1−μ).Math.V.sub.7), when (c.sub.T=0) (13)
where v.sub.act1, v.sub.act2, V.sub.0 and V.sub.7 are the selected four voltage vectors. The vectors v.sub.act1, v.sub.act2 are selected from the active vectors. μ is a weighting factor determining the weights of two zero vectors. μ can be a constant or a variable. Equations (12) and (13) differ from equations (10) and (11) in that equations (12) and (13) include the weighting factor μ that determines the activation times for the zero vectors V.sub.0 and V.sub.7 relative to one another.
(77) When the DTC system 200 implements the duty ratio modulation scheme shown in equations (12) and (13), the value for the weighting factor μ can determine specific pulse width modulation (PWM) techniques facilitated by the switching table 208 and the duty ratio modulator 209. These techniques include, for example, continuous PWM (CPWM) implemented in the DTC system 200 when the weighting factor μ=0.5, discontinuous PWM minimum (DPWMMIN) implemented in the DTC system 200 when the weighting factor μ=1, discontinuous PWM maximum (DPWMMAX) implemented in the DTC system 200 when the weighting factor μ=0, discontinuous PWM (DPWM) implemented in the DTC system 200 when the value for the weighting factor μ varies when the stator flux linkage ψ.sub.s is positioned in different sector numbers. While the values for the weighting factor μ are described to be 0, 0.5, or 1, the weighting factor μ can be set to other values to achieve optimal performance under different operating conditions or applications of the DTC system 200.
(78) In a DPWMMAX scheme, when the weighting factor μ=0, the zero vector V.sub.7 is weighted such that the zero vector V.sub.7 is applied while the zero vector V.sub.0 is not applied. TABLE 4 below represents an example of the switching table equivalent to when the weighting factor μ=0. TABLE 4 is similar to the example of the switching table 208 represented in TABLE 2 except that the passive vector in each table entry of TABLE 4 is the zero vector V.sub.7(111).
(79) TABLE-US-00004 TABLE 4 Example of Switching Table 208 for the DTC System 200 when μ = 0 Sector 1 2 3 4 5 6 c.sub.T = 1 V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) c.sub.T = 0 V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111) V.sub.7(111)
(80) In a DPWMMIN scheme, when the weighting factor μ=1, the zero vector V.sub.0 is weighted such that the zero vector V.sub.0 is applied while the zero vector V.sub.7 is not applied. The switching table shown in TABLE 2 would correspond to the equivalent switching table when the value of μ is set to 1.
(81) In a CPWM scheme, when the weighting factor μ=0.5, the zero vector V.sub.0 and the zero vector V.sub.7 are equally weighted such that they have substantially equal activation times. The switching table 208 selects two active vectors v.sub.act1 and v.sub.act2 and two zero vectors V.sub.0 and V.sub.7 at one time based on the position of the stator flux ψ.sub.s within one of the six sectors and the torque comparator output c.sub.T. The switching table 208 for the CPWM scheme can correspond to the example of the switching table represented in TABLE 3. The activation times of each of the four selected inverter voltage vectors can be calculated by equation (12) or (13). In each switching cycle, equation (12) and (13) can be used to determine the duty ratio vector d when c.sub.T equals to 1 and 0, respectively.
(82) In a DPWM scheme, the weighting factor μ can vary depending on the sector number determined based on the position of the stator flux vs. In some examples, in a DPWM scheme, μ=1 for sectors 1, 3 and 5 and μ=0 for sectors 2, 4 and 6. The switching table for these values of μ corresponds to the equivalent switching table shown in TABLE 5 below.
(83) TABLE-US-00005 TABLE 5 Example of Switching Table 208 for the DTC System 200 when μ = 0 for Sectors 2, 4, and 6 and μ = 1 for Sectors 1, 3 and 5 Sector 1 2 3 4 5 6 c.sub.T = 1 V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.0(000) V.sub.7(111) V.sub.0(000) V.sub.7(111) V.sub.0(000) V.sub.7(111) c.sub.T = 0 V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.5(001) V.sub.5(001) V.sub.6(101) V.sub.1(100) V.sub.2(110) V.sub.3(010) V.sub.4(011) V.sub.0(000) V.sub.7(111) V.sub.0(000) V.sub.7(111) V.sub.0(000) V.sub.7(111)
(84) The weighting factor μ can be preprogrammed into the motor controller 215 such that the switching table 208 can operate using one of the PWM control schemes described herein. In some implementations, the preprogrammed weighting factor μ is a default value, and the motor controller 215 may include a user interface that the user can use to control the value for the weighting factor μ. The motor controller 215 can include, for example, a touchscreen display, a keyboard, a switch, a dial, a keypad, or other device that enables a user of the motor controller 215 to easily select the value for the weighting factor μ.
(85) Additional Implementations of DTC
(86) The DTC system 200 includes a torque control loop that mitigates the torque error e.sub.T and a stator flux control loop that mitigates the flux error e.sub.ψ. In some implementations of the DTC system 200, the saturation controllers 204 and 206 may provide the following attributes for the control loops: In the torque control loop, a 50% to 50% distribution between the active vectors and the zero vector in one switching cycle may maintain the torque tracking error e.sub.T to be zero; In the stator flux control loop, a 50% to 50% distribution between the selected two active vectors may maintain the stator flux magnitude error e.sub.ψ to be zero.
(87) In some implementations, the DTC system 200 can implement the saturation controllers 204 and 206 as adaptive saturation controllers that can reduce the error associated with non-ideal performance of the control loops. The saturation controllers 204 and 206, when implemented as adaptive saturation controllers, can generate outputs s.sub.T and s.sub.ψ using the following equation:
(88)
where x is an input (e.g., the stator flux error e.sub.ψ or the torque error e.sub.T); is the upper boundary; sat(x, B.sub.w) is an output (e.g., the torque saturation controller output s.sub.T or the stator flux saturation controller output s.sub.ψ); sgn(x) is the sign function; and d* is an equilibrium duty ratio. The equilibrium duty ratio d* is the output of the saturation controller when the input x of the saturation controller is zero. Each of the saturation controllers 204 and 206 can have an equilibrium duty ratio d*, which reduces steady state error associated with, for example, stator flux and torque ripple.
Torque Control Loop
(89) In some implementations, the torque control loop can account for variations in back electromotive force (EMF) variations of the motor 202 using the equilibrium duty ratio d*. The back EMF is directly proportional to the rotor speed of the motor 202. The output voltage u.sub.abc of the inverter 214 can be adjusted with speed variations of the motor 202 to generate the desired torque.
(90)
(91) When the motor 202 is operating in a steady state, a constant torque reference T.sub.e* and constant stator flux reference |ψ.sub.s|* are applied. As a result, the torque error e.sub.T and stator flux error e.sub.ψ in the kth step are both zero. In order to output the desired electromagnetic torque T.sub.e in the next step, the torque angle is constant. Thus, the angle swept by the stator flux vectors ψ.sub.sαβ[k+1] and ψ.sub.sαβ[k] and the angle swept by the rotor flux vectors ψ.sub.mαβ[k+1] and ψ.sub.mαβ[k] within one sampling period are identical. The change of the stator flux magnitude within one sampling period can be neglected. Therefore, the mathematical relation in the stator flux triangle shown in
(92)
Since the angle increment
(93)
between two time steps is small, equation (13) can be simplified. As shown in
(94)
The equivalent duty ratio for the torque-loop saturation controller can thus be derived as
(95)
where u=V.sub.DV[k]/√{square root over (3)} in the linear modulation region for a three-phase two-level inverter. The duty ratio expressed in equation (15) can be implemented into the torque control loop in order to reduce torque ripple associated with variations in the motor speed or causes of steady state error.
Stator Flux Control Loop
(96) In some implementations, the stator flux control loop can account for variations in the stator flux waveform using the equilibrium duty ratio d*. For example, the stator flux control loop can improve the fidelity of the stator flux waveform as the stator flux vector ψ.sub.s moves from one sector to another sector in the αβ reference frame. In some instances, saturation controllers can lead to six-pulse periodic oscillations of the stator flux waveform because the increment and the decrement of the magnitude of the stator flux vector caused by the two selected active voltage vectors are unequal.
(97) In one example illustrated in
(98)
V.sub.2.sub._.sub.ψ can be set to equal V.sub.3.sub._.sub.ψ so that the magnitude of stator flux vector ψ.sub.s remains substantially the same with application of the active voltage vectors. The on-time ratio between V.sub.2.sub._.sub.ψ and V.sub.3.sub._.sub.ψ can be then expressed as
(99)
by applying |V.sub.2|=|V.sub.3|. According to equations (10) and (11), the total on-time of the two active vectors satisfies the equation t.sub.on.sub._.sub.V.sub.
(100)
The right-hand-side term of equation (19) can be approximated by a linear function
(101)
The equilibrium duty ratio d.sub.ψ*[k] of the flux-loop saturation controller 206 expressed by equation (11) can be approximated by
(102)
With this modification, the DTC system can account for variations in the magnitude of the active voltage vectors which can shift the magnitude of the stator flux vector vs. The modification can further reduce the stator flux ripples, allow the trajectory of the stator flux to become smoother and more circular, and reduce the six-pulse periodic oscillations in the stator flux.
Examples Comparing DTC Systems
(103) The following sections describe simulations and experiments that measure the performance of the hysteresis controller-based and saturation controller-based DTC schemes. The implemented hysteresis controller-based scheme corresponds to the DTC system 100 described with respect to
(104) Computational Simulations
(105) Simulation studies were carried out in MATLAB®/Simulink® to validate the proposed DTC scheme for a 200 W PMSM drive system. The parameters of the PMSM were as follows: rated power=200 W; maximum speed=3000 RPM; R=0.235Ω; L.sub.d=0.275 mH; L.sub.q=0.364 mH; voltage constant K.sub.e=9.7 V/kRPM; number of pole pairs p=4; momentum of inertia J=0.000007 kg.Math.m.sup.2; DC bus voltage of the inverter=41.75 V; and sampling frequency is 10 kHz.
The boundaries of the torque and stator flux saturation functions and hysteresis comparators were 0.3 N.Math.m and 0.003 V.Math.s, respectively. The dead-time effect and voltage drop of the power electronics devices were not considered in the simulation model.
(106) The steady-state performances of the saturation controller-based DTC and the hysteresis controller-based DTC were compared under various operating conditions. Firstly, the PMSM was operated at 1500 RPM and the commands of the torque and the stator flux linkage were 0.75 N.Math.m and 0.0135 V.Math.s, respectively.
(107) The torque and stator flux waveforms of the saturation controller-based DTC system are shown in
(108)
(109) Steady-State Experimental Study
(110) Experimental studies were carried out on the 200 W PMSM drive system used in simulation studies. Referring to
(111) The steady-state performances of the saturation controller-based DTC and the hysteresis controller-based DTC are compared in
(112) Dynamic Response Experimental Study
(113) Using the control system shown in
(114) The dynamic responses of the saturation controller-based DTC and the hysteresis controller-based DTC were also tested when the PMSM drive system was in the speed control mode. In this mode, the torque command was generated by a PI controller which was driven by the rotor speed error. The speed command was 1500 RPM at the beginning and was changed to 2500 RPM at 1 s. The PI gains of the speed controller were k.sub.p=0.2 and k.sub.i=0.05, respectively. The torque command had an upper limit of 0.8 N.Math.m and the load was 0.36 N.Math.m.
(115) Examples Comparing PWM Techniques
(116) The following sections describe simulations and experiments that measure the performance of the PWM techniques described herein, in particular, CPWM when (μ=0.5), DPWMMIN (when μ=1), DPWMMAX (when μ=0), DPWM (when μ=1 for sectors 1, 3 and 5 and μ=0 for sectors 2, 4 and 6). These techniques are implemented using the DTC system 200 depicted in
(117) The four approaches generate four different PWM waveforms, i.e., DPWMMIN, DPWMMAX, DPWM, and CPWM, in each control cycle of the DTC system. The performance of the four zero-voltage-vector-selection approaches is evaluated by simulation studies in MATLAB®/Simulink® and experimental studies on a 200-W salient-pole PMSM drive system. Results show that the CPWM scheme had lower torque ripple, less steady-state torque error, and lower stator current total harmonic distortion (THD). The number of switching actions in one electrical revolution in the CPWM scheme was usually higher than that in the DPWM scheme.
(118) Computational Simulations
(119) Simulation studies were carried out in MATLAB®/Simulink® to evaluate the saturation controller-based DTC system with the proposed four different zero voltage vector selection schemes for a 200-W salient-pole PMSM drive system. The parameters of the PMSM were as follows: the maximum speed is 3000 rpm; R=0.235Ω; L.sub.d=0.275 mH; L.sub.q=0.364 mH; the voltage constant K.sub.e=9.7 V/krpm; the number of pole pairs is p=4; the momentum of inertia is J=0.000007 kg.Math.m2; the DC bus voltage of the inverter is 41.75 V; and the sampling frequency is 10 kHz.
The boundaries of the torque and stator flux saturation functions and the hysteresis comparator were 0.3 N.Math.m and 0.003 V.Math.s, respectively. The steady-state performances of the four zero voltage vector selection schemes were compared for the PMSM operating at 1500 rpm, where the commands of the torque and the stator flux magnitude were 0.75 N.Math.m and 0.0135 V.Math.s, respectively.
(120) The stator current, torque magnitude, and duty ratio of the system using the four zero voltage vector selection schemes are compared in
(121) The steady-state torque error, torque ripples, THD of stator phase current, and switching frequency of the four schemes are compared in TABLE 6.
(122) TABLE-US-00006 TABLE 6 Steady-State Performance of DPWMMIN, CPWM, DPWM, and DPWMMAX schemes Performance metric DPWMMIN CPWM DPWM DPWMMAX Steady-state 0.0220 0.0102 0.0198 0.0166 torque error (N .Math. m) Torque ripple 0.0391 0.0217 0.0390 0.0379 (N .Math. m) THD of stator 6.00 3.98 5.91 6.13 phase current (%) f.sub.av (kHz) 6.7 10 6.7 6.7
(123) The average switching frequency, f.sub.av, was calculated using f.sub.av=NT/T, where NT is the total number of switching times of one IGBT switch of the inverter during a fixed period T, which was 0.01 s in the simulation. As shown in
(124) The duty ratio d and the PWM output waveforms were also compared.
(125)
(126) Experimental Results Experimental studies were carried out to further evaluate the three zero voltage vector selection schemes for the 200-W PMSM drive system used in the simulation studies. The control algorithms were implemented in a dSPACE 1104 real-time control system with a sampling period of 100 μs. The dead time was set as 1 μs. The hardware setup of the experimental system is schematically depicted in
(127) Results are shown in
(128) TABLE-US-00007 TABLE 7 Steady-State Performance of the DPWMMIN, CPWM, DPWM Schemes Performance metric DPWMMIN CPWM DPWM Steady-state torque error (N .Math. m) 0.0080 0.0057 0.0132 Torque ripple (N .Math. m) 0.0280 0.0134 0.0337 THD of stator phase current (%) 5.82 3.45 5.64 f.sub.av (kHz) 6.7 10 6.7
(129) The DTC system 200 has many applications, such as for use in driving motors in electric vehicles and industrial motors. Other applications include AC machines in home appliances, military manned/unmanned platforms and systems, wind energy conversion systems, offshore platforms, and robotics, etc. For these various applications and systems, the DTC system 200 can be used to control a speed or acceleration of the motors.
(130) Various components or modules of the DTC system 200 and the motor controller 215, such as the torque and stator flux estimator 210, the switching table 208, the saturation controllers 204 and 206, the torque comparator 205, the duty ratio modulator 209, and summers that generate the torque error and the stator flux error, can be implemented in hardware, software, firmware, or a combination of the above. The components or modules can be implemented using discrete components or integrated circuits. Various components or modules of the DTC system 200 can be implemented using one or more data processors (e.g., general purpose processors or digital signal processors), in combination with one or more data storages that store instructions to be executed by the one or more data processors for implementing the various functions of the DTC system 200, such as performing calculations according to various equations described above. The data storages can be computer-readable mediums (e.g., RAM, ROM, SDRAM, hard disk, optical disk, and flash memory). The one or more processors can execute instructions to implement the functions performed by the modules of DTC system 200. The modules can also be implemented using application-specific integrated circuits (ASICs). The term “computer-readable medium” refers to a medium that participates in providing instructions to a processor for execution, including without limitation, non-volatile media (e.g., optical or magnetic disks), and volatile media (e.g., memory) and transmission media. Transmission media includes, without limitation, coaxial cables, copper wire and fiber optics.
(131) The features described above can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language (e.g., C, Java), including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, a browser-based web application, or other unit suitable for use in a computing environment.
(132) Suitable processors for the execution of a program of instructions include, e.g., both general and special purpose microprocessors, digital signal processors, and the sole processor or one of multiple processors or cores, of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
(133) While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results.
(134) A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. For example, the saturation controllers 204 and 206 can map the input x to the output s according to various functions. For example, when the input x is between the lower and upper boundaries, the relationship between the input x and the output s does not necessarily have to be linear, but can also be based on, e.g., a piecewise linear function, a Sigmoid function, or other functions.
(135) While the inverter 114 and the inverter 214 have been described as two-level three-phase inverters, in some examples, the inverter 214 can have a single phase, two phases, or greater than four phases. In such cases, the switching table can include the appropriate number of entries based on the number of available switching states of the inverter.
(136) While the DTC systems 100, 200 have been described as including an inverter, in some examples, instead of an inverter, the DTC systems 100, 200 include an analog AC output device that provides currents and voltage to the motor. The AC output device can be, for example, a power supply that receives the control signals delivered by the motor controllers 115, 215 and supplies a predetermined voltage and current based on the control signals.
(137) With respect to the DTC system 200, while the normalized discrete states for the saturation controllers 204, 206 have been described to be 0 and 1, these values may differ depending on the application. For example, in some implementations, the discrete states can be −1 and 1. In some examples, the output value from the saturation controllers 204, 206 between the discrete states can be linearly proportional to the input error. For example, as described herein, the output value linearly increases as the input value varies from the lower boundary −B.sub.w to the upper boundary B.sub.w. In some cases, instead of linearly varying with the input error, the output value can vary with the input error in accordance to a logistic function, an exponential function, a combination of several step functions, or other function in which the output value varies between a low value and a high value as the input value varies between the lower boundary −B.sub.w and the upper boundary B.sub.w.
(138) While one example of a DPWM scheme is described as corresponding to when μ=1 for sectors 1, 3 and 5 and μ=0 for sectors 2, 4 and 6, the DPWM scheme can include values for the weighting factor μ that are between 0 and 1, for example, between 0.1 and 0.5, or between 0.5 and 0.9. In some implementations, a different value for the weighting factor μ is assigned to each sector.
(139) In other implementations of the DTC system, a combination of saturation and hysteresis controllers can be used to deliver inputs to the duty ratio modulator. For example, the torque error can be fed into a saturation controller while the flux error can be fed into a hysteresis controller. The output from those controller can then be delivered to the duty ratio modulator, which adopts a modified duty ratio equation to determine the duty ratio vector.
(140) Accordingly, other implementations are within the scope of the following claims.