JP5381958B2 - Vehicle travel motor control device, vehicle motor control system, and rotation detection device - Google Patents

Vehicle travel motor control device, vehicle motor control system, and rotation detection device Download PDF

Info

Publication number
JP5381958B2
JP5381958B2 JP2010240998A JP2010240998A JP5381958B2 JP 5381958 B2 JP5381958 B2 JP 5381958B2 JP 2010240998 A JP2010240998 A JP 2010240998A JP 2010240998 A JP2010240998 A JP 2010240998A JP 5381958 B2 JP5381958 B2 JP 5381958B2
Authority
JP
Japan
Prior art keywords
angle
estimated
angle information
value
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010240998A
Other languages
Japanese (ja)
Other versions
JP2011135765A (en
Inventor
英一郎 川上
重範 森
Original Assignee
株式会社デンソー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2009270016 priority Critical
Priority to JP2009270016 priority
Application filed by 株式会社デンソー filed Critical 株式会社デンソー
Priority to JP2010240998A priority patent/JP5381958B2/en
Priority claimed from US12/927,833 external-priority patent/US8487563B2/en
Publication of JP2011135765A publication Critical patent/JP2011135765A/en
Publication of JP5381958B2 publication Critical patent/JP5381958B2/en
Application granted granted Critical
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/60Other road transportation technologies with climate change mitigation effect
    • Y02T10/64Electric machine technologies in electromobility
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/60Other road transportation technologies with climate change mitigation effect
    • Y02T10/72Electric energy management in electromobility

Description

  The present invention relates to an apparatus for controlling a motor for driving a vehicle.

  For example, in a vehicle equipped with a motor as a power source for traveling such as an electric vehicle, a hybrid vehicle, and a train, the traveling motor control device used for controlling the motor detects the rotation angle of the motor, There is known one that is configured to control energization to the motor based on the detection result (specifically, control a drive device such as an inverter that energizes the motor) (for example, see Patent Document 1).

  Patent Document 1 describes a control device that uses a resolver as a rotation angle sensor that detects the rotation angle of a motor. The resolver includes a rotor that rotates with the rotation of the output shaft of the motor, and a stator, and a rotation detection signal corresponding to a change in reluctance between the rotor and the stator according to the position of the rotor (that is, according to the rotation angle of the motor) This is a known sensor for detecting the rotation angle that is output. In the following description, the resolver stator and rotor are referred to as “resolver stator” and “resolver rotor”, respectively, in order to distinguish them from the stator and rotor of the motor.

  A more specific configuration of the resolver will be described by taking as an example a two-phase resolver that outputs two rotation detection signals whose phases are shifted by 90 degrees in electrical angle. The primary coil is provided in either the resolver rotor or the resolver stator. And a secondary coil is provided on the other side. Then, when an excitation signal having a constant frequency is supplied to the primary coil, two rotation detection signals whose amplitude is modulated by the excitation signal and whose phase is shifted by 90 degrees are output from the secondary coil.

  The rotation detection signal output from the resolver is an analog signal. Therefore, when the rotation angle of the motor is detected using a resolver, a resolver / digital converter that converts the rotation detection signal from the resolver into angle data that is digital data indicating the rotation angle of the motor together with the resolver ( RDC: Resolver Digital Converter) is used. The traveling motor control device controls energization to the motor based on the angle data from the RDC.

  It is ideal that the two rotation detection signals output from the resolver have the same amplitude, are not offset from each other, and have a phase difference of a predetermined value (90 degrees in the above example). Functions ideally when the two rotation detection signals input from the resolver are so ideal, and the detection accuracy of the rotation angle is improved.

  As a rotation angle sensor for detecting the rotation angle of the motor, in addition to the resolver described above, for example, a signal (pulse) indicating this is output every time the motor rotates by a certain angle, and this is performed every time the motor rotates once. Incremental encoder that outputs a signal (pulse) indicating the angle, an absolute encoder that outputs angle data indicating the rotation angle at every fixed angle rotation, and a vertical hall as described in Patent Document 2, for example There are various configurations and systems such as a sensor that outputs a signal corresponding to a rotation angle by combining an element and a magnetoresistive element (MRE).

Japanese Patent Laid-Open No. 10-215504 JP 2008-185406 A

  By the way, taking a resolver as an example, in practice, the shape of the resolver rotor, the characteristics of each coil of the resolver, or the gap between the resolver rotor and the resolver stator (hereinafter these are collectively referred to as “manufacturing variation”). For example, the rotation detection signal from the resolver is not ideal as described above, and an amplitude difference, offset, or phase error may occur in the two-phase resolver signal. That is, the rotation detection signal from the resolver includes an error due to manufacturing variation.

  If the rotation detection signal from the resolver includes an error as described above, the angle data output from the RDC also includes the error, and the rotation angle detection accuracy decreases. Specifically, even when the motor is rotating at a constant speed, the angle data from the RDC is not proportional to time and becomes nonlinear.

  Then, since the traveling motor control device grasps the rotation angle of the motor based on the angle data from the RDC and controls the energization to the motor, the energization to the motor is appropriate according to the actual rotation angle of the motor. Therefore, the control accuracy of the motor is lowered.

  As a more specific phenomenon, for example, an angle including an error from the RDC when the automobile is traveling at a constant speed and the driver does not change the operating force (typically, the pedaling force) of the accelerator pedal. By controlling the motor based on data, that is, data indicating a rotation angle different from the actual rotation angle of the motor, the generated torque of the motor increases or decreases, and the driver changes the operation force of the accelerator pedal. In spite of this, unnecessary acceleration (positive or negative acceleration) in the front-rear direction occurs in the vehicle. Therefore, there is a possibility that the vehicle passengers including the driver may feel uncomfortable.

Further, in the rotation angle sensor other than the resolver as described above, a similar problem arises because an error may occur in the detection signal due to manufacturing variation or the like.
Therefore, the present invention appropriately corrects a detection result including an error caused by a manufacturing variation of a rotation detection unit that detects a rotation angle of a motor in a vehicle motor control device for a vehicle, thereby improving the control accuracy of the motor. The purpose is to improve.

  The present invention described in claim 1 is a motor serving as a power source for traveling, and reference angle information indicating that each time the motor rotates a reference angle of 360 degrees / n (n is an integer of 1 or more). Rotation detection means for outputting unit angle information indicating the rotation angle of the motor with reference to the output timing of the reference angle information each time the motor rotates by a certain unit angle smaller than the reference angle. A traveling motor control device for a vehicle that controls energization to a motor using reference angle information and unit angle information from its rotation detection means, and corrects an error in unit angle information. Correction means for outputting correction angle information indicating the rotation angle of the motor with reference to the output timing of the reference angle information. The correction means outputs the correction angle information output from the correction means. It is configured to control the.

The correction unit includes a time estimation unit, an angle estimation unit, an actual difference calculation unit, a storage unit, an increase amount difference calculation unit, a correction unit, and an output processing unit.
The time estimation means measures one cycle time from the previous output of the reference angle information to the current output at every output timing of the reference angle information (every reference angle information is output from the rotation detection means) Based on the measured one cycle time, the time required for the motor to rotate the unit angle in the subsequent rotation of the motor is estimated.

  Then, each time the estimated time, which is the time estimated by the time estimating means, elapses from the output timing of the reference angle information, the angle estimating means estimates that the motor has rotated a unit angle during the estimated time. Then, the rotation angle of the motor is estimated with reference to the output timing of the reference angle information, and the estimation result is output as estimated angle information.

  Further, the inference difference calculation means includes a plurality of actual detection angles, which are rotation angles indicated by the unit angle information, including a final angle that is a final value of the actual detection angle in one cycle that is an output interval of the reference angle information. Whenever the representative angle is reached, an estimated difference indicating how much the estimated angle, which is the rotation angle indicated by the estimated angle information, has advanced with respect to the actual detected angle is calculated. Note that this estimated difference can be either positive or negative.

  Then, the increase difference calculation means calculates the actual detection angle from the initial value at the output timing of the reference angle information based on the estimation difference at each representative angle for the one cycle calculated by the estimation difference calculation means. For each of the section up to the smallest minimum representative angle among the representative angles and the section between adjacent representative angles, which is the increase in the estimated angle relative to the increase in the actual detection angle in each section? An increase amount difference indicating whether or not there is an increase amount is calculated, and the increase amount difference is stored in the storage unit in an identifiable manner to which section. Note that this increase amount difference can be either positive or negative.

  Further, the correcting means calculates the increment difference for the one cycle stored in the storage unit by the increment difference calculating means at the final angle calculated by the guess difference calculating means in the same one cycle. Correct according to the difference.

  Then, the output processing means performs initialization processing for initializing the value of the correction angle information at the output timing of the reference angle information, and each time the unit angle information is output based on the output timing of the reference angle information (that is, (Every time the actual detection angle advances by the unit angle), the output update process for increasing the value of the correction angle information by a value corresponding to the unit angle, and the actual detection angle becomes the minimum representative angle from the output timing of the reference angle information. In each of the sections up to and the section from the actual detected angle to one of the representative angles until the next representative angle, the amount of increase in the value of the correction angle information in that section is Then, a correction process for changing a value to be increased in the output update process is performed so as to increase by the increment difference stored in the storage unit corresponding to the section. When the increase amount difference is negative, “to increase by the increase amount difference” in other words, “to decrease by the absolute value of the increase amount difference”.

Next, the principle of correction by such correction means will be described. Here, the description will be made assuming that “estimated angle−actual detection angle” is calculated as the estimated difference.
First, the estimated time estimated by the time estimating means is estimated based on the actual one cycle time required to rotate the reference angle immediately before the output timing of the reference angle information. It is a reliable value that reflects the rotation state.

  Then, the angle estimating means assumes that the motor will rotate by unit angle every time the estimated time elapses from the output timing of the reference angle information, and the rotation angle based on the output timing of the reference angle information Is output (information indicating the estimated angle at that time). For this reason, the estimated angle information (estimated angle) is reliable information reflecting the immediately preceding rotation state.

  Therefore, the estimated angle information indicated by the estimated angle information is calculated every time the estimated difference calculation means has an actual detection angle indicated by the unit angle information in each of a plurality of representative angles in one cycle that is an output interval of the reference angle information. Is calculated to indicate how far the actual detection angle has advanced. This inference difference can be said to represent a shortage (delay) of the actual detection angle with respect to the estimated angle.

  Then, based on the estimated difference at each representative angle for one cycle calculated by the estimated difference calculating means, the increment difference calculating means is a section from the initial value to the minimum representative angle. Then, an increase amount difference between the actual detection angle and the estimated angle is calculated for each of the sections between adjacent representative angles, and the increase amount difference for each section is stored in the storage unit.

  Here, the increase amount difference indicates how much the estimated angle increase amount is larger than the actual detection angle increase amount in each section, in other words, in each section, the actual detection angle. Represents how much the estimated angle deviates from the estimated angle.

  Therefore, the output processing means initializes the value of the correction angle information at every output timing of the reference angle information, and basically, every time the unit angle information is output (every time the actual detection angle advances by the unit angle). By increasing the value of the correction angle information by a value corresponding to the unit angle, the value of the correction angle information is changed in the same way as the actual detection angle, but the actual detection angle is initially set at the output timing of the reference angle information. The value of the correction angle information in each of the interval from the value until the minimum representative angle and the interval from the actual detection angle to any of the representative angles until the next representative angle. The increment for each unit angle, which is a value for increasing the value of the correction angle information at each output timing of the unit angle information, so that the increment amount increases by the increment difference stored in the storage unit corresponding to the section. Change the value, By performing the correction processing means, so that changing the value of the correction angle information to match the estimated angle.

  However, although the estimated angle is reliable as described above, it is still estimated from the past one cycle time, and therefore, an error from the true angle (hereinafter referred to as an estimation error) due to fluctuations in the rotational speed of the motor. (Also referred to as G).

For this reason, the estimated difference G at each representative angle includes an estimation error G as shown in Equation 1 below. The estimation error G can be either positive or negative.
Inference difference = "Estimated angle-Actual detection angle"
= “(True angle + estimation error G) −actual detection angle”
= "(True angle-actual detection angle) + estimation error G"
= Angle detection error + estimation error G ... Formula 1
The estimation error G has an absolute value that increases in proportion to time, and in general, a sensor as a rotation detection unit detects an angle detection error at the output timing of reference angle information serving as an angle detection origin and in the immediate vicinity thereof. Since there is no (error in actual detection angle), the estimated difference at the final angle immediately before the actual detection angle returns to the initial value is an error for one period of the estimated angle (hereinafter referred to as total accumulated estimated error ΣG). Will be shown.

  Therefore, in the present invention, in particular, the correction means causes the increase difference in the storage unit used by the output processing means in the correction process to be the difference between the actual difference at the final angle in the same one cycle (that is, the estimated angle associated with the rotational speed fluctuation). By correcting according to the total accumulated estimation error ΣG), the value of the correction angle information can be made to follow the estimated angle reflecting the rotational speed fluctuation (that is, the estimated angle with a small deviation from the true angle). In this way, it is difficult to be affected by fluctuations in rotational speed.

  According to the present invention, even if the unit angle information output from the rotation detection unit includes an error due to various factors such as manufacturing variations of the rotation detection unit, Even if the rotational speed fluctuates, highly reliable correction angle information in which the error of the unit angle information is corrected by the correction means is generated, and the correction angle information is used for energization control of the motor. For this reason, it is possible to suppress a decrease in the rotation angle detection accuracy and to ensure good control performance of the motor. Specifically, the above-described unnecessary acceleration of the vehicle is suppressed, and the vehicle occupant is uncomfortable. Can be avoided.

Furthermore, according to the present invention, the arithmetic processing for correction can be made relatively simple, and an increase in hardware scale can be suppressed.
For example, the correction value for each unit angle with respect to the unit angle information is learned and stored in the memory, and when the unit angle information from the rotation detecting means is updated when the motor is actually controlled, It is conceivable to adopt a configuration in which the unit angle information is corrected using a correction value stored in the memory corresponding to the unit angle information and output as corrected angle information. In order to store the correction value for each angle, a large-capacity memory is required, which increases the hardware scale. Also, in order to cope with different operating conditions such as constant speed operation or acceleration of the motor, it is necessary to prepare different correction values or switch calculation for correction for each operating condition. is expected. On the other hand, according to the present invention, such a problem can also be avoided.

  By the way, when the estimated difference at the final angle calculated by the estimated difference calculating means is referred to as “De”, the correcting means specifically provides for the correction as described in claim 2. As a process, a process of reducing the sum of the increment differences for one cycle stored in the storage unit by the increment difference calculating means by De may be performed. When De is negative, “decrease by De” means, in other words, “increase by the absolute value of De”.

  In this way, the increase difference used in the correction processing of the output processing means is the same as the increase amount of the estimated angle in the immediately preceding cycle (that is, the increase amount of the reference angle). The increase difference when the estimated angle is assumed not to include the estimation error G, and the increase difference suitable for the error correction of the unit angle information can be obtained. can get.

  Here, if the absolute value of De is a value corresponding to the unit angle (that is, the minimum value), the correcting means calculates the De from any one of the increment differences for one cycle stored in the storage unit. However, when the absolute value of De is larger than the value corresponding to the unit angle, the correction means, as described in claim 3, includes N De as the processing for the correction. (N is an integer equal to or greater than 2), and among the increment differences for one period stored in the storage unit by the increment difference calculation means, the divided N is calculated from each of the N increment differences. It is preferable to perform a process of subtracting each value. When De is negative, “decrease De” means, in other words, “add the absolute value of De”. Further, when De is negative, each of the N values obtained by dividing it is also a negative value. That is, N values are summed to De. If each of the N values is negative, “reducing each of the N values” means, in other words, “adding the absolute value of each of the N values”.

In this way, since the value of De can be distributed over the increment difference of a plurality of sections, the error correction of the unit angle information can be appropriately performed over one period.
More specifically, the value of De is divided into the same ratio as much as possible (as much as possible) of the angular width ratio between the sections, and each divided value is divided into angular width ratios corresponding to the division ratio. It is preferable to subtract from the difference in the amount of increase in the interval. This is because the value of De can be reflected evenly in the correction for one period of the unit angle information. For example, if the number of sections is K and the angular width ratios of the K sections are the same, if the absolute value of De is larger than K times the value corresponding to the unit angle, the De The values may be divided into K pieces as evenly as possible, and the divided values may be subtracted from the difference in increase amount of each section.

  Next, a travel motor control device according to a fourth aspect of the present invention is the travel motor control device according to the first to third aspects, further comprising an update prohibiting unit. Then, the update prohibiting means is configured to determine whether the absolute value of the estimated difference at the final angle calculated by the estimated difference calculating means is equal to or greater than a predetermined value when the actual detected angle becomes the final angle. The estimated difference calculated by the estimated difference calculation unit in the period is invalidated, and the increase difference in the storage unit used by the output processing unit in the correction process is prohibited from being updated.

  In other words, when the absolute value of the estimated difference at the final angle is greater than or equal to a predetermined value, there is a very large difference between the estimated angle and the actual detected angle, and the estimated difference in one cycle of that time If the increment difference based on this is used in the correction process in the next one cycle, it is determined that there is a possibility that the unit angle information cannot be corrected correctly, and the update of the increment difference in the storage unit is prohibited. Yes. And according to this structure, it can avoid performing incorrect correction | amendment.

  Next, in the traveling motor control device according to claim 5, in the traveling motor control device according to claims 1 to 4, the time estimation means subtracts the previously measured one cycle time Ta from the currently measured one cycle time Tb. The time obtained by adding the result and the one-cycle time Tb measured this time is calculated as an estimated value for the next one-cycle time, and the motor rotates a unit angle based on the calculated one-cycle time estimated value. It is characterized by estimating the time required (estimated time).

  That is, instead of simply using the one cycle time Tb measured this time, a time (= 2 × Tb−) in which the difference (= Tb−Ta) from the previous one cycle time Ta is added to the current one cycle time Tb. Ta) is calculated as an estimated value of one cycle time. And since the estimated value of the one cycle time takes into account the acceleration / deceleration state of the motor, by estimating the estimation time based on the estimated value, even in the acceleration / deceleration state, More accurate estimation according to the state can be performed. Then, based on the highly accurate estimation time estimated in this way, the angle estimation means can generate more accurate estimated angle information, and as a result, further improve the correction accuracy of the reference angle information. Can do.

