Drive motor control apparatus for vehicle, motor control system, method for correcting rotation angle of motor, program for performing the same, rotation detecting apparatus
Summary by NHIP
Motor rotation angle correction
The apparatus corrects motor rotation errors using reference and actual angle data. It computes first differences at representative angles, calculates second differences from those values, and adjusts them based on motor acceleration and deceleration degrees.
Claim Score by NHIP
Abstract
A drive motor control apparatus for a vehicle, wherein the vehicle has a motor and rotation detecting unit. In the apparatus, the first difference computing unit computes one of multiple first differences every time an actual detected angle of rotation of the motor becomes a corresponding representative angle during the one cycle. The first difference indicates an advancing amount of an estimated angle relative to the actual detected angle. The second difference computing unit computes multiple second differences based on the first differences of the one cycle. The second differences are adjusted in accordance with a degree of acceleration and deceleration of the motor. The adjusted second differences are used for correcting the actual detected angle of rotation of the motor.

Term
5.1 yearsleft in the term
Expires 4 November 2031, including 345 days of term adjustment.
- Priority and filed
- Granted
- Today
- Expires
59 claims: 13 independent, 46 dependent
- 1A drive motor control apparatus for a vehicle, wherein the vehicle has:a motor that provides a drive power of the vehicle;and a rotation detecting unit for outputting reference angle information every time the motor rotates a reference angle, the rotation detecting unit outputting actual detected angle information every time the motor rotates a constant unit angle that is smaller than the reference angle, the reference angle information indicating rotation of the motor by the reference angle, the reference angle indicating an angle computed by dividing 360 degrees by a positive integer n, the actual detected angle information indicating an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted, wherein the drive motor control apparatus controls energization of the motor by using the reference angle information and the actual detected angle information, the drive motor control apparatus comprising: a correcting unit for correcting an error of the actual detected angle information in order to output corrected angle information that indicates a corrected angle of rotation of the motor measured based on the output timing of the reference angle information, the correcting unit being configured to control the energization of the motor based on the corrected angle information, wherein the correcting unit includes: a time estimating unit for measuring duration of one cycle of the reference angle information every time the reference angle information is outputted, the duration being measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted, the time estimating unit computing an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration;an angle estimating unit for computing an estimated angle of rotation of the motor, which is measured based on the output timing of the reference angle information, every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses, the angle estimating unit outputting estimated angle information that indicates the estimated angle;a first difference computing unit for computing one of a plurality of first differences of a plurality of representative angles every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of the plurality of representative angles during the one cycle of the reference angle information, the plurality of representative angles including a final angle that corresponds to a final value of the actual detected angle, the one of the plurality of first differences indicating an advancing amount of the estimated angle relative to the actual detected angle;a second difference computing unit for computing a plurality of second differences of a plurality of angular sections based on the plurality of first differences of the plurality of representative angles of the one cycle, one of the plurality of angular sections being defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles, the other one of the plurality of angular sections being defined between adjacent ones of the plurality of representative angles, each of the plurality of second differences indicates an exceeding amount of an increase amount of the estimated angle relative to an increase amount of the actual detected angle within a corresponding one of the plurality of angular sections, the second difference computing unit storing each of the plurality of second differences of the plurality of angular sections in a storage part in association with the corresponding one of the plurality of angular sections;an adjusting unit for adjusting the plurality of second differences of the plurality of angular sections of the one cycle, which is stored in the storage part, in accordance with a degree of acceleration and deceleration of the motor;and an output processing unit for executing: an initialization process for setting a value of the corrected angle information to the initial value when the reference angle information is outputted;an output updating process for increasing the value of the corrected angle information by a certain value, which corresponds to the unit angle, based on the output timing of the reference angle information every time the actual detected angle information is outputted;and a correcting process for changing the certain value used in the output updating process such that an increase amount of the value of the corrected angle information, which is increased while the actual detected angle indicated by the actual detected angle information changes within each of the plurality of angular sections, is increased by a corresponding one of the plurality of second differences, which is adjusted by the adjusting unit.
- 8A motor control system for a vehicle comprising:a motor that provides a drive power;a rotation sensor configured to output reference angle information every time the motor rotates a reference angle, the rotation sensor being configured to output actual detected angle information every time the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted;and a controller coupled to the rotation sensor and the motor, the controller receiving the actual detected angle information and the reference angle information from the rotation sensor, the controller outputting a control command of controlling energization to the motor, wherein the controller includes: an estimated pulse generator that is coupled to the rotation sensor, the estimated pulse generator measuring duration of one cycle of the reference angle information every time the reference angle information is outputted, the duration being measured between a previous time, at which the referenced angle information is previously outputted, and a current time, at which the reference angle information is currently outputted, the estimated pulse generator computing an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration, the estimated pulse generator generating an estimated pulse based on the estimated time;a counter coupled to the rotation sensor and the estimated pulse generator, the counter computing an estimated angle of rotation of the motor, which is measured based on the output timing of the reference angle information, by counting the estimated pulse every time the counter receives the estimated pulse under an assumption that the motor rotates the unit angle while the estimated time elapses, the counter outputting estimated angle information that indicates the estimated angle;a memory that stores therein a plurality of first differences of a plurality of representative angles, one of the plurality of first differences of the plurality of representative angles being stored every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of the plurality of representative angles during the one cycle of the reference angle information, the plurality of representative angles including a final angle that corresponds to a final value of the actual detected angle, the one of the plurality of first differences indicating an advance amount of the estimated angle relative to the actual detected angle, wherein: the memory further stores therein a plurality of second differences of a plurality of angular sections, the plurality of second differences being computed based on the plurality of first differences of the plurality of representative angles stored in the memory, one of the plurality of angular sections being defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles, the other one the plurality of angular sections being defined between adjacent ones of the plurality of representative angles, each of the plurality of second differences indicates an exceeding amount of an increase amount of the estimated angle relative to an increase amount of the actual detected angle within a corresponding one of the plurality of angular sections;and the memory further stores therein a plurality of learning values of the plurality of angular sections, the plurality of learning values is computed by adjusting the plurality of second differences stored in the memory in accordance with one of the plurality of first differences computed at the final angle;and the controller outputs: an initialization command for setting a value of corrected angle information, which indicates a corrected angle of rotation of the motor, to the initial value when the reference angle information is outputted;an output updating command for increasing the value of the corrected angle information by a certain value, which corresponds to the unit angle, based on the output timing of the reference angle information every time the actual detected angle information is outputted;a correcting command for increasing an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, by a corresponding one of the plurality of learning values of the plurality of angular sections stored in the memory;and the control command, which is computed based on the corrected angle information, to the motor.
- 14A motor control system for a vehicle comprising:a motor that provides a drive power;a rotation sensor configured to output reference angle information every time the motor rotates a reference angle, the rotation sensor being configured to output actual detected angle information every time the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted;and a controller coupled to the motor and the rotation sensor, the controller having therein a memory, wherein: the controller is configured to measure duration of one cycle of the reference angle information every time the reference angle information is outputted, the duration being measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted, the controller computing an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration;the controller is configured to compute estimated angle information every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses, the estimated angle information indicating an estimated angle of rotation of the motor measured based on the output timing of the reference angle information;the controller is configured to compute one of a plurality of first differences of a plurality of representative angles every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of the plurality of representative angles during the one cycle of the reference angle information, the one of the plurality of first differences indicating a difference between the estimated angle and the actual detected angle;the controller is configured to compute a plurality of second differences of a plurality of angular sections based on the plurality of first differences of the plurality of representative angles, one of the plurality of angular sections being defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles, the other one of the plurality of angular sections being defined between adjacent ones of the plurality of representative angles, each of the plurality of second differences indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections;the controller is configured to store each of the plurality of second differences in the memory in association with the corresponding one of the plurality of angular sections;the controller is configured to compute a plurality of learning values by adjusting the plurality of second differences in accordance with a degree of acceleration and deceleration of the motor;the controller is configured to initialize a value of the corrected angle information, which indicates a corrected angle of rotation of the motor, when the controller receives the reference angle information;the controller is configured to increase the value of the corrected angle information by a value corresponding to the unit angle every time the actual detected angle information is outputted;the controller is configured to increase an increase amount of the value of the corrected angle information within each of the plurality of angular sections by a value indicated by a corresponding one the plurality of learning values;the controller is configured to control the motor based on the corrected angle information.
- 22A non-transitory computer-readable medium having computer-executable instructions for performing a method comprising:obtaining reference angle information from a rotation sensor every time a motor rotates a reference angle;obtaining actual detected angle information from the rotation sensor every time the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted;measuring duration of one cycle of the reference angle information every time the reference angle information is outputted, the duration being measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted;estimating an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration;computing estimated angle information every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses, the estimated angle information indicating an estimated angle of rotation of the motor measured based on the output timing of the reference angle information;computing one of a plurality of first differences every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of a plurality of representative angles during the one cycle of the reference angle information, the plurality of representative angles including a final angle that corresponds to a final value of the actual detected angle, the one of the plurality of first differences indicating a difference between the estimated angle and the actual detected angle;computing a plurality of second differences of a plurality of angular sections based on the plurality of first differences of the plurality of representative angles, one of the plurality of angular sections being defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles, the other one of the plurality of angular sections being defined between adjacent ones of the plurality of representative angles, each of the plurality of second differences indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections;storing each of the plurality of second differences in a storage part in association with the corresponding one of the plurality of angular sections;adjusting the plurality of second differences stored in the storage part in accordance with a degree of acceleration and deceleration of the motor;initializing a value of corrected angle information to the initial value when the reference angle information is outputted, the corrected angle information indicating a corrected angle of rotation of the motor;computing the corrected angle information every time the actual detected angle information is outputted by increasing an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, by a value indicated by a corresponding one of the adjusted plurality of second differences stored in the storage part.
- 30A method for correcting a rotation angle of a motor comprising:obtaining reference angle information from a rotation sensor every time the motor rotates a reference angle;obtaining actual detected angle information from the rotation sensor every time the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted;measuring duration of one cycle of the reference angle information every time the reference angle information is outputted, the duration being measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted;estimating an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration;computing estimated angle information every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses, the estimated angle information indicating an estimated angle of rotation of the motor measured based on the output timing of the reference angle information;computing one of a plurality of first differences every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of a plurality of representative angles during the one cycle of the reference angle information, the plurality of representative angles including a final angle that corresponds to a final value of the actual detected angle, the one of the plurality of first differences indicating a difference between the estimated angle and the actual detected angle;computing a plurality of second differences of a plurality of angular sections based on the plurality of first differences of the plurality of representative angles, one of the plurality of angular sections being defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles, the other one of the plurality of angular sections being defined between adjacent ones of the plurality of representative angles, each of the plurality of second differences indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections;storing each of the plurality of second differences in a storage part in association with the corresponding one of the plurality of angular sections;adjusting the plurality of second differences stored in the storage part in accordance with a degree of acceleration and deceleration of the motor;initializing a value of corrected angle information to the initial value when the reference angle information is outputted, the corrected angle information indicating a corrected angle of rotation of the motor;computing the corrected angle information every time the actual detected angle information is outputted by increasing an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, by a value indicated by a corresponding one of the adjusted plurality of second differences stored in the storage part.
- 38A rotation detecting apparatus for detecting rotation of a motor that provides a drive power of a vehicle, the rotation detecting apparatus sending a control signal to an external control unit that controls energization of the motor, the rotation detecting apparatus comprising:a rotation sensor that outputs reference angle information every time the motor rotates a predetermined reference angle, the rotation sensor outputting actual detected angle information every time the motor rotates a unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted;and an error correcting device configured to correct an error of the actual detected angle information in order to output corrected angle information that indicates a corrected angle of rotation of the motor measured based on the output timing of the reference angle information, wherein: the error correcting device includes: an estimated pulse generator configured to measure duration of one cycle of the reference angle information every time the reference angle information is outputted, the duration being measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted, the estimated pulse generator being configured to compute an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration, the estimated pulse generator being configured to generate an estimated pulse having a pulse width that is equivalent to the estimated time;an estimated pulse counter configured to count the estimated pulse in order to compute estimated angle information indicating an estimated angle of rotation of the motor measured based on the output timing of the reference angle information, the estimated pulse counter outputting the estimated angle information;a first difference computing device configured to compute one of a plurality of first differences every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of a plurality of representative angles during the one cycle of the reference angle information, the plurality of representative angles includes a final angle that corresponds to a final value of the actual detected angle, the one of the plurality of first differences indicating an advancing amount of the estimated angle relative to the actual detected angle;a second difference computing device configured to compute a plurality of second differences of a plurality of angular sections based on the plurality of first differences computed for the plurality of representative angles of the one cycle, the plurality of angular sections being defined between adjacent ones of a plurality of angles that includes the plurality of representative angles and an angle that corresponds to an initial value of the actual detected angle measured at the output timing of the reference angle information, each of the plurality of second differences indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections, the second difference computing device being configured to store each of the plurality of second differences in a storage part in association with the corresponding one of the plurality of angular sections;an adjusting device configured to compute a plurality of learning values by adjusting the plurality of second differences of the one cycle stored in the storage part in accordance with a degree of acceleration and deceleration of the motor;and an output processing device configured to execute: an initialization process for setting a value of the corrected angle information to the initial value when the reference angle information is outputted;an output updating process for increasing the value of the corrected angle information by a certain value, which corresponds to the unit angle, every time the actual detected angle information is outputted;and a correcting process for changing the certain value used in the output updating process such that an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, is increased by an increase amount indicated by a corresponding one of the plurality of learning values.
- 47A rotation detecting apparatus for detecting rotation of a motor that provides a drive power of a vehicle, comprising:an actual detected angle computing unit for computing actual detected angle information based on reference angle information and unit rotation angle information, the actual detected angle computing unit receiving the reference angle information every time the motor rotates a predetermined reference angle, the actual detected angle computing unit receiving the unit rotation angle information every time the motor rotates a unit angle smaller than the reference angle, the unit angle being computed based on a predetermined resolution value, the actual detected angle information indicating an actual detected angle of rotation of the motor measured based on reference timing, at which the reference angle information is received;an estimated angle computing unit for measuring duration of one cycle of receiving the reference angle information, the estimated angle computing unit computing estimated angle information, which indicates an estimated angle of rotation of the motor, based on the duration and the predetermined resolution value, the estimated angle being measured based on the reference timing of the reference angle information;a first difference computing unit for computing a first difference every time the duration elapses, the first difference indicating a difference between the estimated angle information and the actual detected angle information;a second difference computing unit for computing a plurality of second differences of the one cycle, each of the plurality of second differences indicating a difference between an increase amount of the estimated angle information and an increase amount of the actual detected angle information within a corresponding one of a plurality of angular sections defined in the one cycle;a learning value computing unit for computing a plurality of learning values by adjusting the plurality of second differences of the one cycle in accordance with the first difference, the learning value computing unit storing the plurality of learning values in a storage part in association with the plurality of angular sections;and a correcting unit for correcting the actual detected angle information such that a change amount of the actual detected angle information, which is changed while the actual detected angle indicated by the actual detected angle information changes within each of the plurality of angular sections, is further changed by an amount indicated by a corresponding one of the plurality of learning values, the correcting unit outputting the corrected actual detected angle information as corrected angle information that indicates a corrected rotation angle of the motor.
- 54A drive motor control apparatus for a vehicle, wherein the vehicle has:a motor for providing a drive power of the vehicle;means for outputting reference angle information when the motor rotates a reference angle;and means for outputting actual detected angle information when the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured from when the reference angle information is outputted, the drive motor control apparatus comprising: means for correcting an error of the actual detected angle information in order to output corrected angle information, the means for correcting includes: means for measuring an interval of the reference angle information;means for computing an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the interval of the reference angle information;means for computing an estimated angle of rotation of the motor, which is measured from when the reference angle information is outputted, based on the estimated time;means for computing an advance rate difference, which indicates an exceeding amount of an increase amount of the estimated angle relative to an increase amount of the actual detected angle within a certain angular section;means for adjusting the advance rate difference in accordance with a degree of acceleration and deceleration of the motor;means for setting a value of the corrected angle information to the initial value when the reference angle information is outputted;means for increasing the value of the corrected angle information based on a certain value, which corresponds to the unit angle, when the actual detected angle information is outputted;and means for changing the certain value based on the advance rate difference.
- 55A motor control system for a vehicle power train comprising:a motor connected to the vehicle drive power train;a rotation sensor configured to output reference angle information when the motor rotates a reference angle, the rotation sensor also being configured to output actual detected angle information when the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured from when the reference angle information is outputted;and a controller coupled to the rotation sensor and the motor, the controller receiving the actual detected angle information and the reference angle information from the rotation sensor, the controller outputting a control command of controlling energization to the motor, wherein the controller includes: an estimated pulse generator that is coupled to the rotation sensor, the estimated pulse generator measuring an interval of the reference angle information, the estimated pulse generator computing an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the interval, the estimated pulse generator generating an estimated pulse based on the estimated time;a counter coupled to the rotation sensor and the estimated pulse generator, the counter computing an estimated angle of rotation of the motor based on the reference angle information and the estimated pulse;a memory that stores therein an advance rate difference indicating an exceeding amount of an increase amount of the estimated angle relative to an increase amount of the actual detected angle within a certain angular section;a learning value computed by adjusting the advance rate difference in accordance with a degree of acceleration and deceleration of the motor;an initialization command for letting the controller set a value of corrected angle information, which indicates a corrected angle of rotation of the motor, to the initial value when the reference angle information is outputted;an output updating command for letting the controller increase the value of the corrected angle information based on a certain value, which corresponds to the unit angle, when the actual detected angle information is outputted;a correcting command for letting the controller increase an increase amount of the value of the corrected angle information based on the learning value;and a control command computing command for letting the controller output the control command, which is computed based on the corrected angle information, to control the motor.
- 56A motor control system for a vehicle component comprising:a motor connected to the vehicle component;a rotation sensor configured to output reference angle information when the motor rotates a reference angle, the rotation sensor also being configured to output actual detected angle information when the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured from when the reference angle information is outputted;and a controller coupled to the motor and the rotation sensor, the controller having therein a memory, wherein: the controller is configured to measure an interval of the reference angle information, the controller is also configured to compute an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the interval;the controller is also configured to compute an estimated angle of rotation of the motor, from when the reference angle information is outputted, based on the estimated time;the controller is also configured to compute an advance rate difference indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a certain angular section;the controller is also configured to store the advance rate difference in the memory;the controller is also configured to compute a learning value computed by adjusting the advance rate difference in accordance with a degree of acceleration and deceleration of the motor;the controller is also configured to initialize a value of the corrected angle information, which indicates a corrected angle of rotation of the motor, when the controller receives the reference angle information;the controller is also configured to increase the value of the corrected angle information based on a value corresponding to the unit angle when the actual detected angle information is outputted;the controller is also configured to increase an increase amount of the value of the corrected angle information based on the learning value;the controller is also configured to control the motor based on the corrected angle information.
- 57A non-transitory computer-readable medium having computer-executable instructions for performing a method comprising:obtaining reference angle information from a rotation sensor when a motor rotates a reference angle;obtaining actual detected angle information from the rotation sensor when the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured from when the reference angle information is outputted;measuring an interval of the reference angle information;estimating an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the interval;computing estimated angle information when the estimated time elapses the estimated angle information indicating an estimated angle of rotation of the motor measured from when the reference angle information is outputted;computing an advance rate difference indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a certain angular section;storing the advance rate difference in a storage part;adjusting the advance rate difference in accordance with a degree of acceleration and deceleration of the motor;initializing a value of corrected angle information to the initial value when the reference angle information is outputted, the corrected angle information indicating a corrected angle of rotation of the motor;computing the corrected angle information when the actual detected angle information is outputted, by increasing an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within the angular section, by a value related to the adjusted advance rate difference.
- 58Broadest claimClaim Score 32, narrow(NHIP)A method for correcting a rotation angle of a motor comprising:obtaining reference angle information from a rotation sensor when the motor rotates a reference angle;obtaining actual detected angle information from the rotation sensor when the motor rotates a constant unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured from when the reference angle information is outputted;measuring an interval of the reference angle information;estimating an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the interval;computing estimated angle information when the estimated time elapses, the estimated angle information indicating an estimated angle of rotation of the motor measured from when the reference angle information is outputted;computing an advance rate difference indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a certain angular section;storing each of the advance rate difference in a storage part;adjusting the advance rate difference in accordance with a degree of acceleration and deceleration of the motor;initializing a value of corrected angle information to the initial value when the reference angle information is outputted, the corrected angle information indicating a corrected angle of rotation of the motor;computing the corrected angle information when the actual detected angle information is outputted by increasing an increase amount of the value of the corrected angle information, based on the adjusted advance rate difference.
- 59A rotation detecting apparatus for detecting rotation of a motor that provides a drive power of a vehicle, the rotation detecting apparatus sending a control signal to an external control unit that controls energization of the motor, the rotation detecting apparatus comprising:a rotation sensor that outputs reference angle information when the motor rotates a reference angle, the rotation sensor also outputting actual detected angle information when the motor rotates a unit angle that is smaller than the reference angle, the actual detected angle information indicating an actual detected angle of rotation of the motor measured from when the reference angle information is outputted;and an error correcting device configured to correct an error of the actual detected angle information in order to output corrected angle information that indicates a corrected angle of rotation of the motor measured based on the reference angle, wherein: the error correcting device includes: an estimated pulse generator configured to measure an interval of the reference angle information, the estimated pulse generator being configured to compute an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the interval, the estimated pulse generator being also configured to generate an estimated pulse having a pulse width that is equivalent to the estimated time;an estimated pulse counter configured to count the estimated pulse in order to compute estimated angle information indicating an estimated angle of rotation of the motor measured from when the reference angle information is outputted, the estimated pulse counter outputting the estimated angle information;an advance rate difference computing device configured to compute an advance rate difference, the advance rate difference indicating a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a certain angular section, the advance rate difference computing device is configured to store each of the advance rate difference in a storage part;an adjusting device configured to compute a learning value by adjusting the advance rate difference in accordance with a degree of acceleration and deceleration of the motor;and an output processing device configured to execute: an initialization process for setting a value of the corrected angle information to the initial value when the reference angle information is outputted;an output updating process for increasing the value of the corrected angle information by a certain value, which corresponds to the unit angle, when the actual detected angle information is outputted;and a correcting process for changing the certain value based on the learning value.
Independent claims13
332 paragraphs in 5 sections, as filed
CROSS REFERENCE TO RELATED APPLICATION
p-0002This application is based on and incorporates herein by reference Japanese Patent Application No. 2009-270016 filed on Nov. 27, 2009, Japanese Patent Application No. 2010-142736 filed on Jun. 23, 2010, Japanese Patent Application No. 2010-240998 filed on Oct. 27, 2010, and Japanese Patent Application No. 2010-240999 filed on Oct. 27, 2010.
BACKGROUND
p-00031. Field of the Disclosure
p-0004The present disclosure relates to a drive motor control apparatus for a vehicle, a motor control system, a method for correcting a rotation angle of a motor, a program for performing the correcting method, and a rotation detecting apparatus.
p-00052. Description of Related Art
p-0006For example, a drive motor control apparatus for controlling a motor of a vehicle having the motor as a drive power source, such as an electric vehicle, a hybrid vehicle, an electric train, is described in JP-A-H10-215504 and U.S. Pat. No. 5,896,283 which are incorporated by reference. The above drive motor control apparatus is configured to detect a rotation angle of the motor and to control energization of the motor based on the detection result. More specifically, the above drive motor control apparatus controls a drive device, such as an inverter, for energizing the motor.
p-0007JP-A-H10-215504 and U.S. Pat. No. 5,896,283 describe a control device provided with a resolver that serves as a rotation angle sensor for detecting the rotation angle of the motor. The resolver is a known rotation angle detecting sensor having a stator and a rotor that rotates synchronously with the rotation of an output shaft of the motor. The resolver outputs a rotation detection signal in accordance with a change of reluctance between the rotor and the stator based on the position of the rotor. In other words, the resolver outputs the rotation detection signal in accordance with the rotation angle of the motor. Note that in the description below, the stator and the rotor of the resolver are referred to as a “resolver stator” and a “resolver rotor” in order to distinguish from the stator and the rotor of the motor.
p-0008A specific configuration of the resolver will be described with an example of a two-phase resolver, which has phases different from each other by an electrical rotation angle of 90 degrees, and which outputs two rotation detection signals. The two-phase resolver has a primary coil provided to one of the resolver rotor and the resolver stator, and has a secondary coil provided to the other one. An energization signal of a constant frequency is supplied to the primary coil, and the secondary coil outputs two rotation detection signals, which are made by modulating the amplitude of the energization signal, and which have phases different from each other by 90 degrees.
p-0009The resolver outputs the rotation detection signal of an analog signal. Thus, when the rotation angle of the motor is detected <b>14</b> using the resolver, a resolver digital converter (RDC) is used in combination with the resolver, in general. Typically, the RDC converts the rotation detection signal from the resolver into angle data that is digital data indicating the rotation angle of motor. Then, the drive motor control apparatus controls energization of the motor based on the angle data from the RDC.
p-0010Note that, in a realistic condition, the two rotation detection signals outputted from the resolver have equivalent amplitudes and, are not offset from each other. Also, furthermore, the two rotation detection signals have the phase difference of a control value (90 degrees in the above example). The RDC functions idealistically when the rotation detection signals received from the resolver satisfy the above idealistic condition, and thereby the RDC provides a proper degree of detection accuracy of the rotation angle.
p-0011Also, in addition to the resolver, the rotation angle sensor for sensing the rotation angle of the motor includes, for example, an incremental encoder, which outputs a signal (or a pulse) for the rotation of the motor by a certain angle, and which outputs another signal (or another pulse) for the one rotation of the motor. Also, the rotation angle sensor may be an absolute encoder that outputs angle data indicating a rotation angle when the motor rotates a certain angle rotation. For example, the rotation angle sensor may be a sensor that includes a vertical Hall element and a magnetic resistance element (MRE) as described in JP-A-2008-185406 and US-A-2009-0295375, which are incorporated by reference. The above sensor outputs a signal in accordance with the rotation angle. As above, there are various kinds of the rotation angle sensors.
p-0012For example, in practice, the resolver may output the rotation detection signals that are different from the above idealistic signals due to various causes, such as “manufacturing variation” of the resolver. As a result, the two-phase resolver signals may have different amplitudes, the offset, or the phase error. In other words, the rotation detection signals from the resolver may include an error caused by the manufacturing variation. The “manufacturing variation” includes variation in the shape of the resolver rotor, the feature of each coil of the resolver, or the gap between the resolver rotor and the resolver stator.
p-0013If the rotation detection signals from the resolver include errors as above, angle data outputted from the RDC may accordingly include errors, and thereby a degree of detection accuracy of the rotation angle may deteriorate disadvantageously. Specifically, in the above deterioration state, even when the motor rotates at a constant speed, the angle data from the RDC becomes non-proportional to time, and thereby having a non-linear feature.
p-0014Because the drive motor control apparatus controls the energization of the motor based on the rotation angle of the motor known from the angle data of the RDC, the energization of the motor may be inappropriate for the actual rotation angle of the motor, and thereby causing degraded control accuracy of the motor.
p-0015For example, even when a vehicle drives at a constant speed, and also the driver does not change the accelerator pedal operation (or does not change the force for pressing the pedal), the vehicle may be accelerated or decelerated in a fore-and-aft direction unwantedly. The above unwanted phenomenon happens in the following process. Because angle data from the RDC includes the error, the angle data indicates a rotation angle different from the actual rotation angle of the motor. Thus, generated torque of the motor may be changed erroneously when the above erroneous data is used for the control of the motor. Thus, even when the driver does not change the accelerator pedal operation, the vehicle may be accelerated or decelerated erroneously. Thus, occupants of the vehicle including the driver may feel uneasy, as a result.
p-0016Also, the rotation angle sensor other than the resolver may have the erroneous detection signal issues caused by the manufacturing variation similar to the resolver, and thereby the other rotation angle sensor may have disadvantages similar to the resolver.
SUMMARY
p-0017The present disclosure is made in view of the above disadvantages. Thus, it is an objective of the present disclosure to address at least one of the above disadvantages.
p-0018To achieve the objective of the present disclosure, there is provided a drive motor control apparatus for a vehicle, wherein the vehicle has a motor and rotation detecting means. The motor provides a drive power of the vehicle. The rotation detecting means outputs reference angle information every time the motor rotates a reference angle, and the rotation detecting means outputs actual detected angle information every time the motor rotates a constant unit angle that is smaller than the reference angle. The reference angle information indicates rotation of the motor by the reference angle. The reference angle indicates an angle computed by dividing 360 degrees by a positive integer n. The actual detected angle information indicates an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted. The drive motor control apparatus controls energization of the motor by using the reference angle information and the actual detected angle information. The drive motor control apparatus includes correcting means. The correcting means corrects an error of the actual detected angle information in order to output corrected angle information that indicates a corrected angle of rotation of the motor measured based on the output timing of the reference angle information. The correcting means is configured to control the energization of the motor based on the corrected angle information, wherein the correcting means includes time estimating means, angle estimating means, first difference computing means, second difference computing means, adjusting means, and output processing means. The time estimating means measures duration of, one cycle of the reference angle information every time the reference angle information is outputted. The duration is measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted. The time estimating means computes an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration. The angle estimating means computes an estimated angle of rotation of the motor, which is measured based on the output timing of the reference angle information, every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses. The angle estimating means outputs estimated angle information that indicates the estimated angle. The first difference computing means computes one of a plurality of first differences of a plurality of representative angles every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of the plurality of representative angles during the one cycle of the reference angle information. The plurality of representative angles includes a final angle that corresponds to a final, value of the actual detected angle. The one of the plurality of first differences indicates an advancing amount of the estimated angle relative to the actual detected angle. The second difference computing means computes a plurality of second differences of a plurality of angular sections based on the plurality of first differences of the plurality of representative angles of the one cycle. One of the plurality of angular sections is defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles. The other one of the plurality of angular sections is defined between adjacent ones of the plurality of representative angles. Each of the plurality of second differences indicates an exceeding amount of an increase amount of the estimated angle relative to an increase amount of the actual detected angle within a corresponding one of the plurality of angular sections. The second difference computing means stores each of the plurality of second differences of the plurality of angular sections in a storage part in association with the corresponding one of the plurality of angular sections. The adjusting means adjusts the plurality of second differences of the plurality of angular sections of the one cycle, which is stored in the storage part, in accordance with a degree of acceleration and deceleration of the motor. The output processing means executes an initialization process, an output updating process, and a correcting process. In initialization process, a value of the corrected angle information is set to the initial value when the reference angle information is outputted. In the output updating process, the value of the corrected angle information is increased by a certain value, which corresponds to the unit angle, based on the output timing of the reference angle information every time the actual detected angle information is outputted. In the correcting process, the certain value used in the output updating process is changed such that an increase amount of the value of the corrected angle information, which is increased while the actual detected angle indicated by the actual detected angle information changes within each of the plurality of angular sections, is increased by a corresponding one of the plurality of second differences, which is adjusted by the adjusting means.
p-0019To achieve the objective of the present disclosure, there is also provided a motor control system for a vehicle, wherein the motor control system includes a motor, a rotation sensor, and a controller. The motor provides a drive power. The rotation sensor is configured to outptit reference angle information every time the motor rotates a reference angle. The rotation sensor is configured to output actual detected angle information every time the motor rotates constant unit angle that is smaller than the reference angle. The actual detected angle information indicates an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted. The controller is coupled to the rotation sensor and the motor. The controller receives the actual detected angle information and the reference angle information from the rotation sensor. The controller outputs a control command of controlling energization to the motor, wherein the controller includes an estimated pulse generator, a counter, and a memory. The estimated pulse generator is coupled to the rotation sensor. The estimated pulse generator measures duration of one cycle of the reference angle information every time the reference angle information is outputted. The duration is measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted. The estimated pulse generator computes an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration. The estimated pulse generator generates an estimated pulse based on the estimated time. The counter is coupled to the rotation sensor and the estimated pulse generator. The counter computes an estimated angle of rotation of the motor, which is measured based on the output timing of the reference angle information, by counting the estimated pulse every time the counter receives the estimated pulse under an assumption that the motor rotates the unit angle while the estimated time elapses. The counter outputs estimated angle information that indicates the estimated angle. The memory stores therein a plurality of first differences of a plurality of representative angles. One of the plurality of first differences of the plurality of representative angles is stored every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of the plurality of representative angles during the one cycle of the reference angle information. The plurality of representative angles includes a final angle that corresponds to a final value of the actual detected angle. The one of the plurality of first differences indicates an advance amount of the estimated angle relative to the actual detected angle. The memory further stores therein a plurality of second differences of a plurality of angular sections. The plurality of second differences is computed based on the plurality of first differences of the plurality of representative angles stored in the memory. One of the plurality of angular sections is defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles. The other one the plurality of angular sections is defined between adjacent ones of the plurality of representative angles. Each of the plurality of second differences indicates an exceeding amount of an increase amount of the estimated angle relative to an increase amount of the actual detected angle within a corresponding one of the plurality of angular sections. The memory further stores therein a plurality of learning values of the plurality of angular sections. The plurality of learning values is computed by adjusting the plurality of second differences stored in the memory in accordance with one of the plurality of first differences computed at the final angle. The controller outputs an initialization command, an output updating command, and a correcting command. In initialization command, a value of corrected angle information, which indicates a corrected angle of rotation of the motor, is set to the initial value when the reference angle information is outputted. In the output updating command, the value of the corrected angle information by a certain value, which corresponds to the unit angle, is increased based on the output timing of the reference angle information every time the actual detected angle information is outputted. In the correcting command, an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, is increased by a corresponding one of the plurality of learning values of the plurality of angular sections stored in the memory. The controller outputs the control command, which is computed based on the corrected angle information, to the motor.
p-0020To achieve the objective of the present disclosure, there is also provided a motor control system for a vehicle, wherein the motor control system includes a motor, a rotation sensor, and a controller. The motor provides a drive power. The rotation sensor is configured to output reference angle information every time the motor rotates a reference angle, the rotation sensor is configured to output actual detected angle information every time the motor rotates a constant unit angle that is smaller than the reference angle. The actual detected angle information indicates an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted. The controller is coupled to the motor and the rotation sensor. The controller has therein a memory. The controller is configured to measure duration of one cycle of the reference angle information every time the reference angle information, is outputted. The duration is measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted. The controller computes an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration. The controller is configured to compute estimated angle information every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses. The estimated angle information indicates an estimated angle of rotation of the motor measured based on the output timing of the reference angle information. The controller is configured to compute one of a plurality of first differences of a plurality of representative angles every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of the plurality of representative angles during the one cycle of the reference angle information. The one of the plurality of first differences indicates a difference between the estimated angle and the actual detected angle. The controller is configured to compute a plurality of second differences of a plurality of angular sections based on the plurality of first differences of the plurality of representative angles. One of the plurality of angular sections is defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles. The other one of the plurality of angular sections is defined between adjacent ones of the plurality of representative angles. Each of the plurality of second differences indicates a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections. The controller is configured to store each of the plurality of second differences in the memory in association with the corresponding one of the plurality of angular sections. The controller is configured to compute a plurality of learning values by adjusting the plurality of second differences in accordance with a degree of acceleration and deceleration of the motor. The controller is configured to initialize a value of the corrected angle information, which indicates a corrected angle of rotation of the motor, when the controller receives the reference angle information. The controller is configured to increase the value of the corrected angle information by a value corresponding to the unit angle every time the actual detected angle information is outputted. The controller is configured to increase an increase amount of the value of the corrected angle information within each of the plurality of angular sections by a value indicated by a corresponding one the plurality of learning values. The controller is configured to control the motor based on the corrected angle information.
p-0021To achieve the objective of the present disclosure, there is also provided a computer-readable medium having computer-executable instructions for performing a method. In the method, reference angle information is obtained from a rotation sensor every time a motor rotates a reference angle. Actual detected angle information is obtained from the rotation sensor every time the motor rotates a constant unit angle that is smaller than the reference angle. The actual detected angle information indicates an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted. Duration, of one cycle of the reference angle information is measured every time the reference angle information is outputted. The duration is measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted. An estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, is estimated based on the duration. Estimated angle information is computed every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses. The estimated angle information indicates an estimated angle of rotation of the motor measured based on the output timing of the reference angle information. One of a plurality of first differences is computed every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of a plurality of representative angles during the one cycle of the reference angle information. The plurality of representative angles includes a final angle that corresponds to a final value of the actual detected angle. The one of the plurality of first differences indicates a difference between the estimated angle and the actual detected angle. A plurality of second differences of a plurality of angular sections is computed based on the plurality of first differences of the plurality of representative angles. One of the plurality of angular sections is defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles. The other one of the plurality of angular sections is defined between adjacent ones of the plurality of representative angles. Each of the plurality of second differences indicates a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections. Each of the plurality of second differences is stored in a storage part in association with the corresponding one of the plurality of angular sections. The plurality of second differences stored in the storage part is adjusted in accordance with a degree of acceleration and deceleration of the motor. A value of corrected angle information to the initial value is initialized when the reference angle information is outputted. The corrected angle information indicates a corrected angle of rotation of the motor. The corrected angle information is computed every time the actual detected angle information is outputted by increasing an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, by a value indicated by a corresponding one of the adjusted plurality of second differences stored in the storage part.
p-0022To achieve the objective of the present disclosure, there is also provided a method for correcting a rotation angle of a motor. In the method, reference angle information is obtained from a rotation sensor every time a motor rotates a reference angle. Actual detected angle information is obtained from the rotation sensor every time the motor rotates a constant unit angle that is smaller than the reference angle. The actual detected angle information indicates an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted. Duration of one cycle of the reference angle information is measured every time the reference angle information is outputted. The duration is measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted. An estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, is estimated based on the duration. Estimated angle information is computed every time the estimated time elapses under an assumption that the motor rotates the unit angle while the estimated time elapses. The estimated angle information indicates an estimated angle of rotation of the motor measured based on the output timing of the reference angle information. One of a plurality of first differences is computed every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of a plurality of representative angles during the one cycle of the reference angle information. The plurality of representative angles includes a final angle that corresponds to a final value of the actual detected angle. The one of the plurality of first differences indicates a difference between the estimated angle and the actual detected angle. A plurality of second differences of a plurality of angular sections is computed based on the plurality of first differences of the plurality of representative angles. One of the plurality of angular sections is defined between an initial value of the actual detected angle at the output timing of the reference angle information and a minimum representative angle of the plurality of representative angles. The other one of the plurality of angular sections is defined between adjacent ones of the plurality of representative angles. Each of the plurality of second differences indicates a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections. Each of the plurality of second differences is stored in a storage part in association with the corresponding one of the plurality of angular sections. The plurality of second differences stored in the storage part is adjusted in accordance with a degree of acceleration and deceleration of the motor. A value of corrected angle information to the initial value is initialized when the reference angle information is outputted. The corrected angle information indicates a corrected angle of rotation of the motor. The corrected angle information is computed every time the actual detected angle information is outputted by increasing an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, by a value indicated by a corresponding one of the adjusted plurality of second differences stored in the storage part.
p-0023To achieve the objective of the present disclosure, there is also provided a rotation detecting apparatus for detecting rotation of a motor that provides a drive power of a vehicle, wherein the rotation detecting apparatus sending a control signal to an external control unit that controls energization of the motor, the rotation detecting apparatus including a rotation sensor, and an error correcting device. The rotation sensor outputs reference angle information every time the motor rotates a predetermined reference angle. The rotation sensor outputs actual detected angle information, every time the motor rotates a unit angle that is smaller than the reference angle. The actual detected angle information indicates an actual detected angle of rotation of the motor measured based on output timing, at which the reference angle information is outputted. The error correcting device is configured to correct an error of the actual detected angle information in order to output corrected angle information that indicates a corrected angle of rotation of the motor measured based on the output timing of the reference angle information. The error correcting device includes an estimated pulse generator, an estimated pulse counter, a first difference computing device, a second difference computing device, an adjusting device, and an output processing device. The estimated pulse generator is configured to measure duration of one cycle of the reference angle information every time the reference angle information is outputted. The duration is measured between a previous time, at which the reference angle information is previously outputted, and a current time, at which the reference angle information is currently outputted. The estimated pulse generator is configured to compute an estimated time, which is required for the motor to rotate the unit angle in subsequent rotation of the motor, based on the duration. The estimated pulse generator is configured to generate an estimated pulse having a pulse width that is equivalent to the estimated time. The estimated pulse counter is configured to count the estimated pulse in order to compute estimated angle information indicating an estimated angle of rotation of the motor measured based on the output timing of the reference angle information. The estimated pulse counter outputs the estimated angle information. The first difference computing device is configured to compute one of a plurality of first differences every time the actual detected angle indicated by the actual detected angle information becomes a corresponding one of a plurality of representative angles during the one cycle of the reference angle information. The plurality of representative angles includes a final angle that corresponds to a final value of the actual detected angle. The one of the plurality of first differences indicates an advancing amount of the estimated angle relative to the actual detected angle. The second difference computing device is configured to compute a plurality of second differences of a plurality of angular sections based on the plurality of first differences computed for the plurality of representative angles of the one cycle. The plurality of angular sections is defined between adjacent ones of a plurality of angles that includes the plurality of representative angles and an angle that corresponds to an initial value of the actual detected angle measured at the output timing of the reference angle information. Each of the plurality of second differences indicates a difference between an increase amount of the actual detected angle and an increase amount of the estimated angle within a corresponding one of the plurality of angular sections. The second difference computing device is configured to store each of the plurality of second differences in a storage part in association with the corresponding one of the plurality of angular sections. The adjusting device is configured to compute a plurality of learning values by adjusting the plurality of second differences of the one cycle stored in the storage part in accordance with a degree of acceleration and deceleration of the motor. The output processing device is configured to execute an initialization process, an output updating process, and a correcting process. In the initialization process, a value of the corrected angle information is set to the initial value, when the reference angle information is outputted. In the output updating process, the value of the corrected angle information is increased by a certain value, which corresponds to the unit angle, every time the actual detected angle information is outputted. In the correcting process, the certain value used in the output updating process is changed in order to increase an increase amount of the value of the corrected angle information, which is increased while the actual detected angle changes within each of the plurality of angular sections, by an increase amount indicated by a corresponding one of the plurality of learning values.
p-0024To achieve the objective of the present disclosure, there is also provided a rotation detecting apparatus for detecting rotation of a motor that provides a drive power of a vehicle, wherein the rotation detecting apparatus includes actual detected angle computing means, estimated angle computing means, first difference computing means, second difference computing means, learning value computing means, and correcting means. The actual detected angle computing means computes actual detected angle information based on reference angle information and unit rotation angle information. The actual detected angle computing means receives the reference angle information every time the motor rotates a predetermined reference angle. The actual detected angle computing means receives the unit rotation angle information every time the motor rotates a unit angle smaller than the reference angle. The unit angle is computed based on a predetermined resolution value. The actual detected angle information indicates an actual detected angle of rotation of the motor measured based on reference timing, at which the reference angle information is received. The estimated angle computing means measures duration of one cycle of receiving the reference angle information. The estimated angle computing means computes estimated angle information, which indicates an estimated angle of rotation of the motor, based on the duration and the predetermined resolution value. The estimated angle is measured based on the reference timing of the reference angle information. The first difference computing means computes a first difference every time the duration elapses. The first difference indicates a difference between the estimated angle information and the actual detected angle information. The second difference computing means computes a plurality of second differences of the one cycle. Each of the plurality of second differences indicates a difference between an increase amount of the estimated angle information and an increase amount of the actual detected angle information within a corresponding one of a plurality of angular sections defined in the one cycle. The learning value computing means computes a plurality of learning values by adjusting the plurality of second differences of the one cycle in accordance with the first difference. The learning value computing means stores the plurality of learning values in a storage part in association with the plurality of angular sections. The correcting means corrects the actual detected angle information such that a change amount of the actual detected angle information, which is changed while the actual detected angle indicated by the actual detected angle information changes within each of the plurality of angular sections, is further changed by an amount indicated by a corresponding one of the plurality of learning values. The correcting means outputs the corrected actual detected angle information as corrected angle information that indicates a corrected rotation angle of the motor.
BRIEF DESCRIPTION OF THE DRAWINGS
p-0025The disclosure, together with additional objectives, features and advantages thereof, will be best understood from the following description, the appended claims and the accompanying drawings in which:
p-0026<figref idrefs="DRAWINGS">FIG. 1</figref> is a diagram illustrating a control system of an electric vehicle of according to the first embodiment of the present disclosure;
p-0027<figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram illustrating a schematic configuration of a resolver and a rotation angle detecting portion according to the first embodiment;
p-0028<figref idrefs="DRAWINGS">FIG. 3</figref> is a diagram illustrating a configuration of an error correcting portion of the first embodiment;
p-0029<figref idrefs="DRAWINGS">FIG. 4A</figref> is an explanatory diagram illustrating an A-phase signal;
p-0030<figref idrefs="DRAWINGS">FIG. 4B</figref> is an explanatory diagram illustrating a B-phase signal;
p-0031<figref idrefs="DRAWINGS">FIG. 4C</figref> is an explanatory diagram illustrating a Z-phase signal;
p-0032<figref idrefs="DRAWINGS">FIG. 4D</figref> is an explanatory diagram illustrating an actual pulse Pr generated by the error correcting portion based on the phase signals;
p-0033<figref idrefs="DRAWINGS">FIG. 4E</figref> is an explanatory diagram illustrating a count value (actual count value Kr);
p-0034<figref idrefs="DRAWINGS">FIG. 5A</figref> is an explanatory diagram illustrating a Z-phase signal outputted by an RD converting portion;
p-0035<figref idrefs="DRAWINGS">FIG. 5B</figref> is an explanatory diagram illustrating an estimated pulse Pp generated by the error correcting portion based on the Z-phase signal;
p-0036<figref idrefs="DRAWINGS">FIG. 5C</figref> is an explanatory diagram illustrating a count value (estimated count value Kp);
p-0037<figref idrefs="DRAWINGS">FIGS. 6A to 6E</figref> are explanatory diagrams for explaining a division method of the first embodiment;
p-0038<figref idrefs="DRAWINGS">FIG. 7</figref> is a flow chart illustrating a learning process executed by a difference storing portion;
p-0039<figref idrefs="DRAWINGS">FIGS. 8A and 8B</figref> are explanatory diagrams for explaining a procedure of obtaining a learning value;
p-0040<figref idrefs="DRAWINGS">FIG. 9</figref> is an explanatory diagram for explaining a distribution rule for determining adjustment values;
p-0041<figref idrefs="DRAWINGS">FIG. 10A</figref> is an explanatory diagram illustrating a state, where a rotational speed of a motor is constant, resulting in that an estimated angle is appropriate;
p-0042<figref idrefs="DRAWINGS">FIG. 10B</figref> is an explanatory diagram illustrating a state, where the rotational speed of the motor varies, resulting in that the estimated angle is inappropriate;
p-0043<figref idrefs="DRAWINGS">FIG. 11</figref> is a flow chart illustrating an output updating process executed by a corrected count portion;
p-0044<figref idrefs="DRAWINGS">FIG. 12</figref> is an explanatory diagram for explaining a correction amount computing portion;
p-0045<figref idrefs="DRAWINGS">FIG. 13</figref> is an explanatory diagram for explaining a sequence of operation of the error correcting portion;
p-0046<figref idrefs="DRAWINGS">FIG. 14</figref> is an explanatory diagram illustrating a procedure of obtaining a learning value according to the second embodiment of the present disclosure;
p-0047<figref idrefs="DRAWINGS">FIG. 15</figref> is a flow chart illustrating a learning value computing process of the second embodiment;
p-0048<figref idrefs="DRAWINGS">FIG. 16</figref> is an explanatory diagram for explaining a map for determining acceleration adjustment values;
p-0049<figref idrefs="DRAWINGS">FIG. 17</figref> is an explanatory diagram for explaining a computation example for computing the learning value of the second embodiment;
p-0050<figref idrefs="DRAWINGS">FIG. 18</figref> is an explanatory diagram for explaining a principle of the disclosure;
p-0051<figref idrefs="DRAWINGS">FIGS. 19A and 19B</figref> are explanatory diagrams for explaining a procedure of obtaining a learning value of modification;
p-0052<figref idrefs="DRAWINGS">FIG. 20</figref> is a flow chart illustrating a learning process executed by the difference storing portion according to the first modification of the present disclosure;
p-0053<figref idrefs="DRAWINGS">FIG. 21</figref> is a flow chart illustrating a learning process executed by the difference storing portion according to the second modification of the present disclosure;
p-0054<figref idrefs="DRAWINGS">FIG. 22A</figref> is diagram illustrating a rotation sensor having a Hall element and magnetic resistance elements; and
p-0055<figref idrefs="DRAWINGS">FIG. 22B</figref> is a cross sectional view of the rotation sensor taken along line XXIIB-XXIIB of <figref idrefs="DRAWINGS">FIG. 22A</figref>.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
p-0056Embodiments of the present disclosure applied to a drive motor control apparatus for a vehicle will be described below. The drive motor control apparatus of the present embodiments is mounted to an electric vehicle serving as the vehicle, and the drive motor-control apparatus controls a drive motor that provides a drive power of the electric vehicle.
First Embodiment
p-0057Firstly, <figref idrefs="DRAWINGS">FIG. 1</figref> is a diagram illustrating a control system of an electric vehicle according to the first embodiment of the present disclosure.
p-0058As shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, the electric vehicle of the present embodiment includes a drive motor <b>1</b> (also referred to as, the motor <b>1</b>), a battery <b>3</b>, an inverter <b>5</b>, and a drive motor control apparatus (or an ECU) <b>7</b>. More specifically, the motor <b>1</b> is an alternating current synchronous motor, and the battery <b>3</b> is a direct-current power source. The inverter <b>5</b> converts a direct-current output voltage of the battery <b>3</b> into a three-phase alternating current, and the inverter <b>5</b> drives the motor <b>1</b> by using U-phase, V-phase, and W-phase of the above three-phase alternating electric current. The ECU <b>7</b> controls the motor <b>1</b> through the inverter <b>5</b>. The motor <b>1</b> has an output shaft <b>1</b><i>a </i>that is connected with left and right drive wheels <b>11</b> through a differential gear <b>9</b>.
p-0059The inverter <b>5</b> includes six switching elements and a drive circuit, typically. For example, the above switching elements are made of an IGBT (insulated gate bipolar transistor), and the drive circuit drives the switching elements. The drive circuit receives pulse width modulation signals UU, UV, UW from the ECU <b>7</b>, and the drive circuit turns on and off the switching elements based on the pulse width modulation signals UU, UV, UW in order to convert the direct-current of the battery <b>3</b> into the three-phase alternating current.
p-0060Furthermore, the output shaft <b>1</b><i>a </i>of the motor <b>1</b> is provided with a resolver <b>13</b> that serves as a sensor for sensing a rotation angle of the motor <b>1</b>. More specifically, the resolver <b>13</b> senses the rotation angle of the rotor of the motor <b>1</b>. The resolver <b>13</b> includes a resolver stator and a resolver rotor. The resolver rotor is rotatably received within the resolver stator, and is fixed to the output shaft <b>1</b><i>a </i>of the motor <b>1</b> such that the resolver rotor is rotatable with the output shaft <b>1</b><i>a. </i>
p-0061The resolver <b>13</b> is configured such that a reluctance between the resolver rotor and the resolver stator varies with a rotational position of the resolver rotor (corresponding to a rotation angle of the motor <b>1</b>). The resolver <b>13</b> outputs two rotation detection signals Sa, Sb. More specifically, an amplitude of the rotation detection signal Sa, Sb changes in a sinusoidal manner (or in a sine-wave shape) in accordance with the change of the reluctance. In other words, the amplitude of the rotation detection signal Sa, Sb changes in the sinusoidal manner in accordance with the rotation angle of the motor <b>1</b>. Also, one of the two rotation detection signals Sa, Sb is an electrical angle of 90 degrees out of phase of the other one of the signals Sa, Sb.
p-0062More specifically, the resolver stator of the resolver <b>13</b> has a primary coil and two secondary coils. By supplying the primary coil with energization signals f(t) having a constant frequency, a rotation detection signal Sa (=f(t)·sin θ) and a rotation detection signal Sb (=f(t)·cos θ) are outputted from the respective secondary coils as the rotation detection signals in accordance with the rotation angle of the motor <b>1</b>. More specifically, the rotation detection signal Sa has a waveform that is made by modifying the amplitude of the energization signal f(t) by sin θ. Also, the rotation detection signal Sb has a waveform that is made by modifying the amplitude of the energization signal f(t) by cos θ. The above resolver <b>13</b> is described in JP-A-2007-33412, JP-A-2008-271740 and US-A-2008-0265831, which are incorporated by reference in this embodiment.
p-0063θ indicates an angle that is an integer multiple of the rotation angle of the motor (multiplied by a positive integer n), and θ indicates an electrical rotation angle (electrical angle of rotation) of the resolver <b>13</b>. Also, n indicates a number of times of sequence of θ per one rotation of the motor, and is also referred to as an angular ratio, in general. In other words, n is, a ratio of the electrical angle relative to mechanical angle.
p-0064Also, in the description below, the “rotation” of the resolver <b>13</b> indicates the electrical rotation of the resolver rotor unless otherwise specified instead of the mechanical rotation of the resolver rotor. Also, a “cycle” or “one cycle” of the resolver <b>13</b> indicates a period for one electrical rotation of the resolver <b>13</b> unless otherwise specified. As a result, the rotation angle of the resolver <b>13</b> indicates the electrical rotation angle of the resolver <b>13</b>.
p-0065The resolver <b>13</b> of the present embodiment is configured such that one cycle of the reluctance change between (a) the resolver rotor and (b) the resolver stator corresponds to one rotation of the resolver rotor. In the above, the one cycle of the reluctance change indicates one cycle of the rotation detection signals Sa, Sb or one cycle of sin θ and cos θ, which are fundamental components. Also, the one rotation of the resolver rotor indicates the one mechanical rotation or one rotation of the motor <b>1</b>. In summary, the electrical angle of the rotation detection signals Sa, Sb coincides with the mechanical angle of the resolver rotor, resulting in that the angular ratio is 1.
p-0066The above configuration of the resolver <b>13</b> having the angular ratio of 1 is just one example, and the resolver <b>13</b> is not limited to the above configuration. For example, the resolver <b>13</b> may alternatively be configured such that the rotation detection signals Sa, Sb for N cycles (N is an integer equal to or greater than 2) correspond to the one rotation of a resolver rotor. In other words, in the above alternative configuration, the angular ratio is N. As a result, for example, in a case of a resolver having the angular ratio of 2, the rotation angle of the resolver <b>13</b> changes in a range from 0 degree to 720 degrees during one rotation of the motor <b>1</b>. In other words, every half turn (half-rotation) of the motor <b>1</b> corresponds to one rotation of the resolver <b>13</b>. The rotation angle of the motor <b>1</b> per one rotation of the resolver <b>13</b> corresponds to a reference angle. For example, the reference angle corresponds to a mechanical angle of rotation of the motor <b>1</b>.
p-0067Furthermore, as shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, electric current supply lines <b>21</b>, <b>22</b>, <b>23</b> of the respective phases connect the inverter <b>5</b> with the motor <b>1</b>, and each of the electric current supply lines <b>21</b>, <b>22</b>, <b>23</b> is provided with a respective electric current sensor <b>25</b>, <b>26</b>, <b>27</b>. The electric current sensor <b>25</b> detects a U-phase electric current level of the motor <b>1</b> and correspondingly output a U-phase electric current signal. Similarly, the electric current sensor <b>26</b> detects a V-phase electric current level of the motor <b>1</b> and correspondingly outputs a V-phase electric current signal. The electric current sensor <b>27</b> detects a W-phase electric current level of the motor <b>1</b> and correspondingly outputs a W-phase electric current signal. Then, each electric current signal from the electric current sensors <b>25</b> through <b>27</b> is fed to the ECU <b>7</b>.
p-0068Furthermore, the electric vehicle is equipped with various sensors for detecting an operational state of the electric vehicle, such as an accelerator sensor <b>31</b>, a brake sensor <b>32</b>, and a shift position sensor <b>33</b>.
p-0069For example, the accelerator sensor <b>31</b> is connected to an accelerator pedal (not shown) that is operated by the driver of the vehicle, and the accelerator sensor <b>31</b> outputs an accelerator pedal position signal that corresponds to a depressing amount of the accelerator pedal. The brake sensor <b>32</b> is connected to a brake pedal (not shown) that is operated by the driver, and the brake sensor <b>32</b> outputs a brake oil pressure signal that corresponds to a depressing amount of the brake pedal. The shift position sensor <b>33</b> is connected to a gear shift lever (not shown) operated by the driver, and detects a selected position of the gear shift lever between “drive (forward)”, “neutral”, “reverse”, and “parking” in order to output the shift position signal.
p-0070Signals from the sensors <b>31</b> through <b>33</b> (the accelerator pedal position signal, the brake oil pressure signal, the shift position signal) are fed to the ECU <b>7</b> as the vehicle operational data.
p-0071The ECU <b>7</b> provides the resolver <b>13</b> with the energization signals f(t), and receives the rotation detection signals Sa, Sb outputted from the resolver <b>13</b>. More specifically, the ECU <b>7</b> includes a rotation angle detecting portion <b>35</b>, a microcomputer <b>37</b>, and a pulse width modulation (PWM) circuit <b>39</b>. The rotation angle detecting portion <b>35</b> outputs digital data φ (referred to also as angle data φ), which corresponds to the rotation angle of the motor <b>1</b>, based on the fed rotation detection signals Sa, Sb. The microcomputer <b>37</b> is made of CPU, ROM, RAM, and I/O circuit. Note that the angle data φ outputted by the rotation angle detecting portion <b>35</b> indicates the rotation angle of the resolver <b>13</b> but may not directly indicate the rotation angle of the motor <b>1</b>. However, in the present embodiment, because the angular ratio of the resolver <b>13</b> is 1, the angle data φ from the rotation angle detecting portion <b>35</b> directly indicates the rotation angle of the motor <b>1</b>.
p-0072The pulse width modulation circuit <b>39</b> generates pulse width modulation signals UU, UV, UW based on control signal from the microcomputer <b>37</b> correspondingly to each phase of the three-phase alternating electric current. Also, the pulse width modulation circuit <b>39</b> outputs the pulse width modulation signals UU, UV, UW to the inverter <b>5</b>. As a result, the inverter <b>5</b> supplies the motor <b>1</b> with the three-phase alternating electric current having U-phase, V-phase, and W-phase.
p-0073The microcomputer <b>37</b> receives the angle data φ from the rotation angle detecting portion <b>35</b> as a detection value of the rotation angle of the motor <b>1</b>. Typically, the microcomputer <b>37</b> computes a rotational speed (rotational speed) of the motor <b>1</b> based on a change amount of the angle data φ per unit time.
p-0074The microcomputer <b>37</b> drives the inverter <b>5</b> based on (a) rotation information of the motor <b>1</b>, such as the rotation angle and the rotational speed, and (b) signals from the electric current sensors <b>25</b> through <b>27</b> also from the sensors <b>31</b> through <b>33</b> in order to cause the motor <b>1</b> to generate desired torque in accordance with an operational state of the vehicle. Control of the motor <b>1</b> will be briefly described below.
p-0075The microcomputer <b>37</b> computes a required amount of the torque to be generated by the motor <b>1</b> based on (a) the rotation angle and the rotational speed of the motor <b>1</b> and (b) the vehicle operational data (the accelerator pedal position signal, the brake oil pressure signal, and the shift position signal). Then, the microcomputer <b>37</b> computes an electric current command vector, which is used for energizing the motor <b>1</b>, based on the required amount by using a vector operation. Subsequently, the microcomputer <b>37</b> outputs a control signal to the pulse width modulation circuit <b>39</b> based on the above computation result in order to cause the motor <b>1</b> to generate the required amount of the torque. Furthermore, in the above, the microcomputer <b>37</b> feed-back controls the control signal to the pulse width modulation circuit <b>39</b> based on at least two electric current signals (for example, the U-phase electric current signal and the W-phase electric current signal) from the electric current sensors <b>25</b> through <b>27</b> such that each electric current of the three-phase current to the motor <b>1</b> coincides with a target value. As a result, the microcomputer <b>37</b> feed-back controls the pulse width modulation signals UU, UV, UW from the pulse width modulation circuit <b>39</b> to the inverter <b>5</b>, accordingly.
p-0076Next, a configuration of the rotation angle detecting portion <b>35</b> will be described with reference to <figref idrefs="DRAWINGS">FIG. 2</figref> and <figref idrefs="DRAWINGS">FIG. 3</figref>. <figref idrefs="DRAWINGS">FIG. 2</figref> is a diagram illustrating a schematic configuration of the resolver <b>13</b> and the rotation angle detecting portion <b>35</b>, and <figref idrefs="DRAWINGS">FIG. 3</figref> is a diagram illustrating a configuration of an error correcting portion <b>17</b> of the rotation angle detecting portion <b>35</b>.
p-0077A method of detecting the rotation angle of the motor <b>1</b> will be briefly described below.
p-0078<figref idrefs="DRAWINGS">FIG. 2</figref> shows the resolver <b>13</b> (rotation detecting means), and also shows an RD converting portion <b>16</b> (rotation detecting means) and the error correcting portion <b>17</b> (correcting means), both of which constitute the rotation angle detecting portion <b>35</b>. More specifically, the error correcting, portion <b>17</b>, as shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, includes an exclusive-OR computing portion <b>41</b> (rotation detecting means), an actual pulse counter <b>42</b> (rotation detecting means), an estimated angle pulse signal generating portion <b>43</b> (time estimating means), an estimated pulse counter <b>44</b> (angle estimating means), a difference storing portion <b>45</b> (first difference computing means, second difference computing means, adjusting means), a correction amount computing portion <b>46</b> (output processing means), and a corrected count portion <b>47</b> (output processing means). Said second difference is also called as “advance rate difference” in this disclosure.
p-0079As shown in <figref idrefs="DRAWINGS">FIG. 2</figref>, the rotation angle of the motor <b>1</b> detected by the resolver <b>13</b> is fed to the RD converting portion <b>16</b> as the rotation detection signals Sa, Sb. The RD converting portion <b>16</b> outputs an A-phase signal PSa (unit rotation angle information), a B-phase signal PSb (unit rotation angle information), and a Z-phase signal PSz (reference angle information) to the error correcting portion <b>17</b> based on the fed rotation detection signals Sa, Sb. Then, as shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, firstly, the exclusive-OR computing portion <b>41</b> (rotation detecting means) of the error correcting portion <b>17</b> receives the A-phase signal PSa and the B-phase signal PSb, and generates an actual pulse Pr based thereon. Then, the generated actual pulse Pr and the Z-phase signal PSz are fed to the actual pulse counter <b>42</b>, and the actual pulse counter <b>42</b> computes an actual count value. Kr (actual detected angle information) that indicates an actual detected angle of rotation of the motor <b>1</b>. Simultaneously, the estimated angle pulse signal generating portion <b>43</b> (time estimating means) generates an estimated pulse Pp based on the Z-phase signal PSz. Also, the estimated pulse counter <b>44</b> (angle estimating means) computes an estimated count value Kp (estimated angle information), which indicates an estimated angle of rotation, of the motor <b>1</b>, based on the estimated pulse Pp and the Z-phase signal PSz. Then, the actual count value Kr and the estimated count value Kp, both of which are computed based on the output timing of the Z-phase signal PSz as above, are fed to the difference storing portion <b>45</b> (first difference computing means, second difference computing means, adjusting means). The difference storing portion <b>45</b> computes learning values dx based on the actual count value Kr and the estimated count value Kp, and stores the learning value in a memory <b>45</b><i>a</i>. Then, the correction amount computing portion <b>46</b> (output processing means) and the corrected count portion <b>47</b> (output processing means) correct the actual count value Kr by using the stored learning values dx in order to compute a corrected count value φ (corrected angle information) that indicates a corrected angle of rotation of the motor <b>1</b> and outputs the corrected count value φ.
p-0080More specifically, the rotation detecting means (the resolver <b>13</b>, the RD converting portion <b>16</b>, the exclusive-OR computing portion <b>41</b>, the actual pulse counter <b>42</b>) outputs the Z-phase signal PSz (reference angle information) every time the motor <b>1</b> rotates a reference angle, and the rotation detecting means outputs the actual count value Kr (actual detected angle information) every time the motor <b>1</b> rotates a constant unit angle that is smaller than the reference angle. The reference angle information PSz indicates rotation of the motor <b>1</b> by the reference angle. The reference angle indicates an angle computed by dividing 360 degrees by a positive integer n. The actual detected angle information Kr indicates the actual detected angle of rotation of the motor <b>1</b> measured based on output timing (reference timing), at which the reference angle information PSz is outputted. The drive motor control apparatus controls energization of the motor <b>1</b> by using the reference angle information PSz and the actual detected angle information Kr. The drive motor control apparatus includes the error correcting portion <b>17</b> (correcting means). The correcting means <b>17</b> corrects an error of the actual detected angle information Kr in order to output corrected angle information φ that indicates a corrected angle of rotation of the motor <b>1</b> measured based on the output timing of the reference angle information PSz. The correcting means <b>17</b> is configured to control the energization of the motor <b>1</b> based on the corrected angle information φ, wherein the correcting means <b>17</b> includes time estimating means <b>43</b>, angle estimating means <b>44</b>, first difference computing means <b>45</b>, second difference computing means <b>45</b>, adjusting means <b>45</b>, and output processing means <b>46</b>, <b>47</b>.
p-0081The estimated angle pulse signal generating portion (time estimating means) <b>43</b> measures duration T of one cycle of the Z-phase signal PSz every time the Z-phase signal PSz (reference angle information) is outputted. In the above, the duration T is measured between (a) a previous time, at which the Z-phase signal PSz is previously outputted, and (b) a current time, at which the Z-phase signal PSz is currently outputted. Then, the estimated angle pulse signal generating portion <b>43</b> computes an estimated time ΔT, which is required for the motor <b>1</b> to rotate the resolution angle (unit angle) in subsequent rotation of the motor <b>1</b>, based on the duration T.
p-0082The estimated pulse counter <b>44</b> (angle estimating means) computes an estimated angle of rotation of the motor <b>1</b>, which is measured based on the output timing of the Z-phase signal PSz, every time the estimated time ΔT, which is estimated by the estimated angle pulse signal generating portion <b>43</b> (time estimating means), elapses under the assumption that the motor <b>1</b> rotates the resolution angle (unit angle) while the estimated time ΔT elapses. Then, the estimated pulse counter <b>44</b> outputs the estimated count value Kp (estimated angle information) that indicates the estimated angle of the rotation of the motor <b>1</b>.
p-0083One of the multiple first differences is computed for each of the multiple representative angles (45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees, 360 degrees that is the final value of the actual count value Kr) whenever the actual detected angle of the rotation of the motor <b>1</b> indicated by the actual count value Kr (actual detected angle information) becomes a corresponding one of the multiple representative angles during the one cycle of the Z-phase signal PSz (reference angle information). The first difference indicates an advancing amount of the estimated angle indicated by the estimated count value Kp (estimated angle information) relative to the actual detected angle indicated by the actual count value Kr (actual detected angle information).
p-0084The multiple second differences of the multiple angular sections are computed based on the multiple first differences of the multiple representative angles of the one cycle computed by the first difference computing means. One of the multiple angular sections is defined between (a) an initial value of the actual detected angle indicated by the actual count value Kr at the output timing of the Z-phase signal PSz (reference angle information) and (b) a minimum representative angle (for example, 45 degrees) of the representative angles. Also, the other one of the multiple angular sections is defined between adjacent representative angles. Each of the multiple second differences indicates an exceeding amount of an increase amount of the estimated angle indicated by the estimated count value Kp (estimated angle information) relative to an increase amount of the actual detected angle indicated by the actual count value Kr (actual detected angle information) within a corresponding angular section that corresponds to the each second difference. Then, each of the second differences of the multiple angular sections is stored in the second difference table (storage part) in association with the corresponding angular section.
p-0085The adjusting means adjusts the multiple second differences of the plurality of angular sections of the one cycle, which is stored in the storage part <b>45</b><i>a</i>, in accordance with a degree of acceleration and deceleration of the motor <b>1</b>. The corrected count portion <b>47</b> (output processing means) executes an initialization process, an output updating process, and a correcting process. In initialization process, a corrected count value (value of the corrected angle information φ) is set to the initial value or 0 when the Z-phase signal PSz (reference angle information) is outputted. In the output updating process, the corrected count value φ is increased by a certain value, which corresponds to the unit angle, based on the output timing of the Z-phase signal PSz (reference angle information) every time the actual count value Kr (actual detected angle information) is outputted. In the correcting process, the certain value (correction amount) used in the output updating process is changed such that an increase amount of the corrected count value (corrected angle information φ), which is increased while the actual detected angle indicated by the actual detected angle information Kr changes within each of the plurality of angular sections, is increased by a corresponding one of the second differences, which is adjusted by the adjusting means. In other words, the correction amount is changed such that the increase amount of the corrected count value φ, which is increased while the actual detected angle changes within each of the angular sections defined between (a) the initial angle (0 degree) and (b) the minimum representative angle (45 degrees), or between (a) one representative angle and (b) the next representative angle, is increased by the corresponding learning value (adjusted second difference) that corresponds to the angular section.
p-0086Hereinafter, firstly, a procedure for computing the learning value dx (x indicates a positive integer) used for correcting the actual count value Kr that indicates the actual, detected angle of the rotation angle of the motor <b>1</b> will be described. Subsequently, another procedure for correcting the actual count value Kr by using the learning value dx will be described.
p-0087As shown in <figref idrefs="DRAWINGS">FIG. 2</figref>, the rotation angle detecting portion <b>35</b> includes the RD converting portion <b>16</b> and the error correcting portion <b>17</b>. The RD converting portion <b>16</b> provides the resolver <b>13</b> with the energization signal f(t). Simultaneously, the RD converting portion <b>16</b> receives the rotation detection signals Sa, Sb from the resolver <b>13</b> and outputs the A-phase signal PSa, the B-phase signal PSb, and the Z-phase signal PSz, which indicate the rotation angle of the motor <b>1</b> (more specifically, the rotation angle of the resolver <b>13</b>), based on the rotation detection signals Sa, Sb.
p-0088The RD converting portion <b>16</b> is a digital tracking RDC (Resolver Digital Converter), and is not shown. The RD converting portion <b>16</b> converts the rotation detection signals Sa, Sb fed from the resolver <b>13</b> into digital data (hereinafter referred to as “actual detected data”) that indicates the rotation angle of the resolver <b>13</b>. The method of the above conversion is described in JP3365063, JP3442316 and U.S. Pat. No. 6,278,388, which are incorporated by reference in this embodiment.
p-0089Also, the RD converting portion <b>16</b> internally has an encoder emulator that converts the above actual detected data into pulse signals (A-phase signal PSa, B-phase signal PSb, Z-phase signal, PSz), which have a format similar to the signals outputted by an incremental encoder. An example of each pulse signal are shown in <figref idrefs="DRAWINGS">FIG. 4A</figref> to <figref idrefs="DRAWINGS">FIG. 4C</figref>.
p-0090As shown in <figref idrefs="DRAWINGS">FIG. 4A</figref> to <figref idrefs="DRAWINGS">FIG. 4C</figref>, each of the A-phase signal PSa (unit rotation angle information) and the B-phase signal PSb (unit rotation angle information) is a pulse <b>20</b>, signal, and the pulse is made every time the resolver <b>13</b> rotates a predetermined angle. The phase of the A-phase signal PSa and the phase of the B-phase signal PSb are different from each other by 90 degrees. The Z-phase signal PSz (reference angle information) is a pulse signal that specifies a starting point (0 degree) of detection of the angle, and the pulse is generated every time the resolver <b>13</b> makes one rotation.
p-0091It should be noted that the error correcting portion <b>17</b> computes an exclusive-OR (XOR) of the A-phase signal PSa and the B-phase signal PSb based on the A-phase signal PSa and the B-phase signal PSb, and the actual pulse Pr (see <figref idrefs="DRAWINGS">FIG. 4D</figref>) is generated in accordance with the computation result. The number of pulse edges (including leading edges and trailing edges) of the actual pulse Pr, which edges are made during one rotation of the resolver <b>13</b>, indicates a resolution R of the RD converting portion <b>16</b>. In other words, the number of pulse edges of the actual pulse Pr during one rotation of the resolver <b>13</b> indicates the resolution of the angle detection.
p-0092Specifically, the resolution of the RD converting portion <b>16</b> of the present embodiment corresponds to, for example, 12 bits (0 through 4095). Thus, when the resolver <b>13</b> rotates from 0 degree to 360 degrees to make one rotation, 2048 actual pulses Pr are generated, and thereby the number of the generated pulse edges is 4096.
p-0093An interval between (a) timing, at which one edge of the actual pulse Pr is generated, and (b) the other timing, at which the next edge of the actual pulse Pr is generated, is defined as a pulse width. In the above definition, the rotation angle of the resolver <b>13</b> equivalent to the above pulse width indicates a minimum angle detectable by the resolver <b>13</b>. The angle of the actual rotation of the motor <b>1</b> that corresponds to the one pulse width is a “unit angle”. In the present embodiment, the resolver rotation angle per one pulse width of the actual pulse Pr corresponds to 360/4096 degrees, and the above angle of 360/4096 degrees is referred to as a resolution angle. In other words, the resolution angle is computed by the following equation. <br />“360 degrees”/“angular ratio of resolver 13”/“Resolution of RD converting portion 16”
p-0094In an ideal condition, the rotation detection signals Sa, Sb outputted by the resolver <b>13</b> have mutually equal amplitudes, also are not offset from each other, and are difference from each other in phase by 90 degrees. However, in reality, due to various causes, such as manufacturing variation, the rotation detection signals Sa, Sb from the resolver <b>13</b> are different from the above ideal signals, and thereby have errors caused by, for example, the manufacturing variation. Thus, the actual detected data internally made by the RD converting portion <b>16</b> may include errors, and thereby the A-phase signal PSa and the B-phase signal PSb made based on the erroneous signals Sa, Sb may result in erroneous signals.
p-0095In the present embodiment, the rotation angle detecting portion <b>35</b> internally has the error correcting portion <b>17</b> that is configured to correct the detection result made by the RD converting portion <b>16</b>. The error correcting portion <b>17</b> receives each of the A-phase, B-phase, and Z-phase signals from the RD converting portion <b>16</b>, and generates angle data φ based on the received phase signals. Thus, the angle data φ has limited error (or no error) that is caused by the manufacturing variation of the resolver <b>13</b>. Then, the angle data φ generated by the error correcting portion <b>17</b> is fed to the microcomputer <b>37</b>.
p-0096More specifically, as shown in <figref idrefs="DRAWINGS">FIG. 3</figref>, the error correcting portion <b>17</b> includes the exclusive-OR computing portion <b>41</b>, the actual pulse counter <b>42</b>, the estimated angle pulse signal generating portion <b>43</b>, the estimated pulse counter <b>44</b>, the difference storing portion <b>45</b>, the correction amount computing portion <b>46</b>, and the corrected count portion <b>47</b>.
p-0097The exclusive-OR computing portion <b>41</b> computes the exclusive-OR of the A-phase signal PSa and the B-phase signal PSb, and generates the actual pulse Pr (see <figref idrefs="DRAWINGS">FIG. 4D</figref>) in accordance with the computation result.
p-0098The actual pulse counter <b>42</b> receives the actual pulse Pr generated by the exclusive-OR computing portion <b>41</b>, and counts the actual pulse Pr. More specifically, the actual pulse counter <b>42</b> detects the leading edges and the trailing edges of the actual pulse Pr, and increments a count value every time the edge is detected. Then, the actual pulse counter <b>42</b> outputs the count value as the actual count value Kr.
p-0099The actual pulse counter <b>42</b> also receives the Z-phase signal PSz in addition to the above actual pulse Pr. The actual pulse counter <b>42</b> is configured to reset the actual count value Kr to 0 at timing of the leading edge of the Z-phase signal PSz (or when the Z-phase signal PSz rises). In other words, the actual pulse counter <b>42</b> counts the actual pulse Pr based on the pulse edge rising timing of the Z-phase signal PSz. Thus, the actual count value Kr becomes 0 at the pulse edge rising timing of the Z-phase signal PSz.
p-0100<figref idrefs="DRAWINGS">FIG. 4E</figref> shows an example of the actual count value Kr relative to the actual pulse Pr. As shown in <figref idrefs="DRAWINGS">FIG. 4E</figref>, the actual count value Kr is reset to 0 at the pulse edge rising timing of the Z-phase signal PSz, and subsequently, the actual count value Kr is incremented every time the edges of the actual pulse Pr is generated. In the present embodiment, the resolution of the RD converting portion <b>16</b> corresponds to 12 bits, and thereby the actual count value Kr indicates a value from 0 through 4095 while the resolver <b>13</b> rotates from 0 degrees to 360 degrees to make one rotation.
p-0101The estimated angle pulse signal generating portion <b>43</b> estimates a time required for the rotation by a resolution angle (unit angle) based on a pulse interval T of the Z-phase signal PSz and the resolution R of the RD converting portion <b>16</b> at the pulse edge rising timing of the Z-phase signal PSz. Then, the estimated angle pulse signal generating portion <b>43</b> generates the estimated pulse Pp having a pulse width equivalent to the above estimated time. The above estimated pulse Pp represents a pulse that is estimated to be made in the subsequent rotation of the motor <b>1</b>. In other words, the estimated angle pulse signal generating portion (time estimating means) <b>43</b> measures duration T of one cycle of the Z-phase signal PSz every time the Z-phase signal PSz (reference angle information) is outputted. In the above, the duration T is measured between (a) a previous time, at which the Z-phase signal PSz is previously outputted, and (b) a current time, at which the Z-phase signal PSz is currently outputted. In the above, the previous time immediately precedes the current time. Then, the estimated angle pulse signal generating portion <b>43</b> computes an estimated time ΔT, which is required for the motor <b>1</b> to rotate the resolution angle (unit angle) in subsequent rotation of the motor <b>1</b>, based on the duration T.
p-0102Specifically, at every pulse edge rising timing of the Z-phase signal PSz, the pulse interval of the preceding Z-phase signal PSz is measured. In other words, at every pulse edge rising timing of the Z-phase signal PSz, the pulse interval between (a), the previous pulse edge rising timing and (b) the current pulse edge rising timing is measured. The pulse interval corresponds to an actual one cycle duration that the resolver <b>13</b> has just required to make the preceding one rotation. Then, the measured one cycle duration is divided by the resolution (4096 in the present embodiment) of the resolver <b>13</b> to provide time that corresponds to the unit resolution of the resolver <b>13</b>. In other words, by dividing the measured one cycle duration by the resolution of the resolver <b>13</b>, it is possible to obtain time required for the motor <b>1</b> to make the rotation of the unit angle. Then, the estimated pulse Pp having the pulse width (estimated pulse width) equivalent to the time (estimated time) of the unit resolution is generated.
p-0103The above computation of the estimated pulse Pp will be detailed with reference to <figref idrefs="DRAWINGS">FIGS. 5A and 5B</figref>. <figref idrefs="DRAWINGS">FIG. 5A</figref> illustrates the Z-phase signal PSz, and <figref idrefs="DRAWINGS">FIG. 5B</figref> illustrates the estimated pulse Pp. In <figref idrefs="DRAWINGS">FIGS. 5A and 5B</figref>, for example, when the pulse of the Z-phase signal PSz is inputted at time t<sub>n</sub>, the preceding one cycle duration T<sub>n−1 </sub>of the resolver <b>13</b> is measured. Then, the one cycle duration T<sub>n−1 </sub>is divided by the resolution R to obtain an estimated pulse width ΔT<sub>n</sub>. Thus, during a period between (a) time t<sub>n </sub>and (b) time t<sub>n+1</sub>, at which the next pulse of the Z-phase signal PSz is inputted, the estimated pulse Pp having the pulse width equivalent to the above estimated pulse width ΔT<sub>n </sub>is generated. In other words, during the period between (a) time t<sub>n </sub>and (b) time t<sub>n+1</sub>, the estimated pulse Pp is generated such that the pulse edge is generated every time the time equivalent to the estimated pulse width ΔT<sub>n </sub>elapses.
p-0104Subsequently, when the pulse of the Z-phase signal PSz is inputted again at time T<sub>n+1</sub>, the preceding one cycle duration T<sub>n </sub>of the resolver <b>13</b> is measured similarly to the case of time t<sub>n</sub>. Then, the one cycle duration T<sub>n </sub>is divided by the resolution R to obtain the estimated pulse width ΔT<sub>n+1</sub>. Thus, during a following period between (a) time t<sub>n+1 </sub>and (b) time T<sub>n+2</sub>, at which the next pulse of the Z-phase signal PSz is inputted, the estimated pulse Pp having the pulse width of the above estimated pulse width ΔT<sub>n+1 </sub>is generated. Thus, the same is true for the case of time t<sub>n+2</sub>.
p-0105The division method to obtain the estimated pulse width ΔT may employ, for example, a known shift operation. Specifically, there may be employed a counter that increases by a predetermined cycle shorter than the one cycle duration T in order, to measure the one cycle duration T of the resolver <b>13</b> (the pulse interval T of the Z-phase signal PSz). Thus, the counter is capable of obtaining a count value Ctr required for the one cycle duration T. Then, the count value Ctr is right-shifted by the right shift value (12 bits in the present embodiment) corresponding to the resolution R to obtain the estimated pulse width ΔT as a result of the division operation.
p-0106However, the division result obtained through the above simple shift operation may not be sufficiently accurate, and thereby the estimated pulse width ΔT may have a lower accuracy in some cases.
p-0107Thus, in addition to the shift operation basically executed in the present embodiment, the element of 12 bits, which would be otherwise neglected in the right shift operation, is further considered to generate the estimated pulse Pp with high accuracy. The specific method for generating the estimated pulse Pp will be explained with reference to <figref idrefs="DRAWINGS">FIGS. 6A to 6E</figref>.
p-0108In order to obtain the estimated pulse width ΔT, one cycle duration T of the resolver <b>13</b> needs to be measured. In the present embodiment, the measurement of the one cycle duration T is executed by using the counter that uses a basic pulse having, for example, a frequency of 40 MHz (or 25 nsec cycle time) for counting the duration T of the one cycle. Then; as one example, the measurement result is shown as a 15-digit count value in <figref idrefs="DRAWINGS">FIG. 6A</figref>. The count value is “28250” in a decimal format. In other words, 28250 basic pulses are counted during one rotation of the resolver <b>13</b>.
p-0109Then, the estimated pulse width ΔT is computed based on the count value. Specifically, the count value “28250” is divided by “4096” in consideration of the resolution of the RD converting portion <b>16</b> for 12 bits. More specifically, in the shift operation, the 15-digit count value in <figref idrefs="DRAWINGS">FIG. 6A</figref> is right shifted by 12 bits as shown in <figref idrefs="DRAWINGS">FIG. 6B</figref>. As a result, division result of “6” is obtained. The above results indicate that the estimated pulse width ΔT corresponds to time equivalent to six basic pulses.
p-0110However, the division result of “6” obtained through the above shift operation is not an accurate value because the computation result of “6” neglects the element of digits right of the decimal point during the right shift operation, and thereby deteriorating the accuracy. This is apparent from the division result of “6.896973 . . . ” obtained by dividing 28250 by 4096. Thus, the division result is actually close to 7 rather than 6.
p-0111As a result, every time the estimated pulse Pp, which has the estimated pulse width ΔT of the time equivalent to six basic pulses, is generated, the neglected digits right of the decimal point (0.896973 . . . ) is accumulated to make an error. Thus, even when the count value of the estimated pulse Pp (the estimated count value Kp) becomes 4095, the resolver <b>13</b> might have not yet made one rotation even in the constant-speed rotation.
p-0112In the present embodiment, the estimated pulse Pp is more accurately generated under the sufficient consideration, of the digits right of the decimal point without neglecting the digits.
p-0113As above, the right division result is not “6” but “6.896973 . . . ”. Thus, if possible, a time equivalent to 6.896973 . . . times of the basic pulses should be used for the estimated pulse width ΔT. However, it is impossible to output the estimated pulse Pp every time the 6.896973 . . . basic pulses are outputted.
p-0114In the present embodiment, (a) an estimated pulse Pp<b>6</b> having an estimated pulse width ΔT equivalent to six basic pulses and (b) an estimated pulse Pp<b>7</b> having an estimated pulse width ΔT equivalent to seven basic pulses are appropriately and selectively outputted. In other words, the digits positioned on the right of the decimal point of the division result are considered, and thereby the estimated pulse Pp<b>7</b> is outputted more often than the estimated pulse Pp<b>6</b> is in total. As a result, the estimated pulse Pp having the estimated pulse width ΔT equivalent to 6.896973 . . . number of the basic pulses is apparently kept outputted during one rotation of the resolver <b>13</b>.
p-0115In order to achieve the above, firstly, the total number of the estimated pulses Pp<b>7</b> and the total number of the estimated pulse Pp<b>6</b> to be outputted during one rotation are computed. Because the total number of the estimated pulses Pp to be outputted during one rotation is 4096, the sum of the number of the estimated pulses Pp<b>7</b> and the number of the estimated pulses Pp<b>6</b> needs to coincide with 4096. Firstly, as shown in <figref idrefs="DRAWINGS">FIG. 6C</figref>, the number “3674” indicated by 12 bits right of the decimal point of the division result is set in, a register (reg) <b>1</b> as the number of outputting the estimated pulses Pp<b>7</b>. Then, each bit of 12 bits is reversed and 1 is added thereto to obtain the number “422” (=4096−3674). Thus, the number “422” is set in a register (reg) <b>2</b> as the number of outputting the estimated pulses Pp<b>6</b>.
p-0116In the above, for example, when the estimated pulses Pp<b>7</b> are exclusively and continuously outputted by 3674 times, and the estimated pulses Pp<b>6</b> are exclusively and continuously outputted by 422 times, it is possible to output the estimated pulses Pp in one rotation by the desired number of times. However, in the above output method, the error is gradually accumulated while the estimated pulses Pp<b>7</b> are kept outputted, and in contrast, the error is gradually reduced after the estimated pulses Pp<b>6</b> starts outputted subsequently. Thus, the error may become substantially large temporarily.
p-0117In other words, the operation result will not be reliable enough when the ratio of the total number of outputting the estimated pulses Pp<b>7</b> to the total number of the estimated pulses Pp<b>6</b> merely coincides with 3674:422. In order to suppress the generation of the error over a period of one cycle, it is required to appropriately balance the distribution of the estimated pulses Pp<b>7</b> and the estimated pulses Pp<b>6</b>. For example, a short sequence of outputting the estimated pulses Pp<b>7</b> J times and outputting the estimated pulses Pp<b>6</b> K times may be repeated several times within the one cycle.
p-0118Firstly, the basic output ratio of outputting the estimated pulse Pp<b>7</b> relative to the single output of the estimated pulse Pp<b>6</b> is determined. Specifically, as shown in <figref idrefs="DRAWINGS">FIG. 6C</figref>, the basic output ratio is determined based on the number of the digits to the first “1” counted from Most Significant Bit (MSB) or the left most of reg<b>2</b>. In the example of <figref idrefs="DRAWINGS">FIG. 6C</figref>, the fourth bit from the MSB of reg<b>2</b> indicates the first “1”. Thus, four digits from the MSB are used for the computation of the basic output ratio of the estimated pulses Pp<b>7</b>, Pp<b>6</b>. In the present example, the estimated, pulses Pp<b>7</b> are outputted 14 times per single output of the estimated pulse Pp<b>6</b>.
p-0119Thus, when the basic output ratio is obtained, each of the estimated pulses Pp<b>7</b>, Pp<b>6</b> is outputted based on the above output ratio. In other words, firstly, the estimated pulse Pp<b>7</b> is outputted 14 times straight, and subsequently, the estimated pulse Pp<b>6</b> is outputted once. Then, the estimated pulse Pp<b>7</b> is again outputted 14 times straight, and subsequently, the estimated pulse Pp<b>6</b> is again outputted once. Thus, the same is repeated.
p-0120However, because the basic output ratio (14:1) is computed based on 4-bit precision, the basic output ratio may be slightly rough. Thus, the precision of the output ratio may be further improved. For example, as shown in <figref idrefs="DRAWINGS">FIG. 6D</figref>, when the output ratio is determined based on 6-bit precision, the output ratio becomes 57:6. When the output ratio is further precisely computed based on 7-bit precision as shown in <figref idrefs="DRAWINGS">FIG. 6E</figref>, the output ratio becomes 114:13.
p-0121In a case, where the estimated pulses Pp<b>7</b>, Pp<b>6</b> are outputted by the output ratio of 14:1, which is made based on 4-bit precision, for example, when the estimated pulse Pp<b>7</b> has been outputted 57 times, the estimated pulse Pp<b>6</b> has been outputted only 4 times, which is smaller than the number of times “6” in the case with 6-bit precision (<figref idrefs="DRAWINGS">FIG. 6D</figref>). Thus, this means that the error has occurred.
p-0122If the estimated pulses Pp<b>7</b>, Pp<b>6</b> are kept outputted by the output ratio of 14:1′, for example, when the estimated pulse Pp<b>7</b> has been outputted 112 times, the estimated pulse Pp<b>6</b> has only been outputted 8 times, which is certainly smaller than the number of times “13” in the case with 7-bit precision (<figref idrefs="DRAWINGS">FIG. 6E</figref>), resulting in the larger error.
p-0123Thus, the basic output ratio (14:1) should not be kept the same during the operation. After outputting the estimated pulses Pp<b>7</b>, Pp<b>6</b> to some extent, the output ratio needs to be changed. More specifically, when a current output ratio of actually outputted pulses is different from the output ratio with higher precision, the estimated pulses Pp<b>7</b>, Pp<b>6</b> are outputted such that the current output ratio coincides with the output ratio with the higher precision.
p-0124In other words, for example, as shown above, if the estimated pulse Pp<b>6</b> has been outputted only 4 times when the estimated pulse Pp<b>7</b> has been outputted 57 times, the output of the estimated pulse Pp<b>7</b> is temporarily stopped, and the estimated pulse Pp<b>6</b> is outputted in series until the total number of times of outputting the estimated pulse Pp<b>6</b> becomes 6, which is the required number in the case with the 6-bit precision. Thus, the ratio of (a) the number of times of outputting of the estimated pulse Pp<b>7</b> to (b) the number of times of outputting the estimated pulse Pp<b>6</b> becomes 57:6, which coincides with the output ratio with the 6-bit precision. Then, the estimated pulses Pp<b>7</b>, Pp<b>6</b> are again outputted based on the basic output ratio of 14:1.
p-0125Then, the current output ratio will be next compared with the output ratio (114:13) with 7-bit precision. Thus, the estimated pulses Pp<b>7</b>, Pp<b>6</b> remain outputted based on the basic output ratio until the number of times of either one of the estimated pulses Pp<b>7</b>, Pp<b>6</b> becomes the required output number indicated by the output ratio. In other words, the estimated pulses Pp<b>7</b>, Pp<b>6</b> remain outputted based on the basic output ratio until the estimated pulse Pp<b>7</b> has been outputted 114 times, or the estimated pulse Pp<b>6</b> has been outputted 13 times, which ever comes first.
p-0126In the present example, the estimated pulse Pp<b>7</b> has been outputted 114 times before the estimated pulse Pp<b>6</b> has been outputted 13 times. More specifically, when the estimated pulse Pp<b>7</b> has become outputted 114 times, the estimated pulse Pp<b>6</b> has been outputted 10 times. Thus, the current output ratio does not coincide with the output ratio with 7-bit precision. Thus, the output of the estimated pulse Pp<b>7</b> is temporarily stopped, and the estimated pulse Pp<b>6</b> is outputted in series until the number of times of the estimated pulse Pp<b>6</b> is incremented up to 13 times. Thus, the estimated pulse Pp<b>7</b> has been outputted 114 times, and the estimated pulse Pp<b>6</b> has been outputted 13 times, which makes the output ratio with 7-bit precision. Then, the estimated pulses Pp<b>7</b>, Pp<b>6</b> are outputted again based on the basic output ratio of 14:1.
p-0127It should be noted that the precision of the output ratio may be improved to any extent. For example, the output ratio may have 7-bit precision as shown in <figref idrefs="DRAWINGS">FIGS. 6A to 6E</figref>, or have higher precision.
p-0128In <figref idrefs="DRAWINGS">FIG. 3</figref>, the estimated pulse counter <b>44</b> receives the estimated pulses Pp generated by the estimated angle pulse signal generating portion <b>43</b>, and counts the number of the estimated pulses Pp. More specifically, the estimated pulse counter <b>44</b> detects the leading edges and the trailing edges of the estimated pulse Pp and increments the count value upon the detection of the edge. Then, the estimated pulse counter <b>44</b> outputs the count value as the estimated count value Kp.
p-0129In other, words, the estimated pulse counter <b>44</b> (angle estimating means) computes an estimated angle of rotation of the motor <b>1</b>, which is measured based on the output timing of the Z-phase signal PSz, every time the estimated time ΔT, which is estimated by the estimated angle pulse signal generating portion <b>43</b> (time estimating means), elapses under the assumption that the motor <b>1</b> rotates the resolution angle (unit angle) while the estimated time ΔT elapses. Then, the estimated pulse counter <b>44</b> outputs the estimated angle of the rotation of the motor <b>1</b> as the estimated count value Kp (estimated angle information).
p-0130The estimated pulse counter <b>44</b> receives the Z-phase signal PSz in addition to the estimated pulse Pp, and the estimated pulse counter <b>44</b> is configured to reset the estimated count value Kp to 0 at the timing of the rise (leading edge) of the pulse of the Z-phase signal PSz. In other words, the estimated pulse counter <b>44</b> counts the number of the estimated pulses Pp that begins from zero every time the pulse edge rising timing of the Z-phase signal PSz is generated. Thus, the estimated pulse counter <b>44</b> counts the estimated pulses Pp based on the output timing of the Z-phase signal PSz.
p-0131<figref idrefs="DRAWINGS">FIG. 5C</figref> shows an output example of the estimated count value Kp based on the estimated pulse Pp. As shown in <figref idrefs="DRAWINGS">FIG. 5C</figref>, the estimated count value Kp is reset to 0 at the pulse edge rising timing of the Z-phase signal PSz, and subsequently, the estimated count value Kp is incremented at every edge timing of the estimated pulse Pp. In the present embodiment, because the resolution of the RD converting portion <b>16</b> is 12 bits, the estimated count value Kp indicates a value in a range from 0 through 4095 during one rotation, in which the resolver <b>13</b> rotates from 0 degrees to 360 degrees, if the rotational speed of the motor <b>1</b> is constant.
p-0132The actual count value Kr (actual detected angle information) indicates an actual detected angle generated based on each phase signal fed by the resolver <b>13</b>. In contrast, the estimated count value Kp (estimated angle information) indicates the estimated angle that is estimated under the assumption that the resolver <b>13</b> rotates the resolution angle every time the estimated pulse width ΔT elapses. In the above, the estimated pulse width ΔT is determined based on the duration T of the preceding one cycle of the resolver <b>13</b>.
p-0133Next, the difference storing portion <b>45</b> will be described.
p-0134The difference storing portion <b>45</b> executes a learning process shown in <figref idrefs="DRAWINGS">FIG. 7</figref> every time the actual count value Kr is incremented. In other words, the difference storing portion <b>45</b> executes the learning process at every edge timing of the actual pulse Pr.
p-0135When the learning process in <figref idrefs="DRAWINGS">FIG. 7</figref> is started, the difference storing portion <b>45</b> determines at S<b>110</b> whether a current actual count value Kr coincides with any one of predetermined multiple representative angles, which one is other than the final angle.
p-0136In the present embodiment, as shown in the first line in the table of <figref idrefs="DRAWINGS">FIG. 8A</figref>, the representative angles include eight angles separated by 45 degrees each other. More specifically, the representative angles include 45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees, and 360 degrees. In the present embodiment, 360 degrees corresponds to the final angle. It is determined at S<b>110</b> whether the actual count value Kr corresponds to any one of the representative angles other than the final angle. In other words, it is determined at S<b>110</b> whether the actual detected angle coincides with any one of 45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, and 315 degrees. In the present embodiment, 360 degrees serving as the final angle indicates an angle that is not exactly 360 degrees, but an angle corresponding to the final value (4095) of the actual count value Kr, which precedes the initial value (0) of the actual count value Kr.
p-0137At S<b>110</b>, when it is determined that the actual count value Kr corresponds to any one of the representative angles other than 360 degrees, control proceeds to S<b>120</b>.
p-0138At S<b>120</b>, a first difference is computed at the representative angle by subtracting the actual count value Kr from the estimated count value Kp. Then, the first difference is stored in the memory <b>45</b><i>a </i>(storage part) of the difference storing portion <b>45</b> in association with the corresponding representative angle such that the first difference associated with the corresponding representative angle is distinguishable. Then, subsequently, the learning process is ended. Note that, the first difference indicates the advancing amount of the estimated angle indicated by the estimated count value Kp relative to the actual detected angle indicated by the actual count value Kr.
p-0139More specifically, the first and second lines in the table of <figref idrefs="DRAWINGS">FIG. 8A</figref> corresponds, to a first difference storage table of the memory <b>45</b><i>a</i>, in which table the eight first differences a<b>1</b> to a<b>8</b> are stored in association with the respective representative angles within one cycle (one rotation period) of the resolver <b>13</b>. The eight first differences a<b>1</b> to a<b>8</b> may be referred to as the first differences in one cycle. Then, at S<b>120</b>, the computed first difference is stored in the corresponding one of the storage regions for storing the first differences in the first difference storage table (or the second line in the table in <figref idrefs="DRAWINGS">FIG. 8A</figref>) based on the representative angle indicated by the current actual detected angle.
p-0140When it is determined at S<b>110</b> that the actual count value Kr does not corresponds to any one of the representative angles other than 360 degrees, control proceeds to S<b>130</b>, where it is determined whether the actual count value Kr coincides with the final value or 4095. In other words, it is determined at S<b>130</b> whether the actual detected angle is 360 degrees.
p-0141When it is determined that the actual count value Kr is not 4095, the learning process is ended. When it is determined that the actual count value Kr is 4095, control proceeds to S<b>140</b>.
p-0142At S<b>140</b>, similarly to S<b>120</b>, the current first difference is computed by subtracting the current actual count value Kr from the current estimated count value Kp, and the computed first difference is stored in the corresponding one of the storage regions in the first difference storage table based on the representative angle (or 360 degrees) indicated by the current actual detected angle. Note that the first difference may be positive and negative.
p-0143Thus, the first differences a<b>1</b> to a<b>8</b> for the latest one cycle have been stored in the first difference storage table at the end of every one cycle, during which the actual count value Kr changes from 0 to 4095 (or every one cycle of the resolver <b>13</b>). In other words, at S<b>110</b> to S<b>140</b>, during the one cycle of the Z-phase signal PSz (reference angle information), one of the multiple first differences is computed for each of the multiple representative angles (45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees, 360 degrees that is the final value of the actual count value Kr) every time the actual detected angle of the rotation of the motor <b>1</b> indicated by the actual count value Kr (actual detected angle information) becomes a corresponding one of the multiple representative angles. The first difference indicates an advancing amount of the estimated angle indicated by the estimated count value Kp (estimated angle information) relative to the actual detected angle indicated by the actual count value Kr (actual detected angle information).
p-0144Then, control proceeds to S<b>150</b>, where it is determined whether an absolute value of the first difference a<b>8</b> currently computed at 360 degrees at S<b>140</b> is equal to or greater than a predetermined value. When it is determined that the absolute value of the first difference a<b>8</b> is not equal to or greater than the predetermined, value, control proceeds to S<b>160</b>. In the present embodiment, the predetermined value used in the determination at S<b>150</b> is, for example, a value equivalent to 10 degrees, and may be computed by the following equation. <br />predetermined value=4096×10/360
p-0145At S<b>160</b>, a learning value used for correcting the actual count value Kr to obtain the angle data φ is obtained based on the first differences a<b>1</b> to a<b>8</b> stored in the first difference storage table during the current one cycle. Then, the obtained learning value is stored in the memory <b>45</b><i>a. </i>
p-0146Specifically, the learning value is obtained by the following procedures (1) to (3).
p-0147Procedure (1): The third line in the table of <figref idrefs="DRAWINGS">FIG. 8A</figref> corresponds to a second difference storage table of the memory <b>45</b><i>a</i>, in which eight second differences b<b>1</b> to b<b>8</b> are stored in the corresponding one of eight angular sections between 0 degree (initial angle) to 360 degrees (final angle) of the actual detected angle. More specifically, each of the second differences b<b>1</b> to b<b>8</b> indicates an increase amount of the estimated angle relative to the actual detected angle within the respective angular section. Also, the above eight angular sections include (a) an angular section defined between 0 degree and 45 degrees (minimum representative angle among the representative angles) and (b) angular sections defined by adjacent representative angles.
p-0148Then, at S<b>160</b>, the first difference a<b>1</b>, which is one of the first differences a<b>1</b> to a<b>8</b>, is stored in the second difference storage table to serve as the second difference b<b>1</b> for the angular section between 0 degree and 45 degrees.
p-0149Furthermore, the second difference for each target angular section defined by adjacent representative angles is computed as follows. For example, the first difference of the representative angle, which defines the start of the target angular section, is subtracted from the other first difference of the other representative angle, which defines the end of the target angular section, to compute the second difference for the target angular section. Then, the computed second difference is stored in the second difference storage table.
p-0150For example, the second difference b<b>2</b> for the angular section between 45 degrees and 90 degrees is computed by subtracting the first difference a<b>1</b> at 45 degrees from the first difference a<b>2</b> at 90 degrees (see <figref idrefs="DRAWINGS">FIG. 8A</figref>). Thus, the second difference b<b>2</b> is computed by the following equation. <br /><i>b</i>2<i>=a</i>2<i>−a</i>1
p-0151The above is explained in a different way. In an explanation example, the actual count value Kr that corresponds to 45 degrees indicates KO, and the actual count value Kr that corresponds to 90 degrees indicates Kr<b>2</b>. When the actual count value Kr is Kr<b>1</b> (or when the actual detected angle is 45 degrees), the estimated count value Kp is Kp<b>1</b>. When the actual count value Kr is Kr<b>2</b> (or when the actual detected angle is 90 degrees), the estimated count value Kp is Kp<b>2</b>. In the above example definition, the following equations are satisfied. <br /><i>a</i>1<i>=Kp</i>1<i>−Kr</i>1<br /><i>a</i>2<i>=Kp</i>2<i>−Kr</i>2<br /><i>b</i>2<i>=a</i>2<i>−a</i>1=(<i>Kp</i>2<i>−Kr</i>2)−(<i>Kp</i>1<i>−Kr</i>1)=(<i>Kp</i>2<i>−Kp</i>1)−(<i>Kr</i>2<i>−Kr</i>1)
p-0152As a result, it is apparently known that the second difference b<b>2</b> indicates the exceeding of an increase amount (Kp<b>2</b>−Kp<b>1</b>) of the estimated angle relative to an increase amount (Kr<b>2</b>−Kr<b>1</b>) of the actual detected angle within the angular section defined between 45 degrees and 90 degrees.
p-0153Similarly, for example, the second difference b<b>8</b> of the angular section between 315 degrees and 360 degrees is computed by subtracting the first difference a<b>7</b> at 315 degrees from the first difference a<b>8</b> at 360 degrees as shown by the following equation. <br /><i>b</i>8<i>=a</i>8<i>−a</i>7
p-0154In other words, in the procedure (1) executed at S<b>160</b> of <figref idrefs="DRAWINGS">FIG. 7</figref>, the multiple second differences of the multiple angular sections are computed based on the multiple first differences of the multiple representative angles of the one cycle computed in the procedure (first difference computing means) at S<b>110</b> to S<b>140</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>. One of the multiple angular sections is defined between (a) an initial value of the actual detected angle indicated by the actual count value Kr at the output timing of the Z-phase signal PSz (reference angle information) and (b) 45 degrees (minimum representative angle) of the representative angles. Also, the other one of the multiple angular sections is defined between adjacent representative angles. Each of the multiple second differences indicates an exceeding amount of an increase amount of the estimated angle indicated by the estimated count value Kp (estimated angle information) relative to an increase amount of the actual detected angle indicated by the actual count value Kr (actual detected angle information) within a corresponding angular section that corresponds to the each second difference. Then, each of the second differences of the multiple angular sections is stored in the second difference table (storage part) in association with the corresponding angular section.
p-0155Procedure (2): Subsequently, there will be described a method, in which the second differences of each of the multiple angular sections for the one cycle stored the procedure (1) (second difference computing means) in the second difference storage table (storage part) is adjusted in accordance with a degree of acceleration and deceleration of the motor <b>1</b>. At S<b>160</b>, the second differences b<b>1</b> to b<b>8</b> stored in the second difference storage table during the procedure (1) are adjusted by adjustment values in order to obtain the learning value. More specifically, the adjustment values are determined based on the first difference a<b>8</b> by using a distribution rule (map) shown in <figref idrefs="DRAWINGS">FIG. 9</figref>. As described above, the first difference a<b>8</b> is stored in the first difference storage table and corresponds to 360 degrees that serves as the final angle.
p-0156As shown in <figref idrefs="DRAWINGS">FIG. 9</figref>, the distribution rule defines the adjustment values c<b>1</b> to c<b>8</b> such that the first difference a<b>8</b> for the angular section of the final angle is uniformly distributed as the adjustment values c<b>1</b> to c<b>8</b> for the second differences b<b>1</b> to b<b>8</b> of each angular section. Also, the distribution rule defines the adjustment values c<b>1</b> to c<b>8</b> based on the value of the first difference a<b>8</b>. Note that, values enclosed by brackets “(” and “)” in the table (distribution rule) in <figref idrefs="DRAWINGS">FIG. 9</figref> indicate the values for the case, where the first difference a<b>8</b> corresponds to a negative value. Each enclosed value is made by merely converting a positive value of the first difference a<b>8</b> to an equivalently negative value.
p-0157For example, when a<b>8</b> equal to +8, the value (+8) is uniformly distributed into eight angular sections, and thereby each divided value (+1) serves as, each of the adjustment values c<b>1</b> to c<b>8</b> for the second differences b<b>1</b> to b<b>8</b>. In other words, if the value of the first difference a<b>8</b> is an integral multiple of 8, the quotient made by dividing the value of the first difference a<b>8</b> by <b>8</b> serves as each of the adjustment values c<b>1</b> to c<b>8</b>.
p-0158For example, when the value of the first difference a<b>8</b> corresponds to any one of +1 to +7, it is impossible to obtain an integer by dividing the value of the first difference a<b>8</b> by the number of the angular sections (8). As a result, each of the values (+1) of the first difference a<b>8</b> is dispersedly and uniformly distributed in the angular sections to make appropriate adjustment values as shown in <figref idrefs="DRAWINGS">FIG. 9</figref>.
p-0159For example, when the value of the first difference a<b>8</b> is +9, each adjustment value cx (x represents an integer from 1 to 8) is made by adding the adjustment value cx for the case of “a<b>8</b>=+8” to the adjustment value cx for the case of “a<b>8</b>=+1”. Also, although not shown in <figref idrefs="DRAWINGS">FIG. 9</figref>, for example, when the value of the first difference a<b>8</b> is +17, each adjustment value cx is made by adding the adjustment value cx (+2 for any x) for the case of “a<b>8</b>=+16” to the adjustment value cx for the case of “a<b>8</b>=+1”. In other words, when the first difference a<b>8</b> indicates “8×h+i” (h is an integer, i is any integer from 1 to 7), each adjustment value cx is made by adding h to each adjustment value cx for the case of “a<b>8</b>=i”.
p-0160The fourth line of the table in <figref idrefs="DRAWINGS">FIG. 8A</figref> corresponds to an adjustment value storage table in the memory <b>45</b><i>a</i>, in which table the adjustment values c<b>1</b> to c<b>8</b> for the second differences b<b>1</b> to b<b>8</b> of the respective angular sections are stored. More specifically, the adjustment values c<b>1</b> to c<b>8</b> determined based on the first difference a<b>8</b> by using the distribution rule in <figref idrefs="DRAWINGS">FIG. 9</figref> are stored in the adjustment value storage table.
p-0161(3) Furthermore, at S<b>160</b>, the learning value dx for each angular section is computed by subtracting the adjustment value cx, which is stored in the adjustment value storage table through the procedure (2), from the second difference bx (x is an integer from 1 to 8), which is stored in the second difference storage table through the procedure (1), as shown by the following equation. <br /><i>dx=bx−cx </i>
p-0162Then, the computed the learning values d<b>1</b> to d<b>8</b> for each angular section is stored in a learning value storage table in the memory <b>45</b><i>a </i>as shown in the fifth line of the table in <figref idrefs="DRAWINGS">FIG. 8A</figref>.
p-0163Thus, for example, when the first differences a<b>1</b> to a<b>8</b> indicate the values shown in the second line in the table of <figref idrefs="DRAWINGS">FIG. 8B</figref>, the second differences b<b>1</b> to b<b>8</b> for the respective angular sections are calculated through the procedure (1) to be the values shown in the third line in the table of <figref idrefs="DRAWINGS">FIG. 8B</figref>. Also, the adjustment values c<b>1</b> to c<b>8</b> for adjusting the second differences b<b>1</b> to b<b>8</b> are computed to be values shown in the fourth line in the table of <figref idrefs="DRAWINGS">FIG. 8B</figref> though the procedure (2). Because a<b>8</b> is +2, the adjustment values c<b>3</b>, c<b>6</b> are calculated to be +1 and the other adjustment values c<b>1</b>, c<b>2</b>, c<b>4</b>, c<b>5</b>, c<b>7</b>, c<b>8</b> are calculated to be 0 based on the third line in the map of <figref idrefs="DRAWINGS">FIG. 9</figref>. Furthermore, through the procedure (3), the learning values d<b>1</b> to d<b>8</b> for the respective angular sections are calculated to be the values shown in the fifth line in the table of <figref idrefs="DRAWINGS">FIG. 8B</figref>.
p-0164When the above process at S<b>160</b> is completed, the learning process is ended.
p-0165In the above, the learning values d<b>1</b> to d<b>8</b> for the respective angular sections stored at S<b>160</b> indicate the amount of shortage of the actual detected angle relative to the estimated angle for each angular section. In other words, the learning values d<b>1</b> to d<b>8</b> indicate an amount, by which the actual detected angle is smaller than the estimated angle that is estimated in the consideration of the rotational speed change of the motor <b>1</b>. Thereby, in the above, the estimated angle indicates more reliable angle than the actual detected angle, and has a smaller difference from the true angle.
p-0166The above is described below. Firstly, as above, the second differences b<b>1</b> to b<b>8</b> indicate the exceeding amount of the increase amount of the estimated angle relative to the increase amount of the actual detected angle in each angular section. If the exceeding amount is positive, the increase amount of the estimated angle is greater than the increase amount of the actual detected angle. If the exceeding amount is negative, the increase amount of the estimated angle is less, than the increase amount of the actual detected angle. In other words, the second differences b<b>1</b> to b<b>8</b> indicate the amount, by which the actual detected angle is smaller than the estimated angle, which is assumed to be more reliable, in each angular section. For example, if the shortage amount is positive, the actual detected angle is smaller than the estimated angle. In contrast, if the shortage amount is negative, the actual detected angle is greater than the estimated angle. As above, the second difference may be positive and negative.
p-0167However, because the estimated angle is currently estimated based on the duration measured in the preceding one cycle, the estimated angle may have an error (estimation error) from the true angle due to the rotational speed change of the motor <b>1</b> between the previous cycle and the current cycle.
p-0168More specifically, as shown in <figref idrefs="DRAWINGS">FIG. 10A</figref>, if the rotational speed of the motor <b>1</b> is constant, the estimated angle (dashed and double-dotted line in <figref idrefs="DRAWINGS">FIG. 10A</figref>) provided by the estimated count value Kp is expected to be appropriate, and thereby the first difference a<b>8</b> at 360 degrees is 0. However, if the rotational speed of the motor <b>1</b> changes, the duration of the preceding one cycle becomes different from the duration of the current one cycle. As a result, as shown in <figref idrefs="DRAWINGS">FIG. 10B</figref>, the estimated angle (dashed and single-dotted line in <figref idrefs="DRAWINGS">FIG. 10B</figref>) may deviate from the true angle. In other words, in the above case, the estimation error may occur, and thereby the first difference a<b>8</b> at 360 degrees may be different from 0. Thus, the first difference a<b>8</b> indicates an accumulated error (accumulated estimation error) of the estimated angle during one cycle. The above accumulated error is defined as above because it is expected that the absolute value of the estimation error increase proportionally to time, and that the error of the actual detected angle is negligible around the output timing of the Z-phase signal PSz. Note that in the above definition, the rotational speed of the motor <b>1</b> is assumed to be constant in one cycle of the resolver <b>13</b> even when the motor <b>1</b> is actually accelerated and decelerated in the one cycle. In other words, the rotational speed of the motor <b>1</b> is assumed to change only in the unit of the one cycle.
p-0169Thus, at S<b>160</b>, the first difference a<b>8</b> at 360 degrees is distributed to each angular section as uniform as possible to make adjustment values. Then, the adjustment values are subtracted from the respective second differences b<b>1</b> to b<b>8</b> such that the adjusted second differences for the respective angular sections are computed to indicate the second differences under the assumption that the rotational speed change of the motor <b>1</b> does not exist. In other words, each adjusted second difference indicates the shortage amount, by which the actual detected angle is smaller than the estimated angle, which is adjusted by the value based on the rotational speed change of the motor <b>1</b>, and which corresponds to the true angle shown by the dashed and single-dotted line in <figref idrefs="DRAWINGS">FIG. 10B</figref>. Thus, the adjusted second difference is stored in the learning value storage table of the memory <b>45</b><i>a </i>as the learning values d<b>1</b> to d<b>8</b>.
p-0170More specifically, when the first difference a<b>8</b> at 360 degrees indicates a positive value, it is assumed that the estimated angle advances the true angle, and thereby the second differences b<b>1</b> to b<b>8</b> of each angular section tend to be greater values compared with the second differences for the appropriate estimated angle. Also, the total sum of the second differences b<b>1</b> to b<b>8</b> is increased by the amount equivalent to the first difference a<b>8</b> to be greater than the total sum of the case for the appropriate estimated angle. Thus, each of the second differences b<b>1</b> to b<b>8</b> is adjusted such that the total sum of the second differences b<b>1</b> to b<b>8</b> is reduced by the amount equivalent to the first difference a<b>8</b>. Then, the adjusted second difference serves as the learning values d<b>1</b> to d<b>8</b>.
p-0171In other words, in the procedures (2) and (3) executed at S<b>160</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>, the multiple second differences of the multiple angular sections of the one cycle, which are stored in the second difference storage table (storage part) during the procedure (1) (second difference computing means) executed at S<b>160</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>, are adjusted based on the first difference a<b>8</b> computed at the final angle (360 degrees) of the corresponding one cycle, which is computed in the procedure (first difference computing means) at S<b>110</b> to S<b>140</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>.
p-0172In other words, the first difference a<b>8</b> at 360 degrees coincides with the total sum of the second differences b<b>1</b> to b<b>8</b>, and when the estimated angle is appropriately estimated, both of the first difference a<b>8</b> at 360 degrees and the total sum of the second differences b<b>1</b> to b<b>8</b> become 0. However, when the estimated angle is inappropriately estimated, and thereby the first difference a<b>8</b> at 360 degrees becomes a value De that is different from 0, each of the second differences b<b>1</b> to b<b>8</b> should be adjusted such that the total sum of the second differences b<b>1</b> to b<b>8</b> for eight angular sections is reduced by the amount of De. Then, the above adjusted second differences serve as the learning values d<b>1</b> to d<b>8</b>.
p-0173In other words, in the procedures (2) and (3) executed at S<b>160</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>, the multiple second differences of the multiple angular sections of the one cycle, which is stored in the second, difference storage table (storage part) during the procedure (1) at S<b>160</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> (second difference computing means), are adjusted such that the total sum of the multiple second differences of the multiple angular sections becomes zero.
p-0174In <figref idrefs="DRAWINGS">FIG. 7</figref>, when it is determined at S<b>150</b> that the absolute value of the first difference a at 360 degrees is equal to or greater than the predetermined value, control proceeds to S<b>170</b>, where the first differences a<b>1</b> to a<b>8</b> stored in the first difference storage table during the current one cycle are invalidated. In practice, the update of the learning values d<b>1</b> to d<b>8</b> based on the first differences a<b>1</b> to a<b>8</b> of the current one cycle is prohibited by prohibiting the execution of the procedure at S<b>160</b>. Subsequently, the learning process is ended. In other words, at S<b>150</b>, the first differences computed by the procedure at S<b>110</b> to S<b>140</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> (first difference computing means) during the one cycle are invalidated when the absolute value of the first difference a<b>8</b> at 360 degrees, which is computed by the procedure at S<b>110</b> to S<b>140</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> (first difference computing means) when the actual detected angle indicated by the actual count value Kr becomes 360 degrees (final angle), is equal to or greater than a predetermined value. By executing as above, the update of the second differences stored in the second difference storage table (storage part) used in the procedure in <figref idrefs="DRAWINGS">FIG. 12</figref> (correcting process) is prohibited.
p-0175Next, the corrected count portion <b>47</b> will be described.
p-0176The corrected count portion <b>47</b> internally has a counter (hereinafter, referred to as a corrected counter). The corrected count portion <b>47</b> outputs a corrected count value of the corrected counter, as the angle data φ, to the microcomputer <b>37</b>.
p-0177The corrected count portion <b>47</b> executes an initialization process for resetting the corrected count value to be 0, which is an initial value, every time the Z-phase signal PSz rises. In other words, the corrected count value (or the value of the corrected angle information) is initialized to 0 (or an initial value) when the Z-phase signal PSz (reference angle information) is outputted.
p-0178Furthermore, after the corrected count portion <b>47</b> resets the corrected count value to be 0 in the initialization process, the corrected count portion <b>47</b> increments the corrected count value by a value equivalent to a correction amount received from the correction amount computing portion <b>46</b> every time the edge (leading edges and trailing edges) of the actual pulse Pr is made. For example, the correction amount computing portion <b>46</b> outputs the correction amount indicating the amount, by which the corrected count value of the corrected count portion <b>47</b> is to be increased, to the corrected count portion <b>47</b> every time the edge of the actual pulse Pr is made. In other words, the corrected count portion <b>47</b> increases the corrected count value by the correction amount fed from the correction amount computing portion <b>46</b> every time the edge of the actual pulse Pr is generated. Also, the corrected count portion <b>47</b> increases the corrected count value from zero when the Z-phase signal PSz rises. Thus, the corrected count portion <b>47</b> increases the corrected count value based on the output timing of the Z-phase signal PSz. Also, the actual count value Kr is outputted to the correction amount computing portion <b>46</b> every time the edge (leading edges and trailing edges) of the actual pulse Pr is generated.
p-0179Specifically, the corrected count portion <b>47</b> executes an output updating process shown in <figref idrefs="DRAWINGS">FIG. 11</figref> every time the corrected count portion <b>47</b> receives the correction amount from the correction amount computing portion <b>46</b>. In the procedure in <figref idrefs="DRAWINGS">FIG. 11</figref>, the corrected count value (value of the corrected angle information) is increased by the value, which corresponds to the resolution angle (unit angle), based on the output timing of the Z-phase signal PSz (reference angle information) every time the actual count value Kr (actual detected angle information) is outputted.
p-0180In the output updating process, firstly at S<b>210</b>A, it is determined whether a current correction amount fed from the correction amount computing portion <b>46</b> indicates 0, 1 or 2. The correction amount of “1” indicates that no correction is to be made. The correction amount of “2” indicates that increase correction is to be made. The correction amount of “0” indicates that decrease correction is to be made. Note that the increase correction means that the increase amount of the corrected count value is made to be greater by 1 than the increase amount of the actual count value Kr. The decrease correction means that the increase amount of the corrected count value is made to be less by 1 than the increase amount of the actual count value Kr.
p-0181When it is determined at S<b>210</b>A that the correction amount is 1, control proceeds to S<b>220</b>A, where the corrected count portion <b>47</b> increments the corrected count value by 1, and subsequently, the output updating process is ended.
p-0182When it is determined at S<b>210</b>A that the correction amount is 2, control proceeds to S<b>230</b>A, where the corrected count portion <b>47</b> increments the corrected count value by 2, and subsequently, the output updating process is ended. Thus, in the above case, the corrected count value is increased by 2 while the actual count value Kr is increased by 1. In other words, the increase amount of the corrected count value is greater by 1 than the increase amount of the actual count value Kr.
p-0183Also, when it is determined at S<b>210</b>A that the correction amount is 0, the corrected count value is not incremented, and the output updating process is ended. Thus, in the above case, the corrected count value remains the same while the actual count value Kr is increased by 1. In other words, the increase amount of the corrected count value is smaller than the increase amount of the actual count value Kr by 1.
p-0184Next, the correction amount computing portion <b>46</b> will be described.
p-0185The correction amount computing portion <b>46</b> outputs the correction amount to the corrected count portion <b>47</b> every time the edge of the actual pulse Pr is generated. The correction amount computing portion <b>46</b> monitors the actual count value Kr, and sets the correction amount fed to the corrected count portion <b>47</b> such that the increase amount of the angle data φ (or the corrected count value) within each angular section is increased to be greater than the increase amount of the actual count value Kr within the corresponding angular section by the amount equivalent to the learning value for the corresponding angular section stored in the learning value storage table of the memory <b>45</b><i>a</i>. More specifically, the angular sections include (a) the angular section, during which the actual count value Kr ranges from 0 degree to 45 degrees, and (b) the angular sections, during which the actual count value Kr changes from a value that corresponds to one of the representative angles to another value that corresponds to the next one of the representative angles. In other words, the angular sections include sections separated by 45 degrees in the one cycle from 0 to 360 degrees. In the above, 45 degrees corresponds to the value (4096×45/360) of the actual count value Kr. Note that, when the adjusted second difference (or the learning value) is negative, the increase amount of the angle data φ (or the corrected count value) is decreased relative to the increase amount of the actual count value Kr within the corresponding angular section by the amount equivalent to the absolute value of the adjusted second difference (learning value) for the angular section stored in the learning value storage table of the memory <b>45</b><i>a. </i>
p-0186For example, in the example of the fifth line in the table of <figref idrefs="DRAWINGS">FIG. 8B</figref>, the learning value d<b>4</b> is +6 for the angular section between 135 degrees and 180 degrees. In the angular section between 135 degrees and 180 degrees (more specifically, in the angular section of 45-degree that corresponds to a changeable range of the actual count value Kr from (a) the value that corresponds to 135 degrees to (b) the value that corresponds to 180 degrees), the correction amount for the above angular section is set such that the increase amount of the value of the angle data φ within the angular section is greater by 6 (=d<b>4</b>) than the increase amount of the actual count value Kr in the range of 45 degrees.
p-0187The above is more specifically explained with reference to <figref idrefs="DRAWINGS">FIG. 12</figref> below. In the below explanation, the resolution for the angle detection is 11 bits (0 through 2047) in order to simplify the explanation. Also, the edge of the actual pulse Pr will be referred to also as an actual pulse edge in the below explanation.
p-0188Firstly, in a case of the resolution of 11 bits, the actual pulse edges are generated 256 times for angular section separated by 45 degrees. The number of times of the generated actual pulse edges for each angular section is 256 as computed by the equation of 2048×45/360.
p-0189Thus, in order to cause the increase amount of the value of the angle data φ to be greater by 6, which is the value of d<b>4</b>, than the increase amount (256 times) of the actual count value Kr within the angular section from 135 degrees to 180 degrees, the correction amount is set to 2 by six times, and the correction amount is set to 1 by 250 times while the actual pulse edges are generated 256 times. Note that, if every correction amount is set to 1 by 256 times in the angular section of 45 degrees, the value of the angle data φ also increases by the amount, by which the actual count value Kr is incremented.
p-0190For example, the correction amount may be set to 1 by 250 times in series, and subsequently, the correction amount may be set to 2 by six times in series. In the above setting, the correction amount is set to 2, which is different from 1, by six times out of the 256 times of the output of the correction amounts. However, in the above setting, the learning value d<b>4</b> is not distributed uniformly over angular section of 45 degrees.
p-0191Thus, in the present embodiment, the method similar to the method described in <figref idrefs="DRAWINGS">FIG. 6</figref> is employed. In other words, in order to suppress the angle detection error over the angular section of 45 degrees, the correction amount of 1 and the correction amount of 0 or 2 are outputted in an appropriately dispersed manner.
p-0192As shown in <figref idrefs="DRAWINGS">FIG. 12</figref>, firstly, the absolute value (=6) of the learning value d<b>4</b> is subtracted from the total output number of times (=256) for the angular section to obtain a value (in the present example, 250), and the obtained value is set in register A of 8 bits. Also, the absolute value (=6) of the learning value d<b>4</b> is set in register B of 8 bits.
p-0193Next, the basic output ratio between the correction amount of 1 and the correction amount of 2 is determined. The basic output ratio shows the number of times, by which the correction amount of 1 is outputted, relative to the single output of the correction amount of 2.
p-0194Specifically, as shown by a dotted line in <figref idrefs="DRAWINGS">FIG. 12</figref>, the basic output ratio is determined based on the number of digits to the first “1” counted from MSB of register B. In the present example, “1” appears firstly at the sixth bits from the MSB of register B, and thereby six digits from the MSB of register A are considered. Thus, the number indicated by the six digits in register A is employed as the output number of times for outputting the correction amount of 1 in the basic output ratio. In other words, when the correction amount of 1 is outputted by 62 times, the correction amount of 2 is once outputted to make the output ratio of 62:1.
p-0195When the basic output ratio is obtained through the above calculation, firstly, the correction amount of 1 and the correction amount of 2 are outputted based on the output ratio. In other words, the correction amount of 1 is outputted by 62 times in series, and subsequently, the correction amount of 2 is outputted once. Then, the correction amount of 1 is outputted by 62 times in series, and subsequently, the correction amount of 2 is outputted once, and the same is repeated.
p-0196However, because the basic output ratio (62:1) is determined based on 6-bit precision, the basic output ratio (62:1) may be slightly rough. When the output ratio is determined based on 7-bit precision as shown in a dashed and single-dotted line in <figref idrefs="DRAWINGS">FIG. 12</figref>, the output ratio gives 125 to 3.
p-0197Thus, after the correction amount of 1 and the correction amount of 2 are outputted based on the basic output ratio (62:1) to some extent, the current number of times of actually outputted correction amount of 1 and the correction amount of 2 is compared with the output ratio with higher precision. If the output ratio with the higher precision does not correspond to the current output number, the correction amount of 1 and the correction amount of 2 are outputted as required to comply with the output ratio with the higher precision.
p-0198In other words, for example, if the correction amount of 2 has only been outputted twice after the correction amount of 1 has been outputted 125 times, the output of the correction amount of 1 is stopped temporarily. Then, the correction amount of 2 is outputted in Series such that the number of times of outputting the correction amount of 2 coincides with 3 times, which is the required number of times for the case with 7-bit precision. As a result, the correction amount of 1 has been outputted 125 times, and the correction amount of 2 has been outputted 3 times. The above output numbers successfully correspond to the output ratio with the 7-bit precision. Then, the correction amount of 1 and the correction amount of 2 are again outputted based on the basic output ratio (62:1).
p-0199In the present embodiment, the output number of the correction amount of 1 becomes 250 times before the output number of the correction amount of 2 becomes 6 times, which is the target. More specifically, when the output number of the correction amount of 1 becomes 250 times, the output number of the correction amount of 2 has become 5 times in the above case. Therefore, the output of the correction amount of 1 is prohibited temporarily, and the correction amount of 2 is outputted in series until the output number of the correction amount of 2 reaches 6 times.
p-0200As a result, the output ratio of the correction amount of 1 to the correction amount of 2 over the whole angular section of 45 degrees becomes 250 to 6, and thereby the corrected count portion <b>47</b> increments the value of the angle data φ (corrected count value) by the increase amount that is greater than the increase amount of the actual count value Kr by 6.
p-0201In the above example, the learning value is positive, and the increase amount of the value of the angle data φ within the one angular section is corrected to become greater than the increase amount of the actual count value Kr. However, the learning value may be alternatively negative, and thereby the increase amount of the value of the angle data φ may be corrected to become less than the increase amount of the actual count value Kr. In the above alternative case, “the correction amount of 2” in the above description with reference to <figref idrefs="DRAWINGS">FIG. 12</figref> is changed to “the correction amount of 0”. In other words, the correction amount computing portion <b>46</b> outputs the correction amount of 0; instead of the correction amount of 2, to the corrected count portion <b>47</b>.
p-0202In the procedure shown in <figref idrefs="DRAWINGS">FIG. 12</figref>, the value of the correction amount used in the output updating process of <figref idrefs="DRAWINGS">FIG. 11</figref> is changed such that the increase amount of the corrected count value (value of the corrected angle information), which is increased while the actual detected angle indicated by the actual count value Kr changes within each of the multiple angular sections, is increased by the adjusted second difference (or the learning value), which is stored in the second difference storage table (storage part) in association with corresponding the angular section. More specifically, the multiple angular sections include the angular section, during which the actual detected angle indicated by the actual count value Kr changes from (a) the initial value at the output timing of the Z-phase signal PSz (reference angle information) to (b) 45 degrees (minimum representative angle). Also, the multiple angular sections include the angular sections, during which the actual detected angle changes from one of the representative angles to the next one of the representative angles.
p-0203<figref idrefs="DRAWINGS">FIG. 13</figref> illustrates the sequence of the operation of the error correcting portion <b>17</b>.
p-0204As shown in <figref idrefs="DRAWINGS">FIG. 13</figref>, the operation of the error correcting portion <b>17</b> includes measuring operation, learning operation, and correcting operation. The error correcting portion <b>17</b> executes one of the measuring operation, the learning operation, and the correcting operation at each cycle similarly to a pipeline processing. In the above pipeline processing, and the cycle corresponds to the interval of outputting the Z-phase signals (or corresponds to one rotation period of the resolver <b>13</b>).
p-0205In the measuring operation, the duration of one cycle is measured.
p-0206In the subsequent learning operation, the estimated pulse Pp is generated based on the measured value of the one cycle duration in the previous cycle, and increments the estimated count value Kp based on the estimated pulse Pp; Then, in the learning operation, the first differences a<b>1</b> to a<b>8</b> are stored for each representative angle, and the learning values d<b>1</b> to d<b>8</b> for the respective angular sections of 45 degrees are determined when the current cycle is ended.
p-0207In the subsequent correcting operation, the increase amount of the value of the angle data φ for the angular section is changed (increased and decreased) relative to the increase amount of the actual count value Kr by the amount associated with the corresponding learning value d<b>1</b> to d<b>8</b> for the angular section stored at the end of the previous cycle in order to correct the actual count value Kr to output the angle data φ.
p-0208Thus, as shown in <figref idrefs="DRAWINGS">FIG. 13</figref>, for example, the learning values d<b>1</b> to d<b>8</b> used in the correcting operation during the “n+2”-th cycle are stored in, the learning operation executed during the previous “n+1”-th cycle. Also, the estimated count value Kp used for determining the learning values d<b>1</b> to d<b>8</b> in the learning operation executed during the “n+1”-th cycle is computed based on the one cycle duration T<sub>n </sub>measured in the measuring operation executed during the second previous “n”-th cycle.
p-0209The error correcting portion <b>17</b> is provided to the ECU <b>7</b> (drive motor control apparatus) of the present embodiment, and the exceeding amount, of the increase amount of the estimated angle relative to the increase amount of the actual detected angle in the respective angular section is stored as the second differences b<b>1</b> to b<b>8</b> that can be positive or negative. For example, the rotation angle of the motor <b>1</b> ranging from 0 degree to 360 degrees is divided into 8 angular sections such that the angular sections of the present embodiment are separated from each other by 45 degrees. The first difference a<b>8</b> at 360 degrees indicates the accumulated error of the estimated angle during one cycle. The adjustment values c<b>1</b> to c<b>8</b> for the respective angular sections are computed such that the first difference a<b>8</b> is distributed to each angular section as uniformly as possible. The adjustment values c<b>1</b> to c<b>8</b> are subtracted from the corresponding second differences b<b>1</b> to b<b>8</b> in order to compute the adjusted second differences for the angular sections. The adjusted second differences represents the values under the assumption, where there is no rotational speed change of the motor <b>1</b>, and the total sum of the adjusted second differences is 0. The adjusted second differences for the angular sections serve as the learning values d<b>1</b> to d<b>8</b>. The learning values d<b>1</b> to d<b>8</b> for the respective angular sections represent the shortage amount, by which the actual detected angle is smaller than an estimated angle determined through adjustment of the possible error caused by the rotational speed change of the motor <b>1</b>.
p-0210Thus, the error correcting portion <b>17</b> basically increments the value of the angle data φ to be outputted to the microcomputer <b>37</b> every time the actual pulse edge is generated such that the value of the angle data φ is changed to coincide with the actual count value Kr that corresponds to the actual detected angle. In the present embodiment, when required, the increase amount of the value of the angle data φ within each of the angular sections of 45-degrees intervals is made greater than the increase amount of the actual count value Kr by the amount indicated by the learning value d<b>1</b> to d<b>8</b> of the corresponding angular section. Note that when the learning value is negative, the increase amount of the value of the angle data φ is made smaller by the absolute value of the learning value. More specifically, the above change of the angle data φ is made by switching the value (or the correction amount) between 0 and 2 for changing the value of the angle data φ every time the actual pulse edge is generated. The above operation is made such that the value of the angle data φ coincides with the adjusted estimated angle that is adjusted by the amount caused by the rotational speed change of the motor <b>1</b>.
p-0211In general, there may be some errors in the detection signals caused by various causes. More specifically, due to various causes, such as the manufacturing variation of the resolver <b>13</b>, the rotation detection signals Sa, Sb outputted from the resolver <b>13</b> may include errors. Also, the actual pulse Pr and the actual count value Kr, which are computed based on the A-phase signal PSa and the B-phase signal PSb, may include errors. Furthermore, the rotational speed change during the operation of the motor <b>1</b> may cause the error. However, according to the ECU <b>7</b> of the present embodiment, the error correcting portion <b>17</b> is capable of correcting the above errors if any, and thereby it is possible to generate highly reliable angle data φ. As a result, the above reliable angle data φ is used for controlling the energization of the motor <b>1</b> effectively.
p-0212As a result, by suppressing the deterioration of the degree of accuracy in detecting the rotation angle, it is possible to achieve effective controllability of the motor <b>1</b>. Specifically, it is possible to effectively limit the unwanted acceleration of the vehicle, and thereby it is possible to prevent the discomforting of the occupant of the vehicle caused by the unwanted acceleration.
p-0213Furthermore, according to the present embodiment, it is possible to effectively simplify the calculation process used for error correction. More specifically, division process as a mathematical calculation, which generally requires large processing load, is not required. Furthermore, in the present embodiment, a correction value is not stored in the memory every resolution for the angle detection (or every resolution angle). As a result, it is possible to effectively suppress the increase in size of the hardware, and specifically, the size of the memory.
p-0214Also, in the present embodiment, when the absolute value of the first difference a<b>8</b> at 360 degrees is equal to or greater than the predetermined value, corresponding to YES at S<b>150</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>, the error correcting portion <b>17</b> (the difference storing portion <b>45</b>) invalidates the first differences a<b>1</b> to a<b>8</b> stored during the one cycle, and thereby preventing the update of the learning values d<b>1</b> to d<b>8</b>. Thus, it is Possible to effectively prevent the erroneous correction based on the erroneously updated learning values. More specifically, when the absolute value of the first difference a<b>8</b> is equal to or greater than the predetermined value, it is assumed that there is a large difference between the estimated angle and the actual detected angle. Thereby, if the learning values d<b>1</b> to d<b>8</b> were updated based on the above erroneously-large first differences a<b>1</b> to a<b>8</b> of the one cycle, the learning values, d<b>1</b> to d<b>8</b> may be erroneously computed. As a result, the angle data φ may not be accurately obtained even when the actual count value Kr is corrected based on the erroneously updated learning values d<b>1</b> to d<b>8</b> in the correcting operation during the next cycle.
p-0215Next, a correcting principle of correcting means will be described. Note that in the description of the principle, the first difference is computed by subtracting the actual detected angle from the estimated angle.
p-0216Firstly, the estimated time estimated by the time estimating means is estimated based on the one cycle duration, which is actually required for the motor <b>1</b> to rotate the reference angle in the preceding rotation cycle, every time the reference angle information is outputted. Thus, the estimated time takes effects of the preceding rotational state, and thereby is a reliable value.
p-0217The angle estimating means outputs the estimated angle information under the assumption that the motor <b>1</b> rotates the unit angle every time the estimated time elapses. The estimated angle information indicates the estimated angle at the time, or indicates the rotation angle measured based on the output timing of the reference angle information. Therefore, the estimated angle information (estimated angle) takes effects of the preceding rotational state, and thereby is reliable information.
p-0218The first difference computing means computes the first difference every time the actual detected angle indicated by the actual detected angle information becomes each of the multiple representative angles during one cycle that corresponds to an interval, at which the reference angle information is outputted. The first difference indicates the exceeding amount of the estimated angle indicated by the estimated angle information relative to the actual detected angle. Thus, the first, difference indicates the shortage amount (or delay) of the actual detected angle relative to the estimated angle.
p-0219The second difference computing means computes the second differences of the multiple angular sections based on the first differences computed by the first difference computing means for the multiple representative angles in the one cycle. For example, the multiple angular sections include an angular section defined between an initial value of the actual detected angle to the minimum representative angle, and include angular sections defined between adjacent representative angles. As above, the second difference of the actual detected angle and the estimated angle is computed for each of the multiple angular sections, and is stored in the storage part <b>45</b><i>a. </i>
p-0220More specifically, the second difference indicates the exceeding amount of the increase amount of the estimated angle relative to the increase amount of the actual detected angle in the respective angular section. In other words, the second difference indicates the amount, by which the actual detected angle is smaller than relative to the estimated angle in the respective angular section.
p-0221The output processing means sets the value of the corrected angle information to an initial value every time the reference angle information is outputted. Basically, every time the actual detected angle information is outputted (or every time the actual detected angle is advanced by the unit angle), the value of the corrected angle information is increased by a certain value, which corresponds to the unit angle, such that the value of the corrected angle information is changed similar to the change of the actual detected angle. More specifically, the value of the corrected angle information is increased such that the increase amount of the value of the corrected angle information while the actual detected angle changes within the above defined angular section is increased by an amount indicated by the adjusted second difference of the corresponding angular section stored in the storage part. Furthermore, a correcting process is executed such that the certain value is changed every time the actual detected angle, information is outputted. Thus, the value of the corrected angle information is changed to coincide with the estimated angle.
p-0222Although the estimated angle is reliable as above, because the estimated angle is estimated based on the past one cycle duration and is increased in proportion to time, the change of the rotational speed of motor <b>1</b> (or the acceleration and deceleration) may cause an error of the estimation (or estimation error) from the true angle (actual angle). Therefore, when there is the acceleration and deceleration of the motor <b>1</b>, the second difference stored in the storage part <b>45</b><i>a </i>by the second difference computing means for the respective angular section may not appropriately indicate the difference between the increase amount of the actual detected angle and the increase amount of the true angle at the respective angular sections.
p-0223Thus, the adjusting means adjusts the second difference stored in the storage part <b>45</b><i>a</i>, which is used by the output processing means during the above correcting process, in accordance with the degree of the acceleration and deceleration of the motor <b>1</b>. Thus, it is possible to effectively cause the value of the corrected angle information to follow or coincide with the estimated angle that is made in consideration of the acceleration and deceleration of the motor <b>1</b>. In other words, it is possible to effectively cause the value of the corrected angle information to follow the estimated angle that has small difference from the true angle. As a result, it is possible to effectively limit the influence of acceleration and deceleration of the motor <b>1</b>.
p-0224According to the above embodiments, even when the actual detected angle information outputted by the rotation detecting means includes the error caused by various factors, such as the manufacturing variation of the rotation detecting means, or even when the rotational speed changes during the operation of the motor, the reliable corrected angle information is generated. The corrected angle information is made by the correcting means that corrects the error of the actual detected angle information, and then the corrected angle information is used for the control of energization of the motor. Thereby, it is possible to limit the degradation of the degree of detection accuracy of the rotation angle, and thereby achieving preferable controllability of the motor. Specifically, it is possible to suppress the unwanted acceleration of the vehicle, and thereby preventing the discomforting of the occupant of the vehicle.
p-0225Furthermore, according to the above embodiments, it is possible to simplify the calculation process for the correction and thus, it is possible to effectively limit the size of the hardware from increasing.
p-0226In a comparison example; a correction value of correcting the actual detected angle information for every unit angle rotation may be computed in a learning process and stored in a memory. Then, in the actual control of the motor, every time the actual detected angle information from rotation detecting means is updated, the correction value stored in the memory in association with the actual detected angle information may be used for correcting the actual detected angle information, and then the corrected actual detected angle information may be outputted as the corrected angle information in the comparison example. However, in the above comparison configuration, a very large memory is required for storing the correction value for every unit angle, and thereby the size of the hardware is increased accordingly. Also, in order to deal with the various operational states (such as a constant-speed operation of the motor, the acceleration of the motor), dedicated correction values for each of the operational states may need to be prepared, or the computation method of the correction may need to be changed for each of the operational states disadvantageously. On contrary to the above, according to the above embodiments, it is possible to avoid the disadvantages.
p-0227The adjusting means of the above embodiments provides the relatively simple configuration and still improves the degree of detection accuracy of the rotation angle.
p-0228The adjusting means includes the first adjustment value determining means.
p-0229The first adjustment value determining means determines the first adjustment value of the second differences for the one cycle stored by the second difference computing means in the storage part based on the first difference a<b>8</b> computed by the first difference computing means at the final angle during the one cycle, during which the second difference are computed. Each of the first adjustment values is computed such that a total sum of the first adjustment values coincides with the first difference a<b>8</b> computed at the final angle. Note that the first adjustment value may be positive and negative.
p-0230In the process of the adjusting means for adjusting the second differences (hereinafter, referred to also as original second differences) for the one cycle stored in the storage part by the second difference computing means, each of the original second differences is reduced by the amount indicated by the corresponding first adjustment value determined for the second difference.
p-0231Next, the principle of the adjusting means will be described.
p-0232Firstly, the first difference of each of the multiple representative angles includes an estimation error G caused by acceleration and deceleration of the motor, as shown in equation 1 below. Note that the estimation error G may be positive and negative.
p-0233<maths id="MATH-US-00001" num="00001"><math overflow="scroll"><mtable><mtr><mtd><mtable><mtr><mtd><mrow><mrow><mi>first</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>difference</mi></mrow><mo>=</mo><mi /><mo></mo><mrow><mrow><mi>estimated</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>angle</mi></mrow><mo>-</mo><mrow><mi>actual</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>detected</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>angle</mi></mrow></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><mi /><mo></mo><mrow><mrow><mo>(</mo><mrow><mrow><mi>true</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>angle</mi></mrow><mo>+</mo><mrow><mi>estimation</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>error</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>G</mi></mrow></mrow><mo>)</mo></mrow><mo>-</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi /><mo></mo><mrow><mi>actual</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>detected</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>angle</mi></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><mi /><mo></mo><mrow><mrow><mo>(</mo><mrow><mrow><mi>true</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>angle</mi></mrow><mo>-</mo><mrow><mi>actual</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>detected</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>angle</mi></mrow></mrow><mo>)</mo></mrow><mo>+</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi /><mo></mo><mrow><mi>estimation</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>error</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>G</mi></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><mi /><mo></mo><mrow><mrow><mi>angle</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>detection</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>error</mi></mrow><mo>+</mo><mrow><mi>estimation</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>error</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>G</mi></mrow></mrow></mrow></mtd></mtr></mtable></mtd><mtd><mrow><mi>equation</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow></mtd></mtr></mtable></math></maths>
p-0234Also, in general, a sensor serving as the rotation detecting means does not have an angle detection error (error or the actual detected angle) at and around a starting point of detecting the angle (at and around output timing, at which the reference angle information is outputted).
p-0235Thus, when it is assumed that the rotational speed of motor is constant in the one cycle of the reference angle information (or that the rotational speed of the motor changes only with the unit of the one cycle), the estimation error G is caused by the rotational speed change (or the change of the one cycle duration). Thus, the absolute value of the estimation error G is increased in proportion to the time. Thereby, the first difference at the final angle of the actual detected angle immediately before returning to the initial value indicates an accumulated error ΣG of the estimated angle for the one cycle (hereinafter, referred to also as an accumulated estimation error). Thus, the first difference at the final angle indicates the change of the rotational speed of motor (degree of acceleration and deceleration) for the unit of the one cycle.
p-0236As above, the first difference corresponds to the accumulated estimation error ΣG caused by the rotational speed change of the unit of one cycle, and the value of the first difference changes with the degree of acceleration and deceleration of the motor. Thus, the adjusting means adjusts the original second difference stored in the storage part in accordance with the first difference at the final angle in the corresponding one cycle such that the value of the corrected angle information is made to coincide with or follow the estimated angle, which considers the rotational speed change of the unit of one cycle, and thereby having small difference from the true angle. Thus, it is possible to effectively limit the value of the corrected angle information from being influenced by the rotational speed change.
p-0237The first difference at the final angle computed by the first difference computing means is referred to as “De”. The first adjustment value determining means determines each of the first adjustment values for the corresponding second differences for the one cycle such that the total sum of the first adjustment values coincides with De. Thus, the adjusting means subtract De from the total sum of the second differences for the one cycle stored by the second difference computing means in the storage part in an adjusting process using the first adjustment value. Note that when De is negative, “subtraction of De from the total sum” means “addition of the absolute value of De to the total sum”.
p-0238Then, in the above adjustment using the first adjustment value, the second difference used in the correcting process by the output processing means are adjusted to satisfy the followings two assumptions. Firstly, the increase amount of the estimated angle in the preceding one cycle is assumed to coincide with the increase amount of the actual detected angle. In other words, the increase amount of the estimated angle in the preceding one cycle is assumed to coincide with, the amount equivalent to the reference angle. Secondly, the estimated angle is assumed not to include the estimation error G caused by the rotational speed change of the unit of the one cycle. As a result, the above adjusted second difference that is suitable for the correction of the error of actual detected angle information is obtained. Therefore, it is possible to make the value of the corrected angle information to follow the more reliable estimated angle made in the consideration of the rotational speed change of the unit of one cycle.
p-0239Note that, if the absolute value of De corresponds to the unit angle (or to a minimum value), the first adjustment value determining, means sets one of the first adjustment values to De and sets the other first adjustment values to 0. In the above case, the adjusting means subtract De from the corresponding one of the second differences of the one cycle stored in the storage part. In contrast, if the absolute value of De corresponds to a value greater than unit angle, the first adjustment value determining means divides De by N (N is, an integer equal to or greater than 2) to obtain N number of values; and the N number of values serve as N number of first adjustment values.
p-0240In the above, the adjusting means divides De into N values, and the adjusting means subtract each of N values from the corresponding one of the N second differences for the one cycle stored by the second difference computing means in the storage part. As a result, it is possible to uniformly distribute the value of De to the second differences of the multiple angular sections. Thus, it is possible to appropriately correct the error of the actual detected angle information over the one cycle.
p-0241Furthermore, the first adjustment value determining means may divide the value of De based on a ratio that is similar to an angular occupancy ratio of the angular widths of the respective angular sections. Then, each of the divided values serves as the first adjustment value for adjusting the second difference of the corresponding angular section.
p-0242Due to the above, it is possible to uniformly divide the value of De for the correction of the actual detected angle information for the one cycle. For example, there is an example case, where the number of angular sections is K, and the angular widths of the K number of the angular sections are equal to each other. In the above example case, if the absolute value of De is greater than K-times of the value corresponding to the unit angle, the value of De is divided into K number of values as uniformly as possible, and the divided values are made serve as the first adjustment values for the second differences of the respective angular sections.
p-0243Note that if De is negative, the values (first adjustment values) obtained by dividing De by N are also negative. In other words, a total sum of the N number of first adjustment values becomes De. When the N number of first adjustment values are negative, “subtraction of the first adjustment value from the second difference” indicates that “addition of the absolute value of the first adjustment value to the second difference”.
p-0244In the first embodiment, the resolver <b>13</b>, the RD converting portion <b>16</b>, the exclusive-OR computing portion <b>41</b>, and the actual pulse counter <b>42</b> correspond to rotation detecting means (rotation sensor); and the error correcting portion <b>17</b> corresponds to correcting means. The Z-phase signal PSz corresponds to reference angle information. The A-phase signal PSa and the B-phase signal PSb correspond to unit rotation angle information. The actual count value Kr corresponds to actual detected angle information that indicates the actual detected angle.
p-0245The estimated angle pulse signal generating portion <b>43</b> corresponds to time estimating means, and the estimated pulse counter <b>44</b> corresponds to angle estimating means. The estimated count value Kp corresponds to estimated angle information.
p-0246Furthermore, processes at S<b>110</b> to S<b>140</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> executed by the difference storing portion <b>45</b> correspond to first difference computing means. The procedure (1) in S<b>160</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> executed by the difference storing portion <b>45</b> corresponds to second difference computing means. The procedures (2) and (3) in S<b>160</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> executed by the difference storing portion <b>45</b> corresponds to adjusting means. The procedure (2) corresponds to first adjustment value determining means, and the adjustment values c<b>1</b> to c<b>8</b> serve as first adjustment values. Also, process at S<b>150</b> and S<b>170</b> in <figref idrefs="DRAWINGS">FIG. 7</figref> corresponds to update prohibiting means.
p-0247Also, the correction amount computing portion <b>46</b> and the corrected count portion <b>47</b> correspond to output processing means, and the angle data φ corresponds to corrected angle information.
p-0248The initialization process executed by the corrected count portion <b>47</b> corresponds to an initialization process executed by the output processing means. Output updating process in <figref idrefs="DRAWINGS">FIG. 11</figref> executed by the corrected count portion <b>47</b> corresponds to output updating process executed by the output processing means. The process, which the correction amount computing portion <b>46</b> outputs the correction amount to the corrected count portion <b>47</b> (as described with reference to <figref idrefs="DRAWINGS">FIG. 12</figref>), corresponds to correcting process executed by the output processing means.
Second Embodiment
p-0249In the first embodiment, it is assumed that the rotational speed of the motor <b>1</b> remains constant within one cycle even if the acceleration actually changes. Thus, in the first embodiment, the value of the angle data φ is caused to coincide with or to follow the estimated angle, which is an ideal estimated angle indicated by a straight line. For example, the estimated angle is made, under consideration of the rotational speed change within a unit of one cycle, and is indicated by a dashed and single-dotted line shown in the one cycle of the right side in <figref idrefs="DRAWINGS">FIG. 18</figref>. Also, the estimated angle is proportional to time, and becomes the initial value and the final value at timing similar to timing, at which the actual detected angle also becomes the initial value and the final value.
p-0250However, more strictly, because the rotational speed of the motor <b>1</b> changes within one cycle, the true angle changes with time to make a curved line. For example, when the motor <b>1</b> is accelerated, the true angle changes as shown in a dotted line of the one cycle on right side in <figref idrefs="DRAWINGS">FIG. 18</figref>.
p-0251However, strictly, because the rotational speed of the motor <b>1</b> changes within the one cycle, the true angle changes to form a curved line relative to time in a chart. For example, in the acceleration of the motor, the true angle changes as indicated as a dotted line in the one cycle on a right side in <figref idrefs="DRAWINGS">FIG. 18</figref>. In other words, when the angle is close to the initial value (“0” in <figref idrefs="DRAWINGS">FIG. 18</figref>), an increase ratio of the true angle (increase ratio as a function of time, and corresponding to a gradient of the waveform in <figref idrefs="DRAWINGS">FIG. 18</figref>) is smaller than an increase ratio of the ideal estimated angle having a straight line shape. When the angle is at about a middle of the initial value and the final value (“4.095” in <figref idrefs="DRAWINGS">FIG. 18</figref>), the increase ratio of the true angle generally coincides with the increase ratio of the estimated angle having the straight line shape. When the angle is close to the final value, the increase ratio of the true angle becomes greater than the increase ratio of the true angle ideal estimated angle having the straight line shape.
p-0252As a result, when the motor <b>1</b> is accelerated, in an angular section of the actual detected angle close to the initial value (0 degree), the increase amount of the ideal estimated angle having the straight line shape indicates a value that is greater than the increase amount of the true angle. Also, in another angular section of the actual detected angle close to the final value (360 degrees), the increase amount of the estimated angle having the straight line shape indicates the value smaller than the increase amount of the true angle. As described in the first embodiment, the estimated angle is used for the computation of the first differences a<b>1</b> to a<b>8</b> and the second differences b<b>1</b> to b<b>8</b>. As a result, in the angular section close to the initial value, the second difference based on the estimated angle having the straight line shape tends to indicate a greater value than the second difference based on the true angle of the ideal case. In contrast, in the other angular section close to the final value, the second difference based on the estimated angle having the straight line shape tends to indicate a smaller value than the second difference based on the true angle in the ideal case. Furthermore, the above is more likely to occur in a more significant manner when the degree of the acceleration becomes larger. For example, the intervals of rotation of 45 degrees become shorter during the acceleration as shown in the right side in <figref idrefs="DRAWINGS">FIG. 18</figref>. The curved shape of the true angle becomes more remarkable with the increase of the time change rate.
p-0253When the motor <b>1</b> is decelerated in contrast, the increase amount of the estimated angle having the straight line shape indicates a value that is smaller than the increase amount of the true angle in the angular section of the actual detected angle closer to the initial value. Also, the increase amount of the estimated angle having the straight line shape indicates a value greater than the increase amount of the true angle in the other angular section closer to the final value. Thus, the second difference based on the estimated angle tends to indicate a smaller value than the second difference based on the true angle in the angular section close to the initial value. Also, the second difference based on the estimated angle tends to indicate a greater value than the second difference based on the true angle in the angular section close to the final value. Furthermore, the above is more likely to occur in a more significant manner when the degree of the deceleration becomes larger.
p-0254Thus, as shown in <figref idrefs="DRAWINGS">FIG. 14</figref> that corresponds to <figref idrefs="DRAWINGS">FIG. 8</figref> of the first embodiment, in the ECU <b>7</b> in the second embodiment, adjustment values for adjusting the second differences b<b>1</b> to b<b>8</b> further include acceleration adjustment values e<b>1</b> to e<b>8</b> in addition to the adjustment values c<b>1</b> to c<b>8</b> of the first embodiment to obtain the learning values d<b>1</b> to d<b>8</b>. The acceleration adjustment values e<b>1</b> to e<b>8</b> serve as the second adjustment values, and is used for adjusting the respective second differences b<b>1</b> to b<b>8</b>.
p-0255The difference of the second embodiment from the first embodiment will be described below.
p-0256Firstly, the difference storing portion <b>45</b> executes a learning value computing process shown in <figref idrefs="DRAWINGS">FIG. 15</figref> at S<b>160</b> in the learning process in <figref idrefs="DRAWINGS">FIG. 7</figref>.
p-0257As shown in <figref idrefs="DRAWINGS">FIG. 15</figref>, in the learning value computing process, firstly, at S<b>210</b>, the second differences b<b>1</b> to b<b>8</b> are computed through the procedure (1), and are stored in the second difference storage table. Then, control proceeds to S<b>220</b>, where the adjustment values c<b>1</b> to c<b>8</b> are determined through the procedure (2), and are stored in the adjustment, value storage table. In other words, the second differences b<b>1</b> to b<b>8</b> and the adjustment values c<b>1</b> to c<b>8</b> are computed in the manner similar to that in the first embodiment.
p-0258Next, control proceeds to S<b>230</b>, where the estimated angle pulse signal generating portion <b>43</b> starts measuring duration of another one cycle upon the generation of the leading edge of the Z-phase signal PSz. When the estimated angle pulse signal generating portion <b>43</b> has measured the current one cycle duration, the estimated angle pulse signal generating portion <b>43</b> computes a time change rate RATE by using the following equation 2 based on (a) the current one cycle duration T<sub>n</sub>, which has been currently measured, and (b) the preceding one cycle duration T<sub>n−1</sub>, which was previously measured in the previous cycle. For example, the time change rate RATE indicates a change rate of one cycle duration. In other words, at S<b>230</b>, time change rate RATE of the motor <b>1</b> (the degree of the acceleration and deceleration) is determined based on the duration T<sub>n </sub>of the one cycle and the other duration T<sub>n−1 </sub>of the preceding one cycle that precedes the one cycle. The duration of the one cycle is measured between (a) the previous time, at which the Z-phase signal. PSz (reference angle information) is previously outputted, and (b) the current time, at which the Z-phase signal PSz is currently outputted. The duration of the preceding one cycle is measured between (a) a further previous time, at which the Z-phase signal PSz is outputted precedingly to the previous time, and (b) the previous time. <br />RATE=(<i>T</i><sub>n</sub><i>−T</i><sub>n−1</sub>)/<i>T</i><sub>n</sub> equation 2
p-0259Then, control proceeds to S<b>240</b>, where the acceleration adjustment values e<b>1</b> to e<b>8</b> for adjusting the second differences b<b>1</b> to b<b>8</b> of respective angular sections are determined based on the time change rate RATE computed at S<b>230</b> by using an acceleration adjustment value determination map shown in <figref idrefs="DRAWINGS">FIG. 16</figref>. Furthermore, in the second embodiment, the memory <b>45</b><i>a </i>includes an acceleration adjustment value storage table that stores therein the acceleration adjustment values e<b>1</b> to e<b>8</b> as shown in the fifth line of the table shown in <figref idrefs="DRAWINGS">FIG. 14</figref>. At S<b>240</b>, the acceleration adjustment values e<b>1</b> to e<b>8</b> are stored in the acceleration adjustment value storage table.
p-0260As shown in <figref idrefs="DRAWINGS">FIG. 16</figref>, the acceleration adjustment value determination map indicates the acceleration adjustment values e<b>1</b> to e<b>8</b> in association with each of the time change rates RATE. At S<b>240</b>, the acceleration adjustment values e<b>1</b> to e<b>8</b>, which are associated with the time change rate RATE computed at S<b>230</b>, are retrieved from the acceleration adjustment value determination map, and the retrieved acceleration adjustment values e<b>1</b> to e<b>8</b> are stored in the acceleration adjustment value storage table.
p-0261Note that the time change rate RATE computed by equation 2 indicates a degree of the acceleration and deceleration of the motor <b>1</b>. Typically, when the motor <b>1</b> is accelerated, the time change rate RATE becomes negative, and when the motor <b>1</b> is decelerated, the time change rate RATE becomes positive. Furthermore, when the degree of the acceleration and deceleration is greater, the absolute value of the time change rate RATE becomes greater accordingly.
p-0262Also, <figref idrefs="DRAWINGS">FIG. 16</figref> only shows the acceleration adjustment value determination map of the case, where the motor <b>1</b> is accelerated. The acceleration adjustment value determination map of the case, where the motor <b>1</b> is decelerated is made by merely reversing the sign of each of the time change rates and the acceleration adjustment values e<b>1</b> to e<b>8</b> in <figref idrefs="DRAWINGS">FIG. 16</figref> to the opposite sign.
p-0263As is apparently known from <figref idrefs="DRAWINGS">FIG. 16</figref>, when the time change rate RATE is negative (or when the motor <b>1</b> is accelerated), the acceleration adjustment values e<b>1</b> to e<b>8</b> are determined to satisfy the following conditions. Condition (1): a total sum of the acceleration adjustment values e<b>1</b> to e<b>8</b> is zero, and condition (2): the acceleration adjustment values e<b>1</b> to e<b>8</b> of the angular sections corresponding to the larger representative angles (closer to the final value) are set to be larger. More specifically, the one acceleration adjustment value (second adjustment value) of one representative angle indicates a value larger than a value of the other acceleration adjustment value of the other representative angle provided that the one representative angle is larger than the other representative angle. In contrast, when the time change rate RATE is positive (or when the motor <b>1</b> is decelerated), the acceleration adjustment values e<b>1</b> to e<b>8</b> are determined to satisfy the following conditions. Condition (1): a total sum of the acceleration adjustment values e<b>1</b> to e<b>8</b> is zero, and condition (2): the acceleration adjustment values e<b>1</b> to e<b>8</b> of the angular sections corresponding to the larger representative angles are set to be smaller. More specifically, the one acceleration adjustment value (second adjustment value) of the one representative angle indicates a value smaller than a value of the other acceleration adjustment value of the other representative angle provided that the one representative angle is larger than the other representative angle. Furthermore, a total sum of the absolute values of the acceleration adjustment values e<b>1</b> to e<b>8</b> becomes larger with the increase of the absolute value of the time change rate RATE (or with the increase of the detected degree of the acceleration and deceleration of the motor <b>1</b>).
p-0264Furthermore, the angular sections for the second differences are made at equal intervals in the present embodiment. More specifically, there are even-numbered angular sections in the present embodiment. Because of the equal-interval arrangement of angular sections, the acceleration adjustment values e<b>4</b>, e<b>5</b> for the second differences b<b>4</b>, b<b>5</b> for the respective center angular sections (two angular sections in the present embodiment) are made to indicate zero. The acceleration adjustment value e<b>1</b> to e<b>3</b> are determined, for adjusting the second differences b<b>1</b> to b<b>3</b> of the angular sections corresponding to the smaller representative angles than the representative angles of the central angular sections. Also, the acceleration adjustment values e<b>6</b> to e<b>8</b> are determined for adjusting the second differences b<b>6</b> to b<b>8</b> of the angular sections corresponding to the larger representative angles than the representative angles of the central angular sections. The absolute values of the acceleration adjustment value e<b>1</b> to e<b>3</b> are the same with the respective absolute values of the acceleration adjustment values e<b>6</b> to e<b>8</b>. The signs of the acceleration adjustment values e<b>1</b> to e<b>3</b> are opposite from the signs of the respective acceleration adjustment values e<b>6</b> to e<b>8</b>. In other words, the acceleration adjustment values (second adjustment values) for the multiple second differences of the one cycle stored in the second difference storage table (storage part) during the procedure (1) (second difference computing means) are determined at S<b>240</b> in <figref idrefs="DRAWINGS">FIG. 15</figref> based on the detected time change rate RATE (the degree of acceleration and deceleration) by using the table in <figref idrefs="DRAWINGS">FIG. 16</figref>.
p-0265When determination and storage of the acceleration adjustment values e<b>1</b> to e<b>8</b> are ended at S<b>240</b>, control proceeds to S<b>250</b>, where, a learning value dx for each angular section is computed, by using equation 3, based on (a) the second difference bx stored in the second difference storage table at S<b>210</b>, (b) the adjustment value cx stored in the adjustment value storage table at S<b>220</b>, and (c) the acceleration adjustment value ex stored in the acceleration adjustment value storage table at S<b>240</b> (x indicates an integer from 1 to 8 in the above). <br /><i>dx=bx−cx+ex</i> equation 3
p-0266In other words, the adjustment values c<b>1</b> to c<b>8</b> are subtracted from the respective second differences b<b>1</b> to b<b>8</b>, and furthermore the acceleration adjustment values e<b>1</b> to e<b>8</b> are added to the respective second differences b<b>1</b> to b<b>8</b> in order to obtain the learning values d<b>1</b> to d<b>8</b>.
p-0267Furthermore, the computed learning values d<b>1</b> to d<b>8</b> for the respective angular sections are stored, at S<b>250</b>, in the learning value storage table of the memory <b>45</b><i>a</i>, and subsequently, the learning value computing process is ended.
p-0268Thus, for example, the computation executed in the present embodiment is similar up to the fourth line of the table in <figref idrefs="DRAWINGS">FIG. 8B</figref> of the first embodiment. In the present embodiment, when the time change rate RATE computed at S<b>230</b> is “−4%”, the acceleration adjustment values e<b>1</b> to e<b>8</b> are determined to be the values shown in the fifth line of the table in <figref idrefs="DRAWINGS">FIG. 17</figref> based on the acceleration adjustment value determination map in <figref idrefs="DRAWINGS">FIG. 16</figref>. Thus, the learning values d<b>1</b> to d<b>8</b> for respective angular sections become value shown in the sixth line (the last line) of the table in <figref idrefs="DRAWINGS">FIG. 17</figref> based on the above equation 3.
p-0269In the second embodiment, the second differences b<b>1</b> to b<b>8</b> computed similarly to the first embodiment are further adjusted by the acceleration adjustment values e<b>1</b> to e<b>8</b> to obtain the learning values d<b>1</b> to d<b>8</b>. Thus, in a case, where the motor <b>1</b> is accelerated in the second embodiment, when the angular section is closer to 0 degree and the degree of acceleration is higher, the second difference is reduced by a larger amount to obtain the learning value compared with the first embodiment. Also, when the angular section is closer to 360 degree and the degree of acceleration is higher, the second difference is increased by a larger amount to obtain the learning value compared with the first embodiment. In contrast, in the other case, where the motor <b>1</b> is decelerated in the second embodiment, when the angular section is closer to 0 degrees and the degree of deceleration is higher, the second difference is increased by a larger amount to obtain the learning value compared with the first embodiment. Also, when the angular section is closer to 360 degrees and the degree of deceleration is higher, the second difference is reduced by a larger amount to obtain the learning value compared with the first embodiment.
p-0270As a result, the learning values d<b>1</b> to d<b>8</b> for the respective angular sections are computed to correspond to ideal second differences that are computed under the assumption that the estimated angle does not include estimation error caused by acceleration and deceleration of the motor <b>1</b> within one cycle. In other words, in the second embodiment, the estimated angles used for obtaining the learning values d<b>1</b> to d<b>8</b> for the respective angular sections are adjusted based on the influence of the rotational speed change of the motor <b>1</b> within the one cycle and also based on the influence of the acceleration and deceleration within one cycle in order to obtain more reliable angles. For example, the estimated angle is made effectively closer to the true angle shown by a dotted line of one cycle on a right side in <figref idrefs="DRAWINGS">FIG. 18</figref>. As a result, the learning values d<b>1</b> to d<b>8</b> for the respective angular sections are computed to show the amount of shortage of the actual detected angles relative to the above reliable estimated angles for respective angular sections.
p-0271Thus, it is possible to further effectively improve the accuracy of the angle data φ generated by the error correcting portion <b>17</b>, and thereby further improving the controllability of the motor <b>1</b>.
p-0272Note that in the second embodiment, process at S<b>220</b> to S<b>250</b> in <figref idrefs="DRAWINGS">FIG. 15</figref> executed by the difference storing portion <b>45</b> corresponds to adjusting means. Process at S<b>220</b> executed by the difference storing portion <b>45</b> corresponds to first adjustment value determining means. Process at S<b>230</b> and S<b>240</b> executed by the difference storing portion <b>45</b> corresponds to second adjustment value determining means.
Other Embodiment
p-0273In the above embodiment, the estimated angle pulse signal generating portion <b>43</b> obtains the estimated pulse width ΔT based only on duration T of a latest one cycle (interval T of generating the Z-phase signals) as shown in <figref idrefs="DRAWINGS">FIG. 5</figref>. For example, the estimated pulse width ΔT corresponds to time required for the motor <b>1</b> to make unit angle rotation. However, in the computation of the estimated pulse width ΔT, the rotational speed change of the motor <b>1</b> may be additionally considered in order to effectively obtain a further accurate angle data ch.
p-0274For example, the estimated angle pulse signal generating portion <b>43</b> may compute an estimated value Tp for the duration of the next one cycle based on the two durations of the latest two cycles. More specifically, duration Tb of one cycle is currently measured, and duration Ta of one cycle is previously measured. The previous duration Ta is subtracted from the current duration Tb to obtain a subtraction result (=Tb−Ta). Then, the subtraction result is added to the current duration Tb to obtain a time (=2×Tb−Ta). Thus, in summary, the estimated value Tp for the duration of the next one cycle is computed by the following equation. <br /><i>Tp=</i>2<i>×Tb−Ta </i>
p-0275Then, the estimated value Tp for one cycle duration is divided by the resolution R to obtain an estimated pulse width ΔT based on the method described in <figref idrefs="DRAWINGS">FIG. 6</figref>, for example. <br /><i>ΔT=Tp/R</i>=(2<i>×Tb−Ta</i>)/<i>R </i>
p-0276In other words, in the above, “Tb−Ta” is a value (speed change component) quantitatively indicating a speed change of the motor <b>1</b>. When the speed change component is considered with the Tb, the estimated value Tp of one cycle duration is obtainable under consideration of the acceleration and deceleration of the motor <b>1</b>. Thus, by obtaining the estimated pulse width ΔT based on the estimated value Tp, it is possible to obtain highly reliable estimated angle (the estimated count value Kp) accordingly to the operational state despite of the acceleration and deceleration. Thereby, it is possible to further accurate angle data φ.
p-0277Although embodiments of the present disclosure are described as above, the present disclosure is not limited to the above embodiments, and thereby it is possible to embody the present disclosure in various forms provided that the various embodiments do not deviate from gist of the disclosure.
p-0278For example, the respective angular sections of the above embodiment do not have to be separated by intervals of 45 degrees. However, the respective angular sections may be separated by intervals of other degrees, such as a divisor of 360 degrees. For example, the divisor may be equal to or more than 2 degrees and less than 180 degrees, such as 30 degrees, 60 degrees, 90 degrees, and 120 degrees. Furthermore, the angular sections do not have to be separated by regular intervals of a certain angle. When the respective angular sections are not separated by regular intervals, the value of the first difference a<b>8</b> at 360 degrees may be divided into multiple values based on the angular occupancy of the each angular section within the total angular width of one cycle. Then, each of the divided values is subtracted from the second difference of the corresponding angular section. For example, when the representative angles are set to three angles of “90 degrees, 270 degrees, and 360 degrees” in a condition, where the first difference a<b>8</b> at 360 degrees is “−16”, the value (−16) of the first difference a<b>8</b> is divided based on the angular occupancy ratio (1:2:1) of the respective angular sections defined between the representative angles. Thus, the first difference a<b>8</b> is divided into “−4, −8, and −4”. Thus, −4 is subtracted from the second difference of the angular section defined from 0 to 90 degrees. Also, −8 is subtracted from the second difference of the angular section defined from 90 to 270 degrees. Similarly, −4 is subtracted from the second difference of the angular section defined from 270 to 360 degrees.
p-0279The first difference a<b>8</b> at 360 degrees coincides with the total sum of the second differences b<b>1</b> to b<b>8</b> of the respective angular sections. As a result, the total sum of the second differences b<b>1</b> to b<b>8</b> may be used as the value of the first difference a<b>8</b> in the distribution rule table in <figref idrefs="DRAWINGS">FIG. 9</figref> in the determination of the adjustment values c<b>1</b> to c<b>8</b> for respective angular sections during the procedure (2) at S<b>160</b> in <figref idrefs="DRAWINGS">FIG. 1</figref>. The above makes the same result with the case of using the value of the first difference a<b>8</b> for determination. Also, the first difference a<b>8</b> has been already stored before executing the procedure (2) for determining the adjustment values c<b>1</b> to c<b>8</b>, as described above. As a result, by using the stored first difference a<b>8</b> in the procedure (2), it is possible to eliminate the additional process of making the total sum of the second differences b<b>1</b> to b<b>8</b>.
p-0280Alternatively, for example, the value made by “the actual count value Kr—the estimated count value Kp” may be used as the first difference. Note that in the above alternative case, the signs for all of the first differences a<b>1</b> to a<b>8</b>, the second differences b<b>1</b> to b<b>8</b>, and the learning values d<b>1</b> to d<b>8</b> become opposite from the above embodiments. Thus, in order to make the same computation result with the above embodiments, the correction amount computing portion <b>46</b> outputs the correction amount of 2 based on the output ratio in accordance with the absolute value of the learning value when the learning value is negative. In contrast, when the learning value is positive, the correction amount computing portion <b>46</b> outputs the correction amount of 0 based on the output ratio in accordance with the value of the learning value.
First Modification
p-0281In the first embodiment, the first differences a<b>1</b> to a<b>8</b> are computed for respective representative angles, and the second differences b<b>1</b> to b<b>8</b> are computed based on the first differences a<b>1</b> to a<b>8</b>. However, the second differences b<b>1</b> to b<b>8</b> may be alternatively computed directly based on the estimated count values Kp for the respective representative angles. Also, the adjustment values for adjusting the second differences b<b>1</b> to b<b>8</b> may be alternatively computed based on the second differences b<b>1</b> to b<b>8</b>. A modification will be described with reference to <figref idrefs="DRAWINGS">FIGS. 19A</figref>, <b>19</b>B, and <b>20</b>, in which the second differences b<b>1</b> to b<b>8</b> are computed based on the estimated count values Kp, and the adjustment values are determined based on the second differences b<b>1</b> to b<b>8</b>.
p-0282In the present modification, as shown in the first line in the table of <figref idrefs="DRAWINGS">FIG. 19A</figref>, the representative angles includes eight angles separated by intervals of 45 degrees, such as 45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees, 360 degrees. At S<b>110</b>, it is determined whether the actual count value Kr is a value that corresponds to any one of the representative angles (45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees) other than final angle (360 degrees). In other words, it is determined whether the actual detected angle indicated by the actual count value Kr is any one of the representative angles other than the final angle. Note that in the present modification, 360 degrees serves as the final angle, which corresponds to an angle when the actual count value Kr indicates the final value (4095) immediately before returning to the initial value (0).
p-0283When it is determined at S<b>110</b> that the actual count value Kr is the value that corresponds to the representative angle other than 360 degrees, control proceeds to S<b>300</b>.
p-0284At S<b>300</b>, the value of the “estimated count value Kp” at the time is stored in the memory <b>45</b><i>a </i>serving as the storage part of the difference storing portion <b>45</b> in association with the corresponding representative angle. Then, the learning process is ended. Note that the estimated count value Kp indicates a value when the actual count value Kr coincides with the representative angle.
p-0285More specifically, as shown in the third line of the table in <figref idrefs="DRAWINGS">FIG. 19A</figref>, the memory <b>45</b><i>a </i>includes an estimated count value storage table, in which the estimated count value Kp of each of the eight representative angles of the one cycle (one rotation period) of the resolver <b>13</b> is stored in association with the respective representative angle. For example, the estimated count values Kp of the one cycle include the estimated count values Kp<b>45</b>, Kp<b>90</b>, Kp<b>135</b>, Kp<b>180</b>, Kp<b>225</b>, Kp<b>270</b>, Kp<b>315</b>, Kp<b>360</b> denoted by the number of the representative angles. In a case, where the actual count value Kr changes from 0 to 4095 while the actual detected angle changes from 0 degrees to 360 degrees, the actual count value Kr at the representative angle of 45 degrees indicates 511. Thus, Kp<b>45</b> is the estimated count value Kp when the representative angle is 45 degrees (or when the actual count value Kr indicates 511). At S<b>300</b>, the obtained estimated count value Kp is stored in a corresponding storage region (corresponding cell) for the estimated count value Kp in the estimated count value storage table (see the third line in the table of <figref idrefs="DRAWINGS">FIG. 19A</figref>). In the above, the corresponding storage region is related to the representative angle, which the current actual detected angle indicates.
p-0286In contrast, when it is determined at S<b>110</b> that the actual count value Kr is the value different from the representative angle other than 360 degrees, control proceeds to S<b>130</b>, where it is determined whether the actual count value Kr is 4095 that is the final value. In other words, it is determined whether the actual detected angle indicated by the actual count value Kr is 360 degrees.
p-0287When the actual count value Kr is not 4095, the learning process is ended. When the actual count value Kr is 4095, control proceeds to S<b>310</b>. At S<b>310</b>, the estimated count value Kp<b>360</b> at the time when the representative angle is 360 degrees, or when the actual count value Kr is 4095, is stored in the corresponding storage region of the estimated count values Kp in the estimated count value storage table for the representative angle 360 degrees, which the current actual detected angle indicates. Then, control proceeds to S<b>320</b>, where the estimated count values Kp stored in the estimated count value storage table are used for computing the second differences b<b>1</b> to b<b>8</b> of the respective representative angle. For example, as shown in <figref idrefs="DRAWINGS">FIG. 19A</figref>, the second difference b<b>2</b> at the representative angle of 90 degrees is computed by the following equation. <br /><i>b</i>2=(<i>Kp</i>90<i>−Kp</i>45)−(<i>Kr</i>90<i>−Kr</i>45)
p-0288Thus, the increase amount (Kr<b>90</b>−Kr<b>45</b>) of the actual count value Kr in the angular section of 45 degrees (from 45 to 90 degrees) is subtracted from the increase amount (Kp<b>90</b>−Kp<b>45</b>) of the estimated count value Kp in the angular section of 45 degrees. The above increase amount within the angular section of 45 degrees will be detailed below. The value of the estimated count value Kp<b>45</b> for the representative angle of 45 degrees is subtracted from the value of the estimated count value Kp<b>90</b> for the representative angle of 90 degrees to compute the increase amount (Kp<b>90</b>−Kp<b>45</b>) of the estimated count value. Also, the value of the actual count value Kr<b>45</b> for the representative angle of 45 degrees is subtracted from the value of the actual count value Kr<b>90</b> for the representative angle of 90 degrees to compute the increase mount (Kr<b>90</b>−Kr<b>45</b>) of the actual count value. It should be noted that when the representative angles are separated by the regular intervals, the actual count value increase amounts of the representative angles are constant (same with each other). Specifically, the actual count value increase amount for the representative angle of 90 degrees is 512 computed by subtracting the actual count value Kr<b>45</b> (=511) from the actual count value Kr<b>90</b> (=1023), and the actual count value increase amount for the representative angle of 135 degrees is also 512. Thus, the actual count value increase amount corresponds to a value that is computed by dividing a value of (the maximum value of the actual count value +1) by the number of the representative angles (for example, (4095+1)/8=512). As a result, the second difference for the certain representative angle is computed by subtracting (a) the previous estimated count value at the preceding representative angle and (b) the above increase amount constant (=512) of the actual count value from the current estimated count value for the representative angle.
p-0289It should be noted that in a case of computing the second difference b<b>1</b> for the first representative angle (or the minimum representative angle), such as the representative angle of 45 degrees, the second difference b<b>1</b> is obtainable by subtracting the actual count value Kr<b>45</b> (=511) from the estimated count value Kp<b>45</b>.
p-0290It should be noted that the computation method of the second differences described with reference to <figref idrefs="DRAWINGS">FIG. 19A</figref> produces the second differences identical with the second differences obtained through the computation method shown in <figref idrefs="DRAWINGS">FIG. 8A</figref>.
p-0291Then, it is determined at S<b>330</b> whether the absolute value of the total sum of the second differences b<b>1</b> to b<b>8</b> computed at S<b>320</b> is equal to or greater than the predetermined value. When the absolute value is not equal to or greater than the predetermined value, control proceeds to S<b>340</b>. Note that in the present modification, for example, the predetermined value used in the determination at S<b>330</b> is a value (=4096×10/360) that corresponds to 10 degrees.
p-0292At S<b>340</b>, the learning values used for obtaining the angle data φ, which is the corrected actual count value Kr, are computed based on the second differences b<b>1</b> to b<b>8</b> stored in the second difference storage table during the current one cycle, and the computed learning values are stored in the memory <b>45</b><i>a. </i>
p-0293At S<b>340</b>, firstly, adjustment values for adjusting the second differences b<b>1</b> to b<b>8</b> stored in the second difference storage table at S<b>320</b> in order to compute the learning values are determined based on the distribution rule shown in <figref idrefs="DRAWINGS">FIG. 9</figref> in accordance with the total sum of the second differences b<b>1</b> to b<b>8</b> (b<b>1</b>+b<b>2</b>+b<b>3</b>+b<b>4</b>+b<b>5</b>+b<b>6</b>+b<b>7</b>+b<b>8</b>). It should be noted that the total value of the second differences b<b>1</b> to b<b>8</b> (=b<b>1</b>+b<b>2</b>+b<b>3</b>+b<b>4</b>+b<b>5</b>+b<b>6</b>+b<b>7</b>+b<b>8</b>) is equal to the first difference a<b>8</b> shown in <figref idrefs="DRAWINGS">FIG. 8A</figref>. Thereby, in the determination of the adjustment value c<b>1</b> to c<b>8</b> by using the distribution rule of <figref idrefs="DRAWINGS">FIG. 9</figref>, the first difference a<b>8</b> in <figref idrefs="DRAWINGS">FIG. 9</figref> used in the above embodiments is replaced by the total value of the second differences b<b>1</b> to b<b>8</b> in the present modification.
p-0294Furthermore, similar to the first embodiment, the adjustment value cx stored in the adjustment value storage table for each angular section is subtracted from the corresponding second difference bx (x indicates an integer from 1 to 8) stored in the second difference storage table in order to compute the learning value dx (=bx−cx) of the angular section. Then, the computed learning values d<b>1</b> to d<b>8</b> for the respective angular sections are stored in the learning value storage table of the memory <b>45</b><i>a </i>as shown in the seventh line of the table in <figref idrefs="DRAWINGS">FIG. 19A</figref>.
p-0295Thereby, for example, if the estimated count values are the same with the values in the third line in the table of <figref idrefs="DRAWINGS">FIG. 19B</figref>, the second differences b<b>1</b> to b<b>8</b> for the respective angular sections correspond to the values shown in the fourth lines in <figref idrefs="DRAWINGS">FIG. 19B</figref>, and thereby the first difference a<b>8</b> at the actual detected angles of 360 degrees becomes the value shown in the fifth line in <figref idrefs="DRAWINGS">FIG. 19B</figref>. Thus, the adjustment values c<b>1</b> to c<b>8</b> for the second differences b<b>1</b> to b<b>8</b> become the values shown in the sixth line in <figref idrefs="DRAWINGS">FIG. 19B</figref>. More specifically, because a<b>8</b> (total sum of the second differences b<b>1</b> to b<b>8</b>) is equal to +2, the adjustment values c<b>3</b> and c<b>6</b> are set to +1, and other adjustment values are set to 0 based on the rule in the third line in <figref idrefs="DRAWINGS">FIG. 9</figref>. Furthermore, the learning values d<b>1</b> to d<b>8</b> for the respective angular sections become the values shown in the seventh line in <figref idrefs="DRAWINGS">FIG. 19B</figref>.
p-0296When the process of S<b>340</b> is completed, the learning process is ended.
p-0297In contrast, when it is determined at S<b>330</b> that the absolute value of the total value of the second differences b<b>1</b> to b<b>8</b> computed at S<b>320</b> is equal to or greater than the predetermined value, control proceeds to S<b>350</b>, the second differences b<b>1</b> to b<b>8</b> stored in the second difference storage table during the current one cycle are invalidated. In practice, the execution of the process in S<b>340</b> is prohibited such that the update of the learning values d<b>1</b> to d<b>8</b> by using the second differences b<b>1</b> to b<b>8</b> of the current one cycle is prohibited. Then, the learning process is ended. Thus, the second differences b<b>1</b> to b<b>8</b> are obtainable based on the estimated count values Kp of the respective representative angles. Also, it is possible to determine the adjustment values based on the total value of the second differences b<b>1</b> to b<b>8</b>. It should be noted that the second differences in the third line in <figref idrefs="DRAWINGS">FIG. 8B</figref> are equal to the second differences in the fourth line in <figref idrefs="DRAWINGS">FIG. 19B</figref>. Also, the first difference a<b>8</b> in <figref idrefs="DRAWINGS">FIG. 8B</figref> is equal to the total sum of the second differences b<b>1</b> to b<b>8</b> shown in <figref idrefs="DRAWINGS">FIG. 19B</figref>. As a result, the adjustment values shown in the fourth line in <figref idrefs="DRAWINGS">FIG. 8B</figref> are equal to the adjustment values shown in the sixth lines in <figref idrefs="DRAWINGS">FIG. 19B</figref>. Also, the learning values in the fifth line in <figref idrefs="DRAWINGS">FIG. 8B</figref> are equal to the learning values show in the seventh line in <figref idrefs="DRAWINGS">FIG. 19B</figref>.
Second Modification
p-0298In the second modification, the second differences b<b>1</b> to b<b>8</b> are computed based on the estimated count values Kp of the representative angles, and the adjustment values are determined based on the first difference a<b>8</b>. In the present modification, the advantages similar to the above embodiments and modification are achievable. For example, the computation methods shown in <figref idrefs="DRAWINGS">FIGS. 8A and 8B</figref>, <figref idrefs="DRAWINGS">FIGS. 19A and 19B</figref> may be combined as required.
p-0299The process of the present modification will be described with reference to <figref idrefs="DRAWINGS">FIG. 21</figref>. In <figref idrefs="DRAWINGS">FIG. 21</figref>, steps of S<b>110</b>, S<b>300</b>, S<b>130</b>, S<b>310</b>, and S<b>320</b> are similar to those in <figref idrefs="DRAWINGS">FIG. 20</figref>. Thus, the processes at and after S<b>320</b> are different from that in <figref idrefs="DRAWINGS">FIG. 20</figref>.
p-0300When the process at S<b>320</b> is finished, the second differences b<b>1</b> to b<b>8</b> have been stored in the second difference table. Thus, control proceeds to S<b>140</b>, where the first difference a<b>8</b> is computed by subtracting the actual count value Kr from, the estimated count value Kp, and the computed first difference a<b>8</b> is stored in the predetermined storage region of the memory. In other words, the estimated count value Kp<b>360</b> at the time is detected when the actual detected angle is 360 degrees (or when the actual count value Kr is 4095), and the actual count value Kr<b>360</b> is subtracted from the detected estimated count value Kp<b>360</b> to compute the first difference a<b>8</b>.
p-0301Thus, the first difference a<b>8</b> indicates the advancing amount of the estimated count value Kp (estimated angle information) relative to the actual count value Kr (actual detected angle information) when the actual count value Kr is the final value that corresponds to 360 degrees.
p-0302Then, control proceeds to S<b>150</b>, where it is determined whether the absolute value of the first difference a<b>8</b> at 360 degrees currently computed at S<b>140</b> is equal to or greater than the predetermined value similar to S<b>150</b> in <figref idrefs="DRAWINGS">FIG. 7</figref>. When the absolute value of the first difference a<b>8</b> is not equal to or greater than the predetermined value, control proceeds to S<b>360</b>. Note that in the present modification, the predetermined value used in the determination at S<b>150</b> is a value (=4096×10/360) that corresponds to 10 degrees, for example.
p-0303At S<b>360</b>, the learning values for obtaining the angle data φ, which is the corrected actual count values Kr, are computed based on the first difference a<b>8</b> and the second differences b<b>1</b> to b<b>8</b> stored in the storage tables during the current one cycle. Then, the learning values are stored in the memory <b>45</b><i>a. </i>
p-0304At S<b>360</b>, firstly, the adjustment values for adjusting the second differences b<b>1</b> to b<b>8</b> stored in the second difference storage table at S<b>320</b> are determined based on the distribution rule in <figref idrefs="DRAWINGS">FIG. 9</figref> in accordance with the first difference a<b>8</b>. Then, similar to the first embodiment, the learning values d<b>1</b> to d<b>8</b> of the respective angular sections are determined based on the second differences b<b>1</b> to b<b>8</b> and the adjustment values c<b>1</b> to c<b>8</b>.
p-0305In contrast, when it is determined at S<b>150</b> that the absolute value of the first difference a<b>8</b> computed at S<b>140</b> during the current one cycle is equal to or greater than the predetermined value, control proceeds to S<b>370</b>, where the second differences b<b>1</b> to b<b>8</b> and the first difference a<b>8</b> stored in the storage tables during the current one cycle are invalidated.
p-0306As shown in <figref idrefs="DRAWINGS">FIG. 21</figref>, the second differences b<b>1</b> to b<b>8</b> are computed based on the estimated count values Kp of the respective representative angles, and the adjustment values are determined based on the first difference a<b>8</b>. In the above case, the total value of the second differences shown in the fifth line of the tables in <figref idrefs="DRAWINGS">FIG. 19A</figref> and <figref idrefs="DRAWINGS">FIG. 19B</figref> is replaced by the first difference a<b>8</b>. The learning values d<b>1</b> to d<b>8</b> obtained through the process shown in <figref idrefs="DRAWINGS">FIG. 21</figref> are identical with the learning values shown in the tables of <figref idrefs="DRAWINGS">FIG. 8B</figref> and <figref idrefs="DRAWINGS">FIG. 19B</figref>.
p-0307In the above embodiments and the modifications, the unit rotation angle information of an error correction target received by the error correcting portion <b>17</b> corresponds to pulse signals, such as the A-phase signal PSa and the B-phase signal PSb from the RD converting portion <b>16</b>. Then, the error caused by manufacturing variation of the resolver <b>13</b> is corrected based on each of the A-phase signal PSa and the B-phase signal PSb. In the above embodiments and the modifications, in the error correcting portion <b>17</b>, the actual count value Kr corresponds to the angle data that serves as the actual detected angle information of the error correction target, which information is computed based on the unit rotation angle information. Thus, the error correcting portion <b>17</b> may directly receive the actual detected angle information, of the error correction target instead of the unit rotation angle information.
p-0308If the error correcting portion <b>17</b> receives the angle data that indicates the rotation angle, (or if the error correcting portion <b>17</b> directly receives the actual count value Kr), the error correcting portion <b>17</b> does not require the exclusive-OR computing portion <b>41</b> and the actual pulse counter <b>42</b>. Also, in the above case, the timing, at which the error correcting portion <b>17</b> receives certain angle data that indicates the initial value (in general, 0) or a starting point of the angle detection, corresponds to the output timing of the Z-phase signal PSz. In other words, the initial value of the angle data corresponds to the reference angle information.
p-0309Also, rotation detecting means is not limited to the resolver <b>13</b> and the RD converting portion <b>16</b>. For example, rotation detecting means may alternatively be a known incremental encoder a known absolute encoder. Also, the detection means may alternatively be a sensor including a vertical Hall element and a magnetic resistance element (MRE) shown in JP-A-2008-185406 and US-A-2009-0295375, which are incorporated by reference in this embodiment.
p-0310The alternative rotation detecting means made of a vertical Hall element <b>111</b> and magnetic resistance elements <b>112</b>, <b>113</b> will be described with reference to <figref idrefs="DRAWINGS">FIG. 22A</figref> and <figref idrefs="DRAWINGS">FIG. 22B</figref>. <figref idrefs="DRAWINGS">FIG. 22A</figref> is diagram illustrating a rotation sensor having the Hall element <b>111</b> and the magnetic resistance elements <b>112</b>, <b>113</b>, and <figref idrefs="DRAWINGS">FIG. 22B</figref> is a cross sectional view of the rotation sensor taken along line XXIIB-XXIIB of <figref idrefs="DRAWINGS">FIG. 22A</figref>. A magnet rotor <b>101</b> of the rotation detecting means includes a rotor body <b>102</b> having a cylindrical cup shape. The rotor body <b>102</b> receives therein an S-pole permanent magnet <b>103</b> and an N-pole permanent magnet <b>104</b>. A semiconductor chip <b>105</b> is provided between the S-pole permanent magnet <b>103</b> and the N-pole permanent magnet <b>104</b> within the rotor body <b>102</b>. Upon the rotation of the magnet rotor <b>101</b>, the S-pole permanent magnet <b>103</b> and the N-pole permanent magnet <b>104</b> rotate about the semiconductor chip <b>105</b> in a state, where the S-pole permanent magnet <b>103</b> is opposed to the N-pole permanent magnet <b>104</b>.
p-0311The semiconductor chip <b>105</b> is provided with the vertical Hall element <b>111</b>, and the semiconductor chip <b>105</b> detects a magnetic field that is parallel to a surface of the semiconductor chip <b>105</b>. More specifically, the semiconductor chip <b>105</b> detects the magnetic field based on Hall effect generated by the rotation of the S-pole permanent magnet <b>103</b> and the N-pole permanent magnet <b>104</b>. Also, the semiconductor chip <b>105</b> is provided with the magnetic resistance elements <b>112</b>, <b>113</b> formed thereon, and the magnetic resistance elements <b>112</b>, <b>113</b> has a resistance value changeable based on the magnetic field in parallel with the surface of the semiconductor chip <b>105</b>.
p-0312In the above configuration, the output signal of the vertical Hall element <b>111</b> and the output signals of the magnetic resistance elements <b>112</b>, <b>113</b> are used for detection of the rotation angle.
p-0313Also, in the above embodiments, the rotation angle detecting portion <b>35</b> is provided separately from the microcomputer <b>37</b>. However, the error correcting portion <b>17</b> of the rotation angle detecting portion <b>35</b> may be alternatively included in the microcomputer <b>37</b>, for example. Also, both of the error correcting portion <b>17</b> and the RD converting portion <b>16</b> (or the entirety of the rotation angle detecting portion <b>35</b>) may be alternatively included in the microcomputer <b>37</b>.
p-0314Also, in the above embodiments, the present disclosure is applied to the electric vehicle. However, application of the present disclosure to the electric vehicle is merely one example, and thereby the present disclosure is applicable to any vehicle having a motor for a drive power source, such as a hybrid vehicle or an electric train (railway vehicle), for example. The hybrid vehicle typically has an internal combustion engine and a motor both for the drive power source, and the electric train has a motor for the drive power source.
p-0315Also, in the second embodiment, the adjustment value cx (x is an integer from 1 to 8) and the acceleration adjustment value ex are obtained separately from each other. However, alternatively, the value that corresponds to “−cx+ex” in equation 3 may be obtained as an alternative adjustment value from both of the first difference a<b>8</b> and the time change rate RATE or solely from the time change rate RATE by using another map. Thus, the alternative adjustment value (=−cx+ex) is obtained based on the map, and is added to the second difference bx to compute the learning value dx.
p-0316In the above embodiments, the resolution of the RD converting portion <b>16</b> (resolution for the angle detection) is 12 bits or 11 bits. However, the resolution is not limited to 11 bits or 12 bits. Alternatively, the resolution is may be any bits of integer, such as 4 bits, 5 bits, 6 bits, 7 bits, 8 bits, 9 bits, 10 bits, 13 bits, 14 bits, 15 bits, 16 bits, 17 bits, 18 bits, 19 bits, 20 bits, 21 bits, 22 bits, 23 bits, 24 bits, 25 bits, 26 bits, 27 bits, 28 bits, 29 bits, 30 bits, 31 bits, 32 bits, 64 bits. Also, the above resolution may be combined with the integer angular ratio. For example, the resolver <b>13</b> having the angular ratio of 3 and the RD converting portion <b>16</b> having the resolution of 16 bits may be combined together.
p-0317In the above embodiments, as the best mode, the estimated pulse width is computed as a time computed by dividing, by the resolution of the resolver <b>13</b>, an actual one cycle duration required for the resolver <b>13</b> to make one rotation in the preceding cycle. However, alternatively, the estimated pulse width may be computed in a different method. For example, the duration of two cycles between (a) the current edge rising timing and (b) the two preceding edge rising timing of the pulse of the Z-phase signal are measured, and the measured duration of the two cycles may alternatively be used for the computation of the estimated pulse width. In other words, the estimated pulse width may be computed based on the duration of “n” cycles (n is a positive integer including one).
p-0318In the embodiment, the rule of determination of the adjustment value is described with reference to <figref idrefs="DRAWINGS">FIG. 9</figref>. However, the rule for determining the adjustment value is not limited to the table in <figref idrefs="DRAWINGS">FIG. 9</figref>. However, any rule may be applied provided that the first difference at the angular section of the final angle is distributed as uniformly as possible. Specifically, when the value of the first difference for the angular section having the final angle is less than the number of angular sections (the angular section number), the rule of <figref idrefs="DRAWINGS">FIG. 9</figref> is not required provided that the adjustment value of each angular section is set 1 or 0. For example, the adjustment value may be provided, with high priority, to the angular section including the angle that corresponds to the quotient computed through the division of the maximum representative angle (or the final angle) by n. In the above example, n is a positive integer equal to or greater than 1. Furthermore, n corresponds to all of the positive integers equal to or less than the absolute value of the first difference when the absolute value of the first difference computed at the final angle is equal to or less than the angular section number. In contrast, when the absolute value of the first difference computed at the final angle is larger than the angular section number, ns for the cases, in which the absolute value of the first difference computed at the final angle is equal to or less than the angular section number, are combined to determine the distribution of the first difference.
p-0319More specifically, the example case, where the angular section number is 3, will be described. In the above example case, when the absolute value of the first difference computed at the final angle is 1, n=1. When the absolute value of first difference is 2, n=1 and 2. When the absolute value of first difference is 3, n=1, 2, and 3. When the absolute value of first difference is 4, n for the case for the absolute value of first difference of 1 and n for the other case for the absolute value of first difference of 3 are combined together to determine the distribution.
p-0320One explanatory example will be described below with specific example. The resolver <b>13</b> is rotatable within an angular range of 0 degree to 360 degrees. In the explanatory example, the angular range is equally divided into three sections, such as a section having an angular range of 1 to 120 degrees, a section having an angular range of 121 to 240 degrees, and a section having an angular range of 241 to 360 degrees. In the above case, if the first difference computed at 360 degrees (final angle) is +1, the computation of 360/1 provides the quotient of 360. Thus the adjustment value of the angular section of 241 to 360 degrees, which includes 360 degrees (the quotient), is set to +1, and the adjustment values of the other angular sections are set to 0. When the first difference computed at the final angle is +2, the quotient of 360 is obtained by the computation of 360/1 for the case of n=1, the quotient of 180 is obtained by the computation of 360/2 for the case of n=2. Thus, the adjustment value for the angular section of 121 to 240 degrees, which includes the quotient of 180 degrees, is set to +1. Also, the adjustment value for the angular section of 241 to 360 degrees, which includes the quotient of 360 degrees, is set to +1. And the adjustment value of another angular section is set to 0. When the first difference computed at the final angle is +3, the quotient of 360 is obtained by the computation of 360/1 for the case of n=1. Also, the quotient of 180 is obtained by the computation of 360/2 for the case of n=2. Furthermore, the quotient of 120 is obtained by the computation of 360/3 for the case of n=3. Thus, the adjustment values of the angular sections of 1 to 120 degrees, 121 to 240 degrees, and 241 to 360 degrees are all set to +1. In another example, when the first difference computed at the final angle is +4, the absolute value of the first difference (+4) computed at the final angle exceeds the angular section number (+3). Thus, the adjustment value for the case, where the first difference at the final angle is +3, and the adjustment value for the other case, where the first difference at the final angle is +1, are combined together. Thus, the adjustment value for the angular section of 241 to 360 degrees that includes 360 degrees +2, and the adjustment values for the other angular sections are set to +1.
p-0321In the above embodiment, the RD converting portion <b>16</b> is provided within the ECU <b>7</b>. However, the RD converting portion <b>16</b> may be provided to the resolver <b>13</b> instead of being provided to the ECU <b>7</b>. Also, the RD converting portion <b>16</b> may be provided outside the ECU <b>7</b> separately from the resolver <b>13</b>. In the above case, the ECU <b>7</b> receives three signals, such as the Z-phase signal, the A-phase signal PSa, and the B-phase signal PSb.
p-0322In the above embodiment, the exclusive-OR computing portion <b>41</b> and the actual pulse counter <b>42</b> are provided within the ECU <b>7</b>. However, both of the exclusive-OR computing portion <b>41</b> and the actual pulse counter <b>42</b> may be alternatively provided to the resolver <b>13</b> outside the ECU <b>7</b>. Alternatively, only the exclusive-OR computing portion <b>41</b> is provided to the resolver <b>13</b>. Further alternatively, the exclusive-OR computing portion <b>41</b> may be provided separately from both of the ECU <b>7</b> and the resolver <b>13</b>. When the exclusive-OR computing portion <b>41</b> is provided to the resolver <b>13</b> outside the ECU <b>7</b>, the ECU <b>7</b> is configured to directly receive the actual pulse Pr. If both of the exclusive-OR computing portion <b>41</b> and the actual pulse counter <b>42</b> are provided to the resolver <b>13</b> outside the ECU <b>7</b>, the ECU <b>7</b> is configured to directly receive the actual count value.
p-0323The function of the error correcting portion <b>17</b> may be internally achieved by the microcomputer <b>37</b>. Alternatively, the function of the error correcting portion <b>17</b> may be achieved by a microcomputer, which is provided separately from the microcomputer <b>37</b>, or by a circuit, which is provided separately from the microcomputer <b>37</b>. Also, as above, the part of the function of the error correcting portion <b>17</b> may be provided to the resolver <b>13</b>. Alternatively, the part of the function of the error correcting portion <b>17</b> may be provided to a microcomputer different from the microcomputer <b>37</b>, or to an IC different from the microcomputer <b>37</b>. More specifically, the corrected count portion <b>47</b> may be achieved by the microcomputer <b>37</b>, or by the other microcomputer other than the microcomputer <b>37</b>, or by an IC. The correction amount computing portion <b>46</b> may be achieved by the microcomputer <b>37</b>, or by the other microcomputer other than the microcomputer <b>37</b>, or by an IC. The difference storing portion <b>45</b> may be achieved by the microcomputer <b>37</b>, or by the other microcomputer other than the microcomputer <b>37</b>, or by an IC. The actual pulse counter <b>42</b> may be achieved by the microcomputer <b>37</b>, or by the other microcomputer other than the microcomputer <b>37</b>, or by an IC. The estimated pulse counter <b>44</b> may be achieved by the microcomputer <b>37</b>, or by the other microcomputer other than the microcomputer <b>37</b>, or by an IC. The exclusive-OR computing portion <b>41</b> may be achieved by the microcomputer <b>37</b>, or by the other microcomputer other than the microcomputer <b>37</b>, or by an IC. The estimated angle pulse signal generating portion <b>43</b> may be achieved by the microcomputer <b>37</b>, or by the other microcomputer other than the microcomputer <b>37</b>, or by an IC. Also, when the above functions are achieved by the other microcomputer other than the microcomputer <b>37</b>, or by an IC, the other microcomputer or the IC may be provided within ECU <b>7</b>. Also, the other microcomputer or the IC may be provided to the resolver <b>13</b> instead of being within the ECU <b>7</b>, or may be provided separately from the ECU <b>7</b> and the resolver <b>13</b>.
p-0324Executive instructions (programs) for the procedures executed by the corrected count portion <b>47</b>, the correction amount computing portion <b>46</b>, the difference storing portion <b>45</b>, the actual pulse counter <b>42</b>, the estimated pulse counter <b>44</b>, the exclusive-OR computing portion <b>41</b>, and the estimated angle pulse signal generating portion <b>43</b> may be stored within a storage medium of the ECU <b>37</b>. In the above case, the function of the error correcting portion <b>17</b> may be executable by the microcomputer <b>37</b> or by a microcomputer other than the microcomputer <b>37</b> based on the executive instructions.
p-0325Also, if the microcomputer <b>37</b> includes a processor and a circuit, which is separate from the processor, and which includes a discrete device, such as a transistor, a diode, the separate circuit may execute the functions of the corrected count portion <b>47</b>, the correction amount computing portion <b>46</b>, the difference storing portion <b>45</b>, the actual pulse counter <b>42</b>, the estimated pulse counter <b>44</b>, the exclusive-OR computing portion <b>41</b>, and the estimated angle pulse signal generating portion <b>43</b>. It should be noted that when the function of the error correcting portion <b>17</b> is executed by the circuit separate from the processor as above, the processor is effectively prohibited from receiving the load in the execution of the function of the error correcting portion <b>17</b>.
p-0326In the above embodiment, the first difference storage table, the second difference storage table, the adjustment value storage table, and the learning value storage table are stored in the memory <b>45</b><i>a</i>. However, the first difference storage table, the second difference storage table, the adjustment value storage table, and the learning value storage table may be individually and separately stored in the corresponding memory. Also, some of the first difference storage table, the second difference storage table, the adjustment value storage table, and the learning value storage table may be stored in a single memory. The memory <b>45</b><i>a </i>may be provided to the error correcting portion <b>17</b> as shown in <figref idrefs="DRAWINGS">FIG. 3</figref> provided that the memory <b>45</b><i>a </i>is provided within the ECU <b>7</b>. Alternatively, the memory <b>45</b><i>a </i>may be solely provided within the microcomputer <b>37</b>.
p-0327The exclusive-OR computing portion <b>41</b> and the actual pulse counter <b>42</b> corresponds to actual detected angle computing means. The estimated angle pulse signal generating portion <b>43</b> and the estimated pulse counter <b>44</b> corresponds to estimated angle computing means. The difference storing portion <b>45</b> corresponds to a first difference computing device, a second difference computing device, and an adjusting device. Also, the difference storing portion <b>45</b> may correspond to an advance rate difference computing device (or means for an advance rate difference). The estimated angle pulse signal generating portion <b>43</b> corresponds to an estimated pulse generator. Also, the difference storing portion <b>45</b> corresponds to first difference computing means, second difference computing means, and learning value computing means. The correction amount computing portion <b>46</b> and the corrected count portion <b>47</b> corresponds to an output processing device. The correcting means <b>17</b> corresponds to an error correcting device. The estimated angle pulse signal generating portion <b>43</b> corresponds to means for measuring an interval T and means for computing an estimated time ΔT. The estimated pulse counter <b>44</b> corresponds to a counter that computes an estimated angle of rotation of the motor <b>1</b> based on the reference angle information and the estimated pulse. The exclusive-OR computing portion <b>41</b> and the actual pulse counter <b>42</b> corresponds to means for outputting actual detected angle information Kr when the motor <b>1</b> rotates a constant unit. The corrected count portion <b>47</b> corresponds to means for setting a value of the corrected angle information to the initial value when the reference angle information is outputted, and also corresponds to means for increasing the value of the corrected angle information based on a certain value, which corresponds to the unit angle, when the actual detected angle information Kr is outputted.
p-0328Note that, as above, because the first difference, the second difference, the first adjustment value, and the second adjustment value may be positive and negative, the second difference may alternatively indicates “the shortage amount of the increase amount of the estimated angle relative to the increase amount of the actual detected angle” instead of “the exceeding amount of the increase amount of the estimated angle relative to the increase amount of the actual detected angle”. Also, in the above alternative case, in the correcting process, “the increase amount of the corrected angle information φ may be decreased by the corresponding adjusted second difference” instead of that “the increase amount of the corrected angle information φ may be increased by the corresponding adjusted second difference”.
Contents5
24 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10969400B2 | Cited by | United States of America | Applicant |
| US8975851B2 | Cited by | United States of America | Search report |
| US9124211B2 | Cited by | United States of America | Search report |
| US2014246997A1 | Cited by | United States of America | Pre-grant |
| US2013249452A1 | Cited by | United States of America | Pre-grant |
| US2012249039A1 | Cited by | United States of America | Pre-grant |
| US12206344B2 | Cited by | United States of America | Search report |
| US9182251B2 | Cited by | United States of America | Search report |
| JP2004092683A | Cites | Japan | Applicant |
| JP2004205345A | Cites | Japan | Applicant |
| JP2006029937A | Cites | Japan | Applicant |
| US2006033643A1 | Cites | United States of America | Applicant |
| US2006042074A1 | Cites | United States of America | Applicant |
| JP2006064704A | Cites | Japan | Applicant |
| JP2006262589A | Cites | Japan | Applicant |
| JP2007033412A | Cites | Japan | Applicant |
| US2007044548A1 | Cites | United States of America | Applicant |
| JP2007078538A | Cites | Japan | Applicant |
| JP2007187021A | Cites | Japan | Applicant |
| JP2007248435A | Cites | Japan | Applicant |
| JP2008185406A | Cites | Japan | Applicant |
| US2008265831A1 | Cites | United States of America | Applicant |
| JP2008271740A | Cites | Japan | Applicant |
| JP2009145305A | Cites | Japan | Applicant |
| US2009295375A1 | Cites | United States of America | Applicant |
| JP2010019825A | Cites | Japan | Applicant |
| US5539293A | Cites | United States of America | Search report |
| US5896283A | Cites | United States of America | Applicant |
| US6278388B1 | Cites | United States of America | Applicant |
| US7221116B2 | Cites | United States of America | Search report |
| US7548039B2 | Cites | United States of America | Search report |
| JPH08035857A | Cites | Japan | Applicant |
| JPH10170531A | Cites | Japan | Applicant |
| JPH10215504A | Cites | Japan | Applicant |
| JPS61147107A | Cites | Japan | Applicant |
| JPS63111408A | Cites | Japan | Applicant |
9 members in 3 offices; this record represents the family
Members9
| Document | Office | Kind | |
|---|---|---|---|
| US2011127938A1 | United States of America | A1 | |
| DE102010052712A1 | Germany | A1 | |
| JP2011135765A | Japan | A | |
| JP2012029547A | Japan | A | |
| DE102010052712A8 | Germany | A8 | |
| JP5115616B2 | Japan | B2 | |
| US8487563B2This record | United States of America | B2 | |
| JP5381958B2 | Japan | B2 | |
| DE102010052712B4 | Germany | B4 |
35 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Sent to Classification ContractorPGPC | PGPC | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Request from applicant for the USPTO to retrieve the Priority DocumentPDREQUST | PDREQUST | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS |
Numbers
- Publication
- 08487563
- Application
- 92783310
Titles
- English
- Drive motor control apparatus for vehicle, motor control system, method for correcting rotation angle of motor, program for performing the same, rotation detecting apparatus
Patent term adjustment
- A delay
- +345 daysthe office missed an examination deadline
- Net adjustment
- 345 days
Classification
- CPC, 7
- G01P3/481
- H02P6/06
- H02P6/16
- H02P23/14
- B60L2200/26
- Y02T10/64
- Y02T10/72
- IPC, 2
- H02P6 16
- H02P6 06
- USPC, 5
- 318400130
- 318757000
- 318799000
- 318800000
- 318801000