Internal combustion engine control device

JPWO2025182061A5Pending Publication Date: 2026-04-27
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2026-01-26
Publication Date
2026-04-27

AI Technical Summary

Technical Problem

Existing control systems for internal combustion engines face inaccuracies due to manufacturing errors in crank angle detection, leading to erroneous learning and increased calculation processing loads, which degrade the accuracy of combustion state estimation.

Method used

A control device that includes an angle information detection unit, an angle information correction unit, an axial torque estimating unit, and a correction value changing unit to determine the completion of error correction in crank angle detection, using a physical model equation to estimate axial torque and adjust correction values based on ideal angular velocities.

Benefits of technology

Accurately determines the completion of correction processes, improving the precision of crank angular velocity and torque estimation, thereby enhancing the accuracy of internal combustion engine control.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

Provided is an internal combustion engine control device with which, in a case where error correction processing is performed on a detected unit, it is possible to determine whether or not error correction has been completed. This internal combustion engine control device (50) determines, on the basis of a correction value (Kc) of each of angle sections (Sd), a time interval (ΔTd) and an angle interval (Δθd) or a detection section angular velocity (ωsd) in each detection section (Sd) before correction processing using the correction value of each of the angle sections (Sd), and an ideal section angular velocity (ωid) in each of the angle sections (Sd), whether or not changing of the correction values has been completed for all the angle sections of one rotation of a crankshaft as a whole.
Need to check novelty before this filing date? Find Prior Art

Description

Control device for internal combustion engine

[0001] The present disclosure relates to a control device for an internal combustion engine.

[0002] With regard to the above-described control device, the technologies described in the following Patent Documents 1 and 2 are already known, for example. The technology in Patent Document 1 is configured to calculate a crank angular velocity and a crank angular acceleration based on an output signal from a crank angle sensor, calculate a gas pressure torque generated by combustion based on the crank angular velocity and the crank angular acceleration, and calculate the amount of work due to the gas pressure torque.

[0003] The technology of Patent Document 2 is configured to detect the instantaneous rotation speed of the crankshaft based on the output signal of a crank angle sensor, calculate measurement parameters based on the instantaneous rotation speed, obtain ideal parameters corresponding to the average speed of the instantaneous rotation speed from a storage means, and learn the error of the measurement parameters relative to the ideal parameters.

[0004] JP 2009-275618 A JP 2013-87724 A

[0005] However, if there is a manufacturing error in the detected part, a detection error occurs in the crank angular velocity and the crank angular acceleration. However, Patent Document 1 does not disclose a specific method for dealing with this detection error. Therefore, the technology of Patent Document 1 may deteriorate the accuracy of control based on the crank angular velocity and the crank angular acceleration.

[0006] In the technology of Patent Document 2, the ideal parameters are thought to change depending on the operating state and the external load, so learning based on the ideal parameters may result in erroneous learning.

[0007] Furthermore, when performing error correction processing for the detected part, it is necessary to determine whether the error correction is complete. This is because continuing the correction processing even though the error correction has been completed increases the calculation processing load, and if the error correction is not completed, the accuracy of estimating the combustion state based on the crank angular velocity after the error correction deteriorates.

[0008] Therefore, an object of the present disclosure is to provide a control device for an internal combustion engine that can determine whether or not the correction of an error in a detected portion has been completed when the error is corrected.

[0009] The control device for an internal combustion engine according to the present disclosure is a control device for an internal combustion engine that controls an internal combustion engine including a plurality of detection targets provided at a plurality of predetermined crank angles on a rotating member that rotates integrally with a crankshaft, a specific crank angle sensor fixed to a non-rotating member that detects the detection targets, and a gas pressure sensor that detects gas pressure in an intake pipe, and includes an angle information detection unit that detects a crank angle and detects a detection time at which the crank angle is detected based on an output signal of the specific crank angle sensor, calculates an angle interval corresponding to an angle interval between the detection angles based on the detected detection angles that are the detected crank angles, and calculates a time interval corresponding to the angle interval based on the detection time, an angle information correction unit that corrects the angle interval or the time interval of each of the angle intervals with a correction value provided corresponding to each of the angle intervals, and an intake pipe gas pressure detection unit that detects the gas pressure in the intake pipe based on the output signal of the gas pressure sensor, an axial torque estimating unit that estimates an axial torque of the crankshaft due to the gas pressure in the cylinder and the reciprocating motion of the piston for each of the angle intervals using a physical model equation of the crank mechanism based on the detected value of the gas pressure in the intake pipe and the detected angle; an ideal angular velocity calculating unit that calculates an ideal interval angular velocity, which is an angular velocity corresponding to each of the angle intervals in an ideal state where it is assumed that there is no fluctuation in the multiple crank angles in which the multiple detection targets are arranged, based on the estimated value of the axial torque for each of the angle intervals and the moment of inertia of the crankshaft system; and a correction value changing unit that changes the correction value for each of the angle intervals so that the detection interval angular velocity, which is the angular velocity corresponding to the angle interval calculated from the time interval and the angle interval after correction processing using the correction value, approaches the ideal interval angular velocity. and a change completion determination unit that determines whether or not the change in the correction value has been completed for all of the angle intervals corresponding to one rotation of the crankshaft, based on the correction value for each of the angle intervals, the time interval and the angle interval or the detected interval angular velocity for each of the angle intervals before correction processing using the correction value for each of the angle intervals, and the ideal interval angular velocity for each of the angle intervals.

[0010] According to the control device for an internal combustion engine of the present disclosure, it is possible to accurately determine whether the change in the correction value has been completed based on the ideal section angular velocity, which is the target to which the detection section angular velocity approaches after the correction process, the correction value, which is the result of the change, and the detection section angular velocity before or after the correction process.

[0011] 14 is a schematic configuration diagram of an internal combustion engine and a control device according to embodiment 1. FIG. 15 is a schematic configuration diagram of an internal combustion engine and a control device according to embodiment 1. FIG. 16 is a block diagram of a control device according to embodiment 1. FIG. 17 is a hardware configuration diagram of a control device according to embodiment 1. FIG. 18 is a time chart for explaining angle information detection processing according to embodiment 1. FIG. 19 is a diagram for explaining correction values ​​stored in a storage device according to embodiment 1. FIG. 20 is a time chart for explaining calculation processing of crank acceleration and angular acceleration according to embodiment 1. FIG. 21 is a diagram for explaining fluctuations in crank angular velocity when correction processing according to embodiment 1 is not performed. FIG. 22 is a diagram for explaining fluctuations in crank angular velocity when correction processing according to embodiment 1 is not performed. FIG. 23 is a diagram for explaining processing by a one-revolution time detection unit and an ideal angular velocity calculation unit according to embodiment 1. FIG. 24 is a diagram for explaining behavior of crank angular velocity when correction processing according to embodiment 1 is not performed. FIG. 25 is a diagram for explaining behavior of crank angular velocity when correction processing according to embodiment 1 is performed. FIG. 26 is a diagram for explaining fluctuations in crank angular velocity when correction processing according to embodiment 1 is performed. FIG. 27 is a diagram for explaining behavior of completion determination of change in correction value due to each evaluation value according to embodiment 1. FIG. 28 is an enlarged view of FIG. 16 is a diagram for explaining the behavior of a determination of completion of a change in a correction value due to each evaluation value according to the first embodiment. FIG. 17 is an enlarged view of FIG. 16. FIG. 18 is a schematic configuration diagram of an internal combustion engine with a supercharger according to the first embodiment. FIG. 19 is a diagram for explaining a learned correction value stored in a non-volatile storage device or the like according to the first embodiment. FIG. 20 is a diagram for explaining a determination of an update record when a feature value fluctuates due to a disturbance according to the first embodiment. FIG. 21 is a diagram for explaining a determination of an update record when a feature value fluctuates due to replacement of a rotating member or deterioration over time according to the first embodiment. FIG. 22 is a diagram for explaining the processing of a one-revolution time detection unit and an ideal angular velocity calculation unit according to the second embodiment. FIG. 23 is a diagram for explaining the processing of a one-revolution time detection unit and a correction value change unit according to the third embodiment.

[0012] 1. First Embodiment A control device 50 for an internal combustion engine 1 according to a first embodiment (hereinafter simply referred to as the control device 50) will be described with reference to the drawings. Figures 1 and 2 are schematic configuration diagrams of the internal combustion engine 1 and the control device 50 according to this embodiment, and Figure 3 is a block diagram of the control device 50 according to this embodiment. The internal combustion engine 1 and the control device 50 are mounted on a vehicle, and the internal combustion engine 1 serves as a driving force source for the vehicle (wheels).

[0013] 1-1. Configuration of the Internal Combustion Engine 1 First, the configuration of the internal combustion engine 1 will be described. As shown in FIG. 1, the internal combustion engine 1 has cylinders 7 that burn a mixture of air and fuel. The internal combustion engine 1 has an intake pipe 23 that supplies air to the cylinders 7, and an exhaust pipe 17 that discharges exhaust gas burned in the cylinders 7. The internal combustion engine 1 is a gasoline engine. The internal combustion engine 1 has a throttle valve 4 that opens and closes the intake pipe 23. The throttle valve 4 is an electronically controlled throttle valve that is driven to open and close by an electric motor controlled by a control device 50. The throttle valve 4 is provided with a throttle opening sensor 19 that outputs an electric signal corresponding to the opening of the throttle valve 4.

[0014] An air flow sensor 3 is provided in the intake pipe 23 upstream of the throttle valve 4, and outputs an electrical signal corresponding to the amount of intake air taken into the intake pipe 23. The internal combustion engine 1 is equipped with an exhaust gas recirculation device 20. The exhaust gas recirculation device 20 has an EGR flow path 21 that recirculates exhaust gas from the exhaust pipe 17 to the intake manifold 12, and an EGR valve 22 that opens and closes the EGR flow path 21. The intake manifold 12 is the portion of the intake pipe 23 downstream of the throttle valve 4. The EGR valve 22 is an electronically controlled EGR valve that is driven to open and close by an electric motor controlled by the control device 50. The exhaust pipe 17 is equipped with an air-fuel ratio sensor 18 that outputs an electrical signal corresponding to the air-fuel ratio of the exhaust gas in the exhaust pipe 17.

[0015] The intake manifold 12 is provided with a gas pressure sensor 8 that outputs an electric signal corresponding to the pressure inside the intake manifold 12. An injector 13 that injects fuel is provided downstream of the intake manifold 12. Note that the injector 13 may be provided so as to inject fuel directly into the cylinders 7. The internal combustion engine 1 is provided with an atmospheric pressure sensor 33 that outputs an electric signal corresponding to the atmospheric pressure.

[0016] A spark plug that ignites the air-fuel mixture and an ignition coil 16 that supplies ignition energy to the spark plug are provided at the top of each cylinder 7. Also provided at the top of each cylinder 7 are an intake valve 14 that adjusts the amount of intake air taken into the cylinder 7 from an intake pipe 23, and an exhaust valve 15 that adjusts the amount of exhaust gas discharged from the cylinder to an exhaust pipe 17. The intake valve 14 is provided with an intake variable valve timing mechanism that varies the valve opening and closing timing. The exhaust valve 15 is provided with an exhaust variable valve timing mechanism that varies the valve opening and closing timing. The variable valve timing mechanisms 14, 15 each have an electric actuator.

[0017] As shown in FIG. 2 , the internal combustion engine 1 has a plurality of cylinders 7 (three in this example). Each cylinder 7 has a piston 5 inside. The piston 5 of each cylinder 7 is connected to a crankshaft 2 via a connecting rod 9 and a crank 32. The crankshaft 2 is rotated by the reciprocating motion of the piston 5. Combustion gas pressure generated in each cylinder 7 presses against the top surface of the piston 5, rotating the crankshaft 2 via the connecting rod 9 and the crank 32. The crankshaft 2 is connected to a power transmission mechanism that transmits driving force to the wheels. The power transmission mechanism is composed of a transmission, a differential gear, etc. Note that a vehicle equipped with the internal combustion engine 1 may be a hybrid vehicle equipped with a motor-generator in the power transmission mechanism.

[0018] The internal combustion engine 1 is equipped with a signal plate 10 that rotates integrally with the crankshaft 2. The signal plate 10 has a plurality of teeth at a plurality of predetermined crank angles. In this embodiment, the signal plate 10 has teeth arranged at 10-degree intervals. The teeth of the signal plate 10 have missing tooth portions where some of the teeth are missing. The internal combustion engine 1 is equipped with a first crank angle sensor 11 that is fixed to the engine block 24 and detects the teeth of the signal plate 10.

[0019] The internal combustion engine 1 is equipped with a camshaft 29 connected to the crankshaft 2 by a chain 28. The camshaft 29 drives the intake valve 14 and the exhaust valve 15 to open and close. The camshaft 29 rotates once while the crankshaft 2 rotates twice. The internal combustion engine 1 is equipped with a cam signal plate 31 that rotates integrally with the camshaft 29. The cam signal plate 31 has a plurality of teeth at a plurality of predetermined camshaft angles. The internal combustion engine 1 is equipped with a cam angle sensor 30 that is fixed to the engine block 24 and detects the teeth of the cam signal plate 31.

[0020] Based on two types of output signals from the first crank angle sensor 11 and the cam angle sensor 30, the control device 50 detects the crank angle relative to the top dead center of each piston 5 and determines the stroke of each cylinder 7. The internal combustion engine 1 is a four-stroke engine having an intake stroke, a compression stroke, a combustion stroke, and an exhaust stroke.