In addition, since an estimated difference and an increase amount difference can be either positive or negative, the claims 1 to 3 can be read as any one of the following first to third. That is, the present invention can be read in the following first to third ways.
[First reading]
As an explanation of the difference in the amount of increase in claim 1, the phrase “increase amount difference indicating how much the amount of increase in the estimated angle is described” is described as “how much the amount of increase in the estimated angle is small”. "Increase difference"
In the description of the correction process in claim 1, the phrase “so that the increase amount difference is increased” is read as “so that the increase amount difference is decreased”,
In claim 2, the phrase “perform reduction processing” is read as “perform increase processing”,
In claim 3, it is described that "the process of subtracting each of the divided N values from each of the N increment differences" is performed. It can be read as “Perform processing to add each of the divided N values”.
[Second reading]
The description of the estimated difference in claim 1 is described as “the estimated difference indicating how much the estimated angle has advanced with respect to the actual detected angle”. `` Inferred difference indicating how far behind is ''
In claim 2, the phrase “perform reduction processing” is read as “perform increase processing”,
In claim 3, it is described that "the process of subtracting each of the divided N values from each of the N increment differences" is performed. It can be read as “Perform processing to add each of the divided N values”.
[Third reading]
The description of the estimated difference in claim 1 is described as “the estimated difference indicating how much the estimated angle has advanced with respect to the actual detected angle”. `` Inferred difference indicating how far behind is ''
As an explanation of the difference in the amount of increase in claim 1, the phrase “increase amount difference indicating how much the amount of increase in the estimated angle is described” is described as “how much the amount of increase in the estimated angle is small”. "Increase difference"
The description of the correction processing in claim 1 can be read as “so that the increase amount difference is increased” as “so that the increase amount difference is decreased”.

  On the other hand, the traveling motor control device according to claim 6 differs from the traveling motor control device according to claim 1 in the correction means, and the correction means is stored in the storage unit by the increase amount difference calculation means. The increase amount difference for one cycle (increase difference in each section for one cycle) is corrected so that the sum of them becomes zero. Also with this configuration, an effect similar to that of the traveling motor control device according to claims 1 and 2 can be obtained.

  Further, the travel motor control device according to claim 7 is not provided with the above-described actual difference calculation means as compared with the travel motor control device according to claim 1, and the increase amount difference calculation means includes the reference angle information. A plurality of representatives in which the actual detection angle, which is the rotation angle indicated by the unit angle information, includes the final value of the actual detection angle from the initial value at the output timing of the reference angle information for each cycle that is the output interval of The rotation angle indicated by the estimated angle information with respect to the amount of increase in the actual detection angle in each of the sections until the smallest representative angle among the angles and the section of the adjacent representative angles are adjacent to each other. An increase amount difference indicating how much the estimated angle increase amount is is calculated, and the increase amount difference is stored in the storage unit in an identifiable manner corresponding to which section.

  Further, an estimated error calculating means is provided instead of the above-described estimated difference calculating means, and the estimated error calculating means is an error of the estimated angle for each period, and the estimated angle A total accumulated estimation error indicating how far the actual detection angle has advanced is calculated. Note that, as one calculation form of the total cumulative estimation error, the above-described actual difference at the final angle can be considered.

  Then, the correction means calculates the total difference estimated by the estimation error calculation means for the same one cycle as the increase difference (original increase difference) for one cycle stored in the storage unit by the increase difference calculation means. Correct according to the error.

For this reason, the traveling motor control device according to the seventh aspect can achieve the same effects as the traveling motor control device according to the first aspect.
Next, in the traveling motor control device according to claim 8, in the traveling motor control device according to claim 7, the correction means is stored in the storage unit by the increase amount difference calculation means as the process for the correction. Processing is performed to reduce the sum of the increment differences for the period by the total accumulated estimation error. According to the traveling motor control device of the eighth aspect, the same effect as that of the traveling motor control device of the second aspect can be obtained.

  Next, in the traveling motor control device according to claim 9, in the traveling motor control device according to claim 8, when the absolute value of the total accumulated estimation error is larger than a value corresponding to a unit angle, As a process for correction, the total accumulated estimation error is divided into N values (N is an integer of 2 or more), and among the increase difference for one cycle stored in the storage unit by the increase difference calculation means, A process of subtracting each of the divided N values from each of the N increment differences is performed. According to the traveling motor control device of the ninth aspect, the same effect as that of the traveling motor control device of the third aspect can be obtained.

  Next, in the traveling motor control device according to a tenth aspect, in the traveling motor control device according to the seventh to ninth aspects, when the absolute value of the total cumulative estimation error calculated by the estimation error calculating means is a predetermined value or more, An update prohibiting means for prohibiting the output processing means from updating the increment difference in the storage unit used in the correction processing is provided. For this reason, the effect similar to the motor control apparatus for driving | running | working of Claim 4 is acquired.

In addition, since the traveling motor control device according to the eleventh aspect has the same configuration as that according to the fifth aspect, the same effect as the traveling motor control device according to the fifth aspect can be obtained.
Further, the traveling motor control device of claim 12 is not provided with the above-described inference difference calculating means as compared with the traveling motor control device of claim 6, and is the same as the traveling motor control device of claim 7. Increase amount difference calculating means. The same effect as that of the traveling motor control device of the sixth aspect can be obtained by such a traveling motor control device of the twelfth aspect.

  On the other hand, since the motor control system of claim 13 has the same characteristics as the travel motor control device of claim 1, the same effect as the travel motor control device of claim 1 can be obtained. The first difference corresponds to the actual difference, the second difference corresponds to the increase amount difference, and the learning value corresponds to the corrected increase amount difference.

  Further, since the rotation detection device of claim 14 has the same characteristics as the travel motor control device of claim 7, the same effect as the travel motor control device of claim 7 can be obtained.

It is a block diagram showing the control system of the electric vehicle of embodiment. It is a block diagram showing schematic structure of the resolver and rotation angle detection part of embodiment. It is a block diagram showing the structure of the error correction part of embodiment. FIG. 4 is an explanatory diagram for explaining A, B, and Z phase signals output from an RD conversion unit, an actual pulse Pr generated in the error correction unit based on these signals, and a count value (actual count value Kr). is there. It is explanatory drawing for demonstrating the Z phase signal output from an RD conversion part, the estimation pulse Pp produced | generated in an error correction part based on this Z phase signal, and its count value (estimated count value Kp). It is explanatory drawing for demonstrating the division method of embodiment. It is a flowchart showing the learning process performed in a difference recording part. It is explanatory drawing explaining the procedure which calculates | requires a learning value. It is explanatory drawing explaining a distribution rule. It is explanatory drawing explaining the case where an estimated angle is correct, and the case where it is not correct. It is a flowchart showing the output update process performed in a correction | amendment count part. It is explanatory drawing explaining a correction amount calculation part. It is explanatory drawing showing the flow of operation | movement of an error correction part. It is explanatory drawing explaining the procedure of the 1st modification which calculates | requires a learning value. It is a flowchart showing the learning process performed in the difference recording part in a 1st modification. It is a flowchart showing the learning process performed in the difference recording part in a 2nd modification. It is explanatory drawing explaining the rotation sensor which has a Hall element and a magnetoresistive element.

  Hereinafter, a vehicle driving motor control apparatus according to an embodiment to which the present invention is applied will be described. The travel motor control device of this embodiment is mounted on an electric vehicle as a vehicle and controls a travel motor that is a power source of the electric vehicle.

First, FIG. 1 is a configuration diagram illustrating an electric vehicle control system according to an embodiment.
As shown in FIG. 1, the electric vehicle of this embodiment includes a travel motor (hereinafter simply referred to as a motor) 1, a battery 3 that is a DC power source, and a DC output of the battery 3. A known inverter 5 that converts the voltage into three-phase alternating current and drives the motor 1 with the converted three-phase alternating currents of U phase, V phase, and W phase, and a traveling motor that controls the motor 1 via the inverter 5 A control device (hereinafter referred to as ECU) 7 is mounted. The output shaft 1 a of the motor 1 is connected to the left and right drive wheels 11 via a differential gear 9.

  The inverter 5 includes six switching elements made of, for example, an IGBT (insulated gate bipolar transistor) and the like, and a drive circuit that drives the switching elements, and the drive circuit receives the pulse width modulation input from the ECU 7. Based on the signals UU, UV, UW, the switching element is turned on / off to convert the direct current of the battery 3 into a three-phase alternating current.

  Further, a resolver 13 is provided on the output shaft 1a of the motor 1 as a sensor for detecting the rotation angle of the motor 1 (specifically, the rotation angle of the rotor of the motor 1). The resolver 13 includes a resolver stator and a resolver rotor that is rotatably disposed in the resolver stator and is fixed to the output shaft 1a of the motor 1 and rotates together with the output shaft 1a.

  The resolver 13 is configured such that the reluctance between the resolver rotor and the resolver stator changes according to the rotational position of the resolver rotor (which is also the rotational angle of the motor 1), and according to the change in the reluctance ( That is, two rotation detection signals Sa and Sb whose amplitude changes sinusoidally and whose phase is shifted by 90 ° in electrical angle are output (according to the rotation angle of the motor 1).

  More specifically, in the resolver 13, the resolver stator is provided with a primary coil and two secondary coils. Then, by supplying an excitation signal f (t) having a constant frequency to the primary coil, the excitation signal f (t) is expressed by sin θ as a rotation detection signal corresponding to the rotation angle of the motor 1 from each of the secondary coils. A rotation detection signal Sa (= f (t) · sin θ) having an amplitude-modulated waveform and a rotation detection signal Sb (= f (t) · cos θ) having a waveform obtained by amplitude-modulating the excitation signal f (t) with cos θ are output. Is done.

  Note that θ is an angle obtained by multiplying the rotation angle of the motor by an integer n equal to or greater than 1, and also indicates the electrical rotation angle (electrical angle) of the resolver 13. Further, n is the number of rotations of θ per rotation of the motor (that is, the ratio of the electrical angle to the mechanical angle), and is generally called the shaft multiple angle.

  In the following description, unless otherwise specified, “revolution” for the resolver 13 means electrical rotation rather than mechanical rotation of the resolver rotor, and “period” for the resolver 13. The period of one electrical rotation of the resolver 13 is meant. Therefore, the rotation angle of the resolver 13 means an electrical rotation angle (electric angle) of the resolver 13.

  The resolver 13 of the present embodiment has one cycle of reluctance change between the resolver rotor and the resolver stator, that is, one cycle of the rotation detection signals Sa and Sb (specifically, one cycle of sin θ and cos θ, which are fundamental wave components). The resolver rotor is configured to correspond to one rotation (that is, one mechanical rotation and one rotation of the motor 1). That is, the electrical angle of the rotation detection signals Sa and Sb and the mechanical angle of the resolver rotor are the same, and the shaft multiple angle is 1.

  However, the axial multiplication angle of the resolver 13 is merely an example as described above, and the resolver 13 is not limited to such a configuration, and the resolver 13 has N cycles of the rotation detection signals Sa and Sb (N is an integer of 2 or more). However, it may be configured so as to correspond to one revolution of the resolver rotor (that is, the shaft angle multiplier is N). Therefore, for example, in the case of a resolver with a shaft angle multiplier of 2, the rotation angle of the resolver 13 is 0 to 720 degrees while the motor 1 rotates once. In other words, every time the motor 1 rotates halfway, the resolver rotates once. The rotation angle of the motor 1 per rotation of the resolver 13 corresponds to the reference angle of the present invention.

  On the other hand, as shown in FIG. 1, current sensors 25, 26, and 27 are disposed in the current supply lines 21, 22, and 23 of each phase from the inverter 5 to the motor 1. Current sensor 25 detects the U-phase current level of motor 1 and outputs a U-phase current signal corresponding thereto. Similarly, the current sensor 26 detects the V-phase current level of the motor 1 and outputs a V-phase current signal corresponding thereto, and the current sensor 27 detects the W-phase current level of the motor 1 and responds to this. A W-phase current signal is output. And the electric current signal of each phase from the current sensors 25-27 is input into ECU7.

  Furthermore, the electric vehicle is provided with an accelerator sensor 31, a brake sensor 32, a shift position sensor 33, and the like as sensors for detecting the driving state of the electric vehicle.

  The accelerator sensor 31 is attached to an accelerator pedal (not shown) operated by the driver, and outputs an accelerator opening signal corresponding to the depression amount of the accelerator pedal. The brake sensor 32 is attached to a brake pedal (not shown) operated by the driver, and outputs a brake hydraulic pressure signal corresponding to the depression amount of the brake pedal. The shift position sensor 33 is attached to a shift lever (not shown) operated by the driver, and detects whether the lever is selectively operated in one of the forward, neutral, reverse, and parking modes of the vehicle. This is output as a shift position signal.

Signals (accelerator opening signal, brake hydraulic pressure signal, shift position signal) from these sensors 31 to 33 are also input to the ECU 7 as vehicle operation information.
The ECU 7 supplies an excitation signal f (t) to the resolver 13 and inputs rotation detection signals Sa and Sb output from the resolver 13, and determines the rotation angle of the motor 1 from the rotation detection signals Sa and Sb. A rotation angle detector 35 for outputting digital data (hereinafter referred to as angle data) φ, a microcomputer 37 including a well-known CPU, ROM, RAM, I / O circuit, and the like, and a pulse width modulation circuit (PWM circuit) 39. And. Note that the angle data φ output from the rotation angle detector 35 is data representing the rotation angle of the resolver 13 and does not directly represent the rotation angle of the motor 1. However, in the present embodiment, since the axial multiplication angle of the resolver 13 is 1, the angle data φ output from the rotation angle detector 35 directly represents the rotation angle of the motor 1 as a result.

  The pulse width modulation circuit 39 generates a pulse width modulation signal UU, UV, UW corresponding to each phase of the three-phase alternating current in accordance with a control signal from the microcomputer 37, and generates the pulse width modulation signals UU, UV, UW. Output to the inverter 5. As a result, a U-phase, V-phase, and W-phase three-phase alternating current is supplied from the inverter 5 to the motor 1.

  The microcomputer 37 inputs the angle data φ from the rotation angle detection unit 35 as a detected value of the rotation angle of the motor 1 and, for example, from the change per unit time of the angle data φ, the rotation speed (rotation) of the motor 1. Speed).

  Then, the microcomputer 37 drives the inverter 5 based on the rotation angle and the rotation speed, which are rotation information of the motor 1, and signals from the current sensors 25 to 27 and the other sensors 31 to 33, thereby driving the vehicle. A desired torque corresponding to the state is generated in the motor 1. Although the control of the motor 1 is known, it will be briefly described.

  That is, the microcomputer 37 calculates the required amount of torque to be generated by the motor 1 based on the rotation angle and number of rotations of the motor 1 and vehicle operation information (accelerator opening signal, brake hydraulic pressure signal, and shift position signal). Based on the required amount, a current command vector for energizing the motor 1 is calculated by a known vector calculation. Then, based on the calculation result, a control signal for causing the motor 1 to generate the required amount of torque is output to the pulse width modulation circuit 39. Furthermore, at this time, the microcomputer 37 determines the three-phase currents flowing through the motor 1 based on at least two of the current signals from the current sensors 25 to 27 (for example, the U-phase current signal and the W-phase current signal). The feedback control of the control signal to the pulse width modulation circuit 39 (and thus the pulse width modulation signals UU, UV, UW from the pulse width modulation circuit 39 to the inverter 5) is performed so that becomes a target value.

  Next, the configuration of the rotation angle detection unit 35 will be described with reference to FIGS. FIG. 2 is a configuration diagram illustrating a schematic configuration of the resolver 13 and the rotation angle detection unit 35, and FIG. 3 is a configuration diagram illustrating a configuration of the error correction unit 17 configuring the rotation angle detection unit 35.

