The disclosure of Japanese Patent Application No. 2012-271639 filed on Dec. 12, 2012 including the specification, drawings and abstract is incorporated herein by reference in its entirety.
1. Field of the Invention
The invention relates to a phase difference detector that detects a phase difference between output signals from two magnetic sensors, and a rotation angle detection device including the phase difference detector.
2. Description of the Related Art
As a rotation angle detection device that detects a rotation angle of a rotary body, there has been known a rotation angle detection device that detects a rotation angle of a rotor of a brush-less motor with the use of a detection rotor that rotates in accordance with the rotation of the brushless motor. Specifically, as illustrated in
In this example, the magnet 202 has five magnetic pole pairs. That is, the magnet 202 has ten magnetic poles arranged at equal angular intervals. The magnetic poles are arranged at angular intervals of 36° (180° in electrical angle) around the rotation central axis of the rotor 201. Further, the two magnetic sensors 221, 222 are arranged at an angular interval of 18° (90° in electrical angle) around the rotation central axis of the rotor 201.
The direction indicated by an arrow in
The angular range corresponding to one rotation of the rotor 201 is divided into five sections corresponding to the five magnetic pole pairs, a start position of each section is defined as 0°, and an end position of each section is defined as 360°. A rotation angle of the rotor 201 expressed under the above-described conditions is an electrical angle θ of the rotor 201. In this case, the first magnetic sensor 221 outputs an output signal of S1=A1·sinθ, and the second magnetic sensor 222 outputs an output signal of S2=A2·cosθ. Each of A1 and A2 represents an amplitude. If the amplitude A1 of the output signal S1 and the amplitude A2 of the output signal S2 are assumed to be equal to each other, the electrical angle θ of the rotor 201 is obtained with the use of both the output signals S1, S2 based on the following expression.
The thus obtained electrical angle θ is used to control the brushless motor. Refer to, for example, Japanese Patent Application Publication No. 2008-26297 (JP 2008-26297 A).
In the above-described conventional rotation angle detection device, the rotation angle θ is computed on the assumption that the amplitudes A1, A2 of the output signals S1, S2 output from the magnetic sensors 221, 222 are equal to each other. However, the amplitudes A1, A2 of the output signals S1, S2 vary depending on variations of the temperature characteristics of the magnetic sensors 221, 222 and temperature changes. Therefore, an error may be caused in detection of a rotation angle of the rotor due to variations of the temperature characteristics of the magnetic sensors 221,222 and temperature changes.
The inventors et al. developed a rotation angle detection device that detects a rotation angle of a rotary body such as a steering shaft, the rotation angle detection device including: two magnetic sensors that respectively output sinusoidal signals having a phase difference in accordance with rotation of the rotary body; and a computation unit that computes a rotation angle of the rotary body on the basis of a plurality of output signals from the magnetic sensors, which are sampled at different sampling timings. The computation unit is formed of, for example, an electronic control unit (ECU) including a computer.
The phase difference between the output signals from the two magnetic sensors exerts a significant influence on the rotation angle computation accuracy, and hence the phase difference needs to be accurately measured. Therefore, before factory shipment of the ECU, the phase difference between the output signals from the two magnetic sensors may be accurately measured and stored in a nonvolatile memory in the ECU. In order to accurately measure the phase difference, there may be employed a method in which waveforms of the output signals from the two magnetic sensors are monitored while the rotary body is rotated at a uniform velocity, and the phase difference is measured on the basis of the obtained waveforms and the rotation speed of the rotary body. However, in order to measure the phase difference according to such a method, a special device for rotating the rotary body at a uniform velocity is required.
If a failure or the like has occurred in the ECU and the ECU is replaced, the phase difference between the output signals from the two magnetic sensors is unknown. Therefore, the phase difference needs to be newly measured. However, in order to accurately measure the phase difference between the output signals from the two magnetic sensors, a special device for rotating the rotary body at a uniform velocity is required. Therefore, the phase difference cannot be easily measured.
One object of the invention is to provide a phase difference detector capable of easily detecting a phase difference between output signals from two magnetic sensors without using a special device, and a rotation angle detection device including the phase difference detector.
A phase difference detector according to an aspect of the invention includes: a multipolar magnet that rotates in accordance with rotation of a rotary body, and that has a plurality of magnetic poles; two magnetic sensors that are a first magnetic sensor and a second magnetic sensor, and that respectively output sinusoidal signals having a predetermined phase difference in accordance with rotation of the multipolar magnet; and a phase difference computation unit that computes the phase difference with use of the output signals from the two magnetic sensors. Where an output signal S1 from the first magnetic sensor is expressed by S1=A1sin(E1θ) in which A1 is an amplitude of the output signal S1, E1 is a magnetic pole width error correction value for the magnetic pole sensed by the first magnetic sensor, and θ is a rotation angle of the rotary body, an output signal S2 from the second magnetic sensor is expressed by S2=A2sin(E2θ+C) in which A2 is an amplitude of the output signal S2, E2 is a magnetic pole width error correction value for the magnetic pole sensed by the second magnetic sensor, and C is a phase difference between the output signal S2 from the second magnetic sensor and the output signal S1 from the first magnetic sensor, m is the number of the magnetic poles of the multipolar magnet, i is a natural number from 1 to m, which is used to relatively identify each of the magnetic poles, and E(i) is a magnetic pole width error correction value corresponding to each of the magnetic poles, the phase difference computation unit includes a first computation unit that executes a process of computing a value of E(i)·C corresponding to one and the same given magnetic pole sensed by the two magnetic sensors with use of six output signals that are sampled at three different timings while the two magnetic sensors are sensing the given magnetic pole when the rotary body is rotating, until values of E(i)·C corresponding to all the magnetic poles are computed, and a second computation unit that computes the phase difference C with use of the values of E(i)·C corresponding to all the magnetic poles computed by the first computation unit and the number m of the magnetic poles of the multipolar magnet.
In the above-described aspect, it is possible to automatically compute the phase difference between the output signals from the two magnetic sensors by rotating the rotary body. At this time, it is not necessary to rotate the rotary body at a uniform velocity. Therefore, it is possible easily detect the phase difference without using a special device.
A rotation angle detection device according to another aspect of the invention includes: the phase difference detector according to the above-described aspect; and a rotation angle computation unit that computes a rotation angle of the rotary body with use of four output signals from the two magnetic sensors, the four output signals being sampled at two different timings, and the phase difference C detected by the phase difference detector.
In this aspect, the rotation angle of the rotary body is computed with use of the four output signals from the two magnetic sensors, the four output signals being sampled at two different timings, and the phase difference C detected by the phase difference detector. Therefore, it is possible to detect the rotation angle with a higher degree of accuracy than that in the above-described conventional technique.
The foregoing and further features and advantages of the invention will become apparent from the following description of example embodiments with reference to the accompanying drawings, wherein like numerals are used to represent like elements and wherein:
Hereinafter, embodiments of the invention will be described with reference to the accompanying drawings. As illustrated in
The steering shaft 6 includes an input shaft 8 connected to the steering wheel 2 and an output shaft 9 connected to the intermediate shaft 7. The input shaft 8 and the output shaft 9 are connected to each other via a torsion bar 10 so as to be rotatable relative to each other on the same axis. That is, when the steering wheel 2 is rotated, the input shaft 8 and the output shaft 9 rotate in the same direction while rotating relative to each other.
A torque sensor (torque detection device) 11, to which a phase difference detector according to an embodiment of the invention is applied, is arranged around the steering shaft 6. The torque sensor 11 detects a steering torque applied to the steering wheel 2 on the basis of a relative rotational displacement between the input shaft 8 and the output shaft 9. The steering torque detected by the torque sensor 11 is input into an electronic control unit 12 for motor control (hereinafter, referred to as “motor control ECU 12”).
The steered mechanism 4 is formed of a rack-and-pinion mechanism including a pinion shaft 13 and a rack shaft 14 that serves as a steered shaft. The steered wheels 3 are connected to respective end portions 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. The pinion shaft 13 rotates in accordance with steering of the steering wheel 2. A pinion 16 is connected to a distal end of the pinion shaft 13.
The rack shaft 14 linearly extends along the lateral direction of the vehicle (the direction orthogonal to the direction in which the vehicle travels straight ahead). A rack 17 that meshes with the pinion 16 is formed at an axially intermediate portion of the rack shaft 14. The pinion 16 and the rack 17 convert the rotation of the pinion shaft 13 into an axial movement of the rack shaft 14. By moving the rack shaft 14 in the axial direction, the steered wheels 3 are steered.
When the steering wheel 2 is steered (rotated), the 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 an axial movement of the rack shaft 14 by the pinion 16 and the rack 17. As a result, the steered wheels 3 are steered. The steering assist mechanism 5 includes an electric motor 18 that generates steering assist force and a speed-reduction mechanism 19 that transmits torque output from the electric motor 18 to the steered mechanism 4. The electric motor 18 is formed of a three-phase brushless motor in the present embodiment. The speed-reduction mechanism 19 is formed of s worm gear mechanism including a worm shaft 20 and a worm wheel 21 that meshes with the worm shaft 20. The speed-reduction mechanism 19 is housed in a gear housing 22 that serves as a transmission mechanism housing.
The worm shaft 20 is driven to be rotated by the electric motor 18. The worm wheel 21 is connected to the steering shaft 6 so as to be rotatable in the same direction as the rotation direction of the steering shaft 6. The worm wheel 21 is driven to be rotated by the worm shaft 20. When the worm shaft 20 is driven to be rotated by the electric motor 18, the worm wheel 21 is driven to be rotated, 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 an axial movement of the rack shaft 14. As a result, the steered wheels 3 are steered. That is, when the worm shaft 20 is driven to be rotated by the electric motor 18, the steered wheels 3 are steered.
A rotation angle of a rotor of the electric motor 18 (a rotor rotation angle) is detected by a rotation angle sensor 25 such as a resolver. A signal output from the rotation angle sensor 25 is input into the motor control ECU 12. The electric motor 18 is controlled by the motor control ECU 12 that serves as a motor control unit.
The motor control ECU 12 realizes appropriate steering assistance suited to a steering state, by driving the electric motor 18 on the basis of a steering torque Th detected by the torque sensor 11. The motor control ECU 12 includes a microcomputer 40, a drive circuit (inverter circuit) 31 that is controlled by the microcomputer 40 and that supplies electric power to the electric motor 18, and a current detection unit 32 that detects a motor current passing through the electric motor 18.
The electric motor 18 is, for example, a three-phase brushless motor, and includes a rotor 100, which serves as a field magnet, and a stator 105 provided with U-phase, V-phase, and W-phase stator coils 101, 102, 103, as illustrated in
A UVW coordinate system that is a three-phase fixed coordinate system is defined, in which a U-axis, a V-axis, and a W-axis are set to the respective directions of the U-phase stator coil 101, the V-phase stator coil 102 and the W-phase stator coil 13. A dq coordinate system (an actual rotating coordinate system) that is a two-phase rotating coordinate system is defined, in which a d-axis that is a magnetic pole axis is set to the magnetic pole direction of the rotor 100 and a q-axis that is a torque axis is set to the direction orthogonal to the d-axis within a rotary plane of the rotor 100. The dq coordinate system is a rotating coordinate system that rotates together with the rotor 100. In the dq coordinate system, because only a q-axis current contributes to generation of torque of the rotor 100, a d-axis current is set to zero and the q-axis current is controlled on the basis of a desired torque. A rotation angle (electrical angle) θ-S of the rotor 100 is a rotation angle of the d-axis with respect to the U-axis. The dq coordinate system is an actual rotating coordinate system that rotates in accordance with the rotor angle θ-S. With the use of the rotor angle θ-S, coordinate conversion between the UVW coordinate system and the dq coordinate system can be executed.
The microcomputer 40 includes a CPU and memories (a ROM, a RAM, a non-volatile memory, etc.), and is configured to function as a plurality of functional processing units by executing predetermined programs. The functional processing units include a current command value setting unit 41, a current deviation computation unit 42, a PI (Proportional Integral) control unit 43, a dq/UVW conversion unit 44, a PWM (Pulse Width Modulation) control unit 45, a UVW/dq conversion unit 46, and a rotation angle computation unit 47.
The rotation angle computation unit 47 computes a rotor rotation angle (electrical angle) (hereinafter, referred to as “rotor angle θS”) of the electric motor 18 on the basis of a signal output from the rotation angle sensor 25. The current command value setting unit 41 sets current values, which are values of currents that should be passed through coordinate axes of the dq coordinate system, as current command values. Specifically, the current command value setting unit 41 sets a d-axis current command value Id* and a q-axis current command, value Iq* (hereinafter, the d-axis current command value Id* and the q-axis current, command value Iq* will be collectively referred to as “two-phase current command values Idq*” where appropriate). More specifically, the current command value setting unit 41 sets the q-axis current command value to a significant value, whereas it sets the d-axis current command value Id* to zero. The current command value setting unit 41 sets the q-axis current command value Id* on the basis of the detected steering torque Th detected by the torque sensor 11.
An example of a manner of setting the q-axis current command value Iq* with respect to the detected steering torque Th is shown in
The two-phase current command values Idq* set by the current command value setting unit 41 are provided to the current deviation computation unit 42. The current detection unit 32 detects a U-phase current IU, a V-phase current IV, and a W-phase current IW for the electric motor 18 (hereinafter, the U-phase current IU, the V-phase current IV, and the W-phase current IW will be collectively referred to as “three-phase detected currents IUVW” where appropriate). The three-phase detected currents IUVW detected by the current detection unit 32 are provided to the UVW/dq conversion unit 46.
The UVW/dq conversion unit 46 executes coordinate conversion from the three-phase detected currents IUVW (the U-phase current IU, the V-phase current IV, and the W-phase current IW) of the UVW coordinate system, detected by the current detection unit 32, into two-phase detected currents Id, Iq of the dq coordinate system (hereinafter, the two-phase detected currents Id, Iq will be collectively referred to as “two-phase detected currents Idq” where appropriate). The rotor angle θS computed by the rotation angle computation, unit 47 is used tor this coordinate conversion,
The current deviation computation unit 42 computes deviations between the two-phase current command values Idq* set by the current command value setting unit 41 and the two-phase detected currents Idq provided from the UVW/dq conversion unit 46, Specifically, the current deviation computation unit 42 computes a deviation of the d-axis detected current Id with respect to the d-axis current command value Id* and a deviation of the q-axis detected current Iq with respect to the q-axis current command value Iq*. These deviations are provided to the PI control unit 43.
The PI control unit 43 generates two-phase voltage command values Vdq* (the d-axis voltage command value Vd* and the q-axis voltage command value Vq*), which are values of voltages that should be applied to the electric motor 18, by executing a PI computation on the current deviations computed by the current deviation computation unit 42. The two-phase voltage command values Vdq* are provided to the dq/UVW conversion unit 44. The dq/UVW conversion, unit 44 executes coordinate conversion from the two-phase voltage command values Vdq* into three-phase voltage command values VUVW*. The rotor angle θS computed by the rotation angle computation unit 47 is used for this coordinate conversion. The three-phase voltage command values VUVW* consist of a U-phase voltage command value VU*, a V-phase voltage command value VV*, and a W-phase voltage command value VW*. The three-phase voltage command values VUVW* are provided to the PWM control unit 45.
The PWM control unit 45 generates a U-phase PWM. control signal, a V-phase PWM control signal, and a W-phase PWM control signal having duty ratios corresponding to the U-phase voltage command value VU*, the V-phase voltage command value VV*, and the W-phase voltage command value VW*, respectively, and provides these control signals to the drive circuit 31. The drive circuit 31 is formed of an inverter circuit with three phases corresponding to the U-phase, the V-phase, and the W-phase. When power elements constituting the inverter circuit are controlled by the PWM control signals provided from the PWM control unit 45, voltages corresponding to the three-phase voltage command values VUVW* are applied to the U-phase stator coil 101, the V-phase stator coil 102 and the W-phase stator coil 103 of the electric motor 18.
The current deviation computation unit 42 and the PI control unit 43 constitute a current feedback controller. Due to the action of the current feedback controller, motor currents passing through the electric motor 18 are controlled so as to approach the two-phase current command values Idq* set by the current command value setting unit 41.
An annular first magnet (a multipolar magnet) 61 is connected to the input shaft 8 so as to be rotatable together with the input shaft 8. Two magnetic sensors 71, 72 that respectively output sinusoidal signals having a phase difference in accordance with the rotation of the first magnet 61 are arranged below the first magnet 61. An annular second magnet (a multipolar magnet) 62 is connected to the output shaft 9 so as to be rotatable together with the output shaft 9. Two magnetic sensors 74, 75 that respectively output sinusoidal signals having a phase difference in accordance with the rotation of the second magnet 62 are arranged above the second magnet 62.
The output signals S1, S2, S4, S5 from the respective magnetic sensors 71, 72, 74,75 are input into a torque computation ECU 77 used to compute a steering torque that is applied to the input shaft 8. A power supply for the torque computation ECU 77 is turned on when an ignition key is turned on. When the ignition key is turned off, an ignition key off operation signal indicating that the ignition key is turned off is input into the torque computation ECU 77. A magnetic sensor including an element having electrical characteristics that vary due to the action of a magnetic force, for example, a Hall element or a magnetoresistive element (a MR element) may be used as each of the magnetic sensors. In the present embodiment, a Hall element is used as each of the magnetic sensors.
The magnets 61, 62, the magnetic sensors 71, 72, 74, 75, and the torque computation ECU 77 constitute the torque sensor 11. The torque computation ECU 77 includes a microcomputer. The microcomputer is provided with a CPU and memories (a ROM, a RAM, a nonvolatile memory, etc.), and functions as a plurality of functional processing units by executing predetermined programs. The functional processing units include a first rotation angle computation unit 77A, a second rotation angle computation unit 77B, a torque computation unit 77C, a first phase difference computation unit 77D, and a second phase difference computation unit 77E.
When the operation mode of the torque computation ECU 77 is set to a phase difference detection mode by an operator or the like, the first phase difference computation unit 77D detects a phase difference between the output signals S1, S2 from the two magnetic sensors 71, 72 on the basis of the output signals S1, S2, and stores the detected phase difference in a nonvolatile memory. When the operation mode of the torque computation ECU 77 is set to the phase difference detection mode by the operator or the like, the second phase difference computation unit 77E detects a phase difference between the output signals S4, S5 from the two magnetic sensors 74, 75 on the basis of the output signals S4, S5, and stores the detected phase difference in the nonvolatile memory. For example, when the torque computation ECU 77 is replaced with a new one, the operation mode of the torque computation ECU 77 is set to the phase difference detection mode. When the phase difference is detected by the first phase difference computation unit 77D and the second phase difference computation unit 77E, the operation mode of the torque computation ECU 77 is returned to the normal mode. Details of the operations of the first phase difference computation unit 77D and the second phase difference computation unit 77E will be described later.
In the normal mode, the first rotation angle computation unit 77A computes a rotation angle (electrical angle θA) of the input shaft 8 on the basis of the output signals S1, S2 from the two magnetic sensors 71, 72 and the phase difference between the output signals S1, S2 stored in the nonvolatile memory. In the normal mode, the second rotation angle computation unit 77B computes a rotation angle (electrical angle θB) of the output shaft 9 on the basis of the output signals S4, S5 from the two magnetic sensors 74, 75 and the phase difference between the output signals S4, S5 stored in the nonvolatile memory.
In the normal mode, the torque computation unit 77C computes the steering torque Th applied to the input shaft 8 on the basis of the rotation angle θA of the input shaft 8 detected by the first rotation angle computation unit 77A and the rotation angle θB of the output shaft 9 detected by the second rotation angle computation unit 77B. Specifically, the steering torque Th is computed according to the following expression (1) where K is a spring constant of the torsion bar 10 and N is the number of magnetic pole pairs formed in each of the magnets 61, 62.
Th={(θA−θB)/N}×K (1)
The first magnet 61, the magnetic sensors 71, 72, and the first rotation angle computation unit 77A constitute a first rotation angle detection device used to detect the rotation angle θA of the input shaft 8. The second magnet 62, the magnetic sensors 74, 75, and the second rotation angle computation unit 77B constitute a second rotation angle detection device used to detect the rotation angle θB of the output shaft 9. Because an operation of the first rotation angle detection device (the first rotation angle computation unit 77A) is the same as an operation of the second rotation angle detection device (the second rotation angle computation unit 77B), only the operation of the first rotation angle detection device (the first rotation computation unit 77A) will be described below.
The two magnetic sensors 71, 72 are arranged so as to face a lower annular end face of the first magnet 61. The magnetic sensors 71, 72 are arranged at an angular interval of 120° in electrical angle around the central axis of the input shaft 8. In the following description, the magnetic sensor 71 will be referred to as a first magnetic sensor 71 and the magnetic sensor 72 will be referred to as a second magnetic sensor 72 where appropriate. The direction indicated by an arrow in
In the following description, the output signal S1 from the first magnetic sensor 71 will be referred to as a first output signal S1 or a first sensor value S1, and the output signal S2 from the second magnetic sensor 72 will be referred to as a second output signal S2 or a second sensor value S2 where appropriate. In the following description, a rotation angle of the input shaft 8 will be denoted by θ instead of θA, for convenience of explanation. If each of the output signals S1, S2 is a sinusoidal signal and a rotation angle of the input shaft 8 is θ (electrical angle), the output signal S1 from the first magnetic sensor 71 is expressed by S1=A1·sinθ, and the output signal S2 from the second magnetic sensor 72 is represented as S2=A2·sin (θ+C). Each of A1, A2 represents an amplitude. C represents a phase difference between the first output signal S1 and the second output signal S2.
A basic concept of a method of computing the rotation angle θ with the use of the first rotation angle computation unit 77A will be described. There are two methods of computing the rotation angle θ. The first method is a method of computing the rotation angle θ on the basis of output signals from the two magnetic sensors 71, 72, the output signals being sampled at two sampling timings (hereinafter, the first method will be referred to as “first computing method”). The second method is a method of computing the rotation angle θ on the basis of output signals from the two magnetic sensors 71, 72, the output signals being sampled at three sampling timings (hereinafter, the second method will be referred to as “second computing method”).
A basic concept of the first computing method will be described. A phase difference (electrical angle) between the first output signal S1 and the second output signal will be denoted by C. The number of a present sampling period (the number of a present computation period) will be denoted by (n) and the number of an immediately preceding sampling period (the number of an immediately preceding computation period) will be denoted by (n−1). With the use of the phase difference C and the numbers (n), (n−1) of the sampling periods, the first-output signal S1 sampled in the present sampling period, the first output signal S1 sampled in the immediately preceding sampling period, the second output signal S2 sampled in the present sampling period, and the second output signal S2 sampled in the immediately preceding sampling period are expressed, by the following expressions (2a), (2b), (2c), (2d), respectively.
S
1(n)=A1(n)sinθ(n) (2a)
S
1(n−1)=A1(n−1)sinθ(n−1) (2b)
S
2(n)=A2(n)sin(θ(n)+C) (2c)
S
2(n−1)=A2(n−1)sin(θ(n−1)+C) (2d)
If C is a known quantity, the number of unknown quantifies (A1(n), A1(n−1), A2(n), A2(n−1), θ(n), θ(n−1)) included in the four expressions is six. That, is, because the number of the unknown quantities is greater than the number of the expressions, simultaneous equations constituted of the four expressions cannot be solved in this state.
Therefore, by setting a short sampling interval (sampling period), variations of amplitudes due to temperature changes between two sampling timings are assumed to be non-existent. That is, on the assumption that amplitudes A1(n), A1(n−1) of the output signals from the first magnetic sensor 71 at two sampling timings are equal to each other, the amplitudes A1(n), A1(n−1) are expressed by A1. Similarly, on the assumption that amplitudes A2(n), A2(n−1) of the output signals from the second magnetic sensor 72 at two sampling timings are equal to each other, the amplitudes A2(n), A2(n−1) are expressed by A2. Thus, the expressions (2a), (2b), (2e), (2d) can be expressed by the following expressions (3a), (3b), (3c), (3d), respectively.
S
1(n)=A1sinθ(n) (3a)
S
1(n−1)=A1sinθ(n−1) (3b)
S
2(n)=A2sin(θ(n)+C) (3c)
S
2(n−1)=A2sin(θ(n−1)+C) (3d)
The number of unknown quantities (A1, A2, θ(n), θ(n−1)) included in the four expressions is four. That is, because the number of the unknown quantities is equal to or smaller than the number of expressions, simultaneous equations constituted of the four expressions can be solved. Therefore, by solving the simultaneous equations constituted of the four expressions (3a), (3b), (3c), (3d), the rotation angle θ(n) of the input shaft 8 can be computed.
Hereinafter, the ease where the phase difference C between the sinusoidal signals respectively output from the magnetic sensors 71, 72 is 120° will be described in detail. When the phase difference C is 120°, the four expressions (3a), (3b), (3c), (3d) can be expressed by the following expressions (4a), (4b), (4c), (4d), respectively.
S
1(n)=A1sinθ(n) (4a)
S
1(n−1)=A1sinθ(n−1) (4b)
S
2(n)=A2sin(θ(n)+120) (4c)
S
2(n−1)=A2sin(θ(n−1)+120) (4d)
By solving simultaneous equations constituted of the four expressions (4a), (4b), (4c), (4d), the rotation angle θ(n) of the input shaft 8 can he expressed by the following expression (5) (hereinafter, referred to as “basic arithmetic expression (5)”).
Therefore, when the phase difference C between the sinusoidal signals respectively output from the magnetic sensors is 120°, the rotation angle θ(n) of the Input shaft 8 can be computed, with the use of four sensor values S1(n), S1(n−1), S2(n), S2(n−1) and the basic arithmetic expression (5). However, when at least one of the denominators of the fractions included in the basic arithmetic expression (5) is zero, the rotation angle θ(n) cannot be computed according to the basic arithmetic expression (5). Therefore, in the present embodiment, when at least one of the denominators of the fractions included in the basic arithmetic expression (5) is zero, the rotation angle θ(n) is computed according to an arithmetic expression different from the basic arithmetic expression (5). Further, in the present embodiment, if the rotation angle θ(n) can be computed according to an arithmetic expression that is simpler than the basic arithmetic expression (5) although the rotation angle θ(n) can be computed according to the basic arithmetic expression (5), the rotation angle θ(n) is computed according to the arithmetic expression that is simpler than the basic arithmetic expression (5). In the present embodiment, the case where the rotation angle θ(n) can be computed more easily than using the basic arithmetic expression (5) is the ease where S2(n)=0 or the case where S1(n)=0.
In the present embodiment, as arithmetic expressions used to compute the rotation angle θ(n), ten kinds of arithmetic expressions including the basic arithmetic expression (5) are prepared. Table 1 shows the ten kinds of arithmetic expressions and the conditions for the arithmetic expressions. Note that, at the time of computing the rotation angle θ(n), whether the conditions are satisfied is determined starting from the conditions on the top of Table 1. If it is determined that the conditions are satisfied, whether the subsequent conditions are satisfied is not determined. Then, the rotation angle θ(n) is computed according to the arithmetic expression corresponding to the conditions that are determined to be satisfied.
The first arithmetic expression from the top of Table 1 is the basic arithmetic expression (5). The basic arithmetic expression (5) is used when the condition that neither S1(n) nor S2(n) is zero and the condition that none of the denominators of the fractions included in the basic arithmetic expression (5) are zero are both satisfied. The condition that none of the denominators of the fractions included in the basic arithmetic expression (5) are zero is satisfied when p1−p2≠0, p12+p1p2+p22≠0, S1(n−1)≠0, and S2(n−1)≠0. Note that S1(n−1) is the denominator of p1 and S2(n−1) is the denominator of p2.
Note that, p12+p1p2+p22=0 is satisfied only when p1=p2=0. However, the phase of a sinusoidal signal output from the first magnetic sensor 71 is 120° different from the phase of a sinusoidal signal output from the second magnetic sensor 72, and hence the sensor values S1, S2 from both the magnetic sensors 71, 72 do not become zero at the same time. Therefore, p12+p1p2+p22=0 is not satisfied. Therefore, the condition that none of the denominators of the fractions included in the basic arithmetic expression (5) are zero is satisfied when ail the conditions that p1−p2≠0, S1(n−1)≠0, and S2(n−1)≠0 are satisfied.
The second arithmetic expression from the top of Table 1 is an arithmetic expression that is used when p1−p2=0. The ease where p1−p2=0 is satisfied will be considered blow. In this case, because p1=p2, the following expression (6) is satisfied.
When this expression is deformed, the following expression (7) can be obtained.
The case where the expression (7) is satisfied is the case where θ(n) is equal to θ(n−1), that is, the case where the present rotation angle θ(n) is equal to the immediately preceding rotation angle η(n−1). When the condition that neither S1(n) nor S2(n) is zero, the condition that neither the denominator S1(n−1) of p1 nor the denominator S2(n−1) of p2 is zero, and the condition that p1−p2=0 are all satisfied, the immediately preceding computed rotation angle θ(n−1) is used as the present rotation angle θ(n).
The third and fourth arithmetic expressions from the top of Table 1 are arithmetic expressions that are used when the denominator S1(n−1) of p1 is zero. Because S1(n−1)=A1sinθ(n−1), S1(n−1)=0 is satisfied when sinθ(n−1)=0. That is, when θ(n−1) is 0° or 180°, S1(n−1) is zero. Because S2(n−1)=A2sin(θ(n−1)+120), S2(n−1)>0 is satisfied when θ(n−1) is 0°, and S2(n−1)<0 is satisfied when θ(n−1) is 180°. Therefore, θ(n−1)=0 is satisfied when S1(n−1)=0 and S2(n−1)>0, and θ(n−1)=180 is satisfied when S1(n−1)=0 and S2(n−1)<0.
When θ(n−1)=0, the expressions (4c), (4d) are expressed by the following expressions (8c), (8d), respectively.
S
2(n)=A2sin(θ(n)+120) (8c)
S
2(n−1)=A2sin120=√3/2·A2 (8d)
The following expression (9) can be obtained from the expression (8d)
A
2=(2/√3)·S2(n−1) (9)
When the expression (9) is substituted into the expression (8c), the following expression (10) can be obtained.
sin(θ(n)+120)=(√3/2)·(S2(n)/S2(n−1)) (10)
Therefore, the rotation angle θ(n) can be computed according to the following expression (11).
As shown in the third row from the top of Table 1, when the conditions that neither S1(n) nor S2(n) is zero, the denominator S2(n−1) of p2 is not zero, the denominator S1(n−1) of p1 is zero, and S2(n−1)>0 are all satisfied, the rotation angle θ(n) is computed according to the arithmetic expression expressed by the expression (11). On the other hand, when θ(n−1)=180, the expressions (4c), (4d) are expressed by the following expressions (12c), (12d), respectively.
S
2(n)=A2sin(θ(n)+120) (12c)
S
2(n−1)=A2sin300=−√3/2·A2 (12d)
The following expression (13) can be obtained from the expression (12d).
A
2=(−2/√3)·S2(n−1) (13)
When the expression (13) is substituted into the expression (12c), the following expression (14) can be obtained.
sin(θ(n)+120)=(−√3/2)·(S2(n)/S2(n−1)) (14)
The rotation angle θ(n) can be computed according to the following expression (15).
As shown in the fourth row from the top of Table 1, when the conditions that neither S1(n) nor S2(n) is zero, the denominator S2(n−1) of p2 is not zero, the denominator S1(n−1) of p1 is zero, and S2(n−1)<0 are all satisfied, the rotation angle θ(n) is computed according to the arithmetic expression expressed by the expression (15). The fifth and sixth arithmetic expressions from the top of Table 1 are arithmetic expressions used when S2(n)=0 is satisfied. Because S2(n)=A2sin(θ(n)+120), when sin(θ(n)+120)=0, S2(n)=0 is satisfied. That is, when θ(n) is −120° or 60°, S2(n)=0 is satisfied. Because S1(n)=A1sinθ(n), S1(n)<0 is satisfied when θ(n) is −120°, and S1(n)>0 is satisfied when θ(n)=60°. θ(n)=60 is satisfied when θ(n)=0 and S1(n)>0, and θ(n)=−120 is satisfied when S2(n)=0 and S1(n)<0.
As shown in the fifth row from the top of Table 1, when the conditions that S1(n) is not zero, the denominator S2(n−1) of p2 is not zero, S2(n)=0, and S1(n)>0 are all satisfied, the rotation angle θ(n) is computed as 60°. Further, as shown in the sixth row from the top of Table 1, when the conditions that S1(n) is not zero, the denominator S2(n−1) of p2 is not zero, S2(n)=0, and S1(n)<0 are all satisfied, the rotation angle θ(n) is computed as −120°.
The seventh and eighth arithmetic expressions from the top of Table 1 are arithmetic expressions used when the denominator S2(n−1) of p2 is zero. Because S2(n−1)=A2sin(θ(n−1)+120), when sin(θ(n−1)+120)=0, S2(n−1)=0 is satisfied. That is, when θ(n−1) is −120° or 60°, S2(n−1) is zero. Because S1(n−1)=A1sinθ(n−1), S1(n−1)<0 is satisfied when θ(n−1) is −120°, and S1(n−1)>0 is satisfied when θ(n−1) is 60°. Therefore, θ(n−1)=60 is satisfied, when S2(n−1)=0 and S2(n−1S)>0, and θ(n−1)=−120 is satisfied when S2(n−1)=0 and S1(n−1)<0.
When θ(n−1)=60, the expressions (4a), (4b) are expressed by the following expressions (16a), (16b), respectively.
S
1(n)=A1sinθ(n) (16a)
S
1(n−1)=A1sin60=√3/2·A1 (16b)
On the basis of the expression (16b), the following expression (17) can be obtained.
A
1=(2/√3)·S1(n−1) (17)
When the expression (17) is substituted into the expression (16a), the following expression (18) can be obtained.
sinθ(n)=(√3/2)·(S1(n)/S1(n−1)) (18)
Therefore, the rotation angle θ(n) can be computed by the following expression (19).
As shown in the seventh row from the top of Table 1, when the conditions that S1(n) is not zero, the denominator S2(n−1) of p2 is zero, and S1(n−1)>0 are all satisfied, the rotation angle θ(n) is computed according to the arithmetic expression expressed by the expression (19). On the other hand, when θ(n−1)=−120, the expressions (4a), (4b) are expressed by the following expressions (20a), (20b), respectively.
S
1(n)=A1sinθ(n) (20a)
S
1(n−1)=A1sin(−120)=−√3/2·A2 (20b)
The following expression (21) can be obtained from the expression (20b).
A
1=(−2/√3)·S1(n−1) (21)
When the expression (21) is substituted into the expression (20a), the following expression (22) can be obtained.
sinθ(n)=(−√3/2)·(S1(n)/S1(n−1)) (22)
Therefore, the rotation angle θ(n) can be computed according to the following expression (23).
As expressed by the eighth row from the top of Table 1, when the conditions that S1(n) is not zero, the denominator S2(n−1) of p2 is zero, and S1(n−1)<0 are all satisfied, the rotation angle θ(n) is computed according to an arithmetic expression expressed by the expression (23). The ninth and tenth arithmetic expressions from the top of Table 1 are arithmetic expressions that are used when S1(n)=0 is satisfied. Because S1(n)=A1sinθ(n), when sinθ(n)=0, S1(n)=0 is satisfied. That is, when θ(n) is 0° or 180°, S1(n)=0 is satisfied. Because S2(n)=A2sin(θ(n)+120), S2(n)>0 is satisfied when θ(n) is 0°, and S2(n)<0 is satisfied when θ(n) is 180°. Therefore, θ(n)=0 is satisfied when S1(n)=0 and S2(n)>0, and θ(n)=180 is satisfied when S1(n)=0 and S2(n)<0.
As shown in the ninth row from the top of Table 1, when the conditions that S1(n) is zero and S2(n)>0 are both satisfied, the rotation angle θ(n) is computed as 0°. Further, as shown in the tenth row from the top of Table 1, when the conditions that S1(n) is zero and S2(n)>0 are both satisfied, the rotation angle is computed as 180°. According to the first computing method, because the rotation angle θ(n) of the input shaft 8 is computed on the basis of the output signals from the two magnetic sensors 71, 72, which are sampled at two sampling timings, the highly accurate rotation angle can be computed. Furthermore, according to the first computing method, even if the number of expressions used to compute the rotation angle θ(n) of the input shaft 8 is smaller than the number of unknown quantities originally included in these expressions, the rotation angle θ(n) of the input shaft 8 can be computed. As a result, the number of sensor values required to compute the rotation angle θ(n) of the input shaft 8 can be reduced.
According to the first computing method, by setting a short sampling period, the amplitudes (A1(n) and A1(n−1); A2(n) and A2(n−1)) of the output signals from the same magnetic sensor at the two sampling timings are assumed to be equal to each other. The amplitudes of the output signals from the same magnetic sensor at two sampling timings may be different values due to the influence of temperature changes. However, if the sampling interval is short, a temperature change between the two sampling timings is considerably small. Therefore, the amplitudes of the output signals from the same magnetic sensor at the two sampling timings may be assumed to be equal to each other. In the first computing method, variations of amplitudes due the influence of temperature changes between the two sampling timings can be compensated for. In the first computing method, because the amplitudes A1, A2 of the output signals from the magnetic sensors 71, 72 are regarded as different unknown quantities, the influence of variations of temperature characteristics between the magnetic sensors 71, 72 can be compensated for. As a result, the highly accurate rotation angle can be detected.
A basic concept of the second computing method will be described below. A phase difference (electrical angle) between the first output signal S1 and the second output signal S2 will be denoted by C. The number of the present sampling period (the number of the present computation period) will be denoted by (n), the number of the immediately preceding sampling period will be denoted by (n−1), and the number of the second preceding sampling period will be denoted by (n−2). A correction value used to correct a rotation angle computing error due to the variations of angular widths (magnetic pole widths) of the magnetic poles M1 to M8 will be referred, to as an angular width error correction value (magnetic pole width error correction value), and will be denoted by E.
When the phase difference C, the numbers of the sampling periods (n), (n−1), (n−2), and the angular width error correction value E are used, the first output signals S1 sampled in the present sampling period, the immediately preceding sampling period, and the second preceding sampling period, and the second, output signals S2 sampled in the present sampling period, the immediately preceding sampling period, and the second preceding sampling period can be expressed by the following expressions (24a), (24b), (24c), (24d), (24e), (24f), respectively.
S
1(n)=A1(n)sin(E1(n)θ(n)) (24a)
S
1(n−1)=A1(n−1)sin(E1(n−1)θ(n−1)) (24b)
S
1(n−2)=A1(n−2)sin(E1(n−2)θ(n−2)) (24c)
S
2(n)=A2(n)sin(E2(n)θ(n)+C) (24d)
S
2(n−1)=A2(n−1)sin(E2(n−1)θ(n−1)+C) (24e)
S
2(n−2)=A2(n−2)sin(E2(n−2)θ(n−2)+C) (24f)
In the expressions (24a) to (24f), E1(x) is an angular width error correction value corresponding to a magnetic pole sensed by the first magnetic sensor 71 in an x-th computation period. E2(x) is an angular width error correction value corresponding to a magnetic pole sensed by the second magnetic sensor 72 in an x-th computation period.
The number of magnetic poles of the magnet 61 will be denoted by m. Furthermore, a natural number from 1 to m, which is used to relatively identify each magnetic pole, will be denoted by i. When an angular width of a given magnetic pole is denoted by w(i) (electrical angle) and an angular width error of the given magnetic pole is denoted by θerr(i) (electrical angle), θerr(i) is expressed by the following expression (25).
θerr(i)=w(i)=180 (25)
When the angular width error correction value for the given magnetic pole is denoted by E(i), E(i) is defined by the following expression (26).
The angular width error correction value E(i) for each magnetic pole is information
regarding a pitch width of the magnetic pole. Note that the information regarding the pitch width of each magnetic pole may be an angular width w(i) of the magnetic pole or an angular width error θerr(i) of the magnetic pole.
If C is a known quantity, the number of unknown quantities included in
the six expressions expressed by the expressions (24a) to (24f) is 16. That is, because the number of the unknown quantities is greater than the number of the expressions, simultaneous equations constituted of the six expressions cannot be solved in this state. Therefore, by setting a short sampling interval (sampling period), variations of amplitudes due to temperature changes between three sampling timings are assumed to be non-existent. That is, on the assumption that amplitudes A1(n), A1(n−1) A1(n−2) of the output signals from the first magnetic sensor 71, which are sampled at three sampling timings, are equal to each other, the amplitudes A1(n), A1(n−1), A1(n−2) are expressed by A1. Similarly, on the assumption that amplitudes A2(n), A2(n−1), A2(n−2) of the output signals from the second magnetic sensor 72, which are sampled at three sampling timings, are equal to each other, the amplitudes A2(n), A2(n−1), A2(n−2) are expressed by A2.
Further, both the magnetic sensors 71, 72 are assumed to sense one and the same magnetic pole at three sampling timings. That is, all the angular width error correction values E1(n), E1(n−1), E1(n−2), E2(n), E2(n−1), E2(n−2) included in the output signals from the magnetic sensors 71, 72, which are sampled at the three sampling timings, are assumed to be angular width error correction values for one and the same magnetic pole, and they will be denoted by E(i). Thus, the expressions (24a) to (24f) can be expressed by the following expressions (27a) to (27f), respectively.
S
1(n)=A1sin(E(i)·θ(n)) (27a)
S
1(n−1)=A1sin(E(i)·θ(n−1)) (27b)
S
1(n−2)=A1sin(E(i)·θ(n−2)) (27c)
S
2(n)=A2sin(E(i)·θ(n)+C) (27d)
S
2(n−1)=A2sin(E(i)·θ(n−1)+C) (27e)
S
2(n−2)=A2sin(E(i)·θ(n−2)+C) (27f)
The number of unknown quantities (A1, A2, E(i), θ(n), θ(n−1), θ(n−2)) included in the six expressions is six. That is, the number of the unknown quantities is equal to or smaller than the number of the expressions, and hence simultaneous equations constituted of the six expressions can be solved. Therefore, by solving the simultaneous equations constituted of the six expressions (27a) to (27f), the rotation angle θ(n) of the input shaft 8 can be computed.
Hereinafter, the case where the phase difference C between the sinusoidal signals output from the magnetic sensors 71, 72 is 120° will be described in detail. When the phase difference C is 120°, the six expressions (27a) to (27f) can be expressed by the following expressions (28a) to (28f), respectively.
S
1(n)=A1sin(E(n)·θ(n)) (28a)
S
2(n−1)=A1sin(E(i)·θ(n−1)) (28b)
S
1(n−2)=A1sin(E(i)·θ(n−2)) (28c)
S
2(n)=A2sin(E(i)·θ(n)+120) (28d)
S
2(n−1)=A2sin(E(i)·θ(n−1)+120) (28e)
S
2(n−2)=A2sin(E(i)·θ(n−2)+120) (28f)
According to the basic expression (5), E(i)·θ(n) is expressed by the following expression (29).
Furthermore, by solving simultaneous equations constituted of the six expressions (28a) to (28f), the angular width error correction value E(i) can be expressed by the following expression (30).
By dividing E(i)·θ(n) computed from the expression (29) by the angular width error correction value E(i) obtained from the expression (30), θ(n) can be obtained. That is, θ(n) can be obtained according to the following expression (31).
θ(n)=E(i)·θ(n)/E (31)
Note that, E(i)·θ(n) is computed according to the arithmetic expression corresponding to the conditions according to Table 1. Further, when at least one of the denominators of the fractions included in the expression (30) is zero, the angular width error correction value E(i) cannot be computed according to the expression (30). Therefore, in the present, embodiment, when at least one of the denominators of the fractions included in the expression (30) is zero, the immediately preceding computed angular width error correction value E(i) is used as the present angular width error correction value E(i).
Note that the case where at least one of the denominators of the fractions included in the expression (30) is zero is the case where at least one of the three conditions expressed, by the following expressions (32), (33), (34) is satisfied.
S
1
[n]S
2
[n]−S
1
[n−1]S2[n−1]=0 (32)
S
1
[n]S
2
[n]q
3
+S
1
[n−1]S2[n−1]q4+S1[n−2]S2[n−2]q1=0 (33)
S
1
[n]S
2
[n]q
5
+S
1
[n−1]S2[n−1]q6+S1[n−2]S2[n−2]q2=0 (34)
q
1
=S
1
[n−1]2−S1[n]2
q
2
=S
2
[n]
2
−S
2
[n−1]2
q
3
=S
1
[n−2]2−S1[n−1]2
q
4
=S
1
[n]
2
−S
1
[n−2]2
q
5
=S
2
[n−1]2−S2[n−2]2
q
6
=S
2
[n−2]2−S2[n]2
According to the second computing method, because the rotation angle θ(n) of the input shaft 8 is computed on the basis of the output signals from the two magnetic sensors 71, 72, which are sampled at three sampling timings, the highly accurate rotation angle can be computed. In the second computing method, even if the number of expressions used to compute the rotation angle θ(n) of the input shaft 8 is smaller than the number of unknown quantities originally included in these expressions, the rotation angle θ(n) of the input shaft 8 can be computed, and hence the number of sensor values required to compute the rotation angle θ(n) of the input shaft 8 can be reduced.
According to the second computing method, the amplitudes (A1(n), A1(n−1) and A1(n−2); A2(n), A2(n−1) and A2(n−2)) of the output signals from the same magnetic sensor, which are sampled at the three sampling timings, are assumed to be equal to each other. The amplitudes of the output signals from the same magnetic sensor, which are sampled at three sampling timings, may be different values due to the influence of temperature changes. However, if the sampling interval is short, a temperature change between the three sampling timings is considerably small. Therefore, the amplitudes of the output signals from the same magnetic sensor, which are sampled at the three sampling timings, may be assumed to be equal to each other. Therefore, in the second computing method, variations of amplitudes due the influence of temperature changes between the three sampling timings can be compensated for. In the second computing method, because the amplitudes A1, A2 of the output, signals from the magnetic sensors 71, 72 are regarded as different unknown quantities, the influence of variations of temperature characteristics between the magnetic sensors 71, 72 can be compensated for. As a result, the highly accurate rotation angle can be detected.
In the second computing method, all the angular width error correction values E(i) included in the six expressions used to compute the rotation angle θ(n) are assumed to be equal to each other. The angular width error correction value E(i) varies from one magnetic pole to another. Therefore, the angular width error correction values E(i) included in the expressions that express the six output signals S1(n), S1(n−1), S1(n−2), S2(n), S2(n−1), S2(n−2) used to compute the rotation angle θ(n) do not always take the same value. However, when the two magnetic sensors 71, 72 sense one and the same magnetic pole at three sampling timings, all the angular width error correction values E(i) included in the expressions that express the output signals take the same value. Therefore, in the second computing method, when the two magnetic sensors 71, 72 sense one and the same magnetic pole at three sampling timings, variations of angular widths (pitch widths) of the magnetic poles M1 to M8 of the magnet 61 can be compensated for. As a result, the highly accurate rotation angle can be detected.
In the first computing method and the second computing method described above, if the output signals S1, S2 from the respective magnetic sensors 71, 72 are not changed between the immediately preceding sampling timing and the present, sampling timing, p1=p2 is satisfied, and hence the immediately preceding computed rotation angle θ(n) is used as the rotation angle θ(n) (see the second arithmetic expression from the top of Table 1). However, at the time when the power supply for the torque computation ECU 77 is turned on by turning on the ignition key, there is no immediately preceding computed rotation angle θ(n). Therefore, if the output signals S1, S2 from the respective magnetic sensors 71, 72 do not change after the power supply for the torque computation ECU 77 is turned on, the rotation angle θ(n) cannot be computed. Therefore, in order to create an immediately preceding value of the rotation angle θ(n), the rotation angle computing process based on forced rotation is executed.
When the rotation angle computing process based on forced rotation ends, the first rotation angle computation unit 77A executes a normal rotation angle computing process (step S2). Details of the process will be described later. The normal rotation angle computing process is continuously executed until the ignition key is turned off. When the ignition key is turned off (YES in step S3), the first rotation angle computation unit 77A ends the normal rotation angle computing process.
Then, the first rotation angle computation unit 77A drives the electric motor 18 to rotate the electric motor 18 in a first direction (step S12). Specifically, the first rotation angle computation unit 77A transmits, to the motor control ECU 12, a first forced rotation command according to which the electric motor 18 is driven to be rotated in the first direction. Upon reception of the first forced rotation command, the motor control ECU 12 drives the electric motor 18 to rotate the electric motor 18 in the first direction.
The first rotation angle computation unit 77A obtains sensor values S1(n), S2(n) from the respective magnetic sensors 71, 72 (step S13). A memory in the torque computation ECU 77 stores sensor values obtained at least at three timings. That is, the memory in the torque computation ECU 77 stores the sensor values from the sensor value obtained M-th preceding timing (M is a prescribed value) to the sensor value obtained most recently. After the electric motor 18 is driven to be rotated in the first direction, the first rotation angle computation unit 77A determines whether the sensor values S1, S2 at M timings have been obtained (step S14). When the rotation angle θ(n) of the input shaft 8 is computed in step S18 (described later) according to the first computing method, M is set to 2. When the rotation angle θ(n) of the input shaft 8 is computed in step S18 according to the second computing method, M is set to 3.
When the sensor values S1, S2 at M timings have not been obtained (NO in step S14), the first rotation angle computation unit 77A returns to step S13 and obtains the sensor values S1(n), S2(n). The sampling period for sampling the sensor values S1(n), S2(n) in the case where the process in step S13 is repeated is determined in advance. When it is determined in step S14 that the sensor values S1, S2 at M timings have been obtained (YES in step S14), the first rotation angle computation unit 77A drives the electric motor 18 to rotate the electric motor 18 in a second direction that is the opposite direction of the first direction (step S15). Specifically, the first rotation angle computation unit 77A transmits, to the motor control ECU 12, a second forced rotation command according to which the electric motor 18 is driven to be rotated in the second direction. Upon reception of the second forced rotation command, the motor control ECU 12 drives the electric motor 18 to rotate the electric motor 18 in the second direction.
Then, the first rotation angle computation unit 77A obtains sensor values S1(n), S2(n) from the respective magnetic sensors 71, 72 (step S16). After the electric motor 18 is driven to be rotated in the second direction, the first rotation angle computation unit 77A determines whether the sensor values S1, S2 at M timings have been obtained (step S17). When the sensor values S1, S2 at M timings have not been obtained (NO in step S14), the first rotation angle computation unit 77A returns to step S16, and obtains the sensor values S1(n), S2(n). The sampling period for sampling the sensor values S1(n), S2(n) in the case where the process in step S16 is repeated is determined in advance.
When it is determined in step S17 that the sensor values S1, S2 at M timings have been obtained (YES in step S17), the first rotation angle computation unit 77A computes the rotation angle θ(n) of the input shaft 8 on the basis of the sensor values S1, S2 obtained at M timings and stores the computed rotation angle θ(n) (step S18). Note that the memory stores the most recent sensor values S1, S2 obtained at M timings. When M is set to 2, the first rotation angle computation unit 77A computes the rotation angle θ(n) of the input shaft 8 according to the first computing method. On the other hand, when M is set to 3, the first rotation, angle computation unit 77A computes the rotation angle θ(n) of the input shaft 8 according to the second computing method.
Then, the first rotation angle computation unit 77A stops driving of the electric motor 18 and cancels the warning for the driver (step S19). Specifically, the first rotation angle computation unit 77A transmits a driving stop command for the electric motor 18 to the motor control ECU 12, and also transmits a warning cancellation command to the image-voice control unit. Upon reception of the driving stop command for the electric motor 18, the motor control ECU 12 stops driving of the electric motor 18. Upon reception of the warning cancellation command, the image-voice control unit cancels the warning display, the warning voice output, or the like. Thus, the rotation angle computing process based on forced rotation ends.
The sensor values S1(n−1), S2(n−1) obtained at immediately preceding timing and the rotation angle θ(n−1) computed at immediately preceding timing are stored as the sensor values S1(n−2), S2(n−2) obtained at second immediately preceding timing and the rotation angle θ(n−2) computed at second immediately preceding timing, respectively. The presently obtained sensor values S1(n), S2(n) and the presently computed rotation angle θ(n) are stored as the sensor values S1(n−1), S2(n−2) obtained at immediately preceding timing and the rotation angle θ(n−1) computed at immediately preceding timing, respectively.
The operation of the first phase difference computation unit 77D and the operation of the second phase difference computation unit 77E will be described. Because the operation of the second phase difference computation unit 77E is the same as the operation of the first phase difference computation unit 77D, only the operation of the first phase difference computation unit 77D will be described. First, a concept of a method of computing the phase difference with the use of the first phase difference computation unit 77D will be described. As explained above in the description on the second computing method, the output signals from the two magnetic sensors 71, 72, which, are sampled at three samplings, are expressed by the expressions (24a) to (24f).
S
1(n)=A1(n)sin(E1(n)θ(n)) (24a)
S
1(n−1)=A1(n−1)sin(E1(n−1)θ(n−1)) (24b)
S
1(n−2)=A1(n−2)sin(E1(n−2)θ(n−2)) (24c)
S
2(n)=A2(n)sin(E2(n)θ(n)+C) (24d)
S
2(n−1)=A2(n−1)sin(E2(n−1)θ(n−1)+C) (24e)
S
2(n−2)=A2(n−2)sin(E(n−2)θ(n−2)+C) (24f)
If the assumption is made that there are no variations of the amplitude due to temperature changes between the three sampling timings by setting a short sampling interval and the assumption Is made that both the magnetic sensors 71, 72 sense one and the same magnetic pole at the three sampling timings, the expressions (24a) to (24f) are represented by the expressions (27a) to (27f).
S
1(n)=A1sin(E(i)θ(n)) (27a)
S
1(n−1)=A1sin(E(i)·θ(n−1)) (27b)
S
1(n−2)=A1sin(E(i)·θ(n−2)) (27c)
S
2(n)=A2sin(E(i)·θ(n)+C) (27d)
S
2(n−1)=A2sin(E(i)·θ(n−1)+C) (27e)
S
2(n−2)=A2sin(E(i)·θ(n−2)+C) (27f)
An arithmetic expression used to obtain E(i)·C can be derived from these six expressions. The arithmetic expression used to obtain E(i)·C is the following expression (35).
Because the sum of variations θerr(i) of the pitch widths of all the magnetic poles is zero, the following expression (36) is satisfied.
As described above, m is the number of the magnetic poles incorporated in the magnet 61. When the expression (26) is deformed, θerr(i)=180/E(i)−180 is satisfied. When this expression is substituted into the expression (36), the following expression (37) is derived.
When the expression (37) is deformed, the following expression (38) can be obtained.
When the expression (38) is further deformed, the following expression (39) can be obtained.
When both sides of the expression (39) are divided by C, the following expression (40) is derived.
Therefore, C is expressed by the following expression (41).
That is, when the input shaft 8 is rotating, the first phase difference computation unit 77D computes a value of E(i)·C corresponding to one and the same given magnetic pole with the use of six output signals sampled at three different timings while both the magnetic sensors 71, 72 are sensing the given magnetic pole. The first phase difference computation unit 77D executes this process until values of E(i)·C corresponding to all the respective magnetic poles are computed. When the values of E(i)·C corresponding to all the respective magnetic poles are computed, the first phase difference computation unit 77D computes the phase difference C between the output signals S1, S2 with the use of the values of E(i)·C corresponding to all the magnetic poles and the expression (41). In order to compute the phase difference C, the input shaft 8 needs to be rotated, but the input shaft 8 need not be rotated at a uniform velocity. Therefore, a special device for rotating the input shaft 8 at a uniform velocity is not required.
When at least one of the denominators of the tractions included in the expression (35) used to compute E(i)·C is zero, E(i)·C cannot he computed according to the expression (35). That is, when any one of the following expressions (42), (43), (44) is satisfied, E(i)·C cannot be computed according to the expression (35). Thus, when any one of the following expressions (42), (43), (44) is satisfied, the first phase difference computation unit 77D does not compute E(i)·C.
S
1
[n]S
2
[n]−S
1
[n−1]S2[n−1]=0 (42)
S
1
[n]S
2
[n]q
3
+S
1
[n−1]S2[n−1]q4+S1[n−2]S2[n−2]q1=0 (43)
S
1
[n]S
2
[n]q
5
+S
1
[n−1]S2[n−1]q6+S1[n−2]S2[n−2]q2=0 (44)
where
q
1
=S
1
[n−1]2−S1[n]2
q
2
=S
2
[n]
2
−S
2
[n−1]2
q
3
=S
1
[n−2]2−S1[n−1]2
q
4
=S
1
[n]
2
−S
1
[n−2]2
q
5
=S
2
[n−1]2−S2[n−2]2
q
6
=S
2
[n−2]2−S2[n]2
The numbers assigned to the magnetic poles, as relative numbers, using the magnetic pole sensed by the first magnetic sensor 71 at the start of the phase difference computing process as a reference magnetic pole are defined as relative pole numbers. The relative pole number of a magnetic pole sensed by the first magnetic sensor 71 (hereinafter, referred to as “first relative pole number”) is expressed by a variable r1, and the relative magnetic pole number of a magnetic pole sensed by the second magnetic sensor 72 (hereinafter, referred to as “second relative pole number”) is expressed by a variable r2. Each of the relative pole numbers r1, r2 takes an integer from one to eight, the relative pole number that is smaller than one by one is eight, and the relative pole .number that is greater than eight by one is one. In the present embodiment, when the magnetic pole (the reference magnetic pole) sensed by the first magnetic sensor 71 at the start of the phase difference computing process is a north pole, a relative pole number of “1” is assigned to the magnetic pole. On the other hand, when the magnetic pole (the reference magnetic pole) sensed by the first magnetic sensor 71 at the start of the phase difference computing process is a south pole, a relative pole number of “2” is assigned to the magnetic pole.
As illustrated in
As shown in
The first phase difference computation unit 77D determines whether the present process is the first process after the start of the phase difference computing process (step S32). If the present process is the first process after the start of the phase difference computing process (YES in step S32), the first phase difference computation unit 77D executes a relative pole number setting process (step S33).
The first phase difference computation unit 77D determines whether the first output signal S1 is greater than zero (step S51). If the first output signal S1 is greater than zero (YES in step S51), the first phase difference computation unit 77D determines that the magnetic pole sensed by the first magnetic sensor 71 is the north pole, and sets the first relative pole number r1 to one (step S54). Then, the first phase difference computation unit 77D proceeds on to step S56.
On the other hand, if the first output signal S1 is equal to or smaller than zero (NO in step S51), the first phase difference computation unit 77D determines whether the first output signal S1 is smaller than zero (step S52). If the first output signal S1 is smaller than zero (YES in step S52), the first phase difference computation unit 77D determines that the magnetic pole sensed by the first magnetic sensor 71 is the south pole, and sets the first relative pole number r1 to two (step S55). Then, the first phase difference computation unit 77D proceeds on to step S56.
If it is determined in step S52 that the first output signal S1 is equal to or greater than zero (NO in step S52), that is, if the first output signal S1 is zero, the first phase difference computation unit 77D determines whether the second output signal S2 is greater than zero in order to determine whether the rotation angle of the input, shaft 8 is 0° or 180° (step S53). If the second output signal S2 is greater than zero (YES in step S53), the first phase difference computation unit 77D determines that the rotation angle of the input shaft 8 is 0°, and sets the first relative pole number r1 to one (step S54). Then, the first phase difference computation unit 77D proceeds on to step S56.
On the other hand, if the second output signal S2 is equal to or smaller than zero (NO in step S53), the first phase difference computation unit 77D determines that the rotation angle of the input shaft 8 is 180°, and sets the first relative pole number r1 to two (step S55). Then, the first phase difference computation unit 77D proceeds on to step S56. In step S56, the first phase difference computation unit 77D determines whether the condition that “S1≧0 and S2>0” or the condition that “S1≦0 and S2<0” is satisfied. When one of the condition is satisfied (YES in step S56), the first phase difference computation unit 77D determines that the pole number of the magnetic pole sensed by the second magnetic sensor 72 is the same as the pole number of the magnetic pole sensed by the first magnetic sensor 71, and sets the second relative pole number r2 to the same number (r2=r1) as the first relative pole number r1 (step S57). Then, the first phase difference computation unit 77D proceeds on to step S36 in
On the other hand, when none of the conditions in step S56 is satisfied (NO in step S56), the first phase difference computation unit 77D determines that the pole number of the magnetic pole sensed by the second magnetic sensor 72 is greater by one than the pole number of the magnetic pole sensed by the first magnetic sensor 71, and sets the second relative pole number r2 to a number that is greater by one than the first relative pole number r1 (r2=r1+1) (step S58). Then, the first phase difference computation unit 77D proceeds on to step S36 in
The reason why the second relative pole number r2 is determined on the basis of the conditions in step S56 will be described below.
In the region Q1, both the sensor values S1, S2 satisfy the first condition that S1≧0 and S2>0. In the regions Q2, Q3, both the sensor values S1, S2 satisfy the second condition that S1>0 and S2≦0. In the region Q4, both the sensor values S1, S2 satisfy the third condition that S1≦0 and S2>0. In the regions Q5, Q6, both the sensor values S1, S2 satisfy the fourth condition that S1<0 and S2≧0. When one of the first condition and the third condition is satisfied, the first phase difference computation unit 77D determines that the pole number of the magnetic pole sensed by the second magnetic sensor 72 is the same as the pole number of the magnetic pole sensed by the first magnetic sensor 71. On the other hand, when neither the first condition nor the third condition is satisfied, the first phase difference computation unit 77D determines that the pole number of the magnetic pole sensed by the second magnetic sensor 72 is greater by one than the pole number of the magnetic pole sensed by the first magnetic sensor 71.
As shown in
If zero-crossing of one of the sensor values S1, S2 is detected in step S34 (YES in step S34), the first phase difference computation unit 77D executes a relative pole number updating process (step S35). Specifically, the first phase difference computation unit 77D changes the relative pole number r1 or r2, which is presently set for the magnetic sensor that outputs the sensor value zero-crossing of which is detected in step S34, to a number that is greater by one or a number that is smaller by one than the presently set relative pole number r1 or r2, on the basis of the rotation direction of the input shaft 8 (the magnet 61).
When the rotation direction of the input shaft 8 is the forward direction (the direction indicated by the arrow in
The rotation direction of the input shaft 8 can be determined on the basis of, for example, the immediately preceding value and the present value of the output signal zero-crossing of which is detected and the present value of the other output signal. Specifically, when the output signal zero-crossing of which, is detected is the first output signal S1, if the condition that “the immediately preceding value of the first output signal S1 is greater than zero, the present value of the first output signal S1 is equal to or smaller than zero, and the second output signal S2 is smaller than zero” or the condition that “the immediately preceding value of the first output signal S1 is smaller than zero, the present value of the first output signal S1 is equal to or greater than zero, and the second output signal S2 is greater than zero” is satisfied, it is determined that the rotation direction is the forward direction (the direction indicated by the arrow in
If the condition that “the immediately preceding value of the first output signal S1 is equal to or greater than zero, the present value of the first output signal S1 is smaller than zero, and the second output signal S2 is greater than zero” or the condition that “the immediately preceding value of the first output signal S1 is equal to or smaller than zero, the present value of the first output signal S1 is greater than zero, and the second output, signal S2 is smaller than zero” is satisfied, it is determined that the rotation direction is the reverse direction. When the output signal zero-crossing of which is detected is the second output signal S2, if the condition that “the immediately preceding value of the second output signal S2 is greater than zero, the present value of the second output signal S2 is equal to or smaller than zero, and the first output signal S1 is greater than zero” or the condition that “the immediately preceding value of the second output signal S2 is smaller than zero, the present value of the second output signal S2 is equal to or greater than zero, and the first output signal S1 is smaller than zero” is satisfied, it is determined that the rotation direction is the forward direction (the direction indicated by the arrow in
When the relative pole number updating process ends, the first phase difference computation unit 7D proceeds on to step S36. In step S36, the first phase difference computation unit 77D determines whether the condition that both the first and second magnetic sensors 71, 72 sense one and the same magnetic pole for three consecutive computation periods is satisfied. This is because the expression (35) used to compute E(i)·C is derived on the precondition that all the angular width error correction values E(i) included in sensor values from both the magnetic sensors 71, 72, which are sampled at three sampling timings, are equal to each other. In each computation period, the relative numbers of the magnetic poles sensed by the magnetic sensors 71, 72 can be recognized with the use of the first relative magnetic pole number r1 and the second relative magnetic pole number r2, respectively. Therefore, if the relative magnetic pole numbers r1, r2 for multiple computation periods from the n-th preceding computation period (n is a prescribed value) to the present computation, period are stored in the memory, the first phase difference computation unit 77D can make the determination in step S37.
If the condition in step S36 is not satisfied (NO in step S36), the first phase difference computation unit 77D returns to step S31. On the other hand, if the condition in step S36 is satisfied (YES in step S36), the first phase difference computation unit 77D determines whether the condition that none of the denominators of the fractions included in the arithmetic expression (the expression (35)) for computing the value of E(i)·C are zero is satisfied (step S37). When none of the three expressions (42), (43), (44) are satisfied, the first phase difference computation unit 77D determines that the condition is satisfied.
If it is determined in step S37 that the condition in step S37 is not satisfied (NO in step S37), the first phase difference computation unit 77D returns to step S31. On the other hand, when it is determined in step S37 that the condition in step S37 is satisfied (YES in step S37), the first phase difference computation unit 77D computes the value of E(i)·C with the use of the sensor values from both the magnetic sensors 71, 72, which are sampled at three sampling timings, and the expression (35), and stores the value of E(i)·C in the area e1 (see
Then, the first phase difference computation unit 77D determines whether values of E(i)·C corresponding to all the magnetic poles are stored in the memory (step S39). If the values of E(i)·C corresponding to all the magnetic poles are not stored in the memory (NO in step S39), the first phase difference computation unit 77D returns to step S31. On the other hand, if the values of E(i)·corresponding to all the magnetic poles are stored in the memory (YES in step S39), the first phase difference computation unit 77D computes the phase difference C with the use of the values of E(i)·C corresponding to all the magnetic poles stored in the memory and the expression (41), and stores the obtained phase difference C in the nonvolatile memory (step S40). Then, the phase difference computing process ends.
In the foregoing embodiment, when the value of E(i)·C has already been stored in the storage location associated with the value of the presently set r1 (=r2), among storage locations in the area e1 in the memory, the already stored, value is overwritten with the value of the presently computed E(i)·C. However, the value of the presently computed E(i)·C may not be stored in such a case. Each of
In the phase difference computing process in
The phase difference computing process in
In step S41, the first phase difference computation unit 77D determines whether the presently set first relative number r1 and second relative number r2 are equal to each other. When the first relative number r1 and the second relative number r2 are not equal to each other (NO in step S41), the first phase difference computation unit 77D returns to step S31. When it is determined in step S41 that the first relative number r1 and the second relative number r2 are equal to each other (YES in step S41), the first phase difference computation unit 77D determines whether the value of E(i)·C has already been stored in the storage location, which is associated with the value of the presently set r1 (=r2), among storage locations in the area e1 of the memory (step S42). If the value of E(i)·C has already been stored in the storage location (YES in step S42), the first phase difference computation unit 77D returns to step S31. If it is determined in step S42 that the value of E(i)·C has not been stored in the storage location (NO in step S42), the first phase difference computation unit 77D proceeds on to step S36.
Number | Date | Country | Kind |
---|---|---|---|
2012-271639 | Dec 2012 | JP | national |