The present invention relates to a rotation angle detection device that detects a rotation angle of a rotating body.
A brushless motor used in an electric power steering apparatus, etc., is controlled by supplying an electric current to a stator coil in accordance with a rotation angle of a rotor. There is thus known a rotation angle detection device that uses a detection rotor that rotates in accordance with rotation of the brushless motor to detect the rotation angle of the rotor of the brushless motor. Specifically, as shown in
In the present example, the magnet 102 has five magnetic pole pairs. That is, the magnet 102 has ten magnetic poles disposed at equiangular intervals. Each magnetic pole is disposed at an angular interval of 36° (180° as electrical angle) centered at the central rotation axis of the rotor 101. Also, the two magnetic sensors 121 and 122 are disposed at an angular interval of 18° (90° as electrical angle) centered at the central rotation axis of the rotor 101.
A direction indicated by an arrow in
Here, an absolute rotation angle of the rotor 101 from a predetermined reference position shall be deemed to be the absolute rotation angle (rotation angle in accordance with the mechanical angle) θA of the rotor 101. An angular range of a single rotation of the rotor 101 shall be divided into five divisions corresponding to the five magnetic pole pairs, and an angle of the rotor 101 with a start position of each division being expressed as 0° and an end position being expressed as 360° shall be deemed to be a relative rotation angle θR of the rotor 101. In the present case, the ten magnetic poles are equal in angular width and thus the relative rotation angle θR of the rotor 101 matches the electrical angle of the rotor of the brushless motor.
Here, it shall be deemed that the output signal V1=A1·sin θR is output from the first magnetic sensor 121 and the output signal V2=A2·cos θR is output from the second magnetic sensor 122. A1 and A2 are amplitudes. If the amplitudes A1 and A2 of the two output signals V1 and V2 are deemed to be equal, the relative rotation angle θR of the rotor 101 can be determined based on the following formula (1) using the two output signals V1 and V2.
The brushless motor is controlled using the relative rotation angle θR thus determined.
In a case where the absolute rotation angle θA of the rotor 101 is equal to a mechanical angle of the rotor 101 from a predetermined reference position, the absolute rotation angle θA of the rotor 101 can be determined based on, for example, the following formula (2) and using the relative rotation angle θR.
θA={θR+360×(j−1)}/5(j=1,2, . . . 5) (2)
In using a conventional rotation angle detection device such as that described above for detecting a rotation angle of a rotor of a brushless motor, the number of magnetic poles of the detection rotor 101 and the number of magnetic poles of the brushless motor are preferably made equal in order to detect an electrical angle, used for control of the brushless motor, at high precision. However, as the number of magnetic poles to be magnetized in the detection rotor 101 increases, variation arises in the angular widths of the respective magnetic poles due to magnetization error. Variation in the angular widths of the respective magnetic poles leads to error in the rotation angle detected by the rotation angle detection device.
An object of the present invention is to provide a rotation angle detection device capable of detecting a rotation angle of a rotating body at high precision even when there is variation in the angular widths of the respective magnetic poles provided in a detection rotor.
A rotation angle detection device (20) according to the present invention includes a detection rotor (1) rotating in accordance with rotation of a rotating body (10) and provided with a plurality of magnetic poles (M0 to M9), a first magnetic sensor (21) outputting, in accordance with the rotation of the detection rotor, a first output signal (V1=A1·sin θ) that is a sinusoidal signal serving as a reference, and a second magnetic sensor (22) outputting, in accordance with the rotation of the detection rotor, a second output signal (V2=A2·cos θ) that is a sinusoidal signal having a predetermined phase difference with respect to the first output signal, detects a rotation angle of the rotating body based on the output signals of the magnetic sensors, and further includes a storage unit (20) configured to store angular widths of the respective magnetic poles measured in advance, a unit (20) configured to set, for each magnetic pole pair of the plurality of magnetic poles, a division corresponding to an angular width of the magnetic pole pair, a magnetic pole identification unit (20, S2 to S5) configured to identify, based on the first output signal, a magnetic pole sensed by the first magnetic sensor, a first computation unit (20, S7) configured to compute, based on the first output signal, a first rotation angle (θRS) that is a rotation angle within the division, a second computation unit (20, S9) configured to compute, based on the second output signal, a second rotation angle (θRC) that is a rotation angle within the division, a third computation unit (20, S8) configured to compute a first absolute rotation angle (θAS) of the detection rotor based on the first rotation angle computed by the first computation unit, the angular widths of the respective magnetic poles stored in the storage unit, and the magnetic pole identified by the magnetic pole identifying unit, a fourth computation unit (20, S10) configured to compute a second absolute rotation angle (θAC) of the detection rotor based on the second rotation angle computed by the second computation unit, the angular widths of the respective magnetic poles stored in the storage unit, and the magnetic pole identified by the magnetic pole identifying unit, and a fifth computation unit (20, S11, S12, S31, S32, S12A) configured to compute a rotation angle (θE) of the rotating body based on the first absolute rotation angle computed by the third computation unit and the second absolute rotation angle computed by the fourth computation unit. The alphanumeric characters in parenthesis express corresponding components in preferred embodiments described below. However, this is not intended for the present invention to be interpreted as being limited to the preferred embodiments.
With the above arrangement, the magnetic pole sensed by the first magnetic sensor is identified based on the first output signal. The first rotation angle (first relative rotation angle) that is the rotation angle within the magnetic pole pair division is computed based on the first output signal. The first absolute rotation angle of the detection rotor is computed based on the first rotation angle, the angular widths of the respective magnetic poles, and the magnetic pole sensed by the first magnetic sensor. The absolute rotation angle can thereby be computed accurately from the first rotation angle even if there is variation in the angular widths of the plurality of magnetic poles provided in the detection rotor. Also, the second rotation angle (second relative rotation angle) that is the rotation angle within the magnetic pole pair division is computed based on the second output signal. The second absolute rotation angle of the detection rotor is computed based on the second rotation angle, the angular widths of the respective magnetic poles, and the magnetic pole sensed by the first magnetic sensor. The absolute rotation angle can thereby be computed accurately from the second rotation angle even if there is variation in the angular widths of the plurality of magnetic poles provided in the detection rotor. The rotation angle of the rotating body is computed based on the first absolute rotation angle and the second absolute rotation angle. The rotation angle of the rotating body can thereby be detected at high precision even if there is variation in the angular widths of the respective magnetic poles.
In a preferred embodiment according to the present invention, the fifth computation unit includes a unit configured to switch, based on a signal value of the first output signal and a signal value of the second output signal, a method for computing the rotation angle of rotating body based on the first absolute rotation angle and the second absolute rotation angle. With this arrangement, the method for computing the rotation angle of the rotating body based on the first absolute rotation angle and the second absolute rotation angle is switched based on the signal value of the first output signal and the signal value of the second output signal. The rotation angle of the rotating body can thereby be computed by an appropriate computing method that is in accordance with the signal value of the first output signal and the signal value of the second output signal.
In a preferred embodiment according to the present invention, the phase difference between the first output signal and the second output signal is 90° (90° as relative rotation angle), the first computation unit computes the first rotation angle based on the first output signal and a polarity of the second output signal, the second computation unit computes the second rotation angle based on the second output signal and a polarity of the first output signal, and the fifth computation unit includes a unit (20, S11, S12) configured to compute the rotation angle of the rotating body based on the second absolute rotation angle computed by the fourth computation unit when the first output signal is near an extremism, a unit (20, S11, S12) configured to compute the rotation angle of the rotating body based on the first absolute rotation angle computed by the third computation unit when the second output signal is near an extremum, and a unit (20, S11, S12) configured to compute the rotation angle of the rotating body based on one of either or both of the first absolute rotation angle computed by the third computation unit and the second absolute rotation angle computed by the fourth computation unit when neither the first output signal nor the second output signal is near an extremum.
With this arrangement, the first rotation angle (first relative rotation angle) is computed based on the first output signal and the polarity of the second output signal. The polarity of the second output signal becomes inverted at a zero cross position of the second output signal as a boundary. Thus, when a peak position of the first output signal and the zero cross position of the second output signal are shifted, an error may occur in the first rotation angle near the peak position of the first output signal.
Thus, when the first output signal is near an extremum, the rotation angle of the rotating body is computed based on the second absolute rotation angle computed by the fourth computation unit. That is, when the first output signal is near the extremum, the rotation angle of the rotating body is computed not using the first absolute rotation angle that is computed based on the first rotation angle in which there is a possibility of occurrence of error, but using the second absolute rotation angle. The rotation angle of the rotating body can thereby be computed with high precision even when the peak position of the first output signal and the zero cross position of the second output signal are shifted.
Also, the second rotation angle (second relative rotation angle) is computed based on the second output signal and the polarity of the first output signal. The polarity of the first output signal becomes inverted at a zero cross position of the first output signal as a boundary. Thus, when a peak position of the second output signal and the zero cross position of the first output signal are shifted, an error may occur in the second rotation angle near the peak position of the second output signal.
Thus, when the second output signal is near an extremum, the rotation angle of the rotating body is computed based on the first absolute rotation angle computed by the third computation unit. That is, when the second output signal is near the extremum, the rotation angle of the rotating body is computed not using the second absolute rotation angle that is computed based on the second rotation angle in which there is a possibility of occurrence of error, but using the first absolute rotation angle. The rotation angle of the rotating body can thereby be computed with high precision even when the peak position of the second output signal and the zero cross position of the first output signal are shifted.
In a case where neither the first output signal nor the second output signal is near an extremum, the rotation angle of the rotating body is computed based on one of either or both of the first absolute rotation angle computed by the third computation unit and the second absolute rotation angle computed by the fourth computation unit. In a case where the rotation angle of the rotating body is computed based on both the first absolute rotation angle and the second absolute rotation angle, the rotation angle of the rotating body is computed by taking an average of the first absolute rotation angle and the second absolute rotation angle or adding the two upon applying weights to each.
In a preferred embodiment of the present invention, the fifth computation unit includes a unit (20, S31) configured to compute, as a third output signal value, a value (sin (θAB)) that is in accordance with a first output signal value corresponding to the first absolute rotation angle, a unit (20, S32) configured to compute, as a fourth output signal value, a value (cos(θAC)) that is in accordance with a second output signal value corresponding to the second absolute rotation angle, and a unit (20, S12A) configured to compute the rotation angle of the rotating body based on the third output signal value and the fourth output signal value.
With this arrangement, the value that is in accordance with the first output signal value corresponding to the first absolute rotation angle is computed as the third output signal value. Also, the value that is in accordance with the second output signal value corresponding to the second absolute rotation angle is computed as the fourth output signal value. The rotation angle of the rotating body is then computed based on the third output signal value and the fourth output signal value.
In a preferred embodiment of the present invention, the magnetic pole identification unit includes a detection unit (20, S2) configured to detect an extremum of the first output signal and a unit (20, S3 to S5) configured to identify the magnetic pole sensed by the first magnetic sensor based on the extremum detected by the detection unit and extremum data set in advance.
With this arrangement, the extremum of the first output signal is detected by the detection unit. The magnetic pole sensed by the first magnetic sensor is identified based on the extremum detected by the detection unit and the extremum data set in advance.
The above and yet other objects, features, and effects of the present invention shall be made clearer by the following description of the preferred embodiments with reference to the attached drawings.
Preferred embodiments with which the present invention is applied to a rotation angle detection device for detecting a rotation angle of a rotor of a brushless motor shall now be described in detail with reference to the attached drawings.
The rotation angle detection device includes a detection rotor (hereinafter referred to simply as the “rotor 1”) that rotates in accordance with rotation of a brushless motor 10. As shown in
All of the respective magnetic poles provided in the rotor of the brushless motor 10 have the same length in the circumferential direction. That is, all of the respective magnetic poles provided in the rotor of the brushless motor 10 have the same angular width of 36°. Thus, with the brushless motor 10, an angular width of a single magnetic pole pair is 72° as a mechanical angle and this corresponds to an electrical angle of 360°. Meanwhile, as shown in
In the present preferred embodiment, the angular widths of the respective magnetic poles M0 to M9 are set as shown in Table 1. In Table 1, each angular width is expressed by multiplying the mechanical angle corresponding to the angular width by the number of magnetic pole pairs (“5” in the present preferred embodiment). In
At a periphery of the rotor 1, two magnetic sensors 21 and 22 are disposed at an angular interval of a predetermined angle (18° (90° as the electrical angle)) centered at a central rotation axis of the rotor 1. The two magnetic sensors 21 and 22 may be referred to as the first magnetic sensor 21 and the second magnetic sensor 22, respectively, in some cases. As the magnetic sensors, for example, Hall elements, magnetoresistive elements (MR elements), or other elements having a characteristic of changing in electrical characteristic due to action of a magnetic field, may be used.
A direction indicated by the arrow in
When the rotor 1 rotates by an angle corresponding to a single magnetic pole, sinusoidal signals of a half cycle are output from the respective magnetic sensors 21 and 22. However, in the present preferred embodiment, the angular widths of the respective magnetic poles are not of fixed width and thus in the sinusoidal signal output from a magnetic sensor, the half-cycles corresponding to the respective magnetic poles are not fixed. Also, with the exception of the magnetic pole M5 and the magnetic pole M9, the peak values, corresponding to the respective magnetic poles, of the output signals V1 and V2 of the respective magnetic sensors 21 and 22 differ according to magnetic pole.
An absolute rotation angle of the rotor 1 from a predetermined reference position shall be deemed to be the absolute rotation angle θA of the rotor 1. However, in the present preferred embodiment, the absolute rotation angle θA of the rotor 1 is a value with which a mechanical angle of the rotor 1 from a predetermined reference position is multiplied by the number of magnetic pole pairs (“5” in the present preferred embodiment). The mechanical angle of the rotor 1 from the predetermined reference position is thus the value obtained by dividing the absolute rotation angle θA by the number of magnetic pole pairs (“5” in the present preferred embodiment).
An angular range of a single rotation of the rotor 1 shall be divided into five divisions (a+b, c+d, e+f, g+h, and i+j) in correspondence to the angular widths of the five magnetic pole pairs, a start position of each division shall be deemed to be 0°, an end position of each division shall be deemed to be 360°, and an angle corresponding to the absolute rotation angle θA and expressed in the range of 0 to 360° shall be deemed to be a relative rotation angle θR of the rotor 1. In the present preferred embodiment, the angular widths of the five divisions are not of fixed width.
Here, it shall be deemed that a sinusoidal signal V1 (=A1·sin θR) that serves as a reference is output from the first magnetic sensor 21 at each division corresponding to each of the five magnetic pole pairs and a sinusoidal signal V2 (=A2·sin(θR+90°)=A2·cos θR), having a phase difference of 90° as relative rotation angle with respect to the signal V1, is output from the second magnetic sensor 22 at each division corresponding to each of the five magnetic pole pairs. A1 and A2 respectively express amplitudes. However, the amplitude A1 changes according to the angular width of the magnetic poles sensed by the first magnetic sensor 21. Likewise, the amplitude A2 also changes according to the angular width of the magnetic poles sensed by the second magnetic sensor 22. Also, θR expresses the relative rotation angle θR in the corresponding division. The output signal V1 of the first magnetic sensor 21 may be referred to at times as the first output signal V1, and the output signal V2 of the second magnetic sensor 22 may be referred to at times as the second output signal V2.
As shall be described later, the output signals V1 and V2 are normalized (amplitude-compensated) so that the amplitudes A1 and A2 according to the magnetic poles respectively become A. The normalized (amplitude-compensated) first output signal shall be expressed as V1′=A·sin θR and the normalized (amplitude-compensated) second output signal shall be expressed as V2′=A·cos θR. By determining sin−1(V1′/A) from the amplitude-compensated first output signal V1′, the relative rotation angle θR (hereinafter referred to as the “first relative rotation angle θRS”) in the corresponding division can be determined. The first relative rotation angle θRS can be determined based on the following formula (3).
θRS=sin−1(V1′/A)+α (3)
Here, sin−1 (V1′/A) is determined as an angle within a range of 0° to 90° or 270° to 360°. Also, α is a variable that is determined according to a polarity (positive or negative) of the output signal V2 of the second magnetic sensor 22.
As shown in
Referring to formula (3), in the case where the value of the amplitude-corrected first output signal V1′ is positive, the rotation angle computation device 20 determines the rotation angle corresponding to sin−1(V1′/A) as being a rotation angle within the region P1. If the polarity of the amplitude-corrected second output signal V2′ is positive, the rotation angle computation device 20 sets α to α=0 and if the polarity of the amplitude-corrected second output signal V2′ is negative, the rotation angle computation device 20 sets α to α=180°−2·sin−1(V1′/A).
On the other hand, in a case where the value of the amplitude-corrected first output signal V1′ is negative as in the case of A·sin 315°, the rotation angles corresponding to sin−1 (V1′/A) are the two angles of the corresponding rotation angle (for example, 225°) within a range Q1 of the relative rotation angle θR of 180° to 270° and the corresponding rotation angle (for example, 315°) within a range Q2 of the relative rotation angle θR of 270° to 360°. That is, in the case where the value of the amplitude-corrected first output signal V1′ is negative, it is unknown whether the actual relative rotation angle θR is in the region Q1 or in the region Q2 from just determining the rotation angles corresponding to sin−1(V1′/A). Thus, in the present preferred embodiment, whether the actual relative rotation angle θR is in the region Q1 or in the region Q2 is judged based on the polarity of the amplitude-corrected second output signal V2′. That is, if the polarity of the amplitude-corrected second output signal V2′ is positive, it is judged that the actual relative rotation angle θR is in the region Q2 and if the polarity of the amplitude-corrected second output signal V2′ is negative, it is judged that the actual relative rotation angle θR is in the region Q1.
Referring to formula (3), in the case where the value of the amplitude-corrected first output signal V1′ is negative, the rotation angle computation device 20 determines the rotation angle corresponding to sin−1 (V1′/A) as being a rotation angle within the region Q2. If the polarity of the amplitude-corrected second output signal V2′ is positive, the rotation angle computation device 20 sets α to α=0 and if the polarity of the amplitude-corrected second output signal V2′ is negative, the rotation angle computation device 20 sets α to α=540°−2·sin−1(V1′/A).
By determining cos−1 (V2′/A) from the amplitude-corrected second output signal V2′, the relative rotation angle θR (hereinafter referred to as the “second relative rotation angle θRC”) in the corresponding division can be determined. The second relative rotation angle θRC can be determined based on the following formula (4).
θRC=cos−1(V2′/A)+β (4)
Here, cos−1 (V2′/A) is determined as an angle within a range of 0° to 180°. Also, β is a variable that is determined according to a polarity (positive or negative) of the amplitude-corrected first output signal V1′.
As shown in
Referring to formula (4), the rotation angle computation device 20 determines the rotation angle corresponding to cos−1 (V2′/A) as being a rotation angle within the region P. If the polarity of the amplitude-corrected first output signal V1′ is positive, the rotation angle computation device 20 sets β to β=0 and if the polarity of the amplitude-corrected first output signal V1′ is negative, the rotation angle computation device 20 sets β to β=360°−2·cos−1 (V2′/A).
Returning to
The electrical angle θE computed by the rotation angle computation device 20 is provided to a motor controller 30. The motor controller 30 controls the brushless motor 10 based on the electrical angle θE provided from the rotation angle computation device 20 and a predetermined command value.
Operation of the rotation angle computation device 20 shall now be described. Amplitude compensation tables are stored according to the magnetic sensors 21 and 22 in the rewritable nonvolatile memory of the rotation angle computation device 20.
The amplitude compensation gain G1 for any magnetic pole is determined based on the following formula (5) using the peak value (maximum value or minimum value) of the first output signal V1 that corresponds to the magnetic pole and a reference amplitude. The reference amplitude is, for example, a value corresponding to a peak value (absolute value) of the first output signal V1 that corresponds to a magnetic pole for which the angular width (mechanical angle×number of magnetic pole pairs) is 180°. The reference amplitude is set in advance and is “500” in the present example.
G1=Reference amplitude/|Peak value| (5)
The compensation gain G2 for any magnetic pole is determined based on the following formula (6) using the peak value (maximum value or minimum value) of the second output signal V2 that corresponds to the magnetic pole and a reference amplitude. The reference amplitude is, for example, a value corresponding to a peak value (absolute value) of the second output signal V2 that corresponds to a magnetic pole for which the angular width is 180°. The reference amplitude is set in advance and is “500” in the present example.
G2=Reference amplitude/|peak value| (6)
The storing of the peak values and the compensation gains in the amplitude compensation tables may be performed before shipment of the brushless motor 10 or may be performed by detecting peak values during motor control after shipment of the brushless motor 10. The peak values and the compensation gains stored in the amplitude compensation tables may be determined from data of a single cycle or may be determined from average values of data of a plurality of cycles.
Also, two types of magnetic pole identification tables (which may hereinafter be referred to as the “third table” and the “fourth table”) are stored in the rewritable nonvolatile memory in the rotation angle computation device 20. In the third table, data indicating the pole number of a magnetic pole sensed by the second magnetic sensor 22 when a peak value with respect to a magnetic pole is detected by the first magnetic sensor 21 is stored according to each magnetic pole (each magnetic pole number) for which the peak value is detected by the first magnetic sensor 21. In the fourth table, data indicating the pole number of a magnetic pole sensed by the first magnetic sensor 21 when a peak value with respect to a magnetic pole is detected by the second magnetic sensor 22 is stored according to each magnetic pole (each magnetic pole number) for which the peak value is detected by the second magnetic sensor 22. The third table and the fourth table are prepared based on the positions and the angular interval of the two magnetic sensors 21 and 22 and the arrangement of the rotor 1.
Upon detecting a peak value from the output signal V1 or V2 of the first or second magnetic sensor 21 or 22, the rotation angle computation device 20 identifies, based on the amplitude compensation table (the first table or the second table) corresponding to the magnetic sensor with which the peak value is detected, the pole number of the magnetic pole sensed by the magnetic sensor. The peak value of a sensor signal changes in accordance with temperature characteristics of the magnet (the peak value decreases as a temperature of the magnet increases) and thus in the above process, the table value may be compensated by multiplying the peak value of the amplitude compensation table by a temperature coefficient (a coefficient that decreases as the temperature increases) of the magnet and the pole number of the magnetic pole may be identified based on the detected peak value and the compensated table value.
In the present preferred embodiment, the peak value corresponding to the magnetic pole M5 and the peak value corresponding to the magnetic pole M9 are the same and thus when the peak value corresponding to the magnetic pole M5 or the magnetic pole M9 is detected by one of either magnetic sensor, the rotation angle computation device 20 cannot identify the pole number of the magnetic pole sensed by the magnetic sensor. The rotation angle computation device 20 thus identifies the pole number of the magnetic pole sensed by either magnetic sensor when a peak value corresponding to a magnetic pole other than magnetic pole M5 or M9 is detected by the magnetic sensor after the start of the rotation angle computation process.
Based on the identified pole number and the third or fourth table (magnetic pole identification table), the rotation angle computation device 20 identifies the pole number of the magnetic pole sensed by the other magnetic sensor. For example, when the pole number of the magnetic pole sensed by the first magnetic sensor 21 is identified based on the first table, then, based on the identified pole number and the third table, the pole number of the magnetic pole sensed by the second magnetic sensor 22 is identified. On the other hand, when the pole number of the magnetic pole sensed by the second magnetic sensor 22 is identified based on the second table, then, based on the identified pole number and the fourth table, the pole number of the magnetic pole sensed by the first magnetic sensor 21 is identified.
The pole numbers of the magnetic poles sensed by the respective magnetic sensors 21 and 22 are thereby identified, and the rotation angle computation device 20 thus amplitude-compensates the output signals V1 and V2 of the respective magnetic sensors 21 and 22 using the compensation gains G1 and G2 corresponding to the magnetic poles being sensed respectively.
The rotation angle computation device 20 then computes the first relative rotation angle θRS of the rotor 1 based on the value of the amplitude-compensated first output signal V1′ and the polarity of the amplitude-compensated second output signal V2′ (see
Also, the rotation angle computation device 20 computes the final absolute rotation angle θA based on the obtained first absolute rotation angle θAS and second absolute rotation angle θAC and computes the electrical angle θE of the brushless motor 10 based on the obtained final absolute rotation angle θA.
Thereafter, each time a peak value is detected from the output signal V1 and V2 of the first or second magnetic sensor 21 or 22, the rotation angle computation device 20 updates the pole number already identified for the one magnetic sensor for which the peak value is detected and compensates the output signal of the magnetic sensor using the compensation gain corresponding to the updated pole number. The rotation angle computation device 20 then computes the electrical angle θE of the brushless motor 10 in the same manner as described above.
When the motor controller 30 is started up, the rotation angle computation device 20 reads the output signals (sensor values) V1 and V2 of the respective magnetic sensors 21 and 22 (step S1). Sensor values of a plurality of times of reading, from the sensor values read a predetermined number of times previously up to the most recently read sensor values, are stored in the memory (for example, RAM) of the rotation angle computation device 20. Based on the sensor values stored in the memory, the rotation angle computation device 20 judges, for each of the sensor values V1 and V2, whether or not a peak value has been detected (step S2). The judgment process of step S2 may be referred to hereinafter as the peak value detection process. Specifically, the rotation angle computation device 20 judges that a peak value (maximum value) is detected and identifies the maximum value when a sensor value changes from an increasing trend to a decreasing trend. Also, the rotation angle computation device 20 judges that a peak value (minimum value) is detected and identifies the minimum value when a sensor value changes from a decreasing trend to an increasing trend.
If a peak value is not detected in step S2 (step S2: NO), step S6 is entered. On the other hand, if a peak value is detected in step S2 (step S2: YES), the rotation angle computation device 20 judges whether or not the magnetic poles sensed by the respective magnetic sensors 21 and 22 have already been identified by a pole number identification process of step S4, to be described below, after the startup of the controller (step S3).
If the pole number identification process has not been performed after controller startup or the pole number identification process has been performed but the magnetic poles sensed by the respective magnetic sensors 21 and 22 could not be identified after controller startup (step S3: NO), the rotation angle computation device 20 performs the pole number identification process (step S4). That is, the rotation angle computation device 20 performs the process for identifying the magnetic poles respectively sensed by the respective magnetic sensors 21 and 22.
Specifically, based on the peak value (maximum value or minimum value) detected by the peak value detection process of step S2 and the contents of the amplitude compensation table (the first or the second table) corresponding to the magnetic sensor that outputted the peak value, the rotation angle computation device 20 first identifies the magnetic pole sensed by the magnetic sensor. That is, the rotation angle computation device 20 identifies the pole number corresponding to the peak value, which, among the plurality of peak values stored in the amplitude compensation table, is closest to the peak value detected by the peak value detection process, as the pole number of the magnetic pole sensed by the magnetic sensor.
However, in the case where the pole number corresponding to the peak value closest to the peak value detected by the peak value detection process is the pole number corresponding to the magnetic pole M5 or the magnetic pole M9, the rotation angle computation device 20 does not identify the magnetic pole sensed by the magnetic sensor.
In the case where the pole number of the magnetic pole sensed by the magnetic sensor could be identified, the rotation angle computation device 20 identifies, based on the pole number of the magnetic pole sensed by the magnetic sensor and the third table or the fourth table (magnetic pole identification table), the magnetic pole sensed by the other magnetic sensor. The magnetic poles sensed by the respective magnetic sensors 21 and 22 are thereby identified. When the process of step S4 is completed, step S6 is entered.
If in step S3, it is judged that pole numbers of the magnetic poles sensed by the respective sensors 21 and 22 have been identified by the pole number identification process of step S4 performed after controller startup (step S3: YES), the rotation angle computation device 20 performs a pole number update process (step S5). Specifically, the rotation angle computation device 20 updates, based on the direction of rotation of the rotor 1, the pole number already identified for the magnetic sensor for which the peak value was detected by the peak value detection process of step S2. More specifically, the rotation angle computation device 20 changes the pole number already identified for the magnetic sensor to a pole number that is greater by just 1 or a pole number that is less by just 1 in accordance with the direction of rotation of the rotor 1.
If the direction of rotation of the rotor 1 is the positive direction (direction indicated by the arrow in
In step S6, the rotation angle computation device 20 performs amplitude compensation on the sensor values V1 and V2 read in step S1. Specifically, the rotation angle computation device 20 reads, from the first table and the second table, the amplitude compensation gains G1 and G2 corresponding to the pole numbers currently identified for the respective magnetic sensors 21 and 22. The rotation angle computation device 20 then uses the gains G1 and G2 read from the first table and the second table to respectively compensate the sensor values V1 and V2 read in step S1. If V1′ and V2′ are the compensated sensor values, V1′ and V2′ are respectively expressed by the following formulae (7) and (8).
V1′=V1×G1 (7)
V2′=V2×G2 (8)
However, from the startup of the controller until the detection of a peak value, the magnetic poles sensed by the respective magnetic sensors 21 and 22 are not identified and thus step S7 is entered without the compensation of the sensor values V1 and V2 being performed in step S6. Step S7 is also entered without the compensation of the sensor values V1 and V2 being performed in step S6 if in a case where step S6 is entered from step S4, the pole numbers of the magnetic poles sensed by the two magnetic sensors 21 and 22 are not identified in the pole number identification process of step S4.
When the amplitude compensation of step S6 has been performed, the rotation angle computation device 20 computes the first relative rotation angle θRS of the rotor 1 using the amplitude-compensated first output signal V1′ and the polarity of the amplitude-compensated second output signal V2′ and based on formula (3) (step S7).
The rotation angle computation device 20 then computes the first absolute rotation angle θAS of the rotor 1 based on the first relative rotation angle θRS of the rotor 1 computed in step S7, the pole number of the magnetic pole sensed by the first magnetic sensor 21, and the contents of the amplitude compensation table (step S8). The pole number from 0 to 9 of the magnetic pole M0 to magnetic pole M9 shall be expressed by n. The angular width of each of the magnetic pole M0 to the magnetic pole M9 shall be expressed by Wn (n=0, . . . , 9). Here, as described with Table 1, the angular width is a value obtained by multiplying the mechanical angle corresponding to the angular width by the number of magnetic pole pairs (“5” in the present preferred embodiment). The pole number of the magnetic pole sensed by the first magnetic sensor 21 shall be expressed by m. The rotation angle computation device 20 computes the first absolute rotation angle θAS based on the following formula (9), (10), or (11).
In a case where m is 0;
θAS=θRS×(Wm/180) (9)
In a case where m is 2, 4, 6, or 8;
In a case where m is 1, 3, 5, 7, or 9;
In the case where m is 0, 2, 4, 6, or 8, that is, in the case where the amplitude-compensated first output signal V1′ is positive, the first relative rotation angle θRS is an angle within the range of 0° to 180°. On the other hand, in the case where m is 1, 3, 5, 7, or 9, that is, in the case where the amplitude-compensated first output signal V1′ is negative, the first relative rotation angle θRS is an angle within the range of 180° to 360°.
The term {θRS×(Wm/180} at the right hand side of each of formulae (9) and (10) is a term for converting (phase-compensating) the first relative rotation angle θRS (0° to 180°) to a relative rotation angle (0° to Wm) that is in accordance with the angular width Wm (m=0, 2, 4, 6, 8) of the magnetic pole sensed by the first magnetic sensor 21. The term {(θRS−180)×(Wm/180)} at the right hand side of formula (11) is a term for converting (phase-compensating) the first relative rotation angle θRS (180° to 360°) to a relative rotation angle (0° to Wm) that is in accordance with the angular width Wm (m=1, 3, 5, 7, 9) of the magnetic pole sensed by the first magnetic sensor 21.
For example, in a case where the pole number m of the magnetic pole sensed by the first magnetic sensor 21 is 0, that is, in the case where the magnetic pole sensed by the first magnetic sensor 21 is M0, the first absolute rotation angle θAS is, from formula (9), θAS={θRS×(W0/180)}. W0=170 (see
Also, in a case where the pole number m of the magnetic pole sensed by the first magnetic sensor 21 is 1, that is, in the case where the magnetic pole sensed by the first magnetic sensor 21 is M1, the first absolute rotation angle θAS is, from formula (11), θAS=[{(θRS−180)×(W1/180)}+WO]. W0=170, W1=165 (see
Also, in a case where the pole number m of the magnetic pole sensed by the first magnetic sensor 21 is 2, that is, in the case where the magnetic pole sensed by the first magnetic sensor 21 is M2, the first absolute rotation angle θAS is, from formula (10), θAS=[{θRS×(W2/180)}+(WO+W1)]. W0=170, W1=165, W2=160 (see
When the process of step S8 has been performed, the rotation angle computation device 20 computes the second relative rotation angle θRC of the rotor 1 using the amplitude-compensated second output signal V2′ and the polarity of the amplitude-compensated first output signal V1′ and based on formula (4) (step S9).
The rotation angle computation device 20 then computes the second absolute rotation angle θAC of the rotor 1 based on the second relative rotation angle θRC of the rotor 1 computed in step S9, the pole number of the magnetic pole sensed by the first magnetic sensor 21, and the contents of the amplitude compensation table (step S10). The pole number from 0 to 9 of the magnetic pole M0 to magnetic pole M9 shall be expressed by n. The angular width of each of the magnetic pole M0 to the magnetic M9 shall be expressed by Wn (n=0, 1, . . . , 9). The pole number of the magnetic pole sensed by the first magnetic sensor 21 shall be expressed by m. The rotation angle computation device 20 computes the second absolute rotation angle θAC based on the following formula (12), (13), or (14).
In a case where m is 0;
θAC=θRC×(Wm/180) (12)
In a case where m is 2, 4, 6, or 8;
In a case where m is 1, 3, 5, 7, or 9;
The term {θRC×(Wm/180)} at the right hand side of each of formulae (12) and (13) is a term for converting (phase-compensating) the second relative rotation angle θRC (0° to 180°) to a relative rotation angle (0° to Wm) that is in accordance with the angular width Wm (m=0, 2, 4, 6, 8) of the magnetic pole sensed by the first magnetic sensor 21. The term {(θRC−180)×(Wm/180)} at the right hand side of formula (14) is a term for converting (phase-compensating) the second relative rotation angle θRC (180° to 360°) to a relative rotation angle (0° to Wm) that is in accordance with the angular width Wm (m=1, 3, 5, 7, 9) of the magnetic pole sensed by the first magnetic sensor 21.
When the first absolute rotation angle θAS and the second absolute rotation angle θAC have been computed as described above, the rotation angle computation device 20 computes the final absolute rotation angle θA based on the absolute rotation angles θAS and θAC (step S11). Specifically, the rotation angle computation device 20 computes the final absolute rotation angle θA based on the following formula (15) in which K (K>0) is a predetermined threshold.
When |V1′|≧K;
θA=θAC,
when |V2′|≧K;
θA=θAS, and
otherwise
θA=(θAS+θAC)/2. (15)
Referring to
By the same reason, in a case where the absolute value |V2′| of the amplitude-corrected second output signal V2′ (=A·cos θR) is no less than the threshold K (|V2′|≧K), the rotation angle computation device 20 determines the first absolute rotation angle θAS as the final absolute rotation angle θA. When |V1′|<K and |V2′|<K, the rotation angle computation device 20 determines an average value {(θAS+θAC)/2} of the first absolute rotation angle θAS and the second absolute rotation angle θAC as the final absolute rotation angle θA.
In a case where |V1′|<K and |V2′|<K, a value determined by adding the first absolute rotation angle θAS and the second absolute rotation angle θAC together upon applying weights (gain, 1−gain) respectively may be determined as the final absolute rotation angle θA as shown in the following formula (16).
θA=θAS×gain+θAC×(1−gain)
When |V1′|≧|V2′|;
gain=(K−|V1′|)/(K−|V2′|)/2.
When |V1′|<|V2′|;
gain=1−{(K−|V2′|)/(K−|V1′|)/2}. (16)
Also, when |V1′|<K and |V2′|<K, one of either of the first absolute rotation angle θAS and the second absolute rotation angle θAC may be determined as the final absolute rotation angle θA.
When the final absolute rotation angle θA has thus been computed, the rotation angle computation device 20 computes the electrical angle θE (step S12). Specifically, if j is the number (1 to 5) of the magnetic pole pair (M0, M1), (M2, M3), (M4, M5), (M6, M7), or (M8, M9) sensed by the first magnetic sensor 21, the rotation angle computation device 20 computes the electrical angle θE based on the following formula (17) and provides it to the motor controller 30.
θE=θA−{360×(j−1)} (17)
Thereafter, the rotation angle computation device 20 judges whether or not motor control has been completed (step S13). If the motor control has not been completed (step S13: NO), a return to step S1 is performed. If the motor control has been completed (step S13: YES), the rotation angle computation device 20 performs a control completion process (step S14).
In the control completion process, the rotation angle computation device 20 judges whether or not the brushless motor 10 has rotated adequately during the present motor control period (step S21). Specifically, the rotation angle computation device 20 judges whether or not the number of rotations of the motor 10 during the present motor control period is no less than a predetermined number of rotations. If it is judged that the brushless motor 10 has rotated adequately (step S21: YES), the peak values corresponding to the respective pole numbers in the amplitude compensation tables (the first table and the second table) are updated by the most recently detected peak values as the peak values corresponding to the pole numbers (step S22). The control completion process is then completed.
When the first absolute rotation angle θAS has been computed in step S8, the rotation angle computation device 20 computes sin (θAS) (step S31). sin (θAS) is a value that is in accordance with the signal value A·sin(θAS) of the signal V1′ (=A·sin θR) corresponding to the first absolute rotation angle θAS. Step S9 is then entered. In step S9, the second relative rotation angle θRC is computed, and in step S10, the second absolute rotation angle θAC is computed. When the second absolute rotation angle θAC has been computed in step S10, the rotation angle computation device 20 computes cos (θAC) (step S32). cos (θAC) is a value that is in accordance with the signal value A·cos (θAC) of the signal V2′ (=A·cos θR) corresponding to the second absolute rotation angle θAC.
The rotation angle computation device 20 then computes the electrical angle θE based on the sin (θAC) computed in step S31 and the cos (θAC) computed in step S32 (step S12A). Specifically, the rotation angle computation device 20 computes the electrical angle θE of the brushless motor based on the following formula (18).
θE=tan−1{sin(θAS)/cos(θAC)} (18)
Thereafter, the rotation angle computation device 20 enters step S13.
As described above, when the amplitude-corrected first output signal V1′ is near the peak value, an error may occur in the first relative rotation angle θRS. Likewise, when the amplitude-corrected second output signal V2′ is near the peak value, an error may occur in the second relative rotation angle θRC. The electrical angle θE of the brushless motor may thus be computed based on the second absolute rotation angle θAC when the amplitude-corrected first output signal V1′ is near the peak value, and the electrical angle θE of the brushless motor may be computed based on the first absolute rotation angle θAS when the amplitude-corrected second output signal V2′ is near the peak value.
In a case of computing the electrical angle θE based on the second absolute rotation angle θAC, the electrical angle θE may be determined by substituting the second absolute rotation angle θAC as the absolute rotation angle θA at the right hand side of formula (17). Also, in a case of computing the electrical angle θE based on the first absolute rotation angle θAS, the electrical angle θE may be determined by substituting the first absolute rotation angle θAS as the absolute rotation angle θA at the right hand side of formula (17).
As shown in formula (9), (10), or (11), in the present preferred embodiment, the first absolute rotation angle θAS of the detection rotor 1 is computed based on the first relative rotation angle θRS, the angular widths W0 to W9 of the respective magnetic poles measured in advance, and the pole number m of the magnetic pole sensed by the first magnetic sensor 21. An accurate absolute rotation angle θAS can thereby be computed from the first relative rotation angle θRS even when there is variation in the angular widths of the plurality of magnetic poles M0 to M9 provided in the detection rotor 1. Also, as shown in formula (12), (13), or (14), the second absolute rotation angle θAC of the detection rotor 1 is computed based on the second relative rotation angle θRC, the angular widths W0 to W9 of the respective magnetic poles measured in advance, and the pole number m of the magnetic pole sensed by the first magnetic sensor 21. An accurate absolute rotation angle θAC can thereby be computed from the second relative rotation angle θRC even when there is variation in the angular widths of the plurality of magnetic poles M0 to M9 provided in the detection rotor 1. Also, as shown in formulae (15) to (17) or formula (18), the electrical angle θE of the brushless motor is computed based on the first absolute rotation angle θAS and the second absolute rotation angle θAC. The electrical angle θE of the brushless motor can thereby detected with high precision even when there is variation in the angular widths of the respective magnetic poles M0 to M9.
The present invention may be applied to cases of detecting a rotation angle of a rotating body other than a rotor of a brushless motor.
While preferred embodiments of the present invention have been described in detail above, these are merely specific examples for clarifying the technical contents of the present invention, the present invention should not be interpreted as being limited to the specific examples, and the scope of the present invention is to be limited solely by the attached claims.
The present application corresponds to Japanese Patent Application No. 2010-95080 filed in the Japan Patent Office on Apr. 16, 2010 and the entire disclosure of the present application is incorporated herein by reference.
Number | Date | Country | Kind |
---|---|---|---|
2010-095080 | Apr 2010 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2011/057404 | 3/25/2011 | WO | 00 | 10/4/2012 |