First, an outline of a method for detecting the rotation angle of the motor 1 will be described.
FIG. 2 shows the resolver 13 (rotation detection unit), the RD conversion unit (rotation detection unit) and the error correction unit 17 (correction unit) constituting the rotation detection unit 35. More specifically, as shown in FIG. 3, the error correction unit 17 includes an exclusive OR calculation unit 41 (rotation detection unit), an actual pulse counter 42 (rotation detection unit), and an estimated angle pulse signal generation unit 43 ( A time estimation unit), an estimated pulse counter 44 (angle estimation unit), a difference recording unit 45 (an actual difference calculation unit, an increase difference calculation unit, a correction unit), a correction amount calculation unit 46 (output processing unit), A correction counting unit 47 (output processing means).

  As shown in FIG. 2, the rotation angle of the motor 1 detected by the resolver 13 is sent to the RD converter 16 as rotation detection signals Sa and Sb. Based on the input rotation detection signals Sa and Sb, the RD conversion unit 16 has an A phase signal (unit rotation angle information (also unit angle information)) and a B phase signal (unit rotation angle information (also unit angle information)). ) And the Z-phase signal (reference angle information) are output to the error correction unit 17.

  As shown in FIG. 3, first, the exclusive OR operation unit 41 (rotation detection unit) of the error correction unit 17 receives the A-phase signal and the B-phase signal and generates an actual pulse Pr. The generated actual pulse Pr and the aforementioned Z-phase signal are input to the actual pulse counter 42, and the actual pulse counter 42 calculates an actual count value Kr (actual detection angle information) indicating the actual detection angle of the rotation of the motor 1. . At the same time, the estimated angle pulse signal generator 43 (time estimation means) generates an estimated pulse Pp based on the Z-phase signal. The estimated pulse counter 44 (angle estimation means) calculates an estimated count value Kp (estimated angle information) indicating an estimated value of the rotation angle of the motor 1 from the estimated pulse Pp and the Z-phase signal. Then, as described above, the actual count value Kr and the estimated count value Kp, both of which are calculated based on the Z-phase signal, are input to the difference recording unit 45 (the estimated difference calculation means, the increase difference calculation means, and the correction means). Is done. The difference recording unit 45 calculates a learning value dx based on the actual count value Kr and the estimated count value Kp, and stores it in the memory 45a (storage unit). Then, the correction amount calculation unit 46 (output processing unit) and the correction count unit 47 (output processing unit) correct the actual count value Kr using the stored learned value dx, thereby correcting the rotation of the motor 1. A correction count value φ (correction angle information) indicating an angle is calculated and output.

  More specifically, the resolver 13, the RD conversion unit 16, the exclusive OR calculation unit 41, and the actual pulse counter 42 (rotation detection means) rotate the Z-phase signal (reference angle information) by the reference angle by the motor 1. Each time the motor 1 rotates, a real count value Kr (actual detection angle information) is output every time the motor 1 rotates a certain unit angle smaller than the reference angle. The reference angle information indicates that the motor 1 has rotated by the reference angle. The reference angle indicates an angle calculated by dividing 360 degrees by n (n is a positive integer). The actual detection angle information indicates the actual rotation detection angle of the motor 1 measured with reference to the timing (reference timing) when the reference angle information is output. Hereinafter, the Z-phase signal is also referred to as reference angle information, the actual count value Kr is also referred to as actual detection angle information, and the correction count value φ is also referred to as correction angle information.

  The ECU 7 (traveling motor control device) controls the energization of the motor 1 using the reference angle information and the actual detection angle information, and includes an error correction unit 17 (correction means) to increase control accuracy. .

  The error correction unit 17 (correction unit) outputs the correction angle information indicating the corrected rotation angle of the motor 1 measured with reference to the timing at which the reference angle information is output. Correct the error. Then, the ECU 7 (traveling motor control device) controls energization of the motor 1 based on the correction angle information.

  In order to output the correction angle information, the error correction unit 17 (correction unit) includes an estimated angle pulse signal generation unit 43 (time estimation unit), an estimated pulse counter 44 (angle estimation unit), and a difference recording unit 45 (inference unit). An actual difference calculating means, an increase difference calculating means, a correcting means), a correction amount calculating section 46 (output processing means), and a correction counting section 47 (output processing means).

  The estimated angle pulse signal generation unit 43 (time estimation means) measures a time (one cycle time) T that is one cycle of the Z-phase signal every time the Z-phase signal (reference angle information) is output. The time T is measured from the time when the Z-phase signal was output last time to the time when the Z-phase signal was output this time. Further, the estimated angle pulse signal generation unit 43 calculates an estimated time ΔT. The estimated time ΔT is a time required for the motor 1 to rotate by the disassembly angle (unit angle) in the subsequent rotation of the motor 1.

  Whenever the time ΔT estimated by the estimated angle pulse signal generator 43 (time estimation means) elapses, the estimated pulse towner 44 (angle estimation means) causes the motor 1 to disassemble the disassembly angle ( Under the assumption that the motor 1 rotates by a unit angle), the estimated rotation angle of the motor 1 is calculated based on the output timing of the Z-phase signal, and an estimated count value Kp (estimated angle information) indicating the estimated rotation angle is output. .

  Then, by the function of the difference recording unit 45 as the estimated difference calculation means, an estimated difference (first difference) for each of the plurality of representative angles is calculated. That is, during one cycle of the Z-phase signal (reference angle information), the actual count value Kr (actual detection angle information) has a plurality of representative angles (45 degrees, 90 degrees, 135 degrees, 180 degrees, and 225 degrees in this embodiment). 270 degrees, 315 degrees, 360 degrees which is the final value of the actual count value Kr), the actual detection angle of the rotation of the motor 1 is the one of the plurality of representative angles. Every time the number becomes one, an actual difference (first difference) for the representative angle at that time is calculated. The estimated actual difference (first difference) is the advance 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 detected count value Kr (actually detected angle information)”. Show.

  Further, based on the calculated actual difference (first difference) of a plurality of representative angles for one period, the amount of increase for a plurality of angle sections is obtained by the function of the difference recording unit 45 of the difference recording unit 45. A difference (second difference) is calculated. One of the plurality of angle sections includes an initial value of the actual detection angle indicated by the actual count value Kr at the output timing of the Z-phase signal (reference angle information) and a minimum representative angle among the plurality of representative angles (this embodiment). Is defined as between 45 degrees). In addition, each of the other of the plurality of angle sections is defined as between adjacent representative angles. Each of the plurality of increase difference (second difference) is “actual detection angle indicated by actual count value Kr (actual detection angle information) in an angle section corresponding to the increase difference (second difference). The amount of advance of “the amount of increase of the estimated angle indicated by the estimated count value Kp (estimated angle information)” with respect to “the amount of increase of

  Then, each of the plurality of second differences for the plurality of angle sections is related to each of the plurality of angle sections (that is, in which angle section by the function as the increase amount difference calculating means of the difference recording unit 45). It is recorded in the memory 45a (specifically, an increase difference (second difference) recording table provided in the memory 45a) (storage unit) so that it can be identified.

  Further, the difference recording unit 45 (correction unit) calculates an increase difference (second difference) for each of a plurality of angle sections for one cycle stored in the memory 45a (storage unit) at the final angle (360 degrees). Correction is made according to the inference difference (which is also the aforementioned total accumulated estimation error ΣG). The corrected increase difference (second difference) is a learned value.

Further, the correction amount calculation unit 46 and the correction count unit 47 (output processing means) execute an initialization process, an output update process, and a correction process.
In the initialization process, when the Z-phase signal (reference angle information) is output, the correction count value φ (correction angle information) is set to an initial value (0 in the present embodiment).

  In the output update process, each time the actual count value Kr (actual detection angle information) is output with reference to the output timing of the Z-phase signal (reference angle information), the correction count value φ (correction angle information) is It is increased by a predetermined value corresponding to the angle.

  In the correction process, in each period in which the actual detection angle indicated by the actual count value Kr (actual detection angle information) changes in each of the plurality of angle sections, the corrected increase difference (second difference) is used. Among certain learning values, a predetermined value (correction) used in the output update process so that the increment of the correction count value φ (correction angle information) is increased by the value indicated by one learning value corresponding to the current angle section. Amount) is changed. That is, in each angle section defined as an initial angle (0 degree) and a minimum representative angle (45 degrees), and between one representative angle and the next representative angle, the actual detected angle is While changing, the increase amount of the correction count value φ increases by the learning value (corrected increase amount difference) corresponding to the current angle section in addition to the actual change amount of the actual detection angle. As described above, the predetermined value (correction amount) is changed.

  The above is an outline. In the following, first, a calculation method of a learning value dx (x is a positive integer) for correcting an actual count value Kr indicating an actual detection angle of the rotation angle of the motor 1 will be described. A method of correcting the actual count value Kr using the learning value dx will be described.

  As shown in FIG. 2, the rotation angle detection unit 35 includes an RD conversion unit 16 and an error correction unit 17. The RD converter 16 supplies the excitation signal f (t) to the resolver 13 and also receives the rotation detection signals Sa and Sb output from the resolver 13, and rotates the motor 1 from the rotation detection signals Sa and Sb. An A-phase signal, a B-phase signal, and a Z-phase signal, which are rotation information indicating angles (specifically, the rotation angle of the resolver 13), are output.

  The RD conversion unit 16 is a digital tracking type RDC (Resolver Digital Converter), and although not shown in the figure, the rotation detection signals Sa and Sb input from the resolver 13 are converted into rotation angles of the resolver 13. Is converted into digital data (hereinafter referred to as actual detection data). Since this conversion method is well known, detailed description is omitted here.

  Further, the RD conversion unit 16 includes an encoder / emulator, and the actual detection data after the conversion is a pulse signal (A phase signal, B phase signal) in a format equivalent to a signal output by a so-called incremental encoder. , Z-phase signal). Specific examples of these pulse signals are shown in FIGS.

  As shown in FIGS. 4A to 4C, the A-phase signal and the B-phase signal both generate one pulse every time the resolver 13 rotates by a predetermined angle. The phase signals are 90 degrees out of phase with each other. The Z-phase signal is a signal that designates the origin (0 degree) of angle detection, and one pulse is generated each time the resolver 13 makes one rotation.

  As will be described in detail later, the error correction unit 17 calculates an exclusive OR of both based on the A-phase signal and the B-phase signal, and an actual pulse Pr (FIG. 4), which is a pulse corresponding to the calculation result. (D) is generated. The number of pulse edges (rising edge and falling edge) generated during the rotation of the resolver 131 of the actual pulse Pr indicates the resolution of the RD conversion unit 16 (that is, the angle detection resolution).

  Specifically, if the resolution of the RD conversion unit 16 of this embodiment is 12 bits (0 to 4095), for example, the actual pulse Pr is set to 2048 while the resolver 13 makes one rotation from 0 degree to 360 degrees. Thus, the number of occurrences of the pulse edge is 4096 times.

  Note that the rotation angle of the resolver 13 per pulse width is the minimum unit angle detectable by the resolver 13 with the interval from the edge generation timing of the actual pulse Pr to the next edge generation timing as the pulse width, The actual rotation angle of the motor 1 per one pulse width corresponds to the “unit angle” of the present invention. In the present embodiment, the resolver rotation angle per pulse width of the actual pulse Pr is 360/4096 degrees, and this angle is hereinafter also referred to as a resolution angle. In other words, the resolution angle is “360 degrees” ÷ “axial angle of the resolver 13” ÷ “resolution of the RD conversion unit 16”.

  By the way, it is ideal that the two rotation detection signals Sa and Sb output from the resolver 13 have the same amplitude, no offset, and a phase difference of 90 degrees. However, in reality, the rotation detection signals Sa and Sb from the resolver 13 are not ideal as described above due to various causes such as the above-described manufacturing variations, and include errors caused by manufacturing variations and the like. turn into. Therefore, the actual detection data generated inside the RD conversion unit 16 also includes data including errors, and the A and B phase signals generated based on the data also include signals including errors.

  Therefore, in the present embodiment, an error correction unit 17 for correcting the detection result by the RD conversion unit 16 is provided in the rotation angle detection unit 35. The error correction unit 17 receives the A, B, and Z phase signals from the RD conversion unit 16, and based on these phase signals, errors due to manufacturing variations of the resolver 13 are suppressed (or completely removed). Generated) angle data φ. Then, the angle data φ generated by the error correction unit 17 is input to the microcomputer 37.

  More specifically, as shown in FIG. 3, the error correction unit 17 includes an exclusive OR operation unit 41, an actual pulse counter 42, an estimated angle pulse signal generation unit 43, an estimated pulse counter 44, and a difference recording unit. 45, a correction amount calculation unit 46, and a correction count unit 47.

The exclusive OR operation unit 41 calculates an exclusive OR of the A phase signal and the B phase signal, and generates an actual pulse Pr (see FIG. 4D) according to the calculation result.
The actual pulse counter 42 receives the actual pulse Pr generated by the exclusive OR operation unit 41 and counts the actual pulse Pr. More specifically, the rising edge and falling edge of the actual pulse Pr are detected, and the count value is counted up at the detection timing of each edge. Then, the count value is output as the actual count value Kr.

  In addition to the actual pulse Pr, a Z-phase signal is also input to the actual pulse counter 42, and the actual count value Kr is reset to 0 each time the Z-phase signal pulse rises. That is, the actual pulse counter 42 counts the actual pulse Pr with reference to the timing (actual count value Kr = 0) at each pulse edge rising timing of the Z-phase signal.

  FIG. 4E shows an output example of the actual count value Kr with respect to the actual pulse Pr. As shown in FIG. 4 (e), the actual count value Kr is reset to 0 at the pulse edge rising timing of the Z-phase signal, and thereafter incremented at every edge generation timing of the actual pulse Pr. In the present embodiment, since the resolution of the RD converter 16 is 12 bits as described above, the actual count value Kr takes a value from 0 to 4095 while the resolver 13 makes one rotation from 0 degrees to 360 degrees. .

  The estimated angle pulse signal generation unit 43 rotates at a resolution angle (unit angle) in the subsequent rotation based on the pulse interval T of the Z phase signal and the resolution of the RD conversion unit 16 at every pulse edge rising timing of the Z phase signal. Is estimated (estimated), and an estimated pulse Pp having the estimated time (estimated time) as a pulse width is generated. That is, the estimated angle pulse signal generation unit 43 measures one cycle time from the previous output of the Z phase signal to the current output at every output timing of the Z phase signal (reference angle information), and measures the measured one cycle time. Based on the above, the time required for the motor to rotate at the decomposition angle (unit angle) in the subsequent rotation of the motor is estimated.

  Specifically, for each pulse edge rising timing of the Z-phase signal, the pulse interval of the Z-phase signal immediately before (the time interval from the previous pulse edge rising timing to the current timing) is measured. This pulse interval is the actual one cycle time required for the resolver 13 to make one rotation immediately before. Then, by dividing the measured one cycle time by the resolution of the resolver 13 (in this example, dividing by 4096), the time in the resolution unit of the resolver 13 (that is, the time required for the motor 1 to rotate by a unit angle). ) Then, an estimated pulse Pp having a pulse width (estimated pulse width) as a time in the resolution unit thus obtained is generated.

  This will be described more specifically with reference to FIG. FIG. 5A shows a Z-phase signal, and FIG. 5B shows an estimated pulse Pp. In FIG. 5, for example, when a Z-phase signal pulse is input at time tn, one period time Tn-1 of the previous resolver 13 is measured, and the one period time Tn-1 is divided by resolution R to estimate. A pulse width ΔTn is obtained. As a result, the estimated pulse Pp having the estimated pulse width ΔTn calculated as described above, that is, the estimated pulse width ΔTn, elapses between time tn and time tn + 1 when the next Z-phase signal pulse is input. An estimated pulse Pp is generated so that a pulse edge is generated each time.

  Thereafter, when the pulse of the Z-phase signal is input again at time Tn + 1, one cycle time Tn of the previous resolver 13 is measured in the same manner as at time tn, and the one cycle time Tn is calculated. By dividing by the resolution R, an estimated pulse width ΔTn + 1 is obtained. Thus, the estimated pulse Pp having the calculated estimated pulse width ΔTn + 1 as a pulse width is generated after the time tn + 1 until the time Tn + 2 where the pulse of the Z-phase signal is input next. The same procedure is used when time tn + 2 is reached.

  Here, as a division method performed when the estimated pulse width ΔT is calculated, for example, a known shift operation can be performed. Specifically, for the measurement of one cycle time (Z-phase signal pulse interval) T of the resolver 13, a counter that counts up at a predetermined cycle shorter than the one cycle time T is used. The necessary count value Ctr is acquired. Then, if the count value Ctr is shifted to the right by 12 bits (in this example, 12 bits) corresponding to the resolution R, an estimated pulse width ΔT as a division result is obtained.

However, the division result by such a simple shift operation is not necessarily highly accurate, and depending on the result, the accuracy of the estimated pulse width ΔT may be lowered.
Therefore, in the present embodiment, the estimation pulse Pp with high accuracy is generated by considering the 12 bits ignored by the right shift in the shift calculation while basically performing the shift calculation. . The specific generation method will be described with reference to FIG.

  In order to obtain the estimated pulse width ΔT, it is necessary to measure one cycle time T of the resolver 13, and this one cycle time T is measured in one cycle using, for example, a basic pulse of 40 MHz (cycle 25 nsec). This is done by counting the number of basic pulses with a counter. As an example, it is assumed that the measurement result is obtained as a 15-digit count value as shown in FIG. This count value is “28250” in decimal. That is, 28250 basic pulses are counted during one revolution of the resolver 13.

  Based on this count value, an estimated pulse width ΔT is calculated. That is, considering the resolution (12 bits; 0 to 4095) of the RD converter 16, the count value “28250” is divided by “4096”. Specifically, the shift operation is used to shift right by 12 bits as shown in FIG. As a result, a division result of “6” is obtained. That is, the estimated pulse width ΔT is the time for six basic pulses.

  However, the division result “6” obtained by the shift operation in this way is not an accurate value. This is because the calculation result “6” is inaccurate because the part after the decimal point is ignored by shifting to the right. This is clear from the fact that when the division of 28250/4096 is performed correctly, 6.896973... Is obtained, and the division result is closer to 7, rather than 6.

  Therefore, when the estimated pulse Pp is output with the time of six basic pulses as the estimated pulse width ΔT, the portion after the ignored decimal point (0.896973...) Is accumulated as an error. As a result, the resolver 13 has not yet rotated once even if the count value (estimated count value Kp) of the estimated pulse Pp reaches 4095 even though it rotates at a constant speed.