[0021] The internal combustion engine 1 includes a flywheel 27 that rotates integrally with the crankshaft 2. The outer periphery of the flywheel 27 is a ring gear 25, which has multiple teeth at predetermined crank angles. The teeth of the ring gear 25 are circumferentially spaced at equal angular intervals. In this example, 60 teeth are provided at 6-degree intervals. The teeth of the ring gear 25 are not missing any teeth. The internal combustion engine 1 includes a second crank angle sensor 6 that is fixed to the engine block 24 and detects the teeth of the ring gear 25. The second crank angle sensor 6 is disposed radially outward of the ring gear 25, facing and spaced apart from the ring gear 25. The end of the flywheel 27 opposite the crankshaft 2 is connected to a power transmission mechanism. Therefore, the output torque of the internal combustion engine 1 is transmitted to the wheels via the flywheel 27.

[0022] The first crank angle sensor 11, the cam angle sensor 30, and the second crank angle sensor 6 output electrical signals in response to changes in the distance between each sensor and the teeth due to the rotation of the crankshaft 2. The output signal of each angle sensor 11, 30, 6 is a square wave that turns on and off depending on whether the sensor is close to the teeth or far away. Each angle sensor 11, 30, 6 may be, for example, an electromagnetic pickup type sensor.

[0023] The flywheel 27 (ring gear 25) has a greater number of teeth than the signal plate 10 and is free of any missing teeth, enabling high-resolution angle detection. Furthermore, the flywheel 27 has a mass greater than that of the signal plate 10, which suppresses high-frequency vibrations, enabling high-precision angle detection.

[0024] In this embodiment, the second crank angle sensor 6 corresponds to the "specific crank angle sensor" in the present disclosure, the flywheel 27 corresponds to the "rotating member" in the present disclosure, the teeth of the ring gear 25 provided on the flywheel 27 correspond to the "detected portion" in the present disclosure, and the engine block 24 corresponds to the "non-rotating member" in the present disclosure.

[0025] 1-2. Configuration of the control device 50 Next, the control device 50 will be described. The control device 50 is a control device that controls the internal combustion engine 1. As shown in FIG. 3 , the control device 50 includes control units such as an intake pipe gas pressure detection unit 51, an angle information detection unit 52, an angle information correction unit 53, an axial torque estimation unit 54, an ideal angular velocity calculation unit 55, a correction value change unit 56, a one-rotation time detection unit 57, a change completion determination unit 58, an abnormal combustion determination unit 59, an engine control unit 60, a characteristic value calculation unit 61, an update storage determination unit 62, a learning value storage unit 63, and a characteristic value storage unit 64. Each of the control units 51 to 64 of the control device 50 is realized by a processing circuit provided in the control device 50. Specifically, as shown in FIG. 4, the control device 50 includes, as processing circuits, an arithmetic processing device 90 (computer) such as a CPU (Central Processing Unit), a memory device 91 connected to the arithmetic processing device 90 via a signal line such as a bus, an input circuit 92 that inputs external signals to the arithmetic processing device 90, and an output circuit 93 that outputs signals from the arithmetic processing device 90 to the outside.

[0026] The arithmetic processing device 90 may be an ASIC (Application Specific Integrated Circuit), an IC (Integrated Circuit), a DSP (Digital Signal Processor), an FPGA (Field Programmable Gate Array), various logic circuits, various signal processing circuits, etc. Furthermore, a plurality of the same or different types of arithmetic processing device 90 may be provided, and each process may be shared and executed.

[0027] The storage device 91 includes volatile and non-volatile storage devices such as RAM (Random Access Memory), ROM (Read Only Memory), and EEPROM (Electrically Erasable Programmable ROM). The storage device 91 also includes a volatile storage device such as RAM connected to a backup power source. The volatile storage device connected to the backup power source is connected to a power source such as a battery without going through a main switch that turns on and off the power supply to the control device 50, and stored values ​​are maintained by the power supply from the power source even when the main switch is off. For example, the control device 50 turns the main switch on and off using a relay circuit in conjunction with the on and off of the vehicle's key switch. The stored values ​​of the volatile storage device connected to the backup power source are initialized when the power connection line connected to the battery is disconnected and the power supply to the storage device is cut off.

[0028] The input circuit 92 is connected to various sensors and switches and includes an A / D converter and the like that inputs output signals from these sensors and switches to the arithmetic processing device 90. The output circuit 93 is connected to electric loads and includes a drive circuit and the like that outputs control signals from the arithmetic processing device 90 to these electric loads.

[0029] The functions of the control units 51 to 64 included in the control device 50 are realized by an arithmetic processing device 90 executing software (programs) stored in a storage device 91 such as a ROM or EEPROM, in cooperation with other hardware of the control device 50, such as the storage device 91, an input circuit 92, and an output circuit 93. Setting data used by the control units 51 to 64 is stored in the storage device 91 such as a ROM or EEPROM. Data calculated by the control units 51 to 64, such as the correction value Kc, angle interval Δθd, time interval ΔTd, each calculated value, and each detected value, is stored in a rewritable storage device 91 such as a RAM. The learned correction value Kclrn for each angle interval is stored in a non-volatile storage device such as an EEPROM, or a volatile storage device connected to a backup power source.

[0030] In this embodiment, the input circuit 92 is connected to the first crank angle sensor 11, the cam angle sensor 30, the second crank angle sensor 6, the airflow sensor 3, the throttle opening sensor 19, the gas pressure sensor 8, the atmospheric pressure sensor 33, the air-fuel ratio sensor 18, and the accelerator position sensor 26. The output circuit 93 is connected to the throttle valve 4 (electric motor), the EGR valve 22 (electric motor), the injector 13, the ignition coil 16, the intake variable valve timing mechanism 14, and the exhaust variable valve timing mechanism 15. Note that various sensors, switches, actuators, etc. (not shown) are connected to the control device 50. The control device 50 detects the operating conditions of the internal combustion engine 1, such as the intake air amount, the pressure in the intake manifold, the atmospheric pressure, the air-fuel ratio, and the accelerator opening, based on the output signals of the various sensors.

[0031] <Engine Control Unit 60> The engine control unit 60 controls the control variables of the internal combustion engine. As a basic control, the engine control unit 60 calculates the fuel injection amount, ignition timing, etc. based on input output signals from various sensors, and controls the injector 13, the ignition coil 16, etc. The engine control unit 60 calculates the output torque of the internal combustion engine 1 requested by the driver based on the output signal from the accelerator position sensor 26, etc., and controls the throttle valve 4, etc., so as to achieve the intake air amount that realizes the requested output torque. Specifically, the engine control unit 60 calculates a target throttle opening and controls the drive of the electric motor of the throttle valve 4 so that the throttle opening detected based on the output signal from the throttle opening sensor 19 approaches the target throttle opening. The engine control unit 60 also calculates a target opening of the EGR valve 22 based on input output signals from various sensors, and controls the drive of the electric motor of the EGR valve 22. The engine control unit 60 calculates the target opening / closing timing of the intake valve and the target opening / closing timing of the exhaust valve based on the output signals of various sensors input thereto, and controls the operation of the intake and exhaust variable valve timing mechanisms 14, 15 based on each target opening / closing timing.

[0032] <Intake Pipe Gas Pressure Detector 51> The intake pipe gas pressure detector 51 detects the gas pressure Pind in the intake pipe based on the output signal of the gas pressure sensor 8. The gas pressure Pind in the intake pipe is detected at every predetermined detection period.

[0033] 5, the angle information detection unit 52 detects the crank angle θd based on the output signal of the second crank angle sensor 6, which is designated as the specific crank angle sensor, and detects the detection time Td at which the crank angle θd is detected. Then, based on the detected crank angle θd, which is the detected crank angle, the angle information detection unit 52 calculates an angle interval Δθd corresponding to an angle section Sd between the detected angles θd, and calculates a time interval ΔTd corresponding to the angle section Sd based on the detection time Td.

[0034] In this embodiment, the angle information detection unit 52 is configured to determine the crank angle θd when it detects a falling edge (or a rising edge) of the output signal (rectangular wave) of the second crank angle sensor 6. The angle information detection unit 52 determines a base falling edge, which is a falling edge corresponding to a base angle (e.g., 0 degrees, which is the top dead center of the piston 5 of the first cylinder 7), and determines the crank angle θd corresponding to a falling edge number n (hereinafter referred to as angle identification number n) counted up from the base falling edge. For example, when the angle information detection unit 52 detects the base falling edge, it sets the crank angle θd to the base angle (e.g., 0 degrees) and sets the angle identification number n to 1. Then, every time the angle information detection unit 52 detects a falling edge, it increases the crank angle θd by a predetermined angle interval Δθd (6 degrees in this example) and increases the angle identification number n by one. Alternatively, the angle information detection unit 52 may be configured to read out the crank angle θd corresponding to the current angle identification number n using an angle table in which the relationship between the angle identification number n and the crank angle θd is preset. The angle information detection unit 52 associates the crank angle θd (detected angle θd) with the angle identification number n. The angle identification number n returns to 1 after reaching the maximum number (60 in this example). The previous angle identification number n for angle identification number n=1 is 60, and the next angle identification number n for angle identification number n=60 is 1.

[0035] In this embodiment, a case where there is no missing tooth will be described, but a missing tooth may also be provided. In this case, the detection time Td and the detection angle θd in which the missing tooth portion is complemented using information before and after the missing tooth portion may be used, or the detection time Td and the detection angle θd in which the missing tooth portion is not complemented may be used as is. When the missing tooth portion is not complemented, the angle interval Δθd corresponding to the missing tooth portion is used in each calculation.

[0036] In this embodiment, the angle information detection unit 52 determines the base point falling edge of the second crank angle sensor 6 by referring to a reference crank angle θr detected based on the first crank angle sensor 11 and the cam angle sensor 30 (described later). For example, the angle information detection unit 52 determines that the falling edge of the second crank angle sensor 6 is the base point falling edge when the reference crank angle θr at the time of detecting the falling edge is closest to the base point angle.

[0037] Furthermore, the angle information detection unit 52 determines the stroke of each cylinder 7 corresponding to the crank angle θd by referring to the stroke of each cylinder 7 determined based on the first crank angle sensor 11 and the cam angle sensor 30 .

[0038] The angle information detecting unit 52 detects a detection time Td when the falling edge of the output signal (rectangular wave) of the second crank angle sensor 6 is detected, and associates the detection time Td with the angle identification number n. Specifically, the angle information detecting unit 52 detects the detection time Td using a timer function provided in the arithmetic processing device 90.

[0039] As shown in FIG. 5, when the angle information detection unit 52 detects a falling edge, it sets the angle interval between the detected angle θd(n) corresponding to the current angle identification number (n) and the detected angle θd(n-1) corresponding to the previous angle identification number (n-1) as the angle interval Sd(n) corresponding to the current angle identification number (n).

[0040] Furthermore, as shown in equation (1), when the angle information detection unit 52 detects a falling edge, it calculates the deviation between the detected angle θd(n) corresponding to the current angle identification number (n) and the detected angle θd(n-1) corresponding to the previous angle identification number (n-1), and sets this as the angle interval Δθd(n) corresponding to the current angle identification number (n) (current angle interval Sd(n)). In this embodiment, the angular intervals of the teeth of the ring gear 25 are all equal, so the angle information detection unit 52 sets the angular interval Δθd of all angle identification numbers n to a predetermined angle (6 degrees in this example).

[0041] Furthermore, as shown in equation (2), when the angle information detection unit 52 detects a falling edge, it calculates the deviation between the detection time Td(n) corresponding to the current angle identification number (n) and the detection time Td(n-1) corresponding to the previous angle identification number (n-1), and sets this as the time interval ΔTd(n) corresponding to the current angle identification number (n) (current angle interval Sd(n)).

[0042] The angle information detection unit 52 detects a reference crank angle θr based on the top dead center of the piston 5 of the first cylinder 7 based on two types of output signals from the first crank angle sensor 11 and the cam angle sensor 30, and determines the stroke of each cylinder 7. For example, the angle information detection unit 52 determines the falling edge immediately after a missing tooth portion on the signal plate 10 based on the time interval between falling edges of the output signal (rectangular wave) of the first crank angle sensor 11. The angle information detection unit 52 then determines the correspondence between each falling edge based on the falling edge immediately after the missing tooth portion and the reference crank angle θr based on the top dead center, and calculates the reference crank angle θr based on the top dead center when each falling edge is detected. The angle information detection unit 52 also determines the stroke of each cylinder 7 based on the relationship between the position of the missing tooth portion in the output signal (rectangular wave) of the first crank angle sensor 11 and the output signal (rectangular wave) of the cam angle sensor 30.

[0043] <Angle Information Correction Unit 53> The angle information correction unit 53 corrects each angle interval Δθd or each time interval ΔTd of the angle interval Sd using a correction value Kc provided for each angle interval Sd.

[0044] In this embodiment, the angle information corrector 53 provides one correction value Kc(n) for each angle interval Sd(n) of each angle identification number n. In this example, there are 60 angle identification numbers n and 60 angle intervals Sd, and therefore there are 60 correction values ​​Kc. As shown in FIG. 6 , each correction value Kc is associated with each angle identification number n and stored in a rewritable storage device 91 such as a RAM of the control device 50.

[0045] For example, as shown in equation (3), the angle information corrector 53 multiplies the time interval ΔTd(n) corresponding to the current angle identification number (n) by the correction value Kc(n) corresponding to the current angle identification number (n) to calculate the corrected time interval ΔTdc(n) corresponding to the current angle identification number (n). Alternatively, the angle information corrector 53 divides the angle interval Δθd(n) corresponding to the current angle identification number (n) by the correction value Kc(n) corresponding to the current angle identification number (n) to calculate the corrected angle interval Δθdc(n) corresponding to the current angle identification number (n).

[0046] Alternatively, the angle information corrector 53 may be configured to correct the crank angular velocity ωd(n) calculated using the pre-correction angle interval Δθd(n) and time interval ΔTd(n) with the correction value Kc(n).

[0047] In this embodiment, a case where the time interval ΔTd is corrected by the correction value Kc will be described. For convenience of explanation, the angular interval Δθd that has not been corrected by the correction value Kc will also be referred to as the angular interval Δθdc after correction processing.

