Motor control device
11387760 · 2022-07-12
Assignee
Inventors
Cpc classification
H02P6/06
ELECTRICITY
H02P27/12
ELECTRICITY
H02P21/12
ELECTRICITY
H02P21/0021
ELECTRICITY
B62D5/0463
PERFORMING OPERATIONS; TRANSPORTING
International classification
H02P21/00
ELECTRICITY
H02P6/00
ELECTRICITY
Abstract
A motor control device includes: a second setting unit configured to set an armature current command value and a current phase angle command value based on a rotation speed and a motor torque command value; and a current vector setting unit configured to set a d-axis current command value and a q-axis current command value based on the armature current command value and the current phase angle command value. The second setting unit is configured to set the armature current command value and the current phase angle command value such that an armature current vector which is set based on the d-axis current command value and the q-axis current command value is included in an area surrounded by an armature current vector locus in maximum torque/current control and a vertical axis in a d-q coordinate system.
Claims
1. A motor control device that controls a motor using a reluctance torque, the motor control device comprising: a first setting unit configured to set a motor torque command value which is a command value of a motor torque which is to be generated from the motor; a rotation speed detecting unit configured to detect a rotation speed of the motor; a second setting unit configured to set an armature current command value and a current phase angle command value based on the rotation speed and the motor torque command value; a current vector setting unit configured to set a d-axis current command value and a q-axis current command value based on the armature current command value and the current phase angle command value; and a drive unit configured to drive the motor based on the d-axis current command value and the q-axis current command value, wherein the second setting unit is configured to set the armature current command value and the current phase angle command value such that an armature current vector which is set based on the d-axis current command value and the q-axis current command value is included in an area surrounded by an armature current vector locus in maximum torque/current control and a vertical axis in a d-q coordinate system with a d-axis current on a horizontal axis and with a q-axis current on the vertical axis.
2. The motor control device according to claim 1, further comprising: a first table in which a motor torque generated from the motor is stored in correlation with a combination of an armature current command value and a current phase angle command value in which the motor torque is maximized at the corresponding armature current command value; and a second table in which armature current command values, current phase angle command values, and motor torques at a plurality of operating points on a voltage limiting oval are stored in correlation for each rotation speed of the motor, wherein the second setting unit is configured to calculate an armature current command value and a current phase angle command value of a first candidate based on the motor torque command value and the first table, to calculate an armature current command value and a current phase angle command value of a second candidate based on the rotation speed, the motor torque command value, and the second table, to set the armature current command value and the current phase angle command value of the first candidate as command values when the current phase angle command value of the first candidate is equal to or greater than the current phase angle command value of the second candidate, and to set the armature current command value and the current phase angle command value of the second candidate as command values when the current phase angle command value of the first candidate is less than the current phase angle command value of the second candidate.
3. The motor control device according to claim 2, wherein the plurality of operating points on the voltage limiting oval corresponding to a rotation speed of the motor includes an operating point at which the motor torque is maximized at the rotation speed.
4. The motor control device according to claim 1, further comprising: a first table in which a motor torque generated from the motor is stored in correlation with a combination of an armature current command value and a current phase angle command value in which the motor torque is maximized at the corresponding armature current command value; and a third table in which armature current command values, current phase angle command values, and motor torques at a plurality of third operating points including a first operating point at which the motor torque is maximized at a corresponding rotation speed and a plurality of second operating points which is set in a direction in which an operating point moves from the first operating point when an inter-terminal voltage of the motor decreases are stored in correlation for each rotation speed of the motor (18), wherein the second setting unit is configured to set the armature current command value and the current phase angle command value based on the motor torque command value and the first table when the rotation speed is equal to or lower than a predetermined value and to set the armature current command value and the current phase angle command value based on the rotation speed, the motor torque command value, and the third table when the rotation speed is higher than the predetermined value.
5. The motor control device according to claim 4, wherein the plurality of third operating points is set on a straight line connecting the first operating point at the corresponding rotation speed and a convergent point which is set as an origin of the d-q coordinate system or a predetermined point close to the origin for each rotation speed in the d-q coordinate system.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) Features, advantages, and technical and industrial significance of exemplary embodiments of the disclosure will be described below with reference to the accompanying drawings, in which like signs denote like elements, and wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
DETAILED DESCRIPTION OF EMBODIMENTS
(15) Hereinafter, embodiments of the disclosure will be described in detail with reference to the accompanying drawings.
[1] First Embodiment
(16)
(17) The steering shaft 6 includes an input shaft 8 that is connected to the steering wheel 2 and an output shaft 9 that is connected to the intermediate shaft 7. The input shaft 8 and the output shaft 9 are connected via a torsion bar 10 such that they can rotate relative to each other. A torque sensor 11 is provided around the steering shaft 6. The torque sensor 11 detects a steering torque T.sub.h which is applied to the steering wheel 2 based on a relative rotational displacement between the input shaft 8 and the output shaft 9. The steering torque T.sub.h which is detected by the torque sensor 11 is input to an electronic control unit (ECU) 12.
(18) The turning mechanism 4 is constituted by a rack and pinion mechanism including a pinion shaft 13 and a rack shaft 14 which is a turning shaft. The turning wheels 3 are connected to ends of the rack shaft 14 via tie rods 15 and knuckle arms (not illustrated). The pinion shaft 13 is connected to the intermediate shaft 7. A pinion 16 is connected to a tip of the pinion shaft 13. The rack shaft 14 extends in a straight line shape in a lateral direction of the vehicle. A rack 17 that engages with the pinion 16 is formed in the middle in an axial direction of the rack shaft 14. Rotation of the pinion shaft 13 is converted to movement in an axial direction of the rack shaft 14 by the pinion 16 and the rack 17. By moving the rack shaft 14 in the axial direction, the turning wheels 3 can be turned.
(19) When the steering wheel 2 is steered (rotated), this rotation is transmitted to the pinion shaft 13 via the steering shaft 6 and the intermediate shaft 7. The rotation of the pinion shaft 13 is converted into movement in the axial direction of the rack shaft 14 by the pinion 16 and the rack 17. Accordingly, the turning wheels 3 are turned. The steering assist mechanism 5 includes an electric motor 18 for assisting with steering and a reduction gear 19 that transmits an output torque of the electric motor 18 to the turning mechanism 4. In this embodiment, the electric motor 18 is constituted by a synchronous reluctance motor. The reduction gear 19 is constituted by a worm gear mechanism including a worm gear 20 and a worm wheel 21 that engages with the worm gear 20. The reduction gear 19 is accommodated in a gear housing 22.
(20) The worm gear 20 is rotationally driven by the electric motor 18. The worm wheel 21 is connected to the steering shaft 6 such that they can rotate integrally. The worm wheel 21 is rotationally driven by the worm gear 20. When the worm gear 20 is rotationally driven by the electric motor 18, the worm wheel 21 is rotationally driven and the steering shaft 6 rotates. The rotation of the steering shaft 6 is transmitted to the pinion shaft 13 via the intermediate shaft 7. The rotation of the pinion shaft 13 is converted into movement in the axial direction of the rack shaft 14 by the rack and pinion mechanism. Accordingly, the turning wheels 3 are turned. That is, by rotationally driving worm gear 20 using the electric motor 18, steering assist using the electric motor 18 becomes possible.
(21) A rotation angle of a rotor (hereinafter referred to as a “rotor rotation angle”) of the electric motor 18 is detected by a rotation angle sensor 25 such as a resolver. An output signal of the rotation angle sensor 25 is input to the ECU 12. The electric motor 18 is controlled by the ECU 12 which is a motor control device.
(22) The electric motor 18 is a synchronous reluctance motor as described above and includes a rotor 100 including a plurality of protruding pole portions which are arranged at intervals in a circumferential direction and a stator 105 including an armature winding as schematically illustrated in
(23) A three-phase fixed coordinate system (a UVW coordinate system) with a U axis, a V axis, and a W axis set to the directions of the phase stator coils 101, 102, and 103 is defined. A two-phase rotary coordinate system (a d-q coordinate system, an actual rotary coordinate system) in which a d-axis direction is a direction of a protruding pole portion in which magnetic flux flows easily from the rotation center of the rotor 100 to an outer circumferential portion and a q-axis direction is a direction of a non-protruding pole portion in which magnetic flux does not flow easily from the rotation center of the rotor 100 to the outer circumferential portion is defined. The d-q coordinate system is an actual rotary coordinate system corresponding to a rotation angle (rotor rotation angle) θ of the rotor 100.
(24) In this embodiment, the rotor rotation angle (electrical angle) θ is defined as a rotation angle in the counterclockwise direction from the U axis to one protruding pole portion (the d axis) serving as a reference out of two neighboring protruding pole portions (d axis). The direction of the one protruding pole portion serving as a reference is defined as a +d-axis direction and the direction of the other protruding pole portion adjacent thereto is defined as a −d-axis direction. An axis rotating by an electrical angle of +90 degrees from the +d axis is defined as a +q axis, and an axis rotating by an electrical angle of −90 degrees from the +d axis is defined as a −q axis. Magnetic poles (an N pole and an S pole) caused in the rotor 100 (the protruding pole portions) are determined by a direction of a current vector I.sub.a in the d-q coordinate system. In this embodiment, the forward rotation direction of the electric motor 18 corresponds to the counterclockwise direction (CCW) of the rotor 100 in
(25) Coordinate conversion between the UVW coordinate system and the d-q coordinate system is performed using the rotor rotation angle θ (for example, see Expressions (1) and (2) in Japanese Unexamined Patent Application Publication No. 2009-137323 (JP 2009-137323 A)). In this specification, a current flowing in an armature winding is referred to as an “armature current” or a “motor current.” A current vector I.sub.a in the d-q coordinate system is a vector of a current (an armature current vector) flowing in the armature winding. β represents a current phase angle and is a phase difference between the armature current vector I.sub.a and the d axis. i.sub.d represents a d-axis current and is expressed by i.sub.d=I.sub.a.Math.cos β. i.sub.q represents a q-axis current and is expressed by i.sub.q=I.sub.a−sin β.
(26)
(27) The microcomputer 31 includes a CPU and a memory and serves as a plurality of function processing units by executing a predetermined program. The memory includes a ROM, a RAM, and a nonvolatile memory 40. The plurality of function processing units includes a torque command value setting unit 41, a current command value setting unit 42, a current vector calculating unit (current vector setting unit) 43, a d-axis current difference calculating unit 44, a q-axis current difference calculating unit 45, a d-axis proportional integral (PI) control unit 46, a q-axis proportional integral (PI) control unit 47, a voltage limiting unit 48, a two-phase/three-phase coordinate converting unit 49, a PWM control unit 50, a current detecting unit 51, a three-phase/two-phase coordinate converting unit 52, a rotation angle calculating unit 53, and a rotation speed calculating unit 54.
(28) The rotation angle calculating unit 53 calculates a rotation angle of the rotor (a rotor rotation angle θ) of the electric motor 18 based on the output signal of the rotation angle sensor 25. The rotor rotation angle θ calculated by the rotation angle calculating unit 53 is given to the rotation speed calculating unit 54 and the coordinate converting units 49 and 52. The rotation speed calculating unit 54 calculates a rotation speed ω [rpm] of the electric motor 18 by integrating the rotor rotation angle θ calculated by the rotation angle calculating unit 53 with respect to time.
(29) The current detecting unit 51 detects phase currents i.sub.U, i.sub.V, and i.sub.W of the U phase, the V phase, and the W phase (hereinafter collectively referred to as “detected three-phase currents i.sub.U, i.sub.V, and i.sub.W”) based on the output signals of the current sensors 33, 34, and 35. The torque command value setting unit 41 sets a motor torque command value (hereinafter referred to as a “torque command value T.sub.s*”) which is a command value of a motor torque which is to be generated from the electric motor 18. Specifically, the torque command value setting unit 41 sets the torque command value T.sub.s* based on a steering torque detected by the torque sensor 11 (a detected steering torque T.sub.h). An example in which the torque command value T.sub.s* is set with respect to the detected steering torque T.sub.h is illustrated in
(30) The torque command value T.sub.s* has a positive value when the detected steering torque T.sub.h has a positive value, and has a negative value when the detected steering torque T.sub.h has a negative value. When the detected steering torque T.sub.h is 0, the torque command value T.sub.s* is 0. As the absolute value of the detected steering torque T.sub.h increases, the absolute value of the torque command value T.sub.s* increases. Accordingly, as the absolute value of the detected steering torque T.sub.h increases, the steering assist force can increase.
(31) The torque command value setting unit 41 sets the torque command value T.sub.s* corresponding to the steering torque T.sub.h, for example, using a map in which a relationship between the steering torque T.sub.h and the torque command value T.sub.s* is stored or a calculational expression indicating the relationship as illustrated in
(32) In the nonvolatile memory 40, a command value/maximum torque table 60 and a speed/command value table 70 are stored. The command value/maximum torque table 60 is an example of a “first table” in the claims, and the speed/command value table 70 in the first embodiment is an example of a “second table” in the claims. Details of these tables 60 and 70 will be described later. The current command value setting unit 42 sets an armature current command value I.sub.a* (I.sub.a*>0) and a current phase angle command value β* (β*>0) based on the torque command value T.sub.s*, the rotor rotation speed co, and the command value/maximum torque table 60 or the speed/command value table 70. Details of the current command value setting unit 42 will be described later.
(33) The current vector calculating unit 43 calculates a d-axis current command value i.sub.d* and a q-axis current command value i.sub.q* based on the armature current command value I.sub.a* and the current phase angle command value β* set by the current command value setting unit 42 and the sign of the torque command value T.sub.s*. Specifically, the current vector calculating unit 43 calculates the d-axis current command value id* using Expression (1).
i.sub.d*=I.sub.a*.Math.cos β* (1)
The current vector calculating unit 43 calculates the q-axis current command value i.sub.q* using Expression (2a) or (2b).
i.sub.q*=I.sub.a*.Math.sin β* if T.sub.s*>0 (2a)
i.sub.q*=I.sub.a*.Math.sin(−β*) if T.sub.s*<0 (2b)
(34) The d-axis current command value i.sub.d* and the q-axis current command value i.sub.q* may be collectively referred to as “two-phase instruction currents i.sub.d* and i.sub.q*.” The three-phase currents i.sub.U, i.sub.V, and i.sub.W detected by the current detecting unit 51 are given to the three-phase/two-phase coordinate converting unit 52. The three-phase/two-phase coordinate converting unit 52 converts the detected three-phase currents i.sub.U, i.sub.V, and i.sub.W to a d-axis current i.sub.d and a q-axis current i.sub.q (hereinafter collectively referred to as “detected two-phase currents i.sub.d and i.sub.q”) in the d-q coordinate system using the rotor rotation angle θ calculated by the rotation angle calculating unit 53. The d-axis current i.sub.d acquired by the three-phase/two-phase coordinate converting unit 52 is given to the d-axis current difference calculating unit 44. The q-axis current i.sub.q acquired by the three-phase/two-phase coordinate converting unit 52 is given to the q-axis current difference calculating unit 45.
(35) The d-axis current difference calculating unit 44 calculates a difference Δid (=i.sub.d*−i.sub.d) between the d-axis current i.sub.d and the d-axis current command value i.sub.d*. The d-axis PI control unit 46 calculates a d-axis instruction voltage v.sub.d′* by performing a proportional integral (PI) on the current difference Δi.sub.d calculated by the d-axis current difference calculating unit 44. The d-axis instruction voltage v.sub.d′* is given to the voltage limiting unit 48. The q-axis current difference calculating unit 45 calculates a difference Δiq (=i.sub.q*−i.sub.q) between the q-axis current i.sub.q and the q-axis current command value i.sub.q*. The q-axis PI control unit 47 calculates a q-axis instruction voltage v.sub.q′* by performing a proportional integral (PI) on the current difference Δi.sub.q calculated by the q-axis current difference calculating unit 45. The q-axis instruction voltage v.sub.q′* is given to the voltage limiting unit 48.
(36) The voltage limiting unit 48 is provided to avoid a state in which an induced voltage in the electric motor 18 is higher than a source voltage and a current cannot flow in the electric motor 18 (a voltage saturated state). For example, the voltage limiting unit 48 limits the d-axis instruction voltage v.sub.d′* to equal to or less than a preset maximum d-axis voltage command value and limits the q-axis instruction voltage v.sub.q′* to equal to or less than a preset maximum q-axis voltage command value. The d-axis instruction voltage v.sub.d* and the q-axis instruction voltage v.sub.q* subjected to the limiting process by the voltage limiting unit 48 are given to the two-phase/three-phase coordinate converting unit 49.
(37) The two-phase/three-phase coordinate converting unit 49 converts the d-axis instruction voltage v.sub.d* and the q-axis instruction voltage v.sub.q* to instruction voltages v.sub.U*, v.sub.V*, and v.sub.W* of the U, V, and W phases using the rotor rotation angle θ calculated by the rotation angle calculating unit 53. The instruction voltages v.sub.U*, v.sub.V*, and v.sub.W* of the U, V, and W phases are collectively referred to as “three-phase instruction voltages v.sub.U*, v.sub.V*, and v.sub.W*.” The PWM control unit 50 generates a U-phase PWM control signal, a V-phase PWM control signal, and a W-phase PWM control signal with duty ratios corresponding to the U-phase instruction voltage v.sub.U*, the V-phase instruction voltage v.sub.V*, and the W-phase instruction voltage v.sub.W* and supplies the generated PWM control signals to the drive circuit 32.
(38) The drive circuit 32 includes three-phase inverter circuits corresponding to the U, V, and W phases. Power elements constituting the inverter circuits are controlled by the PWM control signal given from the PWM control unit 50 such that voltages corresponding to the three-phase instruction voltages v.sub.U*, v.sub.V*, and v.sub.W* are applied to the phase stator coils of the electric motor 18. The current difference calculating units 44 and 45 and the PI control units 46 and 47 constitute a current feedback control unit. The motor current (the armature current) flowing in the electric motor 18 is controlled by the function of the current feedback control unit such that it reaches the two-phase instruction currents i.sub.d* and i.sub.q* calculated by the current vector calculating unit 43.
(39) The command value/maximum torque table 60, the speed/command value table 70, and the current command value setting unit 42 will be described below in detail. First, the command value/maximum torque table 60 will be described. The command value/maximum torque table 60 includes a forward-rotation (CCW) armature current/current phase angle setting table (hereinafter referred to as a “forward-rotation table 61”) and a reverse-rotation (CW) armature current/current phase angle setting table (hereinafter referred to as a “reverse-rotation table 62”).
(40) In order to efficiently drive the electric motor 18, the electric motor 18 has only to be controlled such that a ratio of the motor torque to the armature current increases. The motor torque T.sub.s in a synchronous reluctance motor with the number of poles P.sub.n is expressed by Expression (3).
T.sub.s=P.sub.n.Math.(L.sub.d−L.sub.q).Math.i.sub.d.Math.i.sub.q (3)
L.sub.d is a d-axis inductance [H] and L.sub.q is a q-axis inductance [H]. i.sub.d is a d-axis current [A] and i.sub.q is a q-axis current [A].
(41) When the magnitude of the armature current is defined as I.sub.a and the current phase angle is defined as β, i.sub.q=I.sub.a.Math.sin β and i.sub.d=I.sub.a−cos β are satisfied and thus the motor torque T.sub.s is expressed by Expression (4). The current phase angle β represents a phase difference between the armature current vector and the d axis.
T.sub.s=(½).Math.P.sub.n.Math.(L.sub.d−L.sub.q).Math.I.sub.a.sup.2 sin 2β (4)
Accordingly, when the d-axis inductance L.sub.d and the q-axis inductance L.sub.q do not change, the motor torque T.sub.s is maximized when the current phase angle β is 45 degrees. However, in the synchronous reluctance motor, since the d-axis inductance L.sub.d and the q-axis inductance L.sub.q are changed due to magnetic saturation of the rotor core and the stator core, the motor torque T.sub.s may not be maximized when the current phase angle is 45 degrees.
(42)
(43) As illustrated in
(44)
(45) In this example, data of K armature current command values I.sub.a* is stored in the forward-rotation table 61. The K armature current command values I.sub.a* have a relationship of I.sub.a1*<I.sub.a2*< . . . <I.sub.a(K-1)*<I.sub.aK*. The motor torque T.sub.s increases as the armature current command value I.sub.a* increases. The forward-rotation table 61 is prepared, for example, as follows. When a predetermined armature current command value I.sub.a*, a predetermined current phase angle command value β*, and a sign indicating the forward rotation direction are given to the current vector calculating unit 43 of the motor control circuit illustrated in
(46) By performing this test on each of a plurality of current phase angle command values β*, data of the motor torque T.sub.s for each combination of the predetermined armature current command value I.sub.a* and the plurality of current phase angle command values β* is acquired. The current phase angle command value β* at which the motor torque T.sub.s is maximized for the predetermined armature current command value I.sub.a* is identified based on the acquired data.
(47) By performing this test on each of a plurality of armature current command values I.sub.a*, data of the motor torque T.sub.s for a combination of an armature current command value I.sub.a* and a current phase angle command value β* at which the motor torque T is maximized therefor is acquired for each of the plurality of armature current command values I.sub.a*. Accordingly, data for preparing the forward-rotation table 61 is acquired. Although not illustrated, in the reverse-rotation table 62, the motor torque T.sub.s [Nm] generated from the electric motor 18 for a combination of an armature current command value I.sub.a* when the electric motor 18 rotates in the reverse rotation direction and a current phase angle command value β* at which the motor torque T.sub.s is maximized at the armature current command value I.sub.a* is stored for each armature current command value I.sub.a*.
(48) The reverse-rotation table 62 is prepared by performing the same test as the test performed to prepare the forward-rotation table 61. When the reverse-rotation table 62 is prepared, unlike when the forward-rotation table 61 is prepared, a sign indicating the reverse rotation direction is given to the current vector calculating unit 43 at the time of test. Accordingly, the electric motor 18 is reversely rotationally driven at the time of test.
(49) A method of acquiring the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the torque command value T.sub.s* based on the forward-rotation table 61 or the reverse-rotation table 62, and controlling the electric motor 18 based on the acquired armature current command value I.sub.a* and the acquired current phase angle command value β* is referred to as “maximum torque/current control.” The speed/command value table 70 will be described below. The speed/command value table 70 includes a torque command value table 71, a current command value table 72, and a current phase angle command value table 73 as illustrated in
(50) In the torque command value table 71, a plurality of motor torques T.sub.sn1 to T.sub.snM is stored for each of rotation speeds ω.sub.1 to ω.sub.N of the electric motor 18 as illustrated in
(51) In the current command value table 72, a plurality of armature current command values I.sub.an1* to I.sub.anM* corresponding to Torque Numbers 1 to M are stored for each of Speed Numbers 1 to N as illustrated in
(52)
(53) A d-axis current command value and a q-axis current command value for a current phase angle β at which the motor torque is maximized are calculated for each armature current I.sub.a based on i.sub.d=I.sub.a.Math.cos β and i.sub.q=I.sub.a.Math.sin β. Then, an end point of an armature current vector (hereinafter referred to as an “operating point”) corresponding to the d-axis current command value and the q-axis current command value for the current phase angle β at which the motor torque is maximized is plotted on the d-q coordinate system for each armature current I.sub.a. A curve passing through the points is drawn to obtain Curve A.
(54) In
(55) Curve B1 is a locus of the armature current vector corresponding to 1600 rpm, Curve B8 is a locus of the armature current vector corresponding to 3000 rpm, and the magnitude of the armature current vector when the current phase angle is 45 degrees decreases as the rotation speed increases. Curve C represents a straight line passing through the operating points on Curves B1 to B8 when the current phase angle is 45 degrees. For example, Curve B1 can be drawn as follows.
(56) The electric motor 18 is driven by giving a maximum value of the armature current command value I.sub.a* and a predetermined current phase angle command value β* to the current vector calculating unit 43 of the motor control circuit illustrated in
(57) The motor torque T.sub.s is measured using a measuring instrument which is not illustrated. The armature current I.sub.a can be calculated from the d-axis current command value i.sub.d* and the q-axis current command value i.sub.q* which are output from the coordinate converting unit 52 in
(58) When 1600 rpm is defined as Speed Number 1, M motor torques T.sub.s calculated for the rotation speed of 1600 rpm are stored as motor torques T.sub.s11 to T.sub.s1M in a row corresponding to Speed Number 1 in the torque command value table 71, for example, in the ascending order of the current phase angle command values β*. M armature currents I.sub.a calculated for the rotation speed of 1600 rpm are stored as armature current command values I.sub.a11* to I.sub.a1M* in a row corresponding to Speed Number 1 in the current command value table 72, for example, in the ascending order of the current phase angle command values β*. M current phase angle command values β* calculated for the rotation speed of 1600 rpm are stored as current phase angle command values β.sub.11* to β.sub.1M* in a row corresponding to Speed Number 1 in the current phase angle command value table 73, for example, in the ascending order of the current phase angle command values β*.
(59) M motor torques T.sub.n1 to T.sub.nM, M armature current command values I.sub.an1* to I.sub.anM*, and M current phase angle command values β.sub.n1* to β.sub.nM* for each of other Speed Numbers 2 to N are calculated in the same way and are stored in the torque command value table 71, the current command value table 72, and the current phase angle command value table 73. A method of acquiring an armature current command value I.sub.a* and a current phase angle command value β* corresponding to a torque command value T.sub.s* and a rotation speed ω based on the speed/command value table 70 and controlling the electric motor 18 based on the acquired armature current command value I.sub.a* and the acquired current phase angle command value β* is referred to as “torque/speed control.”
(60) The operation of the current command value setting unit 42 will be described below in detail.
(61) Specifically, first, the current command value setting unit 42 selects the table 61 or 62 of the rotation direction corresponding to the sign of the torque command value T.sub.s* out of the forward-rotation table 61 and the reverse-rotation table 62. Then, the current command value setting unit 42 acquires the armature current command value I.sub.a* and the current phase angle command value −β* corresponding to the torque command value T.sub.s* based on the selected table 61 or 62, and stores the acquired command values as an armature current command value I.sub.acan1* and a current phase angle command value β.sub.can1* of a first candidate in the memory.
(62) More specifically, the current command value setting unit 42 searches for a motor torque T.sub.s having the same magnitude as the torque command value T.sub.s* out of a plurality of motor torques T.sub.s in the selected table 61 or 62. When the motor torque T.sub.s having the same magnitude as the torque command value T.sub.s* can be searched for, the current command value setting unit 42 reads the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the motor torque T.sub.s from the table 61 or 62 and stores the read command values as the armature current command value I.sub.acan1* and the current phase angle command value β.sub.can1* of the first candidate in the memory.
(63) On the other hand, when the motor torque T.sub.s having the same magnitude as the torque command value T.sub.s* cannot be searched for, the current command value setting unit 42 performs the following process. The current command value setting unit 42 reads an armature current command value I.sub.a* and a current phase angle command value β* corresponding to a motor torque T.sub.s (hereinafter referred to as a “first motor torque T.sub.sL”) which is less than the torque command value T.sub.s* and which is closest to the torque command value T.sub.s* out of a plurality of motor torques Ts in the selected table 61 or 62.
(64) The current command value setting unit 42 reads an armature current command value I.sub.a* and a current phase angle command value β* corresponding to a motor torque T.sub.s (hereinafter referred to as a “second motor torque T.sub.sH”) which is greater than the torque command value T.sub.s* and which is closest to the torque command value T.sub.s* out of a plurality of motor torques T.sub.s in the selected table 61 or 62. Then, the current command value setting unit 42 calculates an armature current command value I.sub.a* and a current phase angle command value β* corresponding to the torque command value T.sub.s* by linearly interpolating the armature current command values I.sub.a* and the current phase angle command value β* of the read two groups.
(65) Specifically, the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the first motor torques T.sub.sL are set as I.sub.aL* and β.sub.L* and the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the second motor torque T.sub.sH are set as I.sub.aH* and β.sub.H*. T.sub.sH−T.sub.sL=ΔT.sub.s, I.sub.aH*−I.sub.aL*=ΔI.sub.a*, and β.sub.H*2−β.sub.L*=Δβ* are set.
(66) The current command value setting unit 42 calculates an armature current command value I.sub.a* and a current phase angle command value β* corresponding to the torque command value T.sub.s* based on Expressions (5) an (6) and stores the calculated command values as the armature current command value I.sub.acan1* and the current phase angle command value β.sub.can1* of the first candidate in the memory.
I.sub.a*=(ΔI.sub.a*/T.sub.s).Math.(T.sub.s*−T.sub.sL)+I.sub.aL* (5)
β*=(Δβ*/T.sub.s).Math.(T.sub.s*−T.sub.sL)+β.sub.L* (6)
(67) Then, the current command value setting unit 42 acquires the armature current command value I.sub.acan2* and the current phase angle command value β.sub.can2* of the second candidate based on the speed/command value table 70 (Step S2).
(68) Specifically, the current command value setting unit 42 acquires Speed Number n which is closest to an actual rotation speed co as a first speed number n1 from the torque command value table 71. Then, the current command value setting unit 42 searches for a motor torque T.sub.s having the same magnitude as the torque command value T.sub.s* out of a plurality of motor torques T.sub.s corresponding to the first speed number n1 in the torque command value table 71. When the motor torque T.sub.s having the same magnitude as the torque command value T.sub.s* can be searched for, the current command value setting unit 42 acquires the torque number m of the motor torque Ts as a first torque number m1.
(69) Then, the current command value setting unit 42 reads an armature current command value I.sub.a* and a current phase angle command value β* corresponding to the first speed number n1 and the first torque number m1 from the current command value table 72 and the current phase angle command value table 73 and stores the read command values as the armature current command value I.sub.acan2* and the current phase angle command value β.sub.can2* of the second candidate in the memory. On the other hand, when the motor torque T.sub.s having the same magnitude as the torque command value T.sub.s* cannot be searched for, the current command value setting unit 42 performs the following process. The current command value setting unit 42 acquires a torque number m corresponding to the motor torque T.sub.s (hereinafter referred to as a “first motor torque T.sub.sL”) which is less than the torque command value T.sub.s* and which is closest to the torque command value T.sub.s* out of a plurality of motor torque T.sub.s corresponding to the first speed number n1 in the torque command value table 71 as the first torque number m1. Then, the current command value setting unit 42 reads an armature current command value I.sub.a* and a current phase angle command value β* corresponding to the first speed number n1 and the first torque number m1 from the current command value table 72 and the current phase angle command value table 73 and stores the read command values as the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the first motor torque T.sub.sL in the memory.
(70) The current command value setting unit 42 acquires a torque number m corresponding to a motor torque T.sub.s (hereinafter referred to as a “second motor torque T.sub.sH”) which is greater than the torque command value T.sub.s* and which is closest to the torque command value T.sub.s* out of a plurality of motor torques Ts corresponding to the first speed number n1 in the torque command value table 71 as a second torque number m2. Then, the current command value setting unit 42 reads an armature current command value I.sub.a* and a current phase angle command value β* corresponding to the first speed number n1 and the second torque number m2 from the current command value table 72 and the current phase angle command value table 73 and stores the read command values as the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the second motor torque T.sub.sH in the memory.
(71) Then, the current command value setting unit 42 calculates an armature current command value I.sub.a* and a current phase angle command value β* corresponding to the torque command value T.sub.s* and the actual rotation speed ω by interpolating the armature current command values I.sub.a* and the current phase angle command values β* of the read two groups. Specifically, the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the first motor torque T.sub.sL are set as I.sub.aL* and β.sub.L*, and the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the second motor torque T.sub.sH are set as I.sub.aH* and β.sub.H*. T.sub.sH−T.sub.sL=ΔT.sub.s, I.sub.aH* −I.sub.aL*=ΔI.sub.a*, and β.sub.H*−β.sub.L*=Δβ* are set.
(72) The current command value setting unit 42 calculates the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the torque command value T.sub.s* and the actual rotation speed ω based on Expressions (5) and (6) and stores the read command values as the armature current command value i.sub.acan2* and the current phase angle command value β.sub.can2* of the second candidate in the memory. Then, the current command value setting unit 42 determines whether the current phase angle command value β.sub.can1* of the first candidate is equal to or greater than the current phase angle command value β.sub.can2* of the second candidate (Step S3). When β.sub.can1*≥β.sub.can2* is satisfied (Step S3: YES), the current command value setting unit 42 sets the armature current command value I.sub.acan1* and the current phase angle command value β.sub.can* of the first candidate as the armature current command value I.sub.a* and the current phase angle command value β* (Step S4). Accordingly, maximum torque/current control is performed. Then, the routine in this operation cycle ends.
(73) When it is determined in Step S3 that β.sub.can1*<β.sub.can2* is satisfied (Step S3: NO), the current command value setting unit 42 sets the armature current command value I.sub.acan2* and the current phase angle command value β.sub.can2* of the second candidate as the armature current command value I.sub.a* and the current phase angle command value β* (Step S5). Accordingly, torque/speed control is performed. Then, the routine in this operation cycle ends.
(74) The reason why the first candidate is selected when β.sub.can1*≥β.sub.can2* is satisfied and the second candidate is selected when β.sub.can1*≤β.sub.can2* is satisfied will be described below. Curves B1 to B8 in
(75) Curve A in
(76) On the other hand, when the operating point of torque/speed control is located on the left side with respect to Curve A, a target torque cannot be output in the maximum torque/current control. For example, when the actual rotation speed is 1600 [rpm] and the operating point of the torque/current control is located on the left side with respect to a crossing point of Curve A and Curve B1, a target torque cannot be output in the maximum torque/current control. Accordingly, in this case, it is preferable to control the electric motor 18 using torque/speed control. Therefore, when β.sub.can1*<β.sub.can2* is satisfied, the second candidate is set as the armature current command value I.sub.a* and the current phase angle command value β*.
(77) That is, in the first embodiment, the armature current command value I.sub.a* and the current phase angle command value β* are set such that a current vector set by the armature current command value I.sub.a* and the current phase angle command value β* is included in an area surrounded by the current vector locus (Curve A) in the maximum torque/current control and the q axis in the d-q coordinate system in
[2] Second Embodiment
(78) In the first embodiment, the speed/command value table 70 is prepared based on the assumption that the motor inter-terminal voltage is a predetermined reference voltage. When the motor inter-terminal voltage decreases, the voltage limiting oval is reduced. Accordingly, since characteristics indicated by Curves B1 to B8 in
(79) Accordingly, when the motor inter-terminal voltage decreases, there is a problem in that an area in which a motor torque cannot be output is generated even when a torque command value is in a range in which the motor torque can be output in the torque/speed control according to the first embodiment. The reason is that a command value corresponding to a motor torque which cannot be output as an armature current command value I.sub.a* and a current phase angle command value β* is set when the motor inter-terminal voltage decreases in the speed/command value table 70 according to the first embodiment and thus an unexpected armature current flows in the electric motor 18.
(80) An objective of the second embodiment is to realize motor control that can output a maximum torque, perform torque control in all rotation speed areas, and solve the aforementioned problem in the first embodiment. In the second embodiment, the method of preparing the speed/command value table 70 is different from that in the first embodiment. That is, the methods of preparing the torque command value table 71, the current command value table 72, and the current phase angle command value table 73 are different from those in the first embodiment. The second embodiment is different from the first embodiment in the operation of the current command value setting unit 42. The other points are the same as in the first embodiment.
(81) The method of preparing the speed/command value table 70 will be first described below with reference to
(82) Then, an operating point (hereinafter referred to as “maximum output point”) at which the motor torque is maximized is calculated at each of 8 types of rotation speeds which are different from each other by a predetermined value (200 rpm in this example) within a predetermined range of the rotation speed (a range from 1600 rpm to 3000 rpm in this example), and the calculated operating points are plotted on the d-q coordinate system. The operating points which are plotted into a closed dotted curve 91 in
(83) Then, an origin of the d-q coordinate system or a predetermined point close to the origin is set as a convergent point V. In this embodiment, a predetermined point on Curve A which is close to the origin of the d-q coordinate system is set as the convergent point V. The maximum output point at each rotation speed and the convergent point V are connected by a straight line. Accordingly, Straight Lines D1 to D8 are acquired at the 8 types of rotation speeds. Straight Line D1 is a straight line corresponding to 1600 rpm, Straight Line D8 is a straight line corresponding to 3000 rpm, and the rotation angle (the current phase angle β) from the d axis increases as the rotation speed increases.
(84) Then, M operating points including the maximum output point are set on the corresponding straight line for each of Straight Lines D1 to D8. In this embodiment, M operating points are set on each of Straight Lines D1 to D8 such that neighboring two operating points are distant at the same length. The M operating points are a plurality of operating points (third operating points) including the maximum output point (a first operating point) and a plurality of operating points (second operating points) which is set in a direction in which the operating point moves from the maximum output point when the inter-terminal voltage of the electric motor 18 decreases.
(85) Then, a d-axis current i.sub.d, a q-axis current i.sub.q, an armature current I.sub.a, and a current phase angle β corresponding to each of the set operating points are calculated. The armature current I.sub.a at a certain operating point is calculated from the d-axis current i.sub.d and the q-axis current i.sub.q at the operating point. Then, for each operating point, the armature current I.sub.a and the current phase angle β are given as an armature current command value I.sub.a* and a current phase angle command value β* to the current vector calculating unit 43 of the motor control circuit illustrated in
(86) For example, when 1600 rpm is defined as Speed Number 1, the motor torques T.sub.s at the M operating points on Straight Line D1 are stored as motor torques T.sub.s11 to T.sub.s1M in a row corresponding to Speed Number 1 in the torque command value table 71 (see
(87) M motor torques T.sub.n1 to T.sub.nM, M armature current command values I.sub.an1* to I.sub.anM*, and M current phase angle command values β.sub.n1* to β.sub.nM* for each of other Speed Numbers 2 to N are calculated in the same way and are stored in the torque command value table 71, the current command value table 72, and the current phase angle command value table 73. The speed/command value table 70 according to the second embodiment is an example of a “third table” in the claims.
(88) The operation of the current command value setting unit 42 will be described below in detail.
(89) When the actual rotation speed ω is equal to or lower than the predetermined rotation speed ω.sub.th (Step S11: YES), the current command value setting unit 42A sets the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the torque command value T.sub.s* using the command value/maximum torque table 60 (Step S12: YES). The method of calculating the armature current command value I.sub.a* and the current phase angle command value β* using the command value/maximum torque table 60 is the same as described in the first embodiment. Then, the routine in this operation cycle ends.
(90) When it is determined in Step S11 that the actual rotation speed ω is higher than the predetermined rotation speed ω.sub.th (Step S11: NO), the current command value setting unit 42 sets the armature current command value I.sub.a* and the current phase angle command value β* corresponding to the torque command value T.sub.s* and the actual rotation speed ω using the speed/command value table 70 (Step S13: YES). The method of calculating the armature current command value I.sub.a* and the current phase angle command value β* using the speed/command value table 70 is the same as described in the first embodiment. Then, the routine in this operation cycle ends.
(91) In the second embodiment, the armature current command value I.sub.a* and the current phase angle command value β* are set such that a current vector set by the d-axis current command value i.sub.d* and the q-axis current command value i.sub.q* is included in an area surrounded by the current vector locus in the maximum torque/current control and the q axis in the d-q coordinate system. Accordingly, it is possible to output a maximum torque and to output a motor torque corresponding to a motor torque command value in all rotation speed areas.
(92) In the second embodiment, a plurality of operating points is set in the direction in which the operating point moves due to the decrease in motor inter-terminal voltage, and an armature current, a current phase angle, and a motor torque corresponding to each operating point are set as table values of the speed/command value table 70. Accordingly, even when the motor inter-terminal voltage decreases, a motor torque can be output when a torque command value is in a range in which the motor torque can be output.
(93) That is, in the second embodiment, when the motor inter-terminal voltage decreases and a torque command value is in a range in which a motor torque can be output, the motor torque corresponding to the torque command value can be output. In other words, in the second embodiment, even when the motor inter-terminal voltage decreases, an area in which a motor torque corresponding to a torque command value can be output is wider than that in the first embodiment. Accordingly, it is possible to solve the problem in the first embodiment.
(94) While the first and second embodiments of the disclosure have been described above, the disclosure may be embodied in other forms. In the first and second embodiments, the microcomputer 31 includes the voltage limiting unit 48, but it may not include the voltage limiting unit 48. In the first and second embodiments, a synchronous reluctance motor that can rotate in two directions including the forward rotation direction and the reverse rotation direction has been exemplified, but the disclosure can also apply to an electric synchronous reluctance motor that is rotationally driven in only one direction.
(95) In the first and second embodiments, the electric motor 18 is a synchronous reluctance motor, but the electric motor 18 may be a motor (such as a switched reluctance motor or an IPM motor) other than the synchronous reluctance motor as long it is a motor in which a rotor is rotated using a reluctance torque. In the first and second embodiments, the disclosure has applied to a control device of an electric motor for an electric power steering system. However, the disclosure can also apply to a motor control device other than the control device of an electric motor for an electric power steering system as long as it is a control device of a motor which is controlled based on a torque command value.
(96) The disclosure can be subjected to various changes in design without departing from the scope of the disclosure described in the appended claims.