Therefore, in this embodiment, the estimated pulse Pp with high accuracy in which the portion after the decimal point is sufficiently considered is generated without completely ignoring the portion after the decimal point.
As described above, since the original correct division result is not 6, but 6.896973..., If possible, the time of 6.896973. Should. However, it is physically impossible to output the estimated pulse Pp every time 6.896973... Are output.

  Therefore, in the present embodiment, the estimated pulse Pp6 whose estimated pulse width ΔT is six basic pulses and the estimated pulse Pp7 whose estimated pulse width ΔT is seven basic pulses are output while appropriately switching. That is, considering the part after the decimal point of the division result, the estimated pulse Pp7 is output more than the estimated pulse Pp6. As a result, the estimated pulse width ΔT is 6. 896973... So that the result is equivalent to the continuous output of estimated pulses Pp.

  In order to realize this, first, the total number of the estimated pulse Pp7 and the estimated pulse Pp6 to be output during one rotation is calculated. Since the total number of estimated pulses Pp to be output during one rotation is 4096, the total sum of the estimated pulses Pp7 and Pp6 needs to be 4096. Therefore, as shown in FIG. 6C, paying attention to the 12 bits after the decimal point of the division result, the number represented by the 12 bits (“3674” in FIG. 6) is used as the number of outputs of the estimated pulse Pp7 in the register (reg ) A register (reg) 2 is set as the number of times of output of the estimated pulse Pp6, which is set to 1, and the number obtained by inverting each of the 12 bits and adding 1 ("422" (= 4096-3694 in FIG. 6)) Set to.

  At this time, for example, even if the estimated pulse Pp7 is continuously output 3675 times continuously, and then the estimated pulse Pp6 is continuously output 422 times, if only the result is seen, a desired number of estimated pulses can be obtained during one rotation. Pp can be output. However, of course, with such a biased output method, the error increases steadily while the estimated pulse Pp7 is being output, and the error decreases conversely after shifting to the estimated pulse Pp6. The error becomes very large transiently.

  That is, the ratio of the number of output times of the estimated pulse Pp7 and the estimated pulse Pp6 only needs to be the above ratio (3674: 422) as a result, and the generation of errors is suppressed as much as possible over the entire period. In addition, it is necessary to output the estimated pulse Pp7 and the estimated pulse Pp6 in a well-balanced manner. For example, if the estimated pulse Pp7 is output J times, then the estimated pulse Pp6 is output K times, and so on.

  First, a base ratio, that is, how many times the estimated pulse Pp7 is output for one estimated pulse Pp6 is determined. Specifically, as shown in FIG. 6C, the base output ratio is determined from the number of bits from the MSB of reg2 to the most significant bit where “1” first appears. In the example of FIG. 6C, “1” appears for the first time in the 4th bit from the MSB of reg2. Therefore, paying attention to 4 bits from the MSB, the number of times represented by the 4 bits is used as the base of the output ratio of each estimated pulse Pp7, Pp6. In this example, the estimated pulse Pp7 is 14 times and the estimated pulse Pp6 is 1 time.

  When the base output ratio is obtained in this way, first, the estimated pulses Pp7 and Pp6 are output at this output ratio. That is, first, the estimated pulse Pp7 is output continuously 14 times, then the estimated pulse Pp6 is output once, and then the estimated pulse Pp7 is output again 14 times continuously.

  However, the base output ratio (14: 1) is a ratio with a 4-bit accuracy, and is a slightly rough ratio. That is, when the accuracy of the output ratio is further increased, for example, when the output ratio is determined with 6-bit precision as shown in FIG. 6D, the output ratio is 57: 6. When the accuracy is further increased and the output ratio is determined with 7-bit accuracy as shown in FIG. 6E, the output ratio is 114: 13.

  On the other hand, considering what happens if output is continued at 14: 1, which is the output ratio with 4-bit accuracy, for example, when the estimated pulse Pp7 is output 57 times, the estimated pulse Pp6 is still output only 4 times. As a result, there is an error compared to the 6-bit accuracy (FIG. 6D).

  If it continues to output at an output ratio of 14: 1 as it is, for example, when the estimated pulse Pp7 is output 112 times, the estimated pulse Pp6 is still output only 8 times, and the 7-bit accuracy (FIG. 6 (e)) Compared with, the error has clearly increased.

  Therefore, instead of simply continuing to output at the base output ratio (14: 1), if output to some extent, the output ratio and the current output count must match if compared with a more accurate output ratio. Match the output ratio.

  That is, for example, as illustrated above, when the estimated pulse Pp7 is output 57 times, if the estimated pulse Pp6 is still output only 4 times, the output of the estimated pulse Pp7 is temporarily stopped at 57 times, The estimated pulse Pp6 is continuously output until the number of times Pp6 is output is 6 which is the number of times with 6-bit accuracy. As a result, when the estimated pulse Pp7 is 57 times and the estimated pulse Pp6 is 6 times, which coincides with the output ratio with 6-bit precision, each estimated pulse Pp7, Pp6 is output.

  The next comparison is 114: 13, which is the output ratio with 7-bit accuracy. Therefore, the output is performed at the base output rate until the number of times indicated by the output rate among the estimated pulses Pp7 and Pp6, whichever comes first (114 times for the estimated pulse Pp7, 13 times for the estimated pulse Pp6), is reached. continue.

  Then, in this example, the estimated pulse Pp7 reaches 114 times before the estimated pulse Pp6 reaches 13 times. When the estimated pulse Pp7 reaches 114 times, the estimated pulse Pp6 is 10 times and does not match the output ratio with 7-bit accuracy. Therefore, also in this case, the estimated pulse Pp7 is temporarily stopped, and the estimated pulse Pp6 is continuously output until the number of times of output reaches 13 times. As a result, when the estimated pulse Pp7 is 114 times and the estimated pulse Pp6 is 13 times, which coincides with the output ratio with 7-bit precision, the output is again made at the base output ratio of 14: 1.

Note that how much the accuracy of the output ratio is increased is arbitrary. For example, as shown in FIG. 6, it may be finished with 7-bit accuracy, or the accuracy may be further increased.
Returning to FIG. 3, the estimated pulse counter 44 receives the estimated pulse Pp generated by the estimated angle pulse signal generation unit 43 and counts the estimated pulse Pp. More specifically, the rising edge and falling edge of the estimated pulse Pp are detected, and the count value is counted up at the detection timing of each edge. Then, the count value is output as the estimated count value Kp. In other words, the estimated pulse counter 44 estimates the estimated time every time the estimated time, which is the time estimated by the estimated angle pulse signal generation unit 43 (time estimating means), has elapsed from the output timing of the Z-phase signal (reference angle information). The motor rotation angle is estimated based on the output timing of the Z-phase signal based on the assumption that the motor has rotated the disassembly angle (unit angle) during the process, and the estimation result is output as the estimated count value Kp (estimated angle information) To do.

  In addition to the estimated pulse Pp, a Z-phase signal is also input to the estimated pulse counter 44, and the estimated count value Kp is reset to 0 each time the Z-phase signal pulse rises. That is, the estimated pulse counter 44 counts the estimated pulse Pp with reference to the timing (estimated count value Kp = 0) at each pulse edge rising timing of the Z-phase signal.

  FIG. 5C shows an output example of the estimated count value Kp for the estimated pulse Pp. As shown in FIG. 5C, the estimated count value Kp is reset to 0 at the pulse edge rising timing of the Z-phase signal, and then counted up at every edge generation timing of the estimated pulse Pp. In the present embodiment, since the resolution of the RD conversion unit 16 is 12 bits, the estimated count value Kp is 0 while the resolver 13 rotates once from 0 degree to 360 degrees unless the rotational speed of the motor 1 varies. It will take values up to ~ 4095.

  That is, the actual count value Kr is a value representing an actual detection angle (actual detection angle) generated based on each phase signal from the resolver 13, whereas the estimated count value Kp is the value of the previous resolver 13. This is a value indicating an estimated angle estimated by prediction that the resolver 13 will rotate by the decomposition angle each time the estimated pulse width ΔT based on one cycle time elapses.

Next, the difference recording unit 45 will be described.
The difference recording unit 45 performs the learning process of FIG. 7 every time the actual count value Kr is incremented (in other words, every edge generation timing of the actual pulse Pr).

  When the difference recording unit 45 starts the learning process of FIG. 7, first, in S <b> 110, the current actual count value Kr corresponds to a representative angle other than the final angle among a plurality of predetermined representative angles. It is determined whether it is a value.

  In the present embodiment, as shown in the first row of FIG. 8A, eight angles with an interval of 45 degrees, that is, 45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees, Each of 360 degrees is a representative angle. In S110, the actual count value Kr is a value corresponding to one of representative angles (45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees) other than the final angle of 360 degrees. (In other words, whether or not the actual detected angle is one of the representative angles other than the final angle). In the present embodiment, 360 degrees as the final angle means an angle at 4095, which is the final value immediately before the actual count value Kr returns to the initial value of 0, not actually 360 degrees. .

If it is determined in S110 that the actual count value Kr is a value corresponding to a representative angle other than 360 degrees, the process proceeds to S120.
In S120, the value of “estimated count value Kp−actual count value Kr” at that time is calculated as an estimated difference, and the calculated estimated difference is stored in a memory as a storage unit provided in the difference recording unit 45. In 45a, the representative difference at which representative angle is stored so as to be identifiable. Then, the learning process ends. The estimated difference indicates how far the estimated angle indicated by the estimated count value Kp has advanced with respect to the actual detected angle indicated by the actual count value Kr.

  More specifically, as shown in the first and second stages of FIG. 8 (A), the memory 45a stores the actual difference at each of the eight representative angles in one period (one rotation period) of the resolver 13 (hereinafter, referred to as “representative difference”). There is provided an actual difference recording table for recording a1 to a8 (also referred to as an actual difference for one cycle) in association with a representative angle. In S120, the calculated actual difference is represented by the current actual detection angle of the actual difference recording area (second stage in FIG. 8A) in the actual difference recording table. Write to the recording area corresponding to the angle.

  On the other hand, when it is determined in S110 that the actual count value Kr is not a value corresponding to a representative angle other than 360 degrees, the process proceeds to S130, and whether or not the actual count value Kr is the final value 4095. (In other words, whether or not the actual detection angle is 360 degrees).

If the actual count value Kr is not 4095, the learning process is terminated as it is. If the actual count value Kr is 4095, the process proceeds to S140.
In S140, as in S120, the value of “estimated count value Kp−actual count value Kr” at that time is calculated as an estimated difference, and the calculated estimated difference is converted into an estimated difference in the estimated difference recording table. Are recorded in the recording area corresponding to the representative angle (ie, 360 degrees) at which the current actual detection angle has reached.

  For this reason, every time one cycle in which the actual count value Kr changes from 0 to 4095 (one cycle of the resolver 13) elapses, the estimated difference a1 to a8 for the latest one cycle is stored in the estimated difference recording table. Will be recorded. That is, in S110 to S140, the actual count value Kr (actual detection angle) is 360 degrees (final angle) that is the final value of the actual count value Kr in one cycle that is the output interval of the Z-phase signal (reference angle information). The estimated count value Kp (estimated angle information) becomes the actual count value Kr every time the angle is 45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, 315 degrees (representative angle). An inference difference indicating how far the (actual detection angle) is advanced is calculated.

  Then, in next S150, it is determined whether or not the absolute value of the actual difference a8 at 360 degrees calculated in S140 this time is greater than or equal to a predetermined value. If not, the process proceeds to S160. In the present embodiment, the predetermined value used for the determination in S150 is, for example, a value equivalent to 10 degrees (= 4096 × 10/360).

  In S160, a learning value for obtaining the angle data φ corrected for the actual count value Kr is obtained from the estimated differences a1 to a8 recorded in the estimated difference recording table in the current cycle and stored in the memory 45a.

Specifically, the learning value is obtained by the following procedures (1) to (3).
(1) First, as shown in the third row of FIG. 8A, the memory 45a has a section from 0 degree to the smallest 45 degrees (minimum representative angle) of representative angles and adjacent representative angles. Difference increments b1 to b8 indicating how much the estimated angle increase amount is larger than the actual detection angle increase amount in each of the eight sections. A recording table is provided.

  In S160, among the actual differences a1 to a8 for the current period recorded in the actual difference recording table, the actual difference a1 at 45 degrees is changed to the increase amount difference b1 in the section from 0 to 45 degrees. Is recorded in the increase amount difference recording table.

  Furthermore, for each section between adjacent representative angles, by subtracting the estimated difference at the representative angle corresponding to the start of the section from the estimated difference at the representative angle corresponding to the end of the section, The increase amount difference in the section is obtained and recorded in the increase amount difference recording table.

  For example, for a section of 45 to 90 degrees, a value obtained by subtracting the estimated difference a1 at 45 degrees from the estimated difference a2 at 90 degrees is calculated as an increase amount difference b2 (= a2-a1) in the section. Is done. The actual count value Kr corresponding to 45 degrees is set to Kr1, the actual count value Kr corresponding to 90 degrees is set to Kr2, and estimation is performed when the actual count value Kr is Kr1 (that is, when the actual detection angle is 45 degrees). Assuming that the count value Kp is Kp1 and the estimated count value Kp when the actual count value Kr is Kr2 (that is, when the actual detection angle is 90) is Kp2, “a1 = Kp1−Kr1”, “a2 = Kp2−Kr2” And “b2 = a2−a1 = (Kp2−Kp1) − (Kr2−Kr1)”, the increase amount difference b2 is the increase amount of the actual detection angle (Kr2−Kr1) in the section of 45 to 90 degrees. ) Indicates how much the increase amount (Kp2-Kp1) of the estimated angle is.

  Similarly, for example, in a section of 315 to 360 degrees, a value obtained by subtracting the estimated difference a7 at 315 degrees from the estimated difference a8 at 360 degrees is an increase amount difference b8 (= a8− calculated as a7). That is, the process (1) performed in S160 of FIG. 7 is based on the estimated difference at each representative angle for one period calculated by the processes of S110 to S140 (estimated difference calculating means) in FIG. The interval from the initial value at the output timing of the Z-phase signal (reference angle information) to the smallest 45 degrees (minimum representative angle) of the representative count and the adjacent representative angle For each of the intervals, an increase amount difference indicating how much the estimated count value Kp is increased relative to the increase amount of the actual count value Kr (actual detection angle) in each interval is calculated and increased. This is a process of storing the amount difference in an increase amount difference table (storage unit) so as to identify which section corresponds to the amount difference.

  Subsequently, a method of correcting the increase difference for one cycle stored in the increase difference recording table (storage unit) by the above (1) (increase difference calculation means) according to the degree of acceleration / deceleration of the motor. explain.

  (2) In S160, a correction value for correcting the increase amount differences b1 to b8 recorded in the increase amount difference recording table in (1) above to obtain a final learning value is stored in the estimated difference recording table. It is determined based on the distribution rule shown in FIG. 9 according to the recorded actual difference a8 at 360 degrees which is the final angle.

  As shown in FIG. 9, the allocation rule is a rule for distributing the estimated difference a8 of the section including the final angle as evenly as possible as the corrected values c1 to c8 of the increment differences b1 to b8 in each section. In addition, for each value of the inference difference a8, it is defined what value the correction values c1 to c8 should be. In FIG. 9, the values in parentheses are values when the estimated difference a8 is negative, and these values are obtained by simply inverting the sign when the estimated difference a8 is positive. It is a value.

  For example, if “a8 = + 8”, the value is equally divided into eight equal to the number of sections, and each of the divided +1 becomes the corrected values c1 to c8 of the increment differences b1 to b8. That is, if the estimated difference a8 is an integer multiple of 8, values obtained by dividing the difference by 8 become the corrected values c1 to c8.

  Further, for example, when the estimated difference a8 is any of +1 to +7, it cannot be divided into the number of sections (8) by an integer, so each value obtained by dividing the estimated difference a8 by +1 The correction values for the intervals as dispersed as possible are set.

  For example, if the estimated difference a8 is +9, each correction value cx (x is any one of 1 to 8) is the correction value cx in the case of “a8 = + 8” and the correction value in the case of “a8 = + 1” A value obtained by adding cx. Although not shown in FIG. 9, for example, if the estimated difference a8 is +17, the correction values cx are the correction values cx (= 2) and “a8 = + 1” in the case of “a8 = + 16”. In this case, a value obtained by adding the correction value cx is obtained. That is, if the inference difference a8 is “8 × h + i” (h is an integer, i is any one of 1 to 7), each correction value cx is a correction value cx in the case of h and “a8 = i”. It becomes the value which added and.

  8A, the memory 45a is provided with a correction value recording table for recording the correction values c1 to c8 of the increment differences b1 to b8 in each section. The correction values c1 to c8 determined based on the actual difference a8 and the distribution rule of FIG. 9 are recorded in the correction value recording table.

  (3) Further, in S160, for each section, from the increase amount difference bx (x is any one of 1 to 8) recorded in the increase amount difference recording table in (1) above, the correction value recording table in (2) above. A value obtained by subtracting the correction value cx recorded in (bx−cx) is calculated as a learning value dx in that section. Then, the calculated learning values d1 to d8 for each section are recorded in a learning value recording table provided in the memory 45a as shown in the fifth row of FIG.

  Therefore, for example, if the estimated differences a1 to a8 are the values exemplified in the second stage of FIG. 8B, the increase amount differences b1 to b8 in each section are obtained by the processing of (1) above. 8B, the values shown in the third row in FIG. 8B, and the correction values c1 to c8 of the increment differences b1 to b8 are changed to the values shown in the fourth row in FIG. (Because a8 = + 2, c3 and c6 out of c1 to c8 are +1 and the others are 0 by the third stage in FIG. 9). Furthermore, by the process (3), the learning values d1 to d8 for each section become the values shown in the fifth row in FIG.

Then, when the process of S160 is completed, the learning process is terminated.
Here, the learning values d1 to d8 for each section recorded in the above S160 indicate that the actual detection angle in each section is a more reliable estimated angle considering the rotational speed fluctuation of the motor 1 (that is, from the true angle). It represents how much the direction deviates from the estimated angle).

  The reason for this will be described. First, as described above, the increase amount differences b1 to b8 indicate how much the estimated angle increase amount with respect to the increase amount of the actual detection angle in each section (to distinguish between positive and negative, In other words, how much the actual detection angle is in the estimated angle that seems to be correct (however, if positive and negative are distinguished, if positive, the direction is insufficient) , If negative, excess direction).