[0048] <Calculation of crank angular velocity ωd and crank angular acceleration αd> The angle information detection unit 52 calculates the crank angular velocity ωd, which is the time rate of change of the crank angle θd, and the crank angular acceleration αd, which is the time rate of change of the crank angular velocity ωd, corresponding to the detected angle θd or the angle interval Sd, respectively, based on the angle interval Δθdc and the time interval ΔTdc after correction processing using the correction value Kc.

[0049] 7 , the angle information detection unit 52 calculates the crank angular velocity ωd(n) (also referred to as the detection interval angular velocity ωsd(n)) corresponding to the angle interval Sd(n) to be processed, based on the corrected angle interval Δθdc(n) and time interval ΔTdc(n) corresponding to the angle interval Sd(n) to be processed. Specifically, as shown in equation (4), the angle information detection unit 52 calculates the crank angular velocity ωd(n) by dividing the corrected angle interval Δθdc(n) corresponding to the angle interval Sd(n) to be processed by the corrected time interval ΔTdc(n).

[0050] The angle information detection unit 52 calculates the crank angular acceleration αd(n) corresponding to the detected angle θd(n) to be processed, based on the crank angular velocity ωd(n) corresponding to an angle interval Sd(n) immediately preceding the detected angle θd(n) to be processed and the post-correction time interval ΔTdc(n), and the crank angular velocity ωd(n+1) corresponding to an angle interval Sd(n+1) immediately following the detected angle θd(n). Specifically, as shown in equation (5), the angle information detection unit 52 calculates the crank angular acceleration αd(n) by dividing the subtracted value obtained by subtracting the immediately preceding crank angular velocity ωd(n) from the immediately following crank angular velocity ωd(n+1) by the average value of the immediately following post-correction time interval ΔTdc(n+1) and the immediately preceding post-correction time interval ΔTdc(n).

[0051] The crank angular velocity ωd(n) and the crank angular acceleration αd(n) are used for various known internal combustion engine controls, such as for estimating the combustion state.

[0052] <Issues Caused by Fluctuations in Tooth Arrangement Crank Angle> Due to manufacturing errors and aging of the teeth of the ring gear 25, the crank angle at which each tooth is arranged varies from the specified angle of 6 degrees. Fig. 8 shows the behavior of the uncorrected crank angular velocity ωdcmp calculated based on the angle interval Δθd and time interval ΔTd that are not corrected by the correction value Kc, and the highly accurate crank angular velocity ω* detected by a highly accurate rotation sensor provided for measurement, when fluctuations occur in the tooth arrangement crank angle. As shown in Fig. 8, the uncorrected crank angular velocity ωdcmp varies with respect to the highly accurate crank angular velocity ω* used for measurement, due to fluctuations in the tooth arrangement crank angle.

[0053] 9 shows the angular velocity ratio obtained by dividing the uncorrected crank angular velocity ωdcmp by the high-precision crank angular velocity ω* for each crank angle. When the angular velocity ratio is greater than 1, the actual angular interval is shorter than the specified angular interval (6 degrees). When the angular velocity ratio is less than 1, the actual angular interval is longer than the specified angular interval (6 degrees). Therefore, unless the correction value Kc is appropriately changed and correction is performed using the correction value Kc to cancel out fluctuations in the tooth arrangement crank angle, high-frequency components will be superimposed on the calculated crank angular velocity ωd and crank angular acceleration αd, degrading the accuracy of internal combustion engine control, such as estimation of the combustion state and combustion control. The process for appropriately changing the correction value Kc will be described below.

[0054] <Shaft torque estimation unit 54> The shaft torque estimation unit 54 estimates the shaft torque Tcrke(n) of the crankshaft due to the gas pressure in the cylinder and the reciprocating motion of the piston, corresponding to each angle interval Sd(n), using a physical model equation of the crank mechanism based on the detected value Pind of the gas pressure in the intake pipe and the detected angle θd.

[0055] In this embodiment, as described below, the axial torque estimation unit 54 calculates the gas pressure torque Tgas generated by the gas pressure Pcyl in the cylinder and the inertia torque Tin generated by the reciprocating motion of the piston, and then sums the gas pressure torque Tgas and the inertia torque Tin to calculate the estimated axial torque value Tcrke.

[0056] The shaft torque estimation unit 54 uses a physical model equation for calculating the gas pressure torque generated by the gas pressure in the cylinder, and calculates the gas pressure torque Tgas generated by the gas pressure Pcyl in the cylinder based on the detected value Pind of the gas pressure in the intake pipe.

[0057] In this embodiment, the shaft torque estimation unit 54 calculates the gas pressure torque Tgas generated by the gas pressure in the cylinder when it is assumed that the internal combustion engine is in an uncombusted state where no combustion is occurring.

[0058] As shown in the following equation, for a cylinder i whose intake valve and exhaust valve are closed, the axial torque estimating unit 54 uses an equation for calculating gas pressure using a polytropic change to calculate the gas pressure in the cylinder Pcyl_i based on the detected value Pind of the gas pressure in the intake pipe and the crank angle θd. For a cylinder i whose intake valve is open and whose exhaust valve is closed, the axial torque estimating unit 54 calculates the gas pressure Pcyl_i in the cylinder based on the detected value Pind of the gas pressure in the intake pipe, and for a cylinder i whose exhaust valve is open, calculates the gas pressure Pcyl_i in the cylinder based on the gas pressure Pex in the exhaust pipe.

[0059] Here, Nply is a polytropic index, and a preset value is used. Vcyl0 is the cylinder volume when the intake valve is closed, and may be a preset value or may be changed depending on the intake valve closing timing set by the intake variable valve timing mechanism 14. Vcly_θ_i is the cylinder volume of each cylinder i at the crank angle θd_i of each cylinder i, and is a function of the crank angle θd_i of each cylinder i. Here, Vcyltop is the cylinder volume when the piston is positioned at top dead center, Sp is the projected area of ​​the piston top, r is the crank length, L is the connecting rod length, and φ_i is the angle of the connecting rod of each cylinder i. Note that the crank angle θd_i of each cylinder i used in the calculation of the trigonometric functions is a crank angle obtained by shifting the crank angle θd so that the top dead center of the compression stroke for each cylinder i is 0 degrees. The detected value Pind of the gas pressure in the intake pipe may be a value obtained by averaging, such as an average value over a stroke period, or may be a value detected when the intake valve is closed.The detected value Pex of the gas pressure in the exhaust pipe may be a detected value of atmospheric pressure or a predetermined value.

[0060] Then, the shaft torque estimation unit 54 calculates the gas pressure torque Tgas based on the gas pressure Pcyl_i in each cylinder i and the crank angle θd_i using the following equation for converting gas pressure into torque.

[0061] Here, Pcase is the internal pressure in the crankcase (piston back pressure), and may be set to a predetermined value or may be changed depending on the detected value Pind of the gas pressure in the intake pipe, atmospheric pressure, etc. R_i is a conversion coefficient that converts the force generated in the piston of each cylinder i into torque about the crankshaft, and is a function of the crank angle θd_i of each cylinder i. Alternatively, map data in which the relationship between the crank angle θd and the conversion coefficient R is preset may be used. Note that in the case of an offset crank, the offset may be taken into account when calculating the conversion coefficient R_i. N is the number of cylinders, and in this embodiment, N=3.

[0062] The shaft torque estimation unit 54 uses a physical model equation for calculating the inertia torque generated by the reciprocating motion of the piston at each crank angle θd, and calculates the inertia torque Tin generated by the reciprocating motion of the piston based on the crank angular velocity ωd.

[0063] The axial torque estimation unit 54 uses the following equation, which converts the piston acceleration and the piston inertia force into torque, to calculate the inertia torque Tin generated by the reciprocating motion of the piston in each cylinder i based on the crank angular velocity ωd and the crank angle θd.

[0064] Here, mp is the mass of the piston, and Ka_i is a coefficient for calculating the acceleration of the piston based on the crank angular velocity ωd, which is a function of the crank angle θd_i of each cylinder i. For example, the acceleration calculation coefficient Ka_i of each cylinder i may be set based on the third equation of equation (8). Although the third equation of equation (8) is an approximation, an exact value may be calculated. Alternatively, map data in which the relationship between the crank angle θd and the acceleration calculation coefficient Ka is preset may be used. Note that in the case of an offset crank, an offset may be taken into account in the calculation of the acceleration calculation coefficient Ka_i of each cylinder i. The conversion coefficient R_i of each cylinder i is the same as that of equation (7). Furthermore, inertia torque generated by the inertia of the connecting rod, etc. may be added to the inertia torque Tin.

[0065] The axial torque estimation unit 54 then sums the gas pressure torque Tgas and the inertia torque Tin calculated at each crank angle θd to calculate an estimated value Tcrke of the axial torque at each crank angle θd.

[0066] The axial torque estimator 54 then calculates an estimated axial torque value Tcrke(n) for each angular interval Sd(n) based on the estimated axial torque value Tcrke for each crank angle θd. For example, an estimated axial torque value Tcrke(n) corresponding to each center position of the angular interval Sd(n) is calculated. As shown in the following equation, the axial torque estimator 54 calculates the estimated axial torque value Tcrke(n) for each angular interval Sd(n) by averaging the estimated axial torque value Tcrke(θd(n-1)) for the start crank angle θd(n-1) of each angular interval Sd(n) and the estimated axial torque value Tcrke(θd(n)) for the end crank angle θd(n) of each angular interval Sd(n). Alternatively, the crank angle θd used to calculate the estimated value Tcrke of the axial torque may be set to the crank angle θd corresponding to the center position of each angle interval Sd, and the estimated value Tcrke of the axial torque corresponding to the center position of each angle interval Sd may be directly calculated.

[0067] The estimated value Tcrke of the shaft torque calculated as above does not take into account the influence of the external load torque Tload. Therefore, in this embodiment, the external load torque Tload is calculated as described below, and the estimated value Tcrke of the shaft torque is corrected by the external load torque Tload. The external load torque Tload is a torque applied to the crankshaft from outside the internal combustion engine. The external load torque Tload includes the running resistance and frictional resistance of the vehicle transmitted to the internal combustion engine from a power transmission mechanism connected to the wheels, as well as auxiliary loads such as an alternator connected to the crankshaft.

[0068] Even if correction based on the external load torque Tload is not performed, the effects of the external load torque Tload are also corrected collectively by correction based on the average detected angular velocity ωsaved, which will be described later, so correction based on the external load torque Tload does not necessarily have to be performed.

[0069] The axial torque estimator 54 calculates a detected value Tcrkd of the crankshaft torque based on the detected value αd of the crank angular acceleration and the moment of inertia Icrk of the crankshaft system. In this embodiment, the axial torque estimator 54 calculates a detected value Tcrkd(n) of the crank torque corresponding to each angle interval Sd(n) using the following equation. Here, in this embodiment, as shown in FIG. 7 , the detected value αd(n) of the crank angular acceleration is the angular acceleration at the time of the ending crank angle θd(n) of each angle interval Sd(n). Therefore, in order to calculate the detected value of the crank angular acceleration corresponding to each angle interval Sd(n), an average value of the crank angular acceleration αd(n) at the current crank angle θd(n) and the crank angular acceleration αd(n-1) at the immediately preceding crank angle θd(n-1) is used.

[0070] The axial torque estimation unit 54 calculates the external load torque Tload based on the axial torque estimated value Tcrke(θd_tdc) calculated at the crank angle θd_tdc near the top dead center of the piston and the axial torque detected value Tcrkd(θd_tdc). Near the top dead center, the connecting rod and the crank are aligned, and the force of the cylinder pressure pushing the piston prevents the axial torque Tcrk. Therefore, near the top dead center, the external load torque Tload can be accurately calculated based on the deviation between the axial torque detected value Tcrkd and the axial torque estimated value Tcrke. Because the external load torque Tload typically does not fluctuate significantly during the stroke cycle, the external load torque Tload calculated near the top dead center can be used for each crank angle θd. The crank angle θd_tdc near the top dead center is preset to the crank angle near the top dead center. Here, the vicinity of top dead center is, for example, within an angle interval from 10 degrees before top dead center to 10 degrees after top dead center. For example, the crank angle θd near top dead center is set in advance to the crank angle at top dead center. In this embodiment, the shaft torque estimating unit 54 calculates the external load torque Tload using the following equation.

[0071] The shaft torque estimation unit 54 may calculate the external load torque Tload from the deviation between the average value of the shaft torque detection value Tcrkd after averaging and the average value of the shaft torque estimation value Tcrke.

[0072] The shaft torque estimator 54 corrects the estimated shaft torque value Tcrke(n) for each angle interval Sd(n) using the external load torque Tload. In this embodiment, the shaft torque estimator 54 calculates the corrected shaft torque estimated value Tcrke(n) by adding the external load torque Tload to the estimated shaft torque value Tcrke(n) for each angle interval Sd(n), as shown in the following equation.

[0073] <One-revolution time detection unit 57> Based on the output signal of the second crank angle sensor 6, the one-revolution time detection unit 57 detects a one-revolution time interval ΔT360, which is the time interval of one rotation angular interval S360 for the crankshaft to make one rotation, and calculates an average detected angular velocity ωsaved, which is the average angular velocity of an average processing angle interval Save set within the range of the one-revolution angular interval S360, based on the detected value ΔT360 of the one-revolution time interval.

[0074] 10 , the one-rotation time detection unit 57 detects a first one-rotation time interval ΔT360_1 and a second one-rotation time interval ΔT360_2 for each of a first one-rotation angular interval S360_1 and a second one-rotation angular interval S360_2 that overlap with each other but are offset in angle, and sets the angular interval that overlaps between the first one-rotation angular interval S360_1 and the second one-rotation angular interval S360_2 as an average processing angular interval Save. Then, the one-rotation time detection unit 57 calculates a time interval ΔTsave of the average processing angular interval based on the average value of the first one-rotation time interval ΔT360_1 and the second one-rotation time interval ΔT360_2, and calculates an average detected angular velocity ωsaved based on the time interval ΔTsave of the average processing angular interval.

