A control device for an internal combustion engine, the control device comprising:
- a crank angle sensor that outputs a crank angle signal at a predetermined crank angle and a regular interval by synchronizing rotation of a signal rotor fixed on a crank shaft of the internal combustion engine in such a manner that an interval of the crank angle signals is longer at a specific crank angle corresponding to a position of a crank position reference part of the signal rotor;
- and in such a manner that the interval of the crank angle signals at the predetermined crank angle is the regular interval excluding the position of the crank position reference part;
- and
- at least one processor configured to detect the crank position reference part based on a time interval of the crank angle signals and controls the internal combustion engine by calculating a crank angle based on the crank angle signal corresponding to the position of the detected crank position reference part and discriminating a cylinder,
- wherein:
- the crank angle sensor includes a rotation detecting function that outputs different crank angle signals in a forward rotation of the crank shaft and in a backward rotation of the crank shaft;
- and
- the at least one processor is further configured, when a stop request to the internal combustion engine is generated or when the backward rotation of the crank shaft is detected based on the crank angle signal,
- to disallow the detection of the crank position reference part and
- to control the internal combustion engine by calculating the crank angle by adding the predetermined crank angle, in response to detection of the crank angle signal, to the crank angle of the crank position detected before the detection of the crank position reference part is disallowed,
- the at least one processor is further configured to execute an automatic stop of the internal combustion engine when a predetermined stop condition is satisfied,
- the at least one processor is further configured to execute a restart of the internal combustion engine when a predetermined restart condition is satisfied,
- the at least one processor is further configured to disallow the detection of the crank position reference part when an automatic stop request to the internal combustion engine is generated,
- the at least one processor is further configured to execute control of the internal combustion engine by calculating the crank position based on the crank position reference part detected before the detection of the crank position reference part is disallowed, and
- in a case in which the automatic stop request to the internal combustion engine is generated and a restart request to the internal combustion engine is generated before the internal combustion engine is completely stopped, the at least one processor is further configured to cancel the disallowance of the detection of the crank position reference part when at least one of two conditions of (i) the internal combustion engine is rotated more than a predetermined number of rotation and (ii) a rotation speed of the internal combustion engine is more than a predetermined rotation speed is satisfied.