However, since the estimated angle is estimated from the previous one cycle time, it has an error (estimated error) from the true angle due to the rotational speed fluctuation of the motor 1.
As a phenomenon, as shown in FIG. 10A, if the rotation speed of the motor 1 is constant, the estimated angle indicated by the estimated count value Kp (indicated by a two-dot chain line in FIG. 10) is correct. The estimated difference a8 at 360 degrees is 0, but as shown in FIG. 10 (B), if the rotation speed of the motor 1 is not constant, the estimated angle becomes a true angle (FIG. 10 (B)). Therefore, the estimated difference a8 at 360 degrees does not become 0, but the total accumulated error (total accumulated estimation) for one period of the estimated angle. Error). This is because the absolute value of the estimation error increases in proportion to time, and there is no error in the actual detection angle at the output timing of the Z-phase signal and in the immediate vicinity thereof.

  Therefore, in S160, the estimated difference a8 at 360 degrees is dispersed as evenly as possible with respect to each section, and the dispersed value is subtracted from each increment difference b1 to b8, so that the motor 1 of each section is reduced. An increase difference when it is assumed that there is no rotational speed fluctuation, that is, a more reliable estimated angle obtained by correcting the rotational speed fluctuation of the motor 1, which is a true angle indicated by a one-dot chain line in FIG. An increase amount difference indicating how much the actual detection angle is deviated from the estimated angle is obtained, and the increase amount difference is recorded as learning values d1 to d8 in the learning value recording table in the memory 45a. ing.

  In order to make it easier to understand, the case where the estimated difference a8 at 360 degrees is positive will be described as an example. In this case, the estimated angle is more advanced than the true angle. As compared with the case where the estimated angle is correct, the increment differences b1 to b8 in each section become larger values, and the sum of the increment differences b1 to b8 is increased by the same value as the estimated difference a8. Therefore, each increase amount difference b1 to b8 is corrected so that the total sum of the increase amount differences b1 to b8 is reduced by the same value as the actual difference a8, and the corrected increase amount differences are set as learning values d1 to d8. That is, in the processes (2) and (3) performed in S160 of FIG. 7, the process is stored in the increase amount difference recording table (storage unit) by the process (1) (increase difference calculation unit) performed in S160 of FIG. The increase difference for one cycle is corrected in accordance with the actual difference at the final angle calculated by the processing of S110 to S140 (estimated difference calculation means) in FIG.

  In other words, the estimated difference a8 at 360 degrees is equal to the sum of the increment differences b1 to b8. If the estimated angle is correct, the estimated difference a8 at 360 degrees and the sum of the increment differences b1 to b8 are Is 0, but when the estimated angle is not correct and the estimated difference a8 at 360 degrees is De other than 0, each increase amount is set so that the sum of the increase amount differences b1 to b8 decreases by De. By correcting the differences b1 to b8, an increase amount difference for 8 sections in which the sum is 0 is obtained, and the corrected increase difference in which the sum is 0 is used as the learning values d1 to d8. That is, in the processes (2) and (3) performed in S160 of FIG. 7, the process is stored in the increase amount difference recording table (storage unit) by the process (1) (increase difference calculation unit) performed in S160 of FIG. In addition, the increase difference for one cycle is corrected so that the total sum thereof becomes zero.

  On the other hand, returning to FIG. 7, if it is determined in S150 that the absolute value of the estimated difference a8 at 360 degrees is equal to or larger than the predetermined value, the process proceeds to S170, and the estimated difference in this one cycle. The actual differences a1 to a8 recorded in the recording table are invalidated. Actually, the learning values d1 to d8 are not updated by the actual differences a1 to a8 for one cycle this time by not performing the processing of S160. Then, the learning process ends. That is, in S150, when the actual count value Kr (actual detection angle) reaches 360 degrees (final angle), it is 360 degrees calculated by “processing of S110 to S140 in FIG. 7” (estimated difference calculation means). When the absolute value of the actual difference is greater than or equal to a predetermined value, the actual difference calculated by the “processing of S110 to S140 in FIG. 7” (estimated difference calculation means) in one cycle is invalidated. The increase amount difference in the increase amount difference recording table (storage unit) used in the “process of FIG. 12” (correction process) is prohibited from being updated.

Next, the correction count unit 47 will be described.
The correction count unit 47 includes a counter (hereinafter referred to as a correction counter) inside, and a correction count value that is a value of the correction counter is output to the microcomputer 37 as angle data φ.

  Then, every time the Z-phase signal rises, the correction count unit 47 performs an initialization process for resetting the correction count value to the initial value 0. That is, the correction count value (correction angle information value) is set to 0 (initial value) at the output timing of the Z-phase signal (reference angle information).

  Further, the correction count unit 47 receives the correction amount from the correction amount calculation unit 46 every time the edge (rising edge and falling edge) of the actual pulse Pr occurs after the correction count value is set to 0 in the initialization process. Thus, the correction count value is incremented by the value indicated by the correction amount. That is, with the rise timing of the Z-phase signal as a reference (correction count value = 0), the correction count value is increased by the correction amount from the correction amount calculation unit 46 every time an edge of the actual pulse Pr occurs.

  Specifically, the correction count unit 47 performs the output update process of FIG. 11 every time a correction amount is input from the correction amount calculation unit 46. Basically, the processing of FIG. 11 is performed every time both edges (unit angle information) of the actual pulse Pr are output with reference to the output timing of the Z-phase signal (reference angle information). This is a process of increasing (value of correction angle information) by a value corresponding to the decomposition angle (unit angle).

  In the output update process, first, in S210, the current correction amount from the correction amount calculation unit 46 is “1” meaning no correction, “2” meaning one increase correction, and one decrease correction. It is determined whether it is “0”. Incidentally, 1 increment correction means that the increment amount of the correction count value is increased by one with respect to the increment amount of the actual count value Kr, and 1 decrement correction is a correction for the increment amount of the actual count value Kr. This means that the increment of the count value is decreased by one.

If the correction amount is 1, the correction count unit 47 increments the correction count value by 1 in S220, and then ends the output update process.
On the other hand, if the correction amount is 2, the correction count value is incremented by 2 in S230, and then the output update process is terminated. Therefore, in this case, while the actual count value Kr increases by 1, the correction count value increases by 2 (that is, the increase amount of the correction count value increases by 1 compared to the actual count value Kr). Become.

  If the correction amount is 0, the output update process is terminated without counting up the correction count value. Therefore, in this case, while the actual count value Kr increases by 1, the correction count value does not increase (that is, the increase amount of the correction count value decreases by 1 compared to the actual count value Kr). .

Next, the correction amount calculation unit 46 will be described.
The correction amount calculation unit 46 outputs the above-described correction amount to the correction count unit 47 every time an edge of the actual pulse Pr occurs, but monitors the actual count value Kr so that the actual count value Kr corresponds to 0 to 45 degrees. The interval until the value (= 4096 × 45/360) and the interval until the actual count value Kr becomes a value corresponding to one of the representative angles until the value corresponding to the next representative angle is reached. In each (that is, each interval of 45 degrees in one cycle of 0 to 360 degrees), the increase amount of the value of angle data φ (that is, the correction count value) in the interval is larger than the increase amount of the actual count value Kr. The correction amount to the correction count unit 47 is set so as to increase by the learning value stored in the learning value recording table of the memory 45a corresponding to the section.

  For example, in the example shown in the fifth row of FIG. 8B, since the learning value d4 corresponding to the section of 135 to 180 degrees is +6, the section of 135 to 180 degrees (specifically, the actual count value Kr (A section for 45 degrees in which the value corresponding to 135 degrees increases from a value corresponding to 135 degrees), the amount of increase in the value of the angle data φ is 6 (= d4) larger than the amount of increase for 45 degrees. A correction amount is set.

  Here, it demonstrates still more concretely using FIG. Here, in order to simplify the description, it is assumed that the angle detection resolution is 11 bits (0 to 2047). Hereinafter, the edge of the actual pulse Pr is also referred to as an actual pulse edge.

First, when the resolution is 11 bits, the actual pulse edge is generated 256 (= 2048 × 45/360) times in each interval of 45 degrees.
Therefore, in order to increase the increase amount of the angle data φ by 6 (= d4) from the increase amount of the actual count value Kr (= 256) in the section of 135 to 180 degrees, the actual pulse edge is 256 times. Of each occurrence, the correction amount may be set to 2 only 6 times, and the correction amount may be set to 1 for the other 250 times. If the correction amount is set to 1 for all 256 times, the value of the angle data φ increases by the same amount as the actual count value Kr in the 45-degree interval.

  By the way, for example, out of 256 times, even if the correction amount is set to 1 continuously for 250 times, and the correction amount is set to 2 continuously for 6 times thereafter, if only the result is seen, 256 times Of these, the correction amount is set to 2 other than 1 at a rate of 6 times, but with such a biased setting method, the learning value d4 cannot be reflected evenly over the entire section of 45 degrees, It is not preferable.

  Therefore, in the present embodiment, the same method as described in FIG. 6 is adopted. That is, the correction amount 1 and the correction amount 2 or 0 are output in a well-balanced manner so that the angle detection error is suppressed as much as possible over the entire 45-degree section.

  Therefore, as shown in FIG. 12, first, a value obtained by subtracting the absolute value of the learning value d4 from 256, which is the total number of outputs in the section (in this example, because d4 = 6, 250) is used as the 8-bit register A. And the absolute value (= 6) of the learning value d4 is set in the 8-bit register B.

  Next, the base output ratio between the correction amount of 1 and the correction amount of 2 is determined. This output ratio of the base indicates the ratio of how many times the correction amount of 1 is output and how much of the correction amount of 2 is output once.

  Specifically, as shown by the dotted line in FIG. 12, the base output ratio is determined from the number of bits from the MSB of the register B to the most significant bit where “1” first appears. In this example, since “1” appears for the first time in the 6th bit from the MSB of the register B, paying attention to 6 bits from the MSB of the register A, the number of times represented by 6 bits is corrected to 1 in the base output ratio. The number of times the quantity is output. That is, in this example, if the correction amount of 1 is output 62 times, the correction amount of 2 is output once.

  When the base output ratio is obtained in this way, first, the correction amount of 1 and the correction amount of 2 are output at this output ratio. That is, first, the correction amount of 1 is output 62 times continuously, then the correction amount of 2 is output once, and then the correction amount of 1 is output again continuously 62 times.

  However, since the output ratio (62: 1) of this base is a ratio with 6-bit precision, it is a slightly rough ratio. That is, when the accuracy of the output ratio is further increased, as shown by the one-dot chain line in FIG. 12, when the output ratio is determined with 7-bit accuracy, the output ratio is 125: 3.

  Therefore, instead of simply continuing to output at the base output ratio (62: 1), if output to some extent, the output ratio and the current output count do not match if compared with a more accurate output ratio. Match the output ratio.

  That is, for example, when the correction amount of 1 is output 125 times and the correction amount of 2 is still output only twice, the output of the correction amount of 1 is temporarily stopped at 125 times and the correction amount of 2 Are output continuously until the number of times of output reaches three, which is the number of times with 7-bit precision. As a result, when the correction amount of 1 is 125 times, and the correction amount of 2 is 3 times, when the output ratio matches the output ratio with 7-bit precision, the correction of 1 is again performed at the base output ratio of 62: 1. The amount and the correction amount of 2 are output.

  In the case of this example, the number of outputs of the correction amount of 1 reaches 250 times before the number of outputs of the correction amount of 2 reaches the target 6 times. Note that the number of times of output of the correction amount of 2 at that time is five. Therefore, also in this case, the output of the correction amount of 1 is stopped, and the correction amount of 2 is continuously output until the number of times of output reaches 6 times.

  As a result, the output ratio between the correction amount of 1 and the correction amount of 2 in the entire 45-degree section is 250 to 6, and as a result, the value (correction) of the angle data φ counted up by the correction count unit 47 The increase amount of (count value) is 6 more than the increase amount of the actual count value Kr.

  In the above example, the case where the learning value is positive and correction is performed to increase the amount of increase in the value of the angle data φ in one section more than the amount of increase in the actual count value Kr has been described. Therefore, in the case of performing the correction to make the increase amount of the angle data φ smaller than the increase amount of the actual count value Kr, “2 correction amount” is set to “0” in the description with reference to FIG. It may be read as “correction amount”. That is, the correction amount calculation unit 46 outputs a correction amount of 0 to the correction count unit 47 instead of the correction amount of 2. The processing shown in FIG. 12 includes the interval until the actual count value Kr (actual detection angle) reaches 45 degrees (minimum representative angle) from the output timing of the Z-phase signal (reference angle information), and the actual count value Kr (actual In each of the sections from the detected angle) to any one of the representative angles until the next representative angle, the amount of increase in the correction count value (correction angle information value) in that section is This is a process of changing the value to be increased in the process of FIG. 11 (output update process) so as to increase by the increment difference stored in the increment difference recording table (storage unit) corresponding to the section.

Next, the operation flow of the error correction unit 17 as described above is shown in FIG.
As shown in FIG. 13, the operation of the error correction unit 17 can be broadly divided into three, that is, a measurement operation, a learning operation, and a correction operation. Then, the error correction unit 17 performs a measurement operation, a learning operation, and a correction operation like pipeline processing in each cycle that is an interval (one rotation period of the resolver 13) at which the Z-phase signal is output.

Here, the measurement operation is an operation for measuring one cycle time.
The learning operation is to generate an estimated pulse Pp from the measured value of one cycle time of the previous cycle to count up the estimated count value Kp, and record the actual differences a1 to a8 at each representative angle, At the end, the learning values d1 to d8 relating to the intervals of 45 degrees are determined and recorded.

  In the correction operation, the increment of the value of the angle data φ in the section corresponding to the learned value is increased or decreased with respect to the increment of the actual count value Kr by the amount of the learned values d1 to d8 recorded at the end of the previous cycle. This is an operation of outputting the angle data φ in the form of correcting the actual count value Kr.

  Therefore, for example, if the current period is the “n + 2” period, the learning values d1 to d8 used for the correction operation in the “n + 2” period are recorded in the learning operation in the previous “n + 1” period. The estimated count value Kp used to determine the learning values d1 to d8 in the learning operation in the “n + 1” period is based on the one cycle time Tn measured in the previous measurement operation in the “n” period. It will be a thing.

  The error correction unit 17 provided in the ECU (traveling motor control device) 7 of the present embodiment as described above is the section for each section obtained by dividing the rotation angle of 0 to 360 degrees of the motor 1 into 45-degree intervals. In addition to recording an increase difference b1 to b8 with a plus / minus sign indicating how much the increase in the estimated angle is relative to the increase in the actual detected angle at 360, 360 indicates a total accumulated error for one period of the estimated angle. The actual difference a8 in degrees is dispersed evenly as much as possible with respect to each section, and the dispersed values (corrected values c1 to c8) are subtracted from the respective increment differences b1 to b8. 1 is an increase amount difference when it is assumed that there is no rotation speed fluctuation, and an increase amount difference of each section where the sum is 0 is obtained, and the corrected increase difference is obtained as learning values d1 to d8 for each section. It is said. Then, the learning values d1 to d8 for each section represent how much the actual detection angle is shifted in the insufficient direction with respect to the more accurate estimated angle obtained by correcting the amount of fluctuation of the rotation speed of the motor 1. .

  For this reason, the error correction unit 17 basically increases the value of the angle data φ output to the microcomputer 37 by 1 every time an actual pulse edge occurs, so that the actual count value corresponding to the actual detected angle is increased. Kr is changed to be the same as Kr, but the amount of increase in the value of the angle data φ in each interval of 45 degrees is increased by the learning value (any one of d1 to d8) corresponding to the interval ( Note that if the learning value is negative, the absolute value of the learning value is decreased), and the value (correction amount) for increasing the value of the angle data φ every time an actual pulse edge occurs is 2 or 0 other than 1. Thus, the value of the angle data φ is changed so as to coincide with a more reliable estimated angle obtained by correcting the rotational speed fluctuation of the motor 1.

  Therefore, according to the ECU 7 of the present embodiment, the rotation detection signals Sa and Sb (and the actual pulses Pr based on the A and B phase signals) output from the resolver 13 due to various factors such as manufacturing variations of the resolver 13. In addition, even if the actual count value Kr) includes an error, even if there is a rotational speed fluctuation during the operation of the motor 1, highly reliable angle data in which the error is corrected by the error correction unit 17. φ is generated, and the angle data φ is used for energization control of the motor 1.

  Therefore, it is possible to secure a good control performance of the motor 1 by suppressing a decrease in the rotation angle detection accuracy. Specifically, the above-described unnecessary acceleration of the vehicle is suppressed to make the vehicle occupant feel uncomfortable. It is possible to avoid giving.

  Furthermore, according to the present embodiment, the arithmetic processing for error correction can be made relatively simple. In particular, division processing is not necessary as a mathematical calculation that generally increases the processing load. In addition, since the correction value for each angle detection resolution is not stored in the memory, an increase in hardware scale (particularly required memory resources) can be suppressed.

  In the present embodiment, the error correction unit 17 (specifically, the difference recording unit 45), if the absolute value of the actual difference a8 at 360 degrees is equal to or larger than a predetermined value (S150: YES), Since the actual differences a1 to a8 recorded in one cycle are invalidated so that the learning values d1 to d8 are not updated, it is possible to avoid erroneous correction. When the absolute value of the actual difference a8 is greater than or equal to a predetermined value, there is a too large difference between the estimated angle and the actual detection angle, and the large difference between the estimated actual values a1 to a8 in one cycle. If the learning values d1 to d8 are updated, the learning values d1 to d8 may be erroneously calculated. As a result, in the correction operation in the next cycle, the actual count value Kr may be corrected by the erroneously updated learning values d1 to d8, and the angle data φ that correctly corrects the actual count value Kr may not be obtained. Because there is.

[Other Embodiments]
In the above-described embodiment, the estimated angle pulse signal generation unit 43 obtains the estimated pulse width ΔT from only the latest one cycle time (Z-phase signal generation interval) T as shown in FIG. The time required for the motor 1 to rotate by a unit angle was estimated). However, if the estimated pulse width ΔT is obtained in consideration of the change in the rotational speed of the motor 1, angle data φ with higher accuracy can be obtained.

  Therefore, the estimated angle pulse signal generation unit 43 uses the latest two one-cycle times and subtracts the one-cycle time Ta measured last time from the one-cycle time Tb measured this time (= Tb−Ta), A time (= 2 × Tb−Ta) obtained by adding the one cycle time Tb measured this time is calculated as an estimated value Tp of the next one cycle time, and the estimated value Tp of the one cycle time is described with reference to FIG. The estimated pulse width ΔT may be obtained by dividing by the resolution R by the method described above.

  That is, the “Tb−Ta” is a value (speed change component) in which the speed change of the motor 1 is quantitatively expressed, and by adding the value to Tb, the acceleration / deceleration state of the motor 1 is determined. An estimated value Tp for one cycle time taken into account is obtained. Therefore, by obtaining the estimated pulse width ΔT from the estimated value Tp, a more accurate estimated angle (estimated count value Kp) corresponding to the state can be obtained even in the acceleration / deceleration state. Thus, more accurate angle data φ can be obtained.