[0075] In this embodiment, the averaging processing angle interval Save is set to 180 degrees. The first single rotation angle interval S360_1 is set to an angle interval from an angle 180 degrees retarded from the start angle of the averaging processing angle interval Save to an end angle of the averaging processing angle interval Save. The second single rotation angle interval S360_2 is set to an angle interval from the start angle of the averaging processing angle interval Save to an angle 180 degrees advanced from the end angle of the averaging processing angle interval Save. The process of calculating the average detected angular velocity ωsaved is performed for each averaging processing angle interval Save.

[0076] In this embodiment, the one-rotation time detection unit 57 calculates the average detected angular velocity ωsaved using the following equation.

[0077] The averaging processing angle interval Save may be set to any angle within 360 degrees. For example, the averaging processing angle interval Save may be set to 360 degrees. In this case, the first one-rotation angle interval S360_1 and the second one-rotation angle interval S360_2 are the same, so the average detected angular velocity ωsaved can be calculated based on the one-rotation time interval ΔT360 of one one-rotation angle interval S360.

[0078] <Ideal Angular Velocity Calculation Unit 55> The ideal angular velocity calculation unit 55 calculates ideal interval angular velocities ωid, which are angular velocities corresponding to each of the angle intervals Sd(n) in an ideal state assuming that there is no fluctuation in the multiple crank angles at which multiple teeth are arranged (hereinafter also referred to as tooth arrangement crank angles), based on the estimated axial torque values ​​Tcrke(n) for each of the angle intervals Sd(n) and the moment of inertia Icrk of the crankshaft system.

[0079] The estimated value Tcrke of the shaft torque is calculated using a physical model equation of the crank mechanism, and therefore is the shaft torque in an ideal state assuming no fluctuation in the tooth arrangement crank angle. The ideal section angular velocity ωid is calculated based on the estimated value Tcrke of the shaft torque, and therefore is the section angular velocity in the ideal state.

[0080] In this embodiment, the ideal angular velocity calculation unit 55 changes the correction value Kc(n) for each angle section Sd(n) so that the average value ωsd_ave of the detected section angular velocities ωsd in the averaging processing angle section Save does not deviate from the average detected angular velocity ωsaved, and therefore matches the average value ωid_ave of the ideal section angular velocities ωid in the averaging processing angle section Save to the average detected angular velocity ωsaved.

[0081] 10 , the ideal angular velocity calculation unit 55 calculates an ideal interval angular acceleration αid(n), which is the angular acceleration in an ideal state corresponding to each angle interval Sd(n), based on the estimated shaft torque value Tcrke(n) for each angle interval Sd(n) and the moment of inertia Icrk of the crankshaft system, and integrates the ideal interval angular acceleration αid(n) to calculate a temporary ideal interval angular velocity ωidtmp(n), which is the angular velocity in the ideal state corresponding to each angle interval Sd(n). In this embodiment, the ideal angular velocity calculation unit 55 calculates the temporary ideal interval angular velocity ωidtmp using the following equation. This calculation process is performed for each angle interval Sd(n) in the averaging processing angle interval Save.

[0082] As shown in the following equation, the ideal angular velocity calculation unit 55 calculates the average value ωidtmp_ave of the tentative ideal section angular velocities ωidtmp in the averaging processing angle section Save, where Q is the angle identification number corresponding to the first angle section of the averaging processing angle section Save, and R is the angle identification number corresponding to the last angle section of the averaging processing angle section Save.

[0083] Then, as shown in the following equation, the ideal angular velocity calculation unit 55 subtracts the average value ωidtmp_ave of the tentative ideal section angular velocity from the tentative ideal section angular velocity ωidtmp and adds the average detected angular velocity ωsaved to calculate the ideal section angular velocity ωid. This calculation process is performed for each angle section Sd(n) of the averaging processing angle section Save.

[0084] This calculation process makes it possible to make the average value ωid_ave of the ideal section angular velocities ωid in the averaging processing angular section Save coincide with the average detected angular velocity ωsaved. Therefore, as will be described later, the correction value Kc is changed so that the detection section angular velocity ωsd approaches the ideal section angular velocity ωid, and therefore the correction value Kc can be changed so that the average value ωsd_ave of the detection section angular velocities ωsd in the averaging processing angular section Save does not deviate from the average detected angular velocity ωsaved.

[0085] FIG. 11 shows the control behavior when the tentative ideal section angular velocity ωidtmp is set as the ideal section angular velocity ωid under the condition of a constant crank angular velocity. In this case, the average value ωid_ave of the ideal section angular velocity ωid deviates from the average detected angular velocity ωsaved, and therefore the average value ωsd_ave of the detected section angular velocity ωsd deviates from the average detected angular velocity ωsaved. Even though the crank angular velocity is constant, the detected section angular velocity ωsd gradually shifts, resulting in an error. On the other hand, FIG. 12 shows the control behavior when the correction is performed as in equation (17). In this case, the average value ωid_ave of the ideal section angular velocity ωid matches the average detected angular velocity ωsaved, and therefore the average value ωsd_ave of the detected section angular velocity ωsd does not deviate from the average detected angular velocity ωsaved. Therefore, the detected section angular velocity ωsd does not shift, and no error occurs.

[0086] <Correction value changing unit 56> The correction value changing unit 56 changes the correction value Kc(n) for each angle interval Sd(n) so that the detection interval angular velocity ωsd(n), which is the angular velocity corresponding to the angle interval calculated from the time interval ΔTdc and angle interval Δθdc after correction processing using the correction value Kc, approaches the ideal interval angular velocity ωid(n).

[0087] With this configuration, the ideal interval angular velocity ωid is an interval angular velocity in an ideal state, and therefore high-frequency components due to fluctuations in the tooth arrangement crank angle are not superimposed. Therefore, by changing the correction value Kc(n) for each angle interval Sd(n) so that the detected interval angular velocity ωsd(n) approaches the ideal interval angular velocity ωid(n), it is possible to appropriately change the correction value Kc(n) to cancel out fluctuations in the tooth arrangement crank angle.

[0088] The correction value changing unit 56 increases the correction value Kc(n) when the detected section angular velocity ωsd(n) exceeds the ideal section angular velocity ωid(n) for each angle section Sd(n), and decreases the correction value Kc(n) when the detected section angular velocity ωsd(n) falls below the ideal section angular velocity ωid(n).

[0089] Using the following equation, the correction value changing unit 56 calculates the detection interval angular velocity ωsd(n) after correction processing corresponding to each angle interval Sd(n) based on the time interval ΔTdc(n) and angle interval Δθdc(n) after correction processing using the correction value Kc.

[0090] For example, the correction value changing unit 56 updates the correction value Kc(n) using the following equation: where Klrn is a reflection rate, and a value of 1 or less is set.

[0091] In this embodiment, the correction value change unit 56 performs the change process of the correction values ​​Kc(n) for each angle section Sd(n) of the average processing angle section Save collectively each time the calculation process of the ideal section angular velocity ωid(n) for each angle section Sd(n) of the average processing angle section Save is completed.

[0092] After the power of the control device 50 is turned on, for example by turning on the vehicle key switch, the correction value changing unit 56 uses the learned correction value Kclrn(n) for each angle interval Sd(n) stored in a non-volatile storage device or a volatile storage device connected to a backup power source as the initial value of the correction value Kc(n) for each angle interval Sd(n). If the learned correction value Kclrn(n) is not stored or is not provided, 1 is set as the initial value of the correction value Kc(n) for each angle interval Sd(n).

[0093] <Conditions for Permitting Change of Correction Value> In this embodiment, the correction value changing unit 56 changes the correction value Kc when the internal combustion engine is in an uncombusted state where no combustion is occurring (when the first condition is met). On the other hand, the correction value changing unit 56 does not change the correction value Kc when the internal combustion engine is in a combusted state where combustion is occurring (when the first condition is not met). The uncombusted state includes a fuel cut state where the supply of fuel is stopped, etc.

[0094] In the unburned state, there is no increase in the in-cylinder pressure due to combustion, which is not assumed by the physical model equation of the crank mechanism, and therefore the accuracy of calculating the ideal interval angular velocity ωid is improved, thereby improving the accuracy of the change in the correction value Kc.

[0095] Furthermore, the correction value changing unit 56 changes the correction value Kc when the absolute value of the amount of change in the average value of the detection section angular velocity ωsd is equal to or less than the change amount determination value (when the second condition is met). On the other hand, the correction value changing unit 56 does not change the correction value Kc when the absolute value of the amount of change is greater than the change amount determination value (when the second condition is not met). The average value of the detection section angular velocity ωsd is set to, for example, the average value of an averaging period such as the averaging processing angle section Save or the stroke period.

[0096] When the absolute value of the change in the average value of the detection section angular velocity ωsd is large, the influence of disturbances such as the external load torque Tload is large, and the influence of the disturbances may deteriorate the accuracy of the change in the correction value Kc. Therefore, by changing the correction value Kc in a stable state where the absolute value of the change in the average value of the detection section angular velocity ωsd is small, the accuracy of the change in the correction value Kc can be improved.

[0097] The correction value changing unit 56 changes the correction value Kc when the operation amount of the brake mechanism of the vehicle equipped with an internal combustion engine is equal to or less than the operation amount determination value (when the third condition is met). On the other hand, the correction value changing unit 56 does not change the correction value Kc when the operation amount of the brake mechanism is greater than the operation amount determination value (when the third condition is not met).

[0098] When the operating amount of the brake mechanism is large, the braking force of the brake causes the external load torque Tload to fluctuate significantly, which may result in a deterioration in the accuracy of the change in the correction value Kc. Therefore, by changing the correction value Kc in a stable state where the operating amount of the brake mechanism is small, the accuracy of the change in the correction value Kc can be improved.

[0099] The correction value changing unit 56 changes the correction value Kc when the clutch mechanism to which the crankshaft is connected is in a disengaged state (when the fourth condition is met). On the other hand, the correction value changing unit 56 does not change the correction value Kc when the clutch mechanism is in an engaged state (when the fourth condition is not met). For example, the clutch mechanism is provided between the crankshaft and the transmission.

[0100] When the clutch mechanism is in an engaged state, the accuracy of the change in the correction value Kc may be degraded due to the external load torque Tload transmitted from the wheel side. Therefore, by changing the correction value Kc when the clutch mechanism is in a disengaged state, the accuracy of the change in the correction value Kc can be improved.

[0101] The correction value changing unit 56 changes the correction value Kc when the coolant temperature of the internal combustion engine is equal to or higher than the first water temperature determination value (when the fifth condition is met). On the other hand, the correction value changing unit 56 does not change the correction value Kc when the coolant temperature is lower than the first water temperature determination value (when the fifth condition is not met). Alternatively, the correction value changing unit 56 changes the correction value Kc when the coolant temperature is equal to or higher than the first water temperature determination value and lower than a second water temperature determination value that is higher than the first water temperature determination value (when the fifth condition is met). The correction value changing unit 56 does not change the correction value Kc when the coolant temperature is lower than the first water temperature determination value or higher than the second water temperature determination value (when the fifth condition is not met). The first water temperature determination value and the second water temperature determination value are preset to values ​​that change the correction value Kc when the internal combustion engine is warmed up and the coolant temperature is at a normal operating temperature.

[0102] When the cooling water temperature reaches a normal operating temperature, the state of friction and the like of the internal combustion engine becomes stable, and the accuracy of the change in the correction value Kc can be improved.

[0103] In this embodiment, the correction value changing unit 56 changes the correction value Kc when all of the above-described first to fifth conditions are met, and does not change the correction value Kc when any one of the first to fifth conditions is not met. Alternatively, all of the first to fifth conditions do not need to be used, and at least the first condition may be used.

[0104] 13 shows the behavior of the crank angular velocity ωdcmp without correction, calculated based on the angular interval Δθd and the time interval ΔTd that are not corrected by the correction value Kc, the high-precision crank angular velocity ω* detected by a high-precision rotation sensor provided for measurement, and the crank angular velocity ωd after correction using the correction value Kc, when a variation occurs in the tooth arrangement crank angle. As shown in FIG. 13, the crank angular velocity ωd after correction approaches the high-precision crank angular velocity ω* used for measurement from the crank angular velocity ωdcmp without correction. Therefore, the correction value Kc can be appropriately changed to cancel out the variation in the tooth arrangement crank angle, and the detection error of the crank angle θd can be accurately corrected.

[0105] When the change completion determination unit 58 described later determines that the change in the correction value Kc has been completed, the correction value change unit 56 does not satisfy the conditions for allowing the change in the correction value, and maintains each correction value Kc(n) for the angle section Sd(n) unchanged.

[0106] <Change completion determination unit 58> The change completion determination unit 58 determines whether or not the change of the correction value has been completed for all angle intervals corresponding to one rotation of the crankshaft as a whole, based on the correction value Kc(n) for each angle interval Sd(n), the time interval ΔTd(n) before the correction process for each angle interval Sd(n) and the angle interval Δθd(n) or the detected interval angular velocity ωsd(n) after the correction process for each angle interval Sd(n), and the ideal interval angular velocity ωid(n) for each angle interval Sd(n).

[0107] According to this configuration, it is possible to accurately determine whether the change in the correction value has been completed based on the ideal section angular velocity ωid(n), which is the target that the detection section angular velocity ωsd(n) approaches after the correction process, the correction value Kc(n) which is the result of the change, and the detection section angular velocity before or after the correction process.

[0108] In this embodiment, for each angle interval Sd(n), the change completion determination unit 58 calculates the detection interval angular velocity ωsdbf(n) before correction processing, which is the angular velocity of the angle interval before correction processing using the correction value, based on the time interval ΔTd(n) and the angle interval Δθd(n) before correction processing using the correction value Kc(n), or based on the correction value Kc(n) and the detection interval angular velocity ωsd(n) after correction processing, and calculates the ideal correction value Kcid(n), which is a correction value that causes the detection interval angular velocity ωsd(n) after correction processing to match the ideal interval angular velocity ωid(n), based on the detection interval angular velocity ωsdbf(n) before correction processing and the ideal interval angular velocity ωid(n). Then, the change completion determination unit 58 calculates the error Ekc(n) between the correction value Kc(n) and the ideal correction value Kcid(n) for each angle section Sd(n), and determines whether the change in the correction value has been completed based on the error Ekc(n).

[0109] According to this configuration, an ideal correction value Kcid(n) that causes the detection section angular velocity ωsd(n) after correction processing to match the ideal section angular velocity ωid(n) is calculated based on the ideal section angular velocity ωid(n) and the detection section angular velocity ωsdbf(n) before correction processing, and accurate determination can be made based on the error Ekc(n) between the correction value Kc(n) and the ideal correction value Kcid(n).

[0110] In this embodiment, the change completion determination unit 58 calculates the detection interval angular velocity ωsdbf(n) before correction processing for each angle interval Sd(n) based on the time interval ΔTd(n) and angle interval Δθd(n) before correction processing for each angle interval Sd(n), as shown in the following equation: where Nmx is the maximum number of the angle identification number n (60 in this example).

[0111] Alternatively, the change completion determination unit 58 may multiply the detection section angular velocity ωsd(n) after correction processing for each angle section Sd(n) by the correction value Kc(n) for each angle section Sd(n), as shown in the following equation, to calculate the detection section angular velocity ωsdbf(n) before correction processing for each angle section Sd(n).

[0112] As shown in the following equation, the change completion determination unit 58 divides the detection section angular velocity ωsdbf(n) before correction processing for each angle section Sd(n) by the ideal section angular velocity ωid(n) for each angle section Sd(n) to calculate the ideal correction value Kcid(n) for each angle section Sd(n).

[0113] As shown in the following equation, the change completion determination unit 58 subtracts the ideal correction value Kcid(n) for each angle interval Sd(n) from the correction value Kc(n) for each angle interval Sd(n) to calculate the error Ekc(n) for each angle interval Sd(n).

[0114] <Example of Determination Using Maximum Absolute Error MaxAE> For example, as shown in the following equation, the change completion determination unit 58 calculates the maximum absolute error MaxAE, which is the maximum value of the absolute values ​​of the errors |Ekc(n)| in all angle sections of one rotation of the crankshaft, and determines that the change of the correction value has been completed when the maximum absolute error MaxAE becomes equal to or less than the change completion determination value. Here, max{A, B, C, ...} is a function that outputs the maximum value of A, B, C, ...

[0115] For example, the maximum absolute error MaxAE is calculated using the errors Ekc(n) (n = 1, ..., Nmx) for all angle intervals of the most recent rotation. The maximum absolute error MaxAE may be calculated for each rotation, for multiple rotations, or for each predetermined angle (e.g., 180 degrees, 120 degrees). The maximum absolute error MaxAE may be subjected to low-pass filtering such as moving average processing or first-order lag filtering, and the resultant value may be compared with the change completion determination value. These processes are also performed on the mean absolute error MAE, mean square error MSE, root mean square error RMSE, maximum absolute error change amount MaxΔAE, absolute value of time change in mean absolute error |ΔMAE|, absolute value of time change in mean square error |ΔMSE|, and absolute value of time change in square root mean square error |ΔRMSE|, which will be described below.

[0116] <Example of Determination Using Mean Absolute Error MAE> Furthermore, for example, as shown in the following equation, the change completion determination unit 58 may calculate the mean absolute error MAE by summing up the absolute values ​​of the errors |Ekc(n)| in all angle sections of one rotation of the crankshaft and dividing the sum by the total number Nmx, and determine that the change of the correction value has been completed when the mean absolute error MAE is equal to or less than the change completion determination value.

[0117] <Example of Determination Using Mean Squared Error MSE> Furthermore, for example, as shown in the following equation, the change completion determination unit 58 may calculate the mean squared error MSE by dividing the sum of the squared values ​​of the errors in all angle sections of one rotation of the crankshaft by the total number Nmx, and determine that the change of the correction value has been completed when the mean squared error MSE is equal to or less than the change completion determination value.

[0118] <Example of Determination Using Root Mean Square Error RMSE> Furthermore, for example, as shown in the following equation, the change completion determination unit 58 may calculate the root mean square error RMSE, which is the square root of the value obtained by summing up the square values ​​of the errors in all angle sections of one rotation of the crankshaft and dividing the sum by the total number Nmx, and determine that the change of the correction value has been completed when the root mean square error RMSE becomes equal to or less than the change completion determination value.

[0119] <Example of Determination Using Maximum Value of Absolute Error Change MaxΔAE> Furthermore, for example, as shown in the following formula, the change completion determination unit 58 may calculate the maximum value of the absolute error change MaxΔAE, which is the maximum value of all angle sections for one rotation of the crankshaft, in the absolute value of the time change amount ΔEkc of the error in each angle section, and determine that the change of the correction value is complete when the maximum value of the absolute error change MaxΔAE becomes equal to or less than the change completion determination value. j represents the latest value of the error Ekc(n) for each angle section at the calculation time j of the maximum value MaxΔAE of the current absolute error change amount, and Ekc(n) j-1 represents the latest value of the error Ekc(n) for each angle section at time j-1 when the previous maximum value MaxΔAE of the absolute error change amount is calculated.

[0120] <Example of Determination Using Absolute Value of Time Variation of Mean Absolute Error |ΔMAE|> Furthermore, for example, as shown in the following formula, the change completion determination unit 58 may calculate the absolute value |ΔMAE| of the time variation of the mean absolute error MAE by dividing the sum of the absolute values ​​of the errors in all angle sections of one rotation of the crankshaft by the total number, and determine that the change of the correction value is complete when the absolute value |ΔMAE| of the time variation of the mean absolute error becomes equal to or less than the change completion determination value. j represents the mean absolute error MAE calculated at the calculation time j of the absolute value of the time change in the mean absolute error |ΔMAE|, and MAE j-1 represents the mean absolute error MAE calculated at the calculation time j-1 of the absolute value of the time change amount of the previous mean absolute error |ΔMAE|.

[0121] <Example of Determination Using Absolute Value of Time Variation of Mean Square Error |ΔMSE|> Furthermore, for example, as shown in the following formula, the change completion determination unit 58 may calculate the absolute value |ΔMSE| of the time variation of the mean square error MSE, which is obtained by dividing the sum of the squared values ​​of the errors in all angle sections of one rotation of the crankshaft by the total number, and determine that the change of the correction value has been completed when the absolute value |ΔMSE| of the time variation of the mean square error becomes equal to or less than the change completion determination value. Here, MSE j represents the mean square error MSE calculated at the calculation time j of the absolute value of the time change of the mean square error |ΔMSE|, and MSE j-1 represents the mean square error MSE calculated at the calculation time j-1 of the absolute value of the amount of change in the mean square error over time |ΔMSE| of the previous time.

[0122] <Example of Determination Using Absolute Value of Time Variation of Square Root of Mean Square Error |ΔRMSE|> Furthermore, for example, as shown in the following equation, the change completion determination unit 58 may calculate the absolute value |ΔRMSE| of the time variation of the square root of mean square error RMSE, which is the square root of the sum of the square values ​​of the errors in all angle sections of one rotation of the crankshaft divided by the total number, and determine that the change of the correction value has been completed when the absolute value |ΔRMSE| of the time variation of the square root of mean square error RMSE becomes equal to or less than the change completion determination value. Here, RMSE j represents the root mean square error RMSE calculated at the calculation time j of the absolute value |ΔRMSE| of the amount of change over time of the root mean square error RMSE, and RMSE j-1 represents the root mean square error RMSE calculated at the calculation time j-1 of the absolute value |ΔRMSE| of the amount of change over time in the root mean square error RMSE of the previous time.

[0123] <Timing of Completion Determination> After the power of the control device 50 is turned on, for example by turning on the vehicle key switch, the change completion determination unit 58 starts a new determination of the completion of the change of the correction value. Once the change completion determination unit 58 determines that the change of the correction value is complete after the power is turned on, the change completion determination unit 58 does not determine the completion of the change of the correction value until the next time the power of the control device 50 is turned on.

[0124] <Behavior of Completion Determination> Figures 14 to 17 show the behavior of the completion determination of the change in the correction value using each evaluation value calculated using the error Ekc(n) for all angle sections of one rotation. Figures 14 and 15 show the behavior of the mean absolute error MAE, the mean squared error MSE, and the square root of the mean squared error RMSE. Figure 15 is a partial enlarged view of Figure 14. Figures 16 and 17 show the behavior of the absolute value of the time change in the mean absolute error |ΔMAE|, the absolute value of the time change in the mean squared error |ΔMSE|, and the absolute value of the time change in the square root of the mean squared error |ΔRMSE|. Figure 17 is a partial enlarged view of Figure 16.

[0125] The horizontal axis of each graph represents the stroke number. The vertical axis of each evaluation value is displayed logarithmically. The top graphs of FIGS. 14 and 16 show the crank angular velocity ωd. At stroke number A, the conditions for allowing a change in the correction value are met, and each correction value Kc(n) begins to change. Specifically, during deceleration of the vehicle, the operation amount of the brake mechanism is below the operation amount judgment value, and fuel is cut off, so the conditions for allowing a change in the correction value are met. Each graph also shows the root mean square percentage error (RMSPE) as reference data.

[0126] After the change in stroke number A begins, each correction value Kc(n) changes, and the change in each correction value Kc(n) generally converges at stroke number B. At stroke number B, each evaluation value has sufficiently decreased, and if, for example, each evaluation value at stroke number B is set as the change completion determination value, it can be accurately determined that the change in the correction value has completed.

[0127] <Abnormal Combustion Determination Unit 59> After it is determined that the change in the correction value has been completed, the abnormal combustion determination unit 59 determines whether or not abnormal combustion has occurred in the internal combustion engine based on the detection section angular velocity ωsd (also simply referred to as the crank angular velocity ωd) after the correction process. The crank angular acceleration αd calculated based on the detection section angular velocity ωsd (crank angular velocity ωd) after the correction process is also used. In this embodiment, the abnormal combustion is determined to be the occurrence of pre-ignition, megaknock or low-speed pre-ignition, misfire or incomplete combustion, etc. If it is determined that abnormal combustion has occurred, the engine control unit 60 changes various control variables such as the intake air amount, ignition timing, and air-fuel ratio to suppress the occurrence of abnormal combustion.

[0128] Since the detection section angular velocity ωsd (crank angular velocity ωd) corrected by the correction value Kc is used to determine abnormal combustion, the accuracy of the abnormal combustion determination deteriorates before the change in the correction value is completed. As described above, the abnormal combustion determination is performed after it is determined that the change in the correction value is completed, so the accuracy of the abnormal combustion determination can be improved.

[0129] Various known methods are used to determine abnormal combustion based on the corrected detection section angular velocity ωsd (crank angular velocity ωd). For example, the technology disclosed in Japanese Patent No. 7031028 is used. The abnormal combustion determination unit 59 calculates an increase in gas pressure torque ΔTgas_brn due to combustion, which is part of the gas pressure torque applied to the crankshaft by the gas pressure in the cylinder, based on the crank angle θd and the crank angular acceleration αd at each crank angle θd. More specifically, the abnormal combustion determination unit 59 calculates the actual torque Tcrkd by multiplying the crank angular acceleration αd by the moment of inertia Icrk of the crankshaft system at each crank angle θd.

[0130] The abnormal combustion determination unit 59 references uncombusted fuel data, which sets the relationship between the crank angle θd and the uncombusted fuel torque Tcrk_mot, and calculates the uncombusted fuel torque Tcrk_mot corresponding to each crank angle θd in the estimated crank angle interval θint. Alternatively, the abnormal combustion determination unit 59 uses equation (6) to calculate the gas pressure Pcyl in the cylinder based on the detected value Pind of the gas pressure in the intake pipe for each crank angle θd, and uses this as the uncombusted fuel pressure Pcyl_mot in the cylinder. The abnormal combustion determination unit 59 uses equation (7), which converts gas pressure to torque, to calculate the gas pressure torque Tgas based on the uncombusted fuel pressure Pcyl_mot in the cylinder and the crank angle θd, and uses this as the uncombusted fuel pressure torque Tgas_mot. The abnormal combustion determination unit 59 calculates the inertia torque Tin based on the crank angle θd and the crank angular velocity ωd using equation (8) at each crank angle θd. The abnormal combustion determination unit 59 adds the gas pressure torque Tgas_mot in the uncombusted state and the inertia torque Tin in the uncombusted state at each crank angle θd to calculate the shaft torque Tcrk_mot in the uncombusted state.

[0131] The abnormal combustion determination unit 59 calculates an external load torque Tload during combustion by subtracting the actual torque Tcrkd near top dead center from the torque Tcrk_mot during uncombusted combustion near top dead center.The abnormal combustion determination unit 59 calculates an increment ΔTgas_brn in gas pressure torque due to combustion by subtracting the torque Tcrk_mot during uncombusted combustion from the actual torque Tcrkd and adding the external load torque Tload.The abnormal combustion determination unit 59 calculates an increment ΔPcyl_brn in gas pressure torque due to combustion at each crank angle θd based on the increment ΔTgas_brn in gas pressure torque due to combustion and the crank angle θd. The abnormal combustion determination unit 59 calculates the gas pressure in the cylinder during combustion Pcyl_brn by adding the gas pressure in the cylinder during uncombusted state Pcyl_unbrn to the increase in gas pressure in the cylinder due to combustion ΔPcyl_brn at each crank angle θd.