Next, the correspondence between the components of the above-described embodiment and the components of the present invention will be described.
In the present embodiment, the resolver 13 and the RD conversion unit 16 correspond to the rotation detection unit, the error correction unit 17 corresponds to the correction unit, the rising edge of the Z-phase signal corresponds to the reference angle information, and A Each edge of the phase signal and the B phase signal (both edges of the actual pulse Pr inside the error correction unit 17) corresponds to unit angle information, and more specifically, corresponds to unit rotation angle information. Focusing on the inside of the error correction unit 17, the actual count value Kr obtained by counting both edges of the actual pulse Pr (the edges of the A phase signal and the B phase signal) corresponds to unit angle information or actual detected angle information. In this case, the resolver 13, the RD conversion unit 16, the exclusive OR calculation unit 41, and the actual pulse counter 42 correspond to a rotation detection unit or a rotation sensor.

  The estimated angle pulse signal generator 43 corresponds to time estimation means, the estimated pulse counter 44 corresponds to angle estimation means, and the estimated count value Kp corresponds to estimated angle information.

  Furthermore, in the operation of the difference recording unit 45, the part that performs the processing of S110 to S140 in FIG. 7 corresponds to the inference difference calculation means, and the part that performs the above-described processing (1) in S160 in FIG. 7 corresponds to the increase amount difference calculation means, the part that performs the processes (2) and (3) in S160 in FIG. 7 corresponds to the correction means, and the part that performs the processes in S150 and S170 in FIG. It corresponds to a prohibition means. On the other hand, the process of S140 in FIG. 7 corresponds to the estimation error calculation means because the actual difference a8 is calculated as the total cumulative estimation error.

Further, the correction amount calculation unit 46 and the correction count unit 47 correspond to output processing means, and the angle data φ corresponds to correction angle information.
The above-described initialization process performed by the correction count unit 47 corresponds to the initialization process performed by the output processing unit, and the output update process of FIG. 11 performed by the correction count unit 47 is the output update process performed by the output processing unit. Correspondingly, the process in which the correction amount calculation unit 46 outputs the correction amount to the correction count unit 47 (the process described with reference to FIG. 12) corresponds to the correction process performed by the output processing unit.

  As mentioned above, although one Embodiment of this invention was described, this invention is not limited to such Embodiment at all, Of course, in the range which does not deviate from the summary of this invention, it can implement in a various aspect. .

  For example, the intervals described above do not have to be 45 degrees apart, and may be a divisor of 360 that is greater than or equal to 2 and less than 180, such as 30 degrees, 60 degrees, 90 degrees, and 120 degrees. Furthermore, it may not be equiangular intervals. And when each section is not equiangular intervals, the value of the estimated difference a8 at 360 degrees is divided as much as possible into the ratio of the angular width of each section, and each divided value is It is preferable to subtract from the increase amount difference in the section of the angular width ratio corresponding to the division ratio. For example, when the representative angle is set to three of “90 degrees, 270 degrees, 360 degrees” and the estimated difference a8 at 360 degrees is −16, the −16 is Divide it into the same ratio as the angular width ratio (1: 2: 1) to make it “-3,“ −4, −8, −4 ”, subtract“ −4 ”from the increment difference of 0 to 90 degrees, and −8 What is necessary is just to subtract from the increase amount difference of a 90-270 degree area, and to subtract -4 from the increase amount difference of a 270-360 degree area.

  On the other hand, as described above, the estimated difference a8 at 360 degrees is equal to the sum of the increment differences b1 to b8 in each section. Therefore, the correction value c1 for each section in the process (2) in S160 of FIG. When ˜c8 is determined, the sum of the increment differences b1 to b8 may be applied to the distribution rule table of FIG. 9 instead of applying the value of the estimated difference a8. However, in the end, the same is true, and the estimated difference a8 is already recorded before the process (2) for determining the correction values c1 to c8. ) Can be used to eliminate extra processing (that is, processing for obtaining the sum of the increment differences b1 to b8).

  Further, for example, the value of “actual count value Kr−estimated count value Kp” may be calculated as the estimated difference. In this case, since the positive and negative values of the actual differences a1 to a8, the increment differences b1 to b8, and the learning values d1 to d8 are reversed with respect to the above embodiment, the result is the same as the above embodiment. As described above, the correction amount calculation unit 46 outputs a correction amount of 2 at an output ratio corresponding to the absolute value of the learning value if the learning value is negative, and according to the value of the learning value if the learning value is positive. A correction amount of 0 may be output at the output ratio.

Here, another modification will be described.
[First Modification]
In the above-described embodiment, the actual differences a1 to a8 are calculated for each representative angle, and the increment differences b1 to b8 are calculated based on the actual differences a1 to a8. However, the increment differences b1 to b8 can be calculated based on the estimated count value Kp for each time when the actual detection angle becomes each representative angle. It is also possible to determine the correction values c1 to c8 based on the increment differences b1 to b8.

  Therefore, hereinafter, a modification example in which the increment differences b1 to b8 are calculated based on the estimated count value Kp and the correction values c1 to c8 are determined based on the increment differences b1 to b8 will be described with reference to FIGS. .

  14 is a diagram similar to FIG. 8 described above, and is a diagram illustrating a procedure for obtaining a learning value. FIG. 15 illustrates a learning process performed by the difference recording unit 45 in place of the process of FIG. It is a flowchart. Further, in FIG. 14 and the following description, Kry (y is any of 45, 90, 135, 180, 225, 270, 315, 360) is a representative angle of the value of y (45 degrees, 90 degrees, 135 degrees). , 180 degrees, 225 degrees, 270 degrees, 315 degrees, and 360 degrees). Therefore, as shown in the second stage of FIG. 14A and the second stage of FIG. 14B, the value of Kr45 (that is, the actual count value Kr corresponding to 45 degrees) is 511. , Kr90 to Kr360 are values increased by 512 (= 4096/8) corresponding to 45 degrees from 511. Similarly, in FIG. 14 and the following description, Kpy means an estimated count value Kp when the actual detection angle becomes a representative angle of y.

  In this modification, when the difference recording unit 45 starts the learning process of FIG. 15, first, in S110, as in the case of FIG. 7, the actual count value Kr is a representative angle other than the final angle of 360 degrees ( Whether the value corresponds to one of 45 degrees, 90 degrees, 135 degrees, 180 degrees, 225 degrees, 270 degrees, and 315 degrees (in other words, the actual detected angle is any of the representative angles other than the final angle) Or not) is determined. When it is determined in S110 that the actual count value Kr is a value corresponding to a representative angle other than 360 degrees, the process proceeds to S300.

  In S300, the estimated count value Kp at that time is stored in the memory 45a as a storage unit provided in the difference recording unit 45 so that the estimated count value Kp at which representative angle can be identified. Then, the learning process ends.

  More specifically, as shown in the third row in FIG. 14A, the memory 45a stores estimated count values Kp (Kp45, Kp90) at eight representative angles in one period (one rotation period) of the resolver 13. , Kp135, Kp180, Kp225, Kp270, Kp315, Kp360) are recorded in association with the representative angle and an estimated count value recording table is recorded. In S300, the detected actual count angle reaches the detected estimated count value Kp in the estimated count value Kp recording area (third stage in FIG. 14A) in the estimated count value recording table. Write to the recording area corresponding to the representative angle. For example, when the actual count value Kr reaches 511 corresponding to 45 degrees, the estimated count value Kp at that time is stored as Kp45 (estimated count value Kp at 45 degrees).

  On the other hand, when it is determined in S110 that the actual count value Kr is not a value corresponding to a representative angle other than 360 degrees, the process proceeds to S130, and the actual count value Kr is equal to the case of FIG. It is determined whether or not the final value is 4095 (in other words, whether or not the actual detection angle is 360 degrees).

If the actual count value Kr is not 4095, the learning process is terminated as it is. If the actual count value Kr is 4095, the process proceeds to S310.
In S310, as in S300, the estimated count value Kp at that time is used as the representative angle (that is, 360 degrees) at which the current actual detection angle has reached in the recording area of the estimated count value Kp in the estimated count value recording table. Write to the recording area corresponding to. For this reason, in S310, the estimated count value Kp (= Kp360) when the actual count value Kr is 4095 is stored in the estimated count value recording table.

  In subsequent S320, the increment differences b1 to b8 in each of the eight sections divided by the representative angle are used as the estimated count value Kp at each representative angle stored in the estimated count value recording table, as shown in FIG. ) In the fourth stage, and the increment differences b1 to b8 in the calculated sections are recorded in the increment difference recording table described above. In the expression shown in each frame in the fourth stage of FIG. 14A, the actual count value Kry at each representative angle is a known value.

  For example, the increment difference b2 in the section of 45 to 90 degrees is the estimated count value Kp (= Kp45) before the representative angle interval (45 degrees) from the estimated count value Kp (= Kp90) at the representative angle 90 degrees. The actual count value Kr (= Kr45) before the representative angle interval (45 degrees) is subtracted from the actual count value Kr (= Kr90) at the representative angle of 90 degrees from the subtracted estimated count value increase amount (= Kp90−Kp45). The actual count value increase amount (= Kr90−Kr45) is calculated by subtraction. That is, the increase amount difference b2 is calculated by the equation “b2 = {Kp90−Kp45} − {Kr90−Kr45}”.

  In this example, since the representative angle interval is constant, the actual count value increment is also constant. Specifically, the actual count value increment in the section of 45 to 90 degrees is 512 obtained by subtracting Kr45 (= 511) from Kr90 (= 1023), and the actual count value in the next section of 90 to 135 degrees. The value increase amount is also 512 obtained by subtracting Kr90 (= 1023) from Kr135 (= 1535). Therefore, the increase amount difference in a certain section is obtained by calculating from the estimated count value Kp at the end of the section, the estimated count value Kp at the start of the section, and the maximum value +1 that the actual count value Kr can take as the representative angle. It can be calculated by subtracting the value {(4095 + 1) ÷ 8 = 512} divided by the number (which is also the number of sections). Further, the increment difference b1 in the first section of 0 to 45 degrees is obtained by subtracting the actual count value Kr (= Kr45 = 511) at the representative angle 45 degrees from the estimated count value Kp (= Kp45) at the representative angle 45 degrees. Can be calculated. And the calculation method of the increase amount differences b1-b8 demonstrated using this FIG. 14 is a thing with the same result as the calculation method of the increase amount differences b1-b8 demonstrated using above-mentioned FIG.

  Next, in S330, the increment differences b1 to b8 calculated in S320 are summed (integrated), and it is determined whether or not the absolute value of the sum is equal to or greater than a predetermined value. If the absolute value of the total value of the increment differences b1 to b8 is not equal to or greater than the predetermined value, the process proceeds to S340. The predetermined value used for the determination in S330 is, for example, a value corresponding to 10 degrees (= 4096 × 10/360), as in S150 of FIG.

In S340, the learning values d1 to d8 described above are obtained from the increment differences b1 to b8 recorded in the increment difference recording table in the current cycle and stored in the memory 45a.
More specifically, first, in S340, correction values c1 to c8 for correcting the increment differences b1 to b8 recorded in the increment difference recording table in S320 to obtain final learning values are used as the increment difference. In accordance with the total value of b1 to b8 (b1 + b2 + b3 + b4 + b5 + b6 + b7 + b8), it is determined based on the distribution rule shown in FIG. 9, and the determined correction values c1 to c8 are as shown in the sixth row of FIG. It records in the correction value recording table provided in the memory 45a.

  Here, as described above, the total value (total) of the increment differences b1 to b8 is equal to the estimated difference a8 at 360 degrees (final angle) in FIG. 8 described above, and the estimated count corresponding to the estimated angle. The total accumulated error (that is, the total accumulated estimation error) for one period of the value Kp is shown. Therefore, in the distribution rule of FIG. 9, the correction values c1 to c8 can be determined by replacing the estimated difference a8 in the above-described embodiment with the total value of the increase amount differences b1 to b8. Therefore, in S340, the total value of the increment differences b1 to b8 is obtained, and the corrected values c1 to c8 can be determined from the obtained total value and the distribution rule of FIG. In S340, the total value of the increment differences b1 to b8 may be calculated again. However, the total value of the increment differences b1 to b8 calculated in S330 is stored, and in S340, the sum is stored. The corrected values c1 to c8 may be determined using the total value set.

  Further, in S340, the correction value recorded in the correction value recording table from the increase amount difference bx (x is any one of 1 to 8) recorded in the increase amount difference recording table for each section, as in the above-described embodiment. A value obtained by subtracting cx (= bx−cx) is calculated as a learning value dx in the section. Then, the calculated learning values d1 to d8 for each section are recorded in a learning value recording table provided in the memory 45a as shown in the seventh row of FIG.

  Therefore, for example, if the estimated count value Kp is the value illustrated in the third stage of FIG. 14B, the increment differences b1 to b8 in each section are the fourth stage of FIG. 14B. The total value of the increase amount differences b1 to b8 (corresponding to the estimated difference a8 in the above embodiment) becomes the value shown in the fifth row of FIG. 14B, and the increase amount differences b1 to b8. The correction values c1 to c8 are the values shown in the sixth stage of FIG. 14B (Since the total value of b1 to b8 = + 2, the third stage of FIG. c6 becomes +1, and others become 0). Furthermore, the learning values d1 to d8 for each section are the values shown in the seventh row of FIG.

And when such a process of S340 is complete | finished, the said learning process will be complete | finished.
On the other hand, if it is determined in S330 that the absolute value of the sum of the increment differences b1 to b8 is greater than or equal to the predetermined value, the process proceeds to S350 and is recorded in the increment difference recording table in the current cycle. The increase amount differences b1 to b8 are invalidated. Actually, the learning values d1 to d8 are not updated by the increment differences b1 to b8 for the current one cycle by not performing the process of S340. Then, the learning process ends.

  As described above, the increment differences b1 to b8 can be calculated based on the estimated count value Kp for each representative angle. The correction values c1 to c8 can also be determined based on the total value of the increase amount differences b1 to b8.

  Note that the third stage in FIG. 8B and the fourth stage in FIG. 14B showing the increment differences b1 to b8, and the increase in the actual difference a8 in FIG. 8B and FIG. 14B. Since the total values of the quantity differences b1 to b8 are equal, the fourth stage in FIG. 8B showing the correction values c1 to c8, the sixth stage in FIG. 14B, and the learning values d1 to d8 in FIG. The fifth stage of B) and the seventh stage of FIG.

  On the other hand, in the first modification, the process of S320 in FIG. 15 corresponds to the increase amount difference calculating means. Further, the process of S340 in FIG. 15 corresponds to a correcting unit. Further, in the processing of S330 or S340 in FIG. 15, the processing for calculating the total value of the increase amount differences b1 to b8 also corresponds to the estimation error calculation means. And the process of S330 and S350 in FIG. 15 is equivalent to an update prohibition means.

[Second Modification]
Further, the increment differences b1 to b8 are calculated based on the estimated count value Kp for each of the actual detection angles at the representative angles, and the correction values c1 to c8 are determined based on the estimated difference a8. The same effect can be obtained. That is, the calculation method of FIG. 8 and the calculation method of FIG. 14 may be combined.

  Processing in this case will be described with reference to FIG. FIG. 16 is a flowchart showing a learning process performed by the difference recording unit 45 in place of the process of FIG. 7 or FIG. In FIG. 16, S110, S300, S130, S310, and S320 are the same as those in FIG. That is, in the learning process of FIG. 16, the processes after S320 are different from those of FIG. 15 of the first modification.

In the learning process of FIG. 16, when the process of S320 ends, the increase difference b1 to b8 for the current one cycle is stored in the increase difference recording table.
Then, in S140 following S320, the value of “estimated count value Kp−actual count value Kr” at that time is calculated as the estimated difference a8, and the calculated estimated difference a8 is written to a predetermined recording area.

  That is, the estimated count value Kp (= Kp360) when the actual detection angle is 360 degrees, that is, the actual count value Kr is 4095, is detected, and the estimated difference a8 is calculated by subtracting Kr360 (= 4095) from the Kp360. . When the actual count value Kr reaches a final value corresponding to 360 degrees (= 4095), the estimated difference value a8 indicates which of the estimated count value Kp (estimated angle) is relative to the actual count value Kr (actual detection angle). This is equivalent to a total accumulated estimation error for one period.

  Then, in the next S150, as in S150 of FIG. 7, it is determined whether or not the absolute value of the actual difference a8 at 360 degrees calculated in S140 is greater than or equal to a predetermined value. Otherwise, the process proceeds to S360.

  In S360, the learning values d1 to d8 described above are obtained from the increment differences b1 to b8 recorded in the increment difference recording table in the current cycle and the actual difference a8 calculated in S140, and stored in the memory 45a. Remember.

  That is, in S360, first, correction values c1 to c8 for correcting the increase amount differences b1 to b8 recorded in the increase amount difference recording table in S320 to obtain final learning values are set according to the estimated difference a8. These are determined based on the distribution rule shown in FIG. Then, similarly to the above-described embodiment, the learning values d1 to d8 for each section are calculated based on the increment differences b1 to b8 and the correction values c1 to c8.

  On the other hand, if it is determined in S150 that the absolute value of the estimated difference a8 is equal to or greater than the predetermined value, the process proceeds to S370, and the increment difference recorded in the increment difference recording table in the current cycle. b1 to b8 and the inference difference a8 are invalidated. Actually, by not performing the process of S360, the learning values d1 to d8 are not updated by the increase amount differences b1 to b8 and the estimated difference a8 for the current cycle. Then, the learning process ends.

  As shown in FIG. 16, when the increment differences b1 to b8 are calculated based on the estimated count value Kp for each representative angle, and the correction values c1 to c8 are determined based on the estimated difference a8, FIG. A) and the fifth row in FIG. 14B are read from the increase amount difference total value to the inference difference a8. Then, the learning values d1 to d8 obtained by the processing of FIG. 16 are the same values as the learning values of FIG. 8B and FIG. 14B.

  In the second modification, the process of S320 in FIG. 16 corresponds to an increase amount difference calculating unit. Further, the process of S360 in FIG. 16 corresponds to a correcting unit. Further, the process of S140 in FIG. 16 corresponds to the estimation error calculation means. The processes in S150 and S370 in FIG. 16 correspond to update prohibiting means.

  In the above embodiment, the unit angle information (which is also the unit rotation angle information) of the error correction target input from the RD conversion unit 16 to the error correction unit 17 is a pulse signal, that is, A and B from the RD conversion unit 16. Each phase signal is corrected for errors caused by manufacturing variations of the resolver 13 based on the respective phase signals, but the unit angle information (unit rotation angle information) to be corrected is Not only the pulse signal (specifically, the form of edges of the A and B phase signals), but also angle data indicating the rotation angle may be used. Actually, in the above embodiment, the actual count value Kr corresponds to the angle data as the unit angle information to be corrected in the error correction unit 17.

  Note that if the angle data indicating the rotation angle is input to the error correction unit 17, the actual count value Kr is directly input. In this case, the error correction unit 17 performs exclusive logic. The sum calculator 41 and the actual pulse counter 42 are not necessary. In this case, the fact that the angle data input to the error correction unit 17 has reached an initial value (usually 0) indicating the origin of angle detection corresponds to the generation of a Z-phase signal. That is, the initial value of the angle data values corresponds to the reference angle information.

  Further, the rotation detection means is not limited to the resolver 13 and the RD conversion unit 16. For example, the above-described incremental encoder, absolute encoder, and vertical hole as described in Patent Document 2 are used. A sensor in which an element and a magnetoresistive element (MRE) are combined may be used.

  Here, FIG. 17 shows a configuration example of a rotation sensor as a rotation detection unit combining a vertical Hall element and a magnetoresistive element. FIG. 17A is a plan view of the rotation sensor, and FIG. 17B is a cross-sectional view taken along the line AA in FIG.

  In the rotation sensor of FIG. 17, a magnet rotor 51 is used as an object to be detected, and the magnet rotor 51 has a bottomed cylindrical rotor body 52. On the inner side (inner surface) of the rotor body 52, an S pole permanent magnet 53 and an N pole permanent magnet 54 are arranged to face each other. Further, a semiconductor chip 55 as a sensor chip is disposed apart from the permanent magnets 53 and 54 at a portion where the S-pole permanent magnet 53 and the N-pole permanent magnet 45 are opposed to each other inside the rotor body 52. A magnetic field is applied to the semiconductor chip 55 by the permanent magnets 53 and 54.

  With such a configuration, the S-pole permanent magnet 53 and the N-pole permanent magnet 54 are arranged to face each other with the semiconductor chip 55 interposed therebetween. As the magnet rotor 51 rotates, the S-pole permanent magnet 3 and the N-pole permanent magnet 4 rotate around the semiconductor chip 55 while facing each other.

  On the other hand, a vertical Hall element 61 is built in the semiconductor chip 55, and the vertical Hall element 61 is a semiconductor chip due to the Hall effect generated with the rotation of the S pole permanent magnet 53 and the N pole permanent magnet 54. A magnetic field parallel to the surface of 55 is detected. Magnetoresistive elements 62 and 63 are also formed on the semiconductor chip 55, and the resistance values of the magnetoresistive elements 62 and 63 change depending on the strength of the magnetic field parallel to the surface of the semiconductor chip 55.

In this rotation sensor, the rotation angle is detected by using the output signal of the vertical Hall element 61 and the output signals of the magnetoresistive elements 62 and 63.
In the above embodiment, the rotation angle detection unit 35 is provided separately from the microcomputer 37. Of the RD conversion unit 16 and the error correction unit 17 constituting the rotation angle detection unit 35, for example, the error correction unit 17 is provided. You may make it incorporate in the microcomputer 37, and you may make it incorporate both the error correction | amendment part 17 and the RD conversion part 16 (namely, rotation angle detection part 35 whole) in the microcomputer 37. FIG.

  In the above embodiment, the case where the present invention is applied to an electric vehicle has been described. However, the application to the electric vehicle is merely an example, and the present invention includes, for example, an internal combustion engine and a motor as a driving power source. The present invention can be applied to any vehicle equipped with a motor as a driving power source, such as a so-called hybrid car or a train (railway vehicle).

  In the above embodiment, the case in which the resolution (angle detection resolution) of the RD conversion unit 16 is 12 bits or 11 bits has been described as an example. However, the resolution is not limited to 11 bits or 12 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 It can be set to an arbitrary number of bits such as 23 bits, 24 bits, 25 bits, 26 bits, 27 bits, 28 bits, 29 bits, 30 bits, 31 bits, 32 bits, and 64 bits. Further, it can be arbitrarily combined with an axial multiplication angle that is an integer. For example, the resolver 13 having a shaft angle multiplier of 3 and the RD converter 16 having a resolution of 16 bits may be combined.

  In the above-described embodiment, the calculation method of the estimated pulse width is the time obtained by dividing the actual one cycle time required for the resolver 13 to make one rotation immediately before by the resolution of the resolver 13. However, in addition to the above method, a method for calculating the estimated pulse width is conceivable. For example, the time for two periods between the pulse edge rising timings of the previous and third Z-phase signals may be measured, and the estimated pulse width may be calculated from the measured two period times. That is, n cycle times including at least one cycle time may be used for the calculation of the estimated pulse width.

  In the said embodiment, it demonstrated using FIG. 9 as a rule at the time of determining a correction value. However, the rule for determining the correction value is not limited to that in FIG. 9, and any other rule can be used as long as it can distribute the estimated difference (total cumulative estimation error) of the section including the final angle as evenly as possible. It may be a rule. Specifically, when the absolute value of the estimated difference at the final angle is smaller than the number of representative angles (number of sections), if the correction value of each section is set to 1 or 0, the rule as shown in FIG. It is not necessary. As an example, the correction value may be preferentially arranged in a section including an angle that is a quotient of the largest representative angle (final angle) / n. Here, n is a natural number of 1 or more. Furthermore, n is all natural numbers less than or equal to the absolute value of the estimated difference when the absolute value of the estimated difference at the final angle is less than or equal to the number of sections. If it is larger, the distribution is determined by a combination of n when the absolute value of the estimated difference at the final angle is equal to or less than the number of sections.

  That is, if the number of sections is 3, n = 1 when the absolute value of the estimated difference at the final angle is 1, n = 1, 2 when the absolute value of the estimated difference is 2, and the absolute value of the estimated difference is 3. When n = 1, 2, 3 and the absolute value of the estimated difference is 4, the distribution is performed by combining n when the absolute value of the estimated difference is 1 and n when the absolute value of the estimated difference is 3. decide.

  If an example is demonstrated using a specific example, the angle which the resolver 13 can take is 0 degree-360 degree | times, and this is 3 to 3 types of angle ranges, 1-120 degree | times, 121-240 degree | times, and 241 degree-360 degree | times. Consider the case of equal division. Here, if the estimated difference at the final angle of 360 degrees is +1, 360 ÷ 1 = 360, the correction value of 241 degrees to 360 degrees including 360 degrees is set to +1, and the correction values of other sections are set to +1. 0. On the other hand, if the estimated difference of the final angle is +2, n = 1 is 360 ÷ 1 = 360, n = 2 is 360 ÷ 2 = 180, and the correction value of 121 to 240 degrees including 180 degrees is +1. The correction value of 241 to 360 degrees including 360 degrees is set to +1, and the correction value of other sections is set to 0. Then, if the actual difference of the final angle is +3, n = 1 = 1, 360 ÷ 1 = 360, n = 2 = 360 ÷ 2 = 180, n = 3 = 360 ÷ 3 = 120, 1 to 120 degrees , 121 to 240 degrees, 241 degrees to 360 degrees, the correction value of each section is +1. Further, if the estimated difference of the final angle is +4, the absolute value of the estimated difference at the final angle is larger than the number of sections, so that the estimated value of the final angle is changed to the correction value when the estimated difference of the final angle is +3. The correction value when the difference is +1 is added. Therefore, the correction value in the 241 to 360 degree interval is +2, and the correction value in the other interval is +1.

  In the above embodiment, the RD conversion unit 16 is arranged in the ECU 7. However, the RD conversion unit 16 may be disposed not on the ECU 7 but on the resolver 13 side, or may be disposed on the resolver 13 side instead of in the ECU 7. In this case, the ECU 7 receives three types of signals, that is, a Z-phase signal, an A-phase signal, and a B-phase signal.

  In the above embodiment, the exclusive OR operation unit 41 and the actual pulse counter 42 are arranged in the ECU 7. However, both the exclusive OR operation unit 41 and the actual pulse counter 42 or only the exclusive OR operation unit 41 may be arranged not on the ECU 7 but on the resolver 13 side, or arranged separately from the ECU 7 and the resolver 13. You may do it. When only the exclusive OR operation unit 41 is arranged not on the ECU 7 but on the resolver 13 side, the actual pulse Pr is directly input to the ECU 7. When both the exclusive OR operation unit 41 and the actual pulse counter 42 are arranged not on the ECU 7 but on the resolver 13 side, the actual count value is directly input to the ECU 7.

  The function of the error correction unit 17 may be realized inside the microcomputer 37, or may be realized on a microcomputer provided separately from the microcomputer 37 or on a circuit provided separately from the microcomputer 37. Further, as described above, some functions of the error correction unit 17 may be arranged on the resolver 13 side, or on a microcomputer provided separately from the microcomputer 37 or on an IC provided separately from the microcomputer 37. It may be realized with. More specifically, the correction count unit 47 can be realized on the microcomputer 37 or a microcomputer different from the microcomputer 37 or an IC. The correction amount calculation unit 46 can be realized on the microcomputer 37 or a microcomputer different from the microcomputer 37 or an IC. The difference recording unit 45 can be realized on the microcomputer 37, a microcomputer different from the microcomputer 37, or an IC. The actual pulse counter 42 can be realized on the microcomputer 37, a microcomputer different from the microcomputer 37, or an IC. The estimated pulse counter 44 can be realized on the microcomputer 37, a microcomputer different from the microcomputer 37, or an IC. The exclusive OR operation unit 41 can be realized on the microcomputer 37 or a microcomputer different from the microcomputer 37 or an IC. The estimated angle pulse signal generation unit 43 can be realized on the microcomputer 37 or a microcomputer different from the microcomputer 37 or an IC. When these functions are realized on a microcomputer or IC different from the microcomputer 37, the other microcomputer or IC is not in the ECU or in the ECU 7, but on the resolver 13 side or in the ECU 7 and The resolver 13 may be disposed separately.

  Execution instructions for processing performed by the correction count unit 47, the correction amount calculation unit 46, the difference recording unit 45, the actual pulse counter 42, the estimation pulse counter 44, the exclusive OR calculation unit 41, and the estimation angle pulse signal generation unit 43 (ie, The program for causing the computer to realize these functions) is stored in a recording medium in the ECU 37 (for example, a non-volatile memory such as a ROM or EEPROM), so that the function of the error correction unit 17 can be controlled by the microcomputer 37. Alternatively, it can be realized by executing the program by a microcomputer different from the microcomputer 37.

  In the case where the microcomputer 37 includes a circuit provided separately from the processor and the processor, the correction count unit 47 and the correction amount calculation unit include a circuit including discrete elements such as transistors and diodes provided separately from the processor. 46, the function of the difference recording unit 45, the actual pulse counter 42, the estimated pulse counter 44, the exclusive OR calculation unit 41, and the estimated angle pulse signal generation unit 43 may be realized. When the function of the error correction unit 17 is realized by a circuit different from the processor as described above, the processor is not burdened when the function of the error correction unit 17 is executed.

  In the above embodiment, the actual difference recording table, the increase difference recording table, the correction value recording table, and the learning value recording table are recorded in the memory 45a. However, the actual difference recording table, the increase difference recording table, the correction value recording table, and the learning value recording table may be stored in different memories. Further, some of the actual difference recording table, the increase difference recording table, the correction value recording table, and the learning value recording table may be stored together in one memory. On the other hand, if the memory 45a is disposed inside the ECU 7, it may be disposed in the error correction unit 17 as shown in FIG. 3, or only the memory may be disposed in the microcomputer 37.

  On the other hand, as a response to claim 13, the configuration from the resolver 13 to the exclusive OR operation unit 41 and the actual pulse counter 42 corresponds to a rotation sensor, and the estimated angle pulse signal generation unit 43 corresponds to an estimated pulse generator. The estimated pulse counter 44 corresponds to the counter, and the table shown in FIG. 8 stored in the memory 45a of the difference recording unit 45 corresponds to the memory. The correction amount calculation unit 46, the correction count unit 47, and the microcomputer 37 Corresponds to a controller.

  On the other hand, as the correspondence of claim 14, the exclusive OR operation unit 41 and the actual pulse counter 42 correspond to the actual detection angle calculation unit, and the estimated angle pulse signal generation unit 43 and the estimated pulse counter 44 include the estimated angle calculation unit. The difference recording unit 45 corresponds to an estimation error calculation unit, an increase amount difference calculation unit, and a learning value calculation unit, and the correction amount calculation unit 46 and the correction count unit 47 correspond to an output processing unit.

  DESCRIPTION OF SYMBOLS 1 ... Motor, 1a ... Output shaft, 3 ... Battery, 5 ... Inverter, 7 ... Driving motor control apparatus (ECU), 9 ... Differential gear, 11 ... Drive wheel, 13 ... Resolver, 16 ... RD conversion part, 17 ... Error correction unit, 21, 22, 23 ... current supply line, 25, 26, 27 ... current sensor, 31 ... accelerator sensor, 32 ... brake sensor, 33 ... shift position sensor, 35 ... rotation angle detection unit, 37 ... microcomputer, DESCRIPTION OF SYMBOLS 39 ... Pulse width modulation circuit, 41 ... Exclusive OR operation part, 42 ... Real pulse counter, 43 ... Estimated angle pulse signal generation part, 44 ... Estimated pulse counter, 45 ... Difference recording part, 45a ... Memory, 46 ... Correction Quantity calculation unit, 47... Correction count unit