[0132] The abnormal combustion determination unit 59 calculates known combustion parameters such as the heat release rate, mass fraction burned (MFB), and indicated mean effective pressure (IMEP) using known arithmetic expressions based on the gas pressure Pcyl_brn in the cylinder during combustion at each crank angle θd. Then, the abnormal combustion determination unit 59 determines the occurrence of abnormal combustion such as pre-ignition, mega-knock or low-speed pre-ignition, misfire, or incomplete combustion using known methods based on the combustion parameters.

[0133] <Engine control unit 60 before determining completion of change in correction value> As described above, the engine control unit 60 controls the control variables of the internal combustion engine. Until it is determined that the change in the correction value is complete, the engine control unit 60 limits the control variables to a range in which abnormal combustion is unlikely to occur.

[0134] As described above, before the change in the correction value is completed, the accuracy of the abnormal combustion determination using the post-correction detection section angular velocity ωsd (crank angular velocity ωd) deteriorates, and therefore the abnormal combustion determination is not performed. By limiting the control variable to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value is completed, it is possible to prevent abnormal combustion from going undetected even if it does occur.

[0135] (Pre-ignition) The abnormal combustion determination unit 59 determines whether pre-ignition has occurred as abnormal combustion. The engine control unit 60 limits the control variable to a range in which pre-ignition is unlikely to occur until it is determined that the change in the correction value has been completed. For example, the engine control unit 60 limits the intake air amount or boost pressure in the cylinder to an upper limit value or less as the control variable. The upper limit value may be set in accordance with other operating conditions such as the crank angular velocity (rotational speed). As pre-ignition becomes more likely to occur when the intake air amount in the cylinder increases, the upper limit value is set to be less than the range of the intake air amount or boost pressure in which pre-ignition is likely to occur. The engine control unit 60 may limit the air-fuel ratio to be richer than the limit value as the control variable. As pre-ignition becomes more likely when the air-fuel ratio becomes lean due to a high intake air amount, the limit value is set to be richer than the range of the air-fuel ratio in which pre-ignition is likely to occur. The limit value may be set in accordance with other operating conditions such as the intake air amount or crank angular velocity (rotational speed). The engine control unit 60 may limit the ignition timing to a more retarded side than a limit value as a controlled variable. Since advancing the ignition timing with a high intake air amount makes pre-ignition more likely to occur, the limit value is set to a more retarded side than the range of ignition timing in which pre-ignition is more likely to occur. The limit value may be set according to other operating conditions such as the intake air amount and crank angular velocity (rotational speed). The engine control unit 60 may limit the exhaust gas recirculation amount (EGR amount) within a limited range as a controlled variable. Since increasing the EGR amount makes pre-ignition less likely to occur, the limit range is set to a range of EGR amount in which pre-ignition is less likely to occur. The limit range may be set according to other operating conditions such as the intake air amount and crank angular velocity (rotational speed). The engine control unit 60 may limit the opening and closing valve timing of one or both of the intake valve and the exhaust valve within a limited range as a controlled variable. Increasing the valve overlap period between the intake valve and the exhaust valve increases the amount of internal EGR, making it less likely that pre-ignition will occur, so the limit range is set to a range of valve opening / closing timing that makes it less likely that pre-ignition will occur. The limit range may also be set depending on other operating conditions such as the intake air amount and the crank angular velocity (rotational speed).

[0136] 18 , the internal combustion engine may be provided with a turbocharger 36. The turbocharger 36 includes a turbine 39 provided in the exhaust pipe 17, a compressor 38 provided in the intake pipe 23 upstream of the throttle valve 4 and rotating integrally with the turbine 39, an air bypass passage 40 in the intake pipe 23 that bypasses the compressor 38, an air bypass valve 41 provided in the air bypass passage 40, a bypass valve actuator 41a that drives the air bypass valve 41, an exhaust bypass passage 37 in the exhaust pipe 17 that bypasses the turbine 39, a wastegate valve 34 provided in the exhaust bypass passage 37 of the exhaust pipe 17, and a gate valve actuator 34a that drives the wastegate valve 34. A turbocharger intake pipe 42, which is a portion of the intake pipe 23 downstream of the compressor 38 and upstream of the throttle valve 4, is provided with a turbocharger pressure sensor 35 that generates an electric signal corresponding to a turbocharger pressure P2, which is the pressure of the air in the turbocharger intake pipe.

[0137] The engine control unit 60 may control the boost pressure P2 using the gate valve actuator 34a. In this case, the abnormal combustion determination unit 59 determines whether megaknock or low-speed planinosis, which occur in the supercharging region of a supercharged internal combustion engine, is occurring as abnormal combustion. The engine control unit 60 limits the control variable to a range in which megaknock or low-speed planinosis is unlikely to occur until it is determined that the change in the correction value is complete. For example, the engine control unit 60 limits the boost pressure P2 or the intake air amount as the control variable to an upper limit value or less. The upper limit value may be set according to other operating conditions, such as the crank angular velocity (rotational speed). When the supercharging region is entered and the boost pressure P2 increases and the intake air amount in the cylinder increases, megaknock and other problems are likely to occur. Therefore, the upper limit value is set to a range in which megaknock and other problems are likely to occur or less. The engine control unit 60 may limit the air-fuel ratio as the control variable to a value richer than the limit value. When the air-fuel ratio is not rich enough in the supercharging region, megaknock and other problems are likely to occur. Therefore, the limit value is set to be richer than the range of air-fuel ratios in which megaknock and other problems are likely to occur. The limit value may be set in accordance with other operating conditions, such as the intake air amount and crank angular velocity (rotational speed). The engine control unit 60 may limit the ignition timing to be more retarded than the limit value as a controlled variable. When the ignition timing is advanced in the supercharging region, megaknock and other problems are likely to occur. Therefore, the limit value is set to be more retarded than the range of ignition timing in which megaknock and other problems are likely to occur. The limit value may be set in accordance with other operating conditions, such as the intake air amount and crank angular velocity (rotational speed). The engine control unit 60 may limit the opening and closing valve timing of one or both of the intake valve and the exhaust valve within a limited range as a controlled variable. When the valve overlap period, etc. is changed, megaknock and other problems are less likely to occur due to intake air blow-by and other factors. Therefore, the limit range is set to a range of opening and closing valve timing of each valve in which megaknock and other problems are less likely to occur. The limit range may be set according to other operating conditions such as the intake air amount, the crank angular velocity (rotational speed), and the like.

[0138] (Misfire, etc.) The abnormal combustion determination unit 59 determines whether misfire or incomplete combustion has occurred as abnormal combustion. The engine control unit 60 limits the control variable to a range in which misfire or incomplete combustion is unlikely to occur until it is determined that the change in the correction value has been completed. For example, the engine control unit 60 limits the intake air amount in the cylinder to a limited range as a control variable. The limited range may be set depending on other operating conditions such as the crank angular velocity (rotational speed). Since misfires and the like are more likely to occur when the intake air amount is low or high, the limited range is set to a range of intake air amounts in which misfires and the like are less likely to occur. The engine control unit 60 may also limit the air-fuel ratio to a limited range as a control variable. Since misfires and the like are more likely to occur when the air-fuel ratio becomes leaner or richer, the limited range is set to a range of air-fuel ratios in which misfires and the like are less likely to occur. The limited range may be set depending on other operating conditions such as the intake air amount and the crank angular velocity (rotational speed). The engine control unit 60 may limit the ignition timing within a limited range as a controlled variable. Since advancing or retarding the ignition timing makes misfires and the like more likely to occur, the limited range is set to a range of ignition timing in which misfires and the like are less likely to occur. The limited range may be set in accordance with other operating conditions, such as the intake air amount and crank angular velocity (rotational speed). The engine control unit 60 may limit the exhaust gas recirculation (EGR) amount to an upper limit value or less as a controlled variable. Since increasing the EGR amount makes misfires and the like more likely to occur, the upper limit value is set to an EGR amount range in which misfires and the like are less likely to occur. The upper limit value may be set in accordance with other operating conditions, such as the intake air amount and crank angular velocity (rotational speed). The engine control unit 60 may limit the opening and closing valve timing of one or both of the intake valve and the exhaust valve within a limited range as a controlled variable. Since changing the opening and closing valve timing of each valve makes misfires and the like less likely to occur, the limited range is set to a range of opening and closing valve timing of each valve in which misfires and the like are less likely to occur. The limit range may be set according to other operating conditions such as the intake air amount, the crank angular velocity (rotational speed), and the like.

[0139] (Fuel injection timing) The engine control unit 60 may control the fuel injection timing as a controlled variable. Until it is determined that the change in the correction value has been completed, the engine control unit 60 limits the fuel injection timing to a range in which abnormal combustion is unlikely to occur. Since advancing or delaying the fuel injection timing makes pre-ignition, megaknock, misfire, etc. more likely to occur, the limit range is set to a range of fuel injection timing in which abnormal combustion, etc. are unlikely to occur. The limit range may be set depending on other operating conditions such as the intake air amount, crank angular velocity (rotational speed), and air-fuel ratio.

[0140] (Maximum Valve Lift Amount) If a control mechanism that changes the maximum valve lift amount is provided for one or both of the intake valve 14 and the exhaust valve 15, the engine control unit 60 may control the maximum valve lift amount of one or both of the intake valve and the exhaust valve as the control amount. The engine control unit 60 limits the maximum valve lift amount to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed. Since decreasing or increasing the maximum valve lift amount makes pre-ignition, megaknock, misfire, etc. more likely to occur, the limit range is set to a range of maximum valve lift amount in which abnormal combustion, etc. is unlikely to occur. The limit range may also be set depending on other operating conditions such as the intake air amount, crank angular velocity (rotational speed), and air-fuel ratio.

[0141] <Feature value calculation unit 61> The feature value calculation unit 61 calculates a feature value Fv that represents the feature of the correction value, based on each correction value Kc(n) of the angle section Sd(n), and is a specific number Nfv that is smaller than the number Nmx of correction values.

[0142] According to this configuration, it is possible to grasp the change state of the correction value Kc efficiently and macroscopically using the feature values ​​Fv of a specific number Nfv which is smaller than the number Nmx of correction values.

[0143] Each correction value Kc(n) is a coefficient representing the error of each angle section Sd(n) with reference to a reference value Kc0. In this embodiment, the reference value Kc0 is set to 1.

[0144] (First calculation method of feature value Fv) The feature value calculation unit 61 calculates each of the feature values ​​Fv of the specific number Nfv by summing the absolute values ​​of the values ​​obtained by subtracting the reference value Kc0 (1 in this example) from each of the correction values ​​Kc(n) within each range of a specific angle interval pre-assigned to each of the feature values ​​Fv of the specific number Nfv.

[0145] According to this configuration, the characteristic value Fv of the specific number Nfv can be calculated by a simple process of calculating the sum of the absolute values ​​of the values ​​obtained by subtracting the reference value Kc0 from the correction value Kc(n) in each range of the specific angle section.

[0146] In this embodiment, the specific number Nfv is set to 1, and the range of the specific angle interval for one feature value Fv is set to all angle intervals Sd for one rotation of the crankshaft. The feature value calculation unit 61 calculates one feature value Fv using the following equation: Here, Nmx is the maximum number of the angle identification number n (60 in this example), the number of all angle intervals for one rotation of the crankshaft, and the number of correction values.

[0147] When the specific number Nfv is set to 2 or greater, the range of the specific angle section of each feature value Fv is set to the range of angle sections obtained by dividing all angle sections Sd for one rotation of the crankshaft by the specific number Nfv. When the specific number Nfv is 2, the range of the specific angle section of each feature value Fv is set to a range of 180 degrees, which is obtained by dividing 360 degrees into two. Alternatively, when the specific number Nfv is 3, the range of the specific angle section of each feature value Fv is set to a range of 120 degrees, which is obtained by dividing 360 degrees into three. The range of the specific angle section of each feature value Fv may be set to a range starting from the top dead center of each cylinder. Then, in equation (32), an accumulation range of the angle identification number n is set corresponding to the range of the specific angle section of each feature value Fv, and each feature value Fv is calculated.

[0148] (Second calculation method of feature value Fv) Alternatively, the feature value calculation unit 61 may calculate each of the feature values ​​Fv of the specific number Nfv by summing the absolute values ​​of the values ​​obtained by subtracting the reference value Kc0 (1 in this example) from each of the correction values ​​Kc(n) in each range of specific angle intervals pre-assigned to each of the feature values ​​Fv of the specific number Nfv, and dividing the sum by the number of angle intervals Nsd in the range of the specific angle intervals.

[0149] According to this configuration, the characteristic value Fv of the specific number Nfv can be calculated by a simple process of dividing the sum of the absolute values ​​of the values ​​obtained by subtracting the reference value Kc0 from the correction value Kc(n) in each range of the specific angle interval by the number of angle intervals Nsd.

[0150] In this embodiment, the specific number Nfv is set to 1, the range of a specific angle interval for one feature value Fv is set to all angle intervals Sd for one rotation of the crankshaft, and the number of angle intervals Nsd is set to the number Nmx of all angle intervals. The feature value calculation unit 61 calculates one feature value Fv using the following equation.

[0151] When the specific number Nfv is set to 2 or greater, the range of the specific angle interval for each feature value Fv is set to the range of angle intervals obtained by dividing all angle intervals Sd for one rotation of the crankshaft by the specific number Nfv. When the specific number Nfv is 2, the range of the specific angle interval for each feature value Fv is set to a range of 180 degrees, which is obtained by dividing 360 degrees into two. Alternatively, when the specific number Nfv is 3, the range of the specific angle interval for each feature value Fv is set to a range of 120 degrees, which is obtained by dividing 360 degrees into three. The range of the specific angle interval for each feature value Fv may be set to a range starting from the top dead center of each cylinder. Then, in equation (33), the integration range of the angle identification number n and the number of angle intervals Nsd are set corresponding to the range of the specific angle interval for each feature value Fv, and each feature value Fv is calculated.

[0152] <Update storage determination unit 62, learning value storage unit 63, and feature value storage unit 64> At the storage timing, the update storage determination unit 62 determines whether or not to update and store the learned correction values ​​Kclrn(n) obtained by learning the correction values ​​Kc(n) for each angle interval Sd(n) based on the feature values ​​Fv of the specific number Nfv in a non-volatile storage device or a volatile storage device connected to a backup power source.

[0153] According to this configuration, it is possible to efficiently and accurately determine whether or not to update and store the learned correction value Kclrn, using the characteristic value Fv that indicates the characteristics of the correction value Kc.

[0154] When the update storage determination unit 62 determines at the storage timing that the learning value should be updated and stored, the learning value storage unit 63 updates and stores the learning correction value Kclrn(n) for each angle interval Sd(n) in a non-volatile storage device or a volatile storage device connected to a backup power source based on the correction value Kc(n) for each angle interval Sd(n).

[0155] According to this configuration, when it is determined that the learning correction value Kclrn should be updated and stored based on the feature value Fv, the learning correction value Kclrn is updated and stored, so that the correction value Kc can be maintained as the learning correction value Kclrn even after the power is turned off, and can be used as the initial value of the correction value Kc the next time the power is turned on.

[0156] As shown in FIG. 19 , each learned correction value Kclrn(n) for the angle interval Sd(n) is associated with each angle identification number n and stored in a non-volatile storage device or a volatile storage device connected to a backup power source.

[0157] For example, as shown in equation (34), the learned value storage unit 63 may update and store the correction value Kc(n) for each angle interval Sd(n) as the learned correction value Kclrn(n) for each angle interval Sd(n), or may update and store the learned correction value Kclrn(n) for each angle interval Sd(n) as the learned correction value Kclrn(n) for each angle interval Sd(n) by the sum of a value obtained by multiplying the correction value Kc(n) for each angle interval Sd(n) by a reflection rate Kref that is smaller than 1 and a value obtained by multiplying the learned correction value Kclrn(n) for each angle interval Sd(n) before the update and storage by a value obtained by subtracting the reflection rate Kref from 1, as shown in equation (35).

[0158] In this embodiment, the update storage determination unit 62 sets the storage timing to a timing that is set after it is determined by the change completion determination unit 58 that the change of the correction value has been completed and before the power supply of the control device 50 is turned off. For example, the storage timing may be set immediately after it is determined that the change of the correction value has been completed, or may be set immediately before the power supply (main switch) of the control device 50 is turned off after it is determined that the change of the correction value has been completed.

[0159] (Determination Based on Abnormality Determination Value) When any of the feature values ​​Fv of the specific number Nfv is equal to or greater than the abnormality determination value at the storage timing, the update storage determination unit 62 determines not to update and store the learned correction value Kclrn(n).

[0160] In this embodiment, the specific number Nfv is set to 1, and the update storage determination unit 62 determines not to update and store the learning correction value Kclrn(n) if one feature value Fv is equal to or greater than the abnormality determination value at the storage timing.

[0161] According to this configuration, when a fluctuation in the tooth arrangement crank angle exceeds a standard or a calculation error in the correction value Kc exceeds a standard due to the influence of external disturbances or the like, it is possible to prevent the learned correction value Kclrn(n) from being updated and stored.

[0162] (Determination by storing characteristic values) The characteristic value storage unit 64 stores the characteristic values ​​Fv of the specific number Nfv in chronological order at the storage timing in a non-volatile storage device or a volatile storage device connected to a backup power source.

[0163] The update storage determination unit 62 determines whether or not to update and store the learning correction value Kclrn at the current storage timing based on the characteristic value Fv of the specific number Nfv calculated at the current storage timing and the characteristic value Fv of the specific number Nfv at a past storage timing stored in a non-volatile storage device or a volatile storage device connected to a backup power source.

[0164] According to this configuration, it is possible to determine whether or not to update and store the learned correction value Kclrn based on the history of the characteristic value Fv of the specific number Nfv.

[0165] In this embodiment, the update storage determination unit 62 calculates, at the current storage timing, the feature value change amount ΔFv, which is the absolute value of the difference between each of the feature values ​​Fv of the specific number Nfv at the current storage timing and each of the feature values ​​Fv of the specific number Nfv at the previous storage timing, and if any of the feature value change amounts ΔFv of the specific numbers Nfv exceeds the change amount determination value, determines not to update and store the learning correction value Kclrn, and if the feature value change amount ΔFv of the specific number Nfv falls below the change amount determination value, determines to update and store the learning correction value.

[0166] In this embodiment, the specific number Nfv is set to 1, and the update / storage determination unit 62 calculates, at the current storage timing, a feature value change amount ΔFv, which is the absolute value of the difference between one feature value Fv at the current storage timing and one feature value Fv at the previous storage timing, and determines not to update and store the learning correction value Kclrn if one feature value change amount ΔFv exceeds the change amount determination value, and determines to update and store the learning correction value Kclrn if one feature value change amount ΔFv falls below the change amount determination value.

[0167] According to this configuration, if the correction value Kc temporarily fluctuates due to the influence of a disturbance when the correction value Kc changes at the current storage timing, the characteristic value change amount ΔFv increases, and it is possible to prevent the learned correction value Kclrn from being updated and stored. Disturbances include braking force, external forces from the road surface, and the external load torque acting on the crankshaft may suddenly change due to the disturbance, which may degrade the accuracy of the change in the correction value Kc. Also, if the correction value Kc temporarily fluctuated due to the influence of a disturbance at the previous storage timing, and the influence of the disturbance disappears at the current storage timing and the correction value Kc returns to a normal value, the characteristic value change amount ΔFv increases, and the learned correction value Kclrn is not updated and stored. However, because it is not possible to determine at which storage timing the disturbance occurred simply by comparing the current and previous values, not updating and storing the learned correction value Kclrn allows for a safe update and storage.

[0168] Furthermore, if the update storage determination unit 62 determines that the learning correction value Kclrn will not be updated and stored at the storage timings two times before last and the previous time, and determines that the learning correction value will be updated and stored at the current storage timing, it determines that a temporary calculation error in the correction value Kc occurred at the storage timing two times before last.

[0169] 20 , if a temporary calculation error occurred at the time of storage before last due to the influence of a disturbance or the like, but no temporary calculation error occurred at the time of storage before last or the current time, the feature value Fv fluctuates from its normal value at the time of storage before last and returns to its original normal value at the time of storage before last, so the feature value change amount ΔFv increases at the time of storage before last and the time of storage before last, and it is determined that the feature value should not be updated and stored. Furthermore, since the feature value Fv remains at its original normal value at the time of storage this time, the feature value change amount ΔFv decreases, and it is determined that the feature value should be updated and stored. Therefore, by making a determination using the above configuration, it is possible to accurately determine that a temporary calculation error occurred at the time of storage before last due to the influence of a disturbance or the like.

[0170] Furthermore, if the update storage determination unit 62 determines at the second-to-last storage timing that the learning correction value should not be updated and stored, and determines at the previous and current storage timings that the learning correction value should be updated and stored, it determines that a change in the characteristics of the detected part occurred or that the rotating member on which the detected part is provided was replaced before the second-to-last storage timing.

[0171] According to this configuration, as shown in FIG. 21 , if the rotating member (in this example, the flywheel 27) on which the teeth serving as the detection part are provided is replaced or the tooth arrangement / crank angle characteristics change due to aging before the second-to-last storage timing, and the replaced or aged rotating member is used between the previous and current storage timings, the feature value Fv fluctuates due to the characteristic change at the second-to-last storage timing, and the feature value Fv remains unchanged between the previous and current storage timings. Therefore, the feature value change amount ΔFv increases at the second-to-last storage timing, and it is determined not to update and store the feature value. However, the feature value change amount ΔFv decreases at the previous and current storage timings, and it is determined to update and store the feature value. Therefore, by making a determination using the above configuration, it is possible to accurately determine that a change in the characteristics of the detection part occurred or that the rotating member on which the detection part is provided was replaced before the second-to-last storage timing.

[0172] 2. Second Embodiment A control device 50 according to a second embodiment will be described with reference to the drawings. Description of components that are the same as those in the first embodiment will be omitted. The basic configuration of the control device 50 according to this embodiment is the same as that of the first embodiment, but the processing of the ideal angular velocity calculation unit 55 differs from that of the first embodiment.

[0173] As in the first embodiment, the ideal angular velocity calculation unit 55 calculates the ideal interval angular velocity ωid, which is the angular velocity corresponding to each angle interval Sd in an ideal state assuming no fluctuation in the tooth arrangement crank angle, based on the estimated axial torque value Tcrke(n) for each angle interval Sd(n) and the moment of inertia Icrk of the crankshaft system.

[0174] In addition, the ideal angular velocity calculation unit 55 changes the correction value Kc(n) for each angle section Sd(n) so that the average value ωsd_ave of the detected section angular velocity ωsd in the average processing angle section Save does not deviate from the average detected angular velocity ωsaved, and therefore matches the average value ωid_ave of the ideal section angular velocity ωid in the average processing angle section Save to the average detected angular velocity ωsaved.

[0175] 22, the ideal angular velocity calculation unit 55 calculates the ideal interval angular acceleration αid(n), which is the angular acceleration in the ideal state corresponding to each angle interval Sd(n), based on the estimated shaft torque Tcrke(n) for each angle interval Sd(n) and the moment of inertia Icrk of the crankshaft system. This calculation process is performed for each angle interval Sd(n) in the averaging processing angle interval Save.

[0176] Unlike the first embodiment, the ideal angular velocity calculation unit 55 sets the angle interval Scal(n) to be calculated by shifting the angle interval Sd one by one toward the advance angle side, calculates an ideal time interval ΔTid(n), which is the time interval in an ideal state corresponding to the angle interval Scal(n) to be calculated, based on the ideal interval angular acceleration αid(n) corresponding to the angle interval Scal(n) to be calculated and the provisional ideal interval angular velocity ωidtmp(n-1) calculated in the angle interval Scal(n-1) to be calculated that is one angle to the retard side, and calculates a provisional ideal interval angular velocity ωidtmp(n), which is the angular velocity in an ideal state corresponding to the angle interval Scal(n) to be calculated, based on the ideal time interval ΔTid(n) corresponding to the angle interval Scal(n).

[0177] In this embodiment, each angle section Sd(n) of the averaging processing angle section Save is shifted one by one toward the advance angle side from the first angle section Sd(Q) to the last angle section Sd(R) of the averaging processing angle section Save, and set as the angle section Scal(n) to be calculated (n=Q, Q+1, ..., R-1, R), where Q is the angle identification number corresponding to the first angle section of the averaging processing angle section Save, and R is the angle identification number corresponding to the ending angle interval of the averaging processing angle section Save.

[0178] Using the following equation, the ideal angular velocity calculation unit 55 calculates an ideal time interval ΔTid(n), which is the time interval in an ideal state corresponding to the angle interval Scal(n) to be calculated, based on the ideal interval angular acceleration αid(n) corresponding to the angle interval Scal(n) to be calculated and the tentative ideal interval angular velocity ωidtmp(n-1) calculated in the angle interval Scal(n-1) to be calculated on the one retard side.

[0179] Using the following equation, the ideal angular velocity calculation unit 55 calculates a tentative ideal interval angular velocity ωidtmp(n), which is the angular velocity in an ideal state corresponding to the angle interval Scal(n) to be calculated, based on the ideal time interval ΔTid(n) corresponding to the angle interval Scal(n) to be calculated.

[0180] The angle identification number n is increased by one from Q to R, and the calculations of equations (37) and (38) are performed for each angle identification number n.

[0181] Then, as shown in the following equation, the ideal angular velocity calculation unit 55 calculates an average value ωidtmp_ave of the provisional ideal section angular velocities ωidtmp in the averaging processing angular section Save.

[0182] As shown in the following equation, the ideal angular velocity calculation unit 55 subtracts the average value ωidtmp_ave of the tentative ideal section angular velocity from the tentative ideal section angular velocity ωidtmp and adds the average detected angular velocity ωsaved to calculate the ideal section angular velocity ωid. This calculation process is performed for each angle section Sd(n) of the averaging processing angle section Save.

[0183] This calculation process makes it possible to make the average value ωid_ave of the ideal section angular velocities ωid in the averaging processing angular section Save coincide with the average detected angular velocity ωsaved, as in embodiment 1. Therefore, the correction value Kc is changed so that the detection section angular velocity ωsd approaches the ideal section angular velocity ωid, and therefore the correction value Kc can be changed so that the average value ωsd_ave of the detection section angular velocities ωsd in the averaging processing angular section Save does not deviate from the average detected angular velocity ωsaved.

[0184] 3. Embodiment 3 A control device 50 according to embodiment 3 will be described with reference to the drawings. Description of components similar to those of embodiment 1 or 2 will be omitted. The basic configuration of the control device 50 according to this embodiment is similar to that of embodiment 1 or 2, but the processing of the correction value changing unit 56 differs from that of embodiment 1 or 2.

[0185] In this embodiment, the correction value change unit 56 changes the correction value Kc(n) for each angle section Sd(n) so that the average value ωsd_ave of the detection section angular velocity ωsd in the average processing angle section Save does not deviate from the average detected angular velocity ωsaved, thereby matching the average value ωsd_ave of the detection section angular velocity ωsd in the average processing angle section Save to the average detected angular velocity ωsaved.