Claims (14)

  1. A motor to be a power source for traveling,
    Each time the motor rotates by a reference angle of 360 degrees / n (n is an integer of 1 or more), reference angle information indicating that is output, and the motor rotates by a certain unit angle smaller than the reference angle. Rotation detection means for outputting unit angle information indicating the rotation angle of the motor with reference to the output timing of the reference angle information,
    A vehicle drive motor control device for controlling energization to the motor using the reference angle information and the unit angle information,
    Correction means for correcting an error in the unit angle information and outputting correction angle information indicating a rotation angle of the motor with reference to an output timing of the reference angle information is provided to the motor based on the correction angle information. Is configured to control the energization of
    The correction means includes
    At each output timing of the reference angle information, one cycle time from the previous output of the reference angle information to the current output time is measured, and the motor is rotated in the subsequent rotation of the motor based on the measured one cycle time. Time estimation means for estimating the time required for the unit angle to rotate,
    Every time the estimated time, which is the time estimated by the time estimating means, elapses from the output timing of the reference angle information, it is estimated that the motor has rotated the unit angle during the estimated time, and the reference An angle estimation means for estimating a rotation angle of the motor with reference to an output timing of angle information, and outputting the estimation result as estimated angle information;
    In one cycle that is the output interval of the reference angle information, the actual detection angle that is the rotation angle indicated by the unit angle information becomes each of a plurality of representative angles including the final angle that is the final value of the actual detection angle. Each time, an estimated difference calculation means for calculating an estimated difference indicating how far the estimated angle, which is the rotation angle indicated by the estimated angle information, has advanced with respect to the actual detected angle;
    Based on the estimated difference at each representative angle for the one period calculated by the estimated difference calculating means, the actual detected angle is determined from the initial value at the output timing of the reference angle information, from the representative angle. For each of the interval up to the smallest minimum representative angle and the interval between adjacent representative angles, how much the estimated angle increases with respect to the increase in the actual detection angle in each interval. An increase amount difference calculating means for calculating an increase amount difference indicating whether or not, and storing the increase amount difference in a storage unit in an identifiable manner,
    The increment difference for the one cycle stored in the storage unit by the increment difference calculating unit is converted into the actual difference at the final angle calculated by the actual difference calculating unit in the same one cycle. Correction means to correct accordingly,
    The correction angle is output each time the unit angle information is output based on the initialization process for setting the value of the correction angle information to the initial value at the output timing of the reference angle information and the output timing of the reference angle information. An output update process for increasing the value of information by a value corresponding to the unit angle, a section until the actual detection angle reaches the minimum representative angle from the output timing of the reference angle information, and the actual detection angle is the representative In each of the sections from one of the angles to the next representative angle, the amount of increase in the value of the correction angle information in the section corresponds to the section, and the storage unit Output processing means for performing correction processing for changing a value to be increased in the output update processing so as to increase only the increase amount difference stored in
    A vehicle drive motor control device comprising:
  2. In the vehicle motor controller for a vehicle according to claim 1,
    The correcting means is
    As the process for the correction, the sum of the increment differences for the one cycle stored in the storage unit by the increment difference calculation unit is calculated at the final angle calculated by the inference difference calculation unit. Performing a process that reduces only the inference difference,
    A vehicle drive motor control apparatus characterized by the above.
  3. In the vehicle travel motor control device according to claim 2,
    The correcting means is
    When the absolute value of the actual difference at the final angle calculated by the actual difference calculation means is larger than the value corresponding to the unit angle, the actual value at the final angle is processed as the correction process. The difference is divided into N values (N is an integer of 2 or more), and among the increase difference for one cycle stored in the storage unit by the increase difference calculation means, N increase difference A process of subtracting each of the divided N values from each of
    A vehicle drive motor control apparatus characterized by the above.
  4. In the vehicle travel motor control device according to any one of claims 1 to 3,
    When the absolute value of the actual difference at the final angle calculated by the actual difference calculating means when the actual detection angle becomes the final angle is greater than or equal to a predetermined value, Update prohibiting means for invalidating the actual difference calculated by the actual difference calculating means and prohibiting the output processing means from updating the increase amount difference in the storage unit used in the correction processing; ,
    A vehicle drive motor control apparatus characterized by the above.
  5. The vehicle motor controller for a vehicle according to any one of claims 1 to 4,
    The time estimation means includes
    The time obtained by subtracting the one cycle time measured last time from the one cycle time measured this time and the one cycle time measured this time are calculated as the estimated value of the next one cycle time, and the calculation is performed. Estimating the time required for the motor to rotate the unit angle based on an estimated value of one cycle time;
    A vehicle drive motor control apparatus characterized by the above.
  6. A motor to be a power source for traveling,
    Each time the motor rotates by a reference angle of 360 degrees / n (n is an integer of 1 or more), reference angle information indicating that is output, and the motor rotates by a certain unit angle smaller than the reference angle. Rotation detection means for outputting unit angle information indicating the rotation angle of the motor with reference to the output timing of the reference angle information,
    A vehicle drive motor control device for controlling energization to the motor using the reference angle information and the unit angle information,
    Correction means for correcting an error in the unit angle information and outputting correction angle information indicating a rotation angle of the motor with reference to an output timing of the reference angle information is provided to the motor based on the correction angle information. Is configured to control the energization of
    The correction means includes
    At each output timing of the reference angle information, one cycle time from the previous output of the reference angle information to the current output time is measured, and the motor is rotated in the subsequent rotation of the motor based on the measured one cycle time. Time estimation means for estimating the time required for the unit angle to rotate,
    Every time the estimated time, which is the time estimated by the time estimating means, elapses from the output timing of the reference angle information, it is estimated that the motor has rotated the unit angle during the estimated time, and the reference An angle estimation means for estimating a rotation angle of the motor with reference to an output timing of angle information, and outputting the estimation result as estimated angle information;
    In one cycle that is the output interval of the reference angle information, the actual detection angle that is the rotation angle indicated by the unit angle information becomes each of a plurality of representative angles including the final angle that is the final value of the actual detection angle. Each time, an estimated difference calculation means for calculating an estimated difference indicating how far the estimated angle, which is the rotation angle indicated by the estimated angle information, has advanced with respect to the actual detected angle;
    Based on the estimated difference at each representative angle for the one period calculated by the estimated difference calculating means, the actual detected angle is determined from the initial value at the output timing of the reference angle information, from the representative angle. For each of the interval up to the smallest minimum representative angle and the interval between adjacent representative angles, how much the estimated angle increases with respect to the increase in the actual detection angle in each interval. An increase amount difference calculating means for calculating an increase amount difference indicating whether or not, and storing the increase amount difference in a storage unit in an identifiable manner,
    Correction means for correcting the increase amount difference for the one period stored in the storage unit by the increase amount difference calculation means so that the sum thereof becomes zero;
    The correction angle is output each time the unit angle information is output based on the initialization process for setting the value of the correction angle information to the initial value at the output timing of the reference angle information and the output timing of the reference angle information. An output update process for increasing the value of information by a value corresponding to the unit angle, a section until the actual detection angle reaches the minimum representative angle from the output timing of the reference angle information, and the actual detection angle is the representative In each of the sections from one of the angles to the next representative angle, the amount of increase in the value of the correction angle information in the section corresponds to the section, and the storage unit Output processing means for performing correction processing for changing a value to be increased in the output update processing so as to increase only the increase amount difference stored in
    A vehicle drive motor control device comprising:
  7. A motor to be a power source for traveling,
    Each time the motor rotates by a reference angle of 360 degrees / n (n is an integer of 1 or more), reference angle information indicating that is output, and the motor rotates by a certain unit angle smaller than the reference angle. Rotation detection means for outputting unit angle information indicating the rotation angle of the motor with reference to the output timing of the reference angle information,
    A vehicle drive motor control device for controlling energization to the motor using the reference angle information and the unit angle information,
    Correction means for correcting an error in the unit angle information and outputting correction angle information indicating a rotation angle of the motor with reference to an output timing of the reference angle information is provided to the motor based on the correction angle information. Is configured to control the energization of
    The correction means includes
    At each output timing of the reference angle information, one cycle time from the previous output of the reference angle information to the current output time is measured, and the motor is rotated in the subsequent rotation of the motor based on the measured one cycle time. Time estimation means for estimating the time required for the unit angle to rotate,
    Every time the estimated time, which is the time estimated by the time estimating means, elapses from the output timing of the reference angle information, it is estimated that the motor has rotated the unit angle during the estimated time, and the reference An angle estimation means for estimating a rotation angle of the motor with reference to an output timing of angle information, and outputting the estimation result as estimated angle information;
    For each cycle that is the output interval of the reference angle information, the actual detection angle that is the rotation angle indicated by the unit angle information is the final value of the actual detection angle from the initial value at the output timing of the reference angle information. The estimated angle with respect to the amount of increase in the actual detection angle in each of the sections up to the smallest minimum representative angle among the plurality of representative angles included and the section of the representative angles adjacent to each other An increase amount difference indicating how much the estimated angle increase amount that is the rotation angle indicated by the information is large is calculated, and the increase amount difference is stored in the storage unit so that it can be identified to which section. An increase amount difference calculating means,
    Estimated error calculating means for calculating a total accumulated estimated error indicating an error of the estimated angle for each cycle and indicating how far the estimated angle has advanced with respect to the actual detected angle. When,
    The increment difference for one cycle stored in the storage unit by the increment difference calculating unit is corrected according to the total accumulated estimation error calculated by the estimation error calculating unit for the same one cycle. Correction means;
    The correction angle is output each time the unit angle information is output based on the initialization process for setting the value of the correction angle information to the initial value at the output timing of the reference angle information and the output timing of the reference angle information. An output update process for increasing the value of information by a value corresponding to the unit angle, a section until the actual detection angle reaches the minimum representative angle from the output timing of the reference angle information, and the actual detection angle is the representative In each of the sections from one of the angles to the next representative angle, the amount of increase in the value of the correction angle information in the section corresponds to the section, and the storage unit Output processing means for performing correction processing for changing a value to be increased in the output update processing so as to increase only the increase amount difference stored in
    A vehicle drive motor control device comprising:
  8. The travel motor control device for a vehicle according to claim 7,
    The correcting means is
    Performing the process of reducing the total sum of the increment differences for the one period stored in the storage unit by the increment difference calculating means by the total accumulated estimation error as the process for the correction,
    A vehicle drive motor control apparatus characterized by the above.
  9. The travel motor control device for a vehicle according to claim 8,
    The correcting means is
    When the absolute value of the total cumulative estimation error is larger than a value corresponding to the unit angle, the total cumulative estimation error is divided into N values (N is an integer of 2 or more) as the correction process. And processing for subtracting each of the divided N values from each of the N increment differences among the increment differences for the one period stored in the storage unit by the increment difference calculating means. To do the
    A vehicle drive motor control apparatus characterized by the above.
  10. The vehicle travel motor control device according to any one of claims 7 to 9,
    When the absolute value of the total accumulated estimation error calculated by the estimation error calculation means is greater than or equal to a predetermined value, the output processing means prohibits the update amount difference in the storage unit used in the correction process from being updated. Having update prohibition means,
    A vehicle drive motor control apparatus characterized by the above.
  11. The vehicle travel motor control device according to any one of claims 7 to 10,
    The time estimation means includes
    The time obtained by subtracting the one cycle time measured last time from the one cycle time measured this time and the one cycle time measured this time are calculated as the estimated value of the next one cycle time, and the calculation is performed. Estimating the time required for the motor to rotate the unit angle based on an estimated value of one cycle time;
    A vehicle drive motor control apparatus characterized by the above.
  12. A motor to be a power source for traveling,
    Each time the motor rotates by a reference angle of 360 degrees / n (n is an integer of 1 or more), reference angle information indicating that is output, and the motor rotates by a certain unit angle smaller than the reference angle. Rotation detection means for outputting unit angle information indicating the rotation angle of the motor with reference to the output timing of the reference angle information,
    A vehicle drive motor control device for controlling energization to the motor using the reference angle information and the unit angle information,
    Correction means for correcting an error in the unit angle information and outputting correction angle information indicating a rotation angle of the motor with reference to an output timing of the reference angle information is provided to the motor based on the correction angle information. Is configured to control the energization of
    The correction means includes
    At each output timing of the reference angle information, one cycle time from the previous output of the reference angle information to the current output time is measured, and the motor is rotated in the subsequent rotation of the motor based on the measured one cycle time. Time estimation means for estimating the time required for the unit angle to rotate,
    Every time the estimated time, which is the time estimated by the time estimating means, elapses from the output timing of the reference angle information, it is estimated that the motor has rotated the unit angle during the estimated time, and the reference An angle estimation means for estimating a rotation angle of the motor with reference to an output timing of angle information, and outputting the estimation result as estimated angle information;
    For each cycle that is the output interval of the reference angle information, the actual detection angle that is the rotation angle indicated by the unit angle information is the final value of the actual detection angle from the initial value at the output timing of the reference angle information. The estimated angle with respect to the amount of increase in the actual detection angle in each of the sections up to the smallest minimum representative angle among the plurality of representative angles included and the section of the representative angles adjacent to each other An increase amount difference indicating how much the estimated angle increase amount that is the rotation angle indicated by the information is large is calculated, and the increase amount difference is stored in the storage unit so that it can be identified to which section. An increase amount difference calculating means,
    Correction means for correcting the increase amount difference for the one period stored in the storage unit by the increase amount difference calculation means so that the sum thereof becomes zero;
    The correction angle is output each time the unit angle information is output based on the initialization process for setting the value of the correction angle information to the initial value at the output timing of the reference angle information and the output timing of the reference angle information. An output update process for increasing the value of information by a value corresponding to the unit angle, a section until the actual detection angle reaches the minimum representative angle from the output timing of the reference angle information, and the actual detection angle is the representative In each of the sections from one of the angles to the next representative angle, the amount of increase in the value of the correction angle information in the section corresponds to the section, and the storage unit Output processing means for performing correction processing for changing a value to be increased in the output update processing so as to increase only the increase amount difference stored in
    A vehicle drive motor control device comprising:
  13. A motor for supplying the driving force of the vehicle;
    A rotation sensor for detecting a rotation angle of the motor, which outputs reference angle information each time the motor rotates by a reference angle and rotates the motor by a certain unit angle smaller than the reference angle. The actual detection angle information is output every time, and the actual detection angle information indicates the actual detection angle that the motor has rotated with reference to the timing at which the reference angle information is output. A sensor,
    A controller connected to the rotation sensor and the motor, receiving the actual detection angle information and the reference angle information from the rotation sensor, and outputting an energization control command to the motor;
    An estimation pulse generator connected to the rotation sensor, measuring a period interval of the reference angle information every time the reference angle information is output, and based on the measured interval, the motor An estimation pulse generator that calculates an estimation time required to rotate by a unit angle and generates an estimation pulse based on the estimation time;
    A counter connected to the rotation sensor and the estimated pulse generator, each time the estimated pulse is input under the assumption that the motor rotates by the unit angle while the estimated time elapses. By counting the estimated pulses, an estimated angle that is an estimated value of the rotation angle of the motor measured with reference to the timing at which the reference angle information is output is calculated, and estimated angle information indicating the estimated angle is calculated. A counter to output,
    And a memory,
    The memory stores a plurality of first differences for each of a plurality of representative angles in one cycle of the reference angle information, and each of the plurality of first differences has an actual detection angle in the one cycle. Recorded each time a value corresponding to one of the plurality of representative angles is obtained, the plurality of representative angles includes a final angle corresponding to a final value of the actual detection angle, and the plurality of first differences are Indicates the amount by which the estimated angle is advanced relative to the actual detected angle;
    The memory further stores a plurality of second differences for each of a plurality of angle sections, and each of the plurality of second differences is a plurality of the first first values of the plurality of representative angles stored in the memory. Calculated based on the difference, and one of the plurality of angle sections is between an initial value of the actual detection angle at a timing when the reference angle information is output and a minimum representative angle of the plurality of representative angles. And the other of the plurality of angle sections is defined as between adjacent ones of the plurality of representative angles, and each of the plurality of second differences is an angle section corresponding to the second difference. , Indicating the amount by which the increase amount of the estimated angle is advanced with respect to the increase amount of the actual detection angle,
    The memory further stores a plurality of learning values for each of the plurality of angle sections, and the learning value is obtained by using the plurality of second differences stored in the memory as a part of the plurality of first differences. Calculated by correcting according to the first difference at the final angle,
    The controller is
    An initialization command for setting a value of correction angle information indicating a correction angle of rotation of the motor to the initial value when the reference angle information is output;
    An output update command for increasing the value of the correction angle information by a predetermined value corresponding to the unit angle each time the actual detection angle information is output with reference to the output timing of the reference angle information;
    While the actual detection angle changes in each of the plurality of angle sections, one learning value corresponding to the current angle section among the plurality of learning values stored in the memory is stored in the memory. A correction command for increasing the amount of increase in the value of the correction angle information by the indicated value, and
    Outputting the energization control command calculated based on the correction angle information to the motor;
    A motor control system for a vehicle.
  14. A rotation detection device for detecting rotation of a motor that supplies driving force of a vehicle,
    Each time the motor rotates by a predetermined reference angle, reference angle information is received, and every time the motor rotates by a unit angle based on a predetermined resolution value smaller than the reference angle, unit rotation angle information is received, Based on the reference angle information and the unit rotation angle information, actual detection angle information indicating an actual detection angle of rotation of the motor measured with reference to a reference timing when the reference angle information is received is calculated. An actual detection angle calculating means for
    A period of one cycle that is an interval at which the reference angle information is received is measured, and based on the measured time and the resolution value, an estimation indicating an estimated angle of rotation of the motor measured with reference to the reference timing Estimated angle calculating means for calculating angle information;
    An estimation error calculating means for calculating a total cumulative estimation error indicating a difference between the estimated angle information and the actual detected angle information in the one cycle;
    In the one cycle, for each of a plurality of angle intervals defined in the one cycle, a difference between the increase amount of the estimated angle information and the increase amount of the actual detection angle information in the angle interval is indicated. An increase amount difference calculating means for calculating a plurality of increase amount differences;
    A plurality of learning values are calculated by correcting the plurality of increment differences for the one period according to the total accumulated estimation error, and each of the calculated learning values is calculated for each of the plurality of angle sections. Learning value calculation means for storing in the storage unit so as to relate to
    In each of the plurality of angle sections, the amount of change in the actual detection angle information is only a value indicated by one learning value corresponding to the current angle section among the plurality of learning values stored in the storage unit. Output processing means for correcting the actual detection angle information so as to be changed, and outputting the corrected value as correction angle information indicating a corrected rotation angle of the motor;
    A rotation detection device comprising:
JP2010240998A 2009-11-27 2010-10-27 Vehicle travel motor control device, vehicle motor control system, and rotation detection device Active JP5381958B2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009270016 2009-11-27
JP2009270016 2009-11-27
JP2010240998A JP5381958B2 (en) 2009-11-27 2010-10-27 Vehicle travel motor control device, vehicle motor control system, and rotation detection device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010240998A JP5381958B2 (en) 2009-11-27 2010-10-27 Vehicle travel motor control device, vehicle motor control system, and rotation detection device
US12/927,833 US8487563B2 (en) 2009-11-27 2010-11-24 Drive motor control apparatus for vehicle, motor control system, method for correcting rotation angle of motor, program for performing the same, rotation detecting apparatus
DE201010052712 DE102010052712A1 (en) 2009-11-27 2010-11-26 Motor control system, method for correcting rotation angle of motor, program for performing the same, totative detecting apparatus

Publications (2)

Publication Number Publication Date
JP2011135765A JP2011135765A (en) 2011-07-07
JP5381958B2 true JP5381958B2 (en) 2014-01-08

Family

ID=44347890

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010240998A Active JP5381958B2 (en) 2009-11-27 2010-10-27 Vehicle travel motor control device, vehicle motor control system, and rotation detection device

Country Status (1)

Country Link
JP (1) JP5381958B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT513714B1 (en) * 2012-12-12 2015-02-15 Avl List Gmbh Method for assessing the controllability of a vehicle

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3644174B2 (en) * 1997-01-29 2005-04-27 株式会社デンソー Electric vehicle control equipment
JP3472533B2 (en) * 2000-08-03 2003-12-02 シャープ株式会社 Motor control device
JP2002325493A (en) * 2001-04-27 2002-11-08 Hitachi Car Eng Co Ltd Motor controller
JP4007197B2 (en) * 2003-01-16 2007-11-14 トヨタ自動車株式会社 Motor control device
JP4059094B2 (en) * 2003-02-03 2008-03-12 トヨタ自動車株式会社 Computer-readable recording medium storing a program for causing a computer to execute correction of sensor values of an electric motor control device and a rotational position sensor
JP4940965B2 (en) * 2007-01-29 2012-05-30 株式会社デンソー Rotation sensor and rotation sensor device

Also Published As

Publication number Publication date
JP2011135765A (en) 2011-07-07

Similar Documents

Publication Publication Date Title
RU2663224C1 (en) Method of assessment of the position and structure control device
US10040475B2 (en) Malfunction detection device for resolver
CN102806942B (en) Electric power steering control method and system
US7746023B2 (en) Position detecting device and synchronous motor driving device using the same
JP5126325B2 (en) Rotation angle detection device and electric power steering device using the same
US9225274B2 (en) Method and apparatus for estimating angles in a synchronous machine
EP3045871B1 (en) Rotational-angle detection device and electric power-steering device provided with rotational-angle detection device
JP4835959B2 (en) Rotating electrical machine control device
US9065365B2 (en) Control device of AC motor
CN102055388B (en) Motor control apparatus
CN101911467B (en) Motor control device and electric power steering device
JP5058334B2 (en) Rotation angle detector
JP5942337B2 (en) Vehicle steering system
US7565947B2 (en) Vehicular steering system
JP4568298B2 (en) Position detection device
US6566830B2 (en) Method and system for controlling a permanent magnet machine
US7841231B2 (en) Steering angle sensing apparatus and method thereof
US8364349B2 (en) Motor controller and electric power steering apparatus with temperature detector of the motor
US20070080016A1 (en) Electric power steering apparatus
JP5228578B2 (en) Motor control device and electric power steering device
EP2309231B1 (en) Rotational angle detection device and electric power steering system
US20110148336A1 (en) Motor control device and method for controlling brushless motor
CN105691444A (en) Electric power steering system for vehicle
JP2011013006A (en) Electric motor drive control device
JP4139157B2 (en) Vehicle steering control system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120403

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130830

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130916

R151 Written notification of patent or utility model registration

Ref document number: 5381958

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250