[0186] 23 , the correction value changing unit 56 calculates the basic detection interval angular velocity ωsdbs(n), which is the angular velocity corresponding to each angle interval Sd(n), based on the time interval ΔTdc(n) and angle interval Δθdc(n) after correction using the correction value. The following equation is used for this calculation. This calculation is performed for each angle interval Sd(n) in the averaging processing angle interval Save.

[0187] The correction value changing unit 56 calculates a basic detection section angular acceleration αsdbs(n), which is the angular acceleration corresponding to each angle section Sd(n), based on the basic detection section angular velocity ωsdbs(n) corresponding to each angle section Sd(n) and the time interval ΔTdc(n), and integrates the basic detection section angular acceleration αsdbs(n) to calculate a temporary detection section angular velocity ωsdtmp(n), which is the angular velocity corresponding to each angle section Sd(n). The following equation is used for this calculation process. This calculation process is performed for each angle section Sd(n) in the averaging processing angle section Save.

[0188] The correction value changing unit 56 calculates an average value ωsdtmp_ave of the provisional detection section angular velocity ωsdtmp in the averaging processing angular section Save.

[0189] Then, as shown in the following equation, the correction value changing unit 56 subtracts the average value ωsdtmp_ave of the provisional detection section angular velocities from the provisional detection section angular velocity ωsdtmp(n) and adds the average detection angular velocity ωsaved to the subtracted value to calculate the detection section angular velocity ωsd(n). This calculation process is performed for the angle section Sd(n) of the averaging processing angle section Save.

[0190] This calculation process makes it possible to make the average value ωsd_ave of the detection section angular velocities in the averaging processing angular section Save coincide with the average detected angular velocity ωsaved. Therefore, the correction value Kc can be changed so that the average value ωsd_ave of the detection section angular velocities ωsd in the averaging processing angular section Save does not deviate from the average detected angular velocity ωsaved.

[0191] Then, as in embodiment 1, the correction value change unit 56 changes the correction value Kc(n) for each angle interval Sd(n) so that the detected interval angular velocity ωsd(n) approaches the ideal interval angular velocity ωid(n) for each angle interval Sd(n).

[0192] Other Embodiments (1) In the above-described embodiments, the second crank angle sensor 6 corresponds to the "specific crank angle sensor" in the present disclosure, the flywheel 27 corresponds to the "rotating member" in the present disclosure, and the teeth of the ring gear 25 provided on the flywheel 27 correspond to the "detected portion" in the present disclosure. However, the embodiments of the present disclosure are not limited to this. That is, the first crank angle sensor 11 may correspond to the "specific crank angle sensor" in the present disclosure, the signal plate 10 may correspond to the "rotating member" in the present disclosure, and the plurality of teeth provided on the signal plate 10 may correspond to the "detected portion" in the present disclosure.

[0193] (2) In the above-described embodiments, the internal combustion engine 1 is described as a gasoline engine. However, the embodiments of the present disclosure are not limited to this. That is, the internal combustion engine 1 may be various types of internal combustion engines, such as a diesel engine or an engine that performs homogeneous-charge compression ignition combustion (HCCI) combustion.

[0194] (3) In the above-described embodiments, the axial torque estimator 54 calculates the external load torque Tload based on the axial torque estimated value Tcrke(θd_tdc) calculated at the crank angle θd_tdc near the top dead center of the piston and the axial torque detected value Tcrkd(θd_tdc). However, the axial torque estimator 54 calculates the ideal section angular velocity ωid in an ideal state without external load torque based on the axial torque estimated value Tcrke to which the external load torque Tload in equation (13) has not been added and the moment of inertia Icrk of the crankshaft system. Specifically, in equation (15) or equation (36), the axial torque estimated value Tcrke to which the external load torque Tload in equation (13) has not been added is used, and the other calculation processes for the ideal section angular velocity ωid are the same as those in the first or second embodiment. The axial torque estimator 54 then calculates an average value ωid_ave of the ideal section angular velocities ωid in an ideal state where there is no external load torque during the averaging processing angular section Save. The axial torque estimator 54 may then estimate the external load torque Tload based on the difference between the average value ωid_ave of the ideal section angular velocities ωid in an ideal state where there is no external load torque during the averaging processing angular section Save and the average value ωsd_ave of the detection section angular velocities ωsd after correction during the averaging processing angular section Save. For example, as shown in the following equation, the axial torque estimator 54 subtracts the average value ωid_ave of the ideal section angular velocities from the average value ωsd_ave of the detection section angular velocities, multiplies the result by 2, divides the result by the time interval ΔTsave of the averaging processing angular section, and multiplies the result by the moment of inertia Icrk of the crankshaft system to calculate the external load torque Tload.

[0195] Although various exemplary embodiments and examples are described in this disclosure, the various features, aspects, and functions described in one or more embodiments are not limited to the application of a particular embodiment, but may be applied to the embodiments alone or in various combinations. Therefore, countless variations not illustrated are contemplated within the scope of the technology disclosed in this disclosure specification. For example, this includes cases where at least one component is modified, added, or omitted, or where at least one component is extracted and combined with components of another embodiment.

[0196] 52: Angle information detection unit, 53: Angle information correction unit, 54: Shaft torque estimation unit, 55: Ideal angular velocity calculation unit, 56: Correction value change unit, 58: Change completion determination unit, 59: Abnormal combustion determination unit, 60: Engine control unit, 61: Feature value calculation unit, 62: Update storage determination unit, 63: Learning value storage unit, 64: Feature value storage unit, Kc: Correction value, Kc0: Reference value, Kcid: Ideal correction value, Kclrn: Learning correction value, MAE: Mean absolute error, MSE: Mean square error, MaxΔAE: Maximum absolute error change amount, MaxAE: Max Large absolute error, Nfv: specific number, Nmx: total number, Nsd: number of angle intervals, P2: boost pressure, RMSE: square root of mean square error, RMSPE: square root of mean square percentage error, ΔFv: amount of change in feature value, |ΔMAE|: absolute value of amount of change in mean absolute error over time, |ΔMSE|: absolute value of amount of change in mean square error over time, |ΔRMSE|: absolute value of amount of change in the square root of mean square error over time, ωid: ideal interval angular velocity, ωsd: detection interval angular velocity after correction processing, ωsdbf: detection interval angular velocity before correction processing

Claims

1. A control device for an internal combustion engine, comprising: a rotating member that rotates integrally with the crankshaft, having a plurality of detection units provided at a predetermined plurality of crank angles; a specific crank angle sensor fixed to a non-rotating member for detecting the detection units; and a gas pressure sensor for detecting the gas pressure in the intake manifold, wherein the control device controls the internal combustion engine, An angle information detection unit that, based on the output signal of the specified crank angle sensor, detects the crank angle and the detection time when the crank angle was detected, calculates the angle interval corresponding to the angle interval between the detected angles based on the detected crank angle, and calculates the time interval corresponding to the angle interval based on the detection time, An angle information correction unit that corrects each of the angle intervals or time intervals in the angle intervals using a correction value provided one for each of the angle intervals, An intake manifold gas pressure detection unit detects the gas pressure in the intake manifold based on the output signal of the gas pressure sensor, Based on the detected gas pressure in the intake manifold and the detected angle, a shaft torque estimation unit estimates the axial torque of the crankshaft due to the gas pressure in the cylinder and the reciprocating motion of the piston, corresponding to each of the angle intervals, using a physical model equation of the crank mechanism. An ideal angular velocity calculation unit calculates the ideal interval angular velocity, which is the angular velocity corresponding to each of the angular intervals in an ideal state where it is assumed that there is no change in the multiple crank angles in which the multiple detection units are arranged, based on the estimated values ​​of the shaft torque for each of the angular intervals and the moment of inertia of the crankshaft system. A correction value changing unit that changes the correction value for each of the angle intervals so that the detected interval angular velocity, which is the angular velocity corresponding to the angle interval calculated by the time interval and the angle interval after correction processing with the correction value, approaches the ideal interval angular velocity, A control device for an internal combustion engine, comprising: a change completion determination unit that determines whether the change in the correction value has been completed for the entire angular section for one rotation of the crankshaft, based on the correction value for each of the angular sections, the time interval and the detected angular velocity for each of the angular sections or the angular section before correction processing by the correction value for each of the angular sections, and the ideal angular velocity for each of the angular sections.

2. The change completion determination unit calculates, for each of the angle intervals, the time interval and angle interval before correction processing by the correction value, or the correction value and the detected interval angular velocity, the detected interval angular velocity before correction processing by the correction value, and calculates an ideal correction value, which is the correction value that makes the detected interval angular velocity after correction processing match the ideal interval angular velocity, based on the detected interval angular velocity before correction processing and the ideal interval angular velocity. The control device for an internal combustion engine according to claim 1, which calculates the error between the correction value and the ideal correction value for each of the aforementioned angular intervals, and determines whether or not the change in the correction value has been completed based on the error.

3. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates a maximum error value which is the maximum absolute value of the error for all of the angle intervals for one rotation of the crankshaft, and determines that the change of the correction value is complete when the maximum error value becomes less than or equal to a determination value.

4. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates an absolute average error by dividing the sum of the absolute values ​​of the errors for all the angle intervals for one rotation of the crankshaft by the total number of divisions, and determines that the change of the correction value is complete when the absolute average error becomes less than or equal to a determination value.

5. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates the mean squared error by dividing the sum of the squared error values ​​for all the angle intervals for one rotation of the crankshaft by the total number of values, and determines that the change of the correction value is complete when the mean squared error becomes less than or equal to a determination value.

6. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates the square root of the mean squared error, which is the square root of the value obtained by dividing the sum of the squared values ​​of the errors for all the angle intervals for one rotation of the crankshaft by the total number of values, and determines that the change of the correction value is complete when the square root of the mean squared error becomes less than or equal to a determination value.

7. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates the maximum error change value which is the maximum value of all the angle intervals for one rotation of the crankshaft in the absolute value of the time change amount of the error for each of the angle intervals, and determines that the change of the correction value is complete when the maximum error change value becomes less than or equal to a determination value.

8. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates the time change amount of the absolute average error obtained by dividing the sum of the absolute values ​​of the errors for all the angle intervals for one rotation of the crankshaft by the total number of values, and determines that the change of the correction value is complete when the time change amount of the absolute average error becomes less than or equal to a determination value.

9. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates the time change amount of the mean squared error by dividing the sum of the squared error values ​​for all the angle intervals for one rotation of the crankshaft by the total number of values, and determines that the change of the correction value is complete when the time change amount of the mean squared error becomes less than or equal to a determination value.

10. The control device for an internal combustion engine according to claim 2, wherein the change completion determination unit calculates the amount of change over time of the square root of the mean squared error, which is the square root of the value obtained by dividing the sum of the squared values ​​of the errors for all the angle intervals for one rotation of the crankshaft by the total number of squared values, and determines that the change of the correction value is complete when the amount of change over time of the square root of the mean squared error becomes less than or equal to a determination value.

11. It further includes an abnormal combustion detection unit that determines whether or not there is abnormal combustion in the internal combustion engine. The angle information detection unit calculates the corrected detection interval angular velocity, which is the angular velocity of the angular interval, based on the time interval and the angle interval after correction processing using the correction value. The control device for an internal combustion engine according to any one of claims 1 to 10, wherein the abnormal combustion determination unit determines, after determining that the change in the correction value has been completed, whether or not abnormal combustion has occurred in the internal combustion engine based on the corrected detection interval angular velocity.

12. It is equipped with an engine control unit that controls the amount of internal combustion engine control, The control device for an internal combustion engine according to claim 11, wherein the engine control unit limits the control amount to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

13. The abnormal combustion determination unit determines whether or not pre-ignition occurs as abnormal combustion, The control device for an internal combustion engine according to claim 12, wherein the engine control unit limits the control amount to a range in which pre-ignition is unlikely to occur until it is determined that the change in the correction value has been completed.

14. The abnormal combustion determination unit determines whether or not mega-knock or low-speed pre-initiation, which occur in the supercharged range in an internal combustion engine with a supercharger, is occurring as an abnormal combustion. The control device for an internal combustion engine according to claim 12, wherein the engine control unit limits the control amount to a range in which mega-knock or low-speed pre-tion is unlikely to occur until it is determined that the change in the correction value has been completed.

15. The abnormal combustion determination unit determines whether or not a misfire or incomplete combustion has occurred as an abnormal combustion, The control device for an internal combustion engine according to claim 12, wherein the engine control unit limits the control amount to a range in which misfire or incomplete combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

16. The engine control unit controls the air-fuel ratio as the control amount. The control device for an internal combustion engine according to claim 12, wherein the air-fuel ratio is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

17. The engine control unit controls the fuel injection timing as the control amount. The control device for an internal combustion engine according to claim 12, wherein the fuel injection timing is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

18. The engine control unit controls the intake air amount as the control amount, The control device for an internal combustion engine according to claim 12, wherein the intake air volume is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

19. The engine control unit controls the boost pressure in an internal combustion engine with a supercharger as the control amount. The control device for an internal combustion engine according to claim 12, wherein the boost pressure is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

20. The engine control unit controls the ignition timing as the control variable. The control device for an internal combustion engine according to claim 12, wherein the ignition timing is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

21. The engine control unit controls the exhaust gas recirculation flow rate as the control amount. The control device for an internal combustion engine according to claim 12, wherein the exhaust gas return flow rate is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

22. The engine control unit controls the opening and closing timing of one or both of the intake valve and the exhaust valve as the control amount. The control device for an internal combustion engine according to claim 12, wherein the on / off valve timing is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.

23. The engine control unit controls the maximum valve lift amount of one or both of the intake valve and the exhaust valve as the control amount. The control device for an internal combustion engine according to claim 12, wherein the maximum valve lift amount is limited to a range in which abnormal combustion is unlikely to occur until it is determined that the change in the correction value has been completed.