Apparatus for controlling ignition timing in internal combustion engine

An apparatus for controlling ignition timing in an internal combustion engine wherein the ignition timing is controlled such that a crank angle at which an increased rate of pressure in a cylinder is maximized coincides with a target value, e.g., an MBT point or the like. The apparatus detects an occurrence of incorrect ignition in response to a signal indicative of pressure in the cylinder and inhibits feedback control from being carried out for the ignition timing when an occurrence of incorrect ignition is detected. The crank angle, at which an increased rate of pressure in the cylinder is maximized, is calculated in response to a signal indicative of pressure in the cylinder, a reference pulse transmitted from a crank angle sensor and a pulse transmitted per 1.degree. of a crank angle of the crankshaft. The target value is set to a value by which a maximum torque is obtainable within a range where no knocking occurs.

BACKGROUND OF THE INVENTION 
1. Field of the Invention 
The present invention relates to an apparatus for controlling ignition 
timing in an internal combustion engine. 
2. Description of the Prior Art 
A typical conventional apparatus for controlling ignition timing in an 
internal combustion engine is disclosed, e.g., in official gazettes of 
Japanese Patent Disclosure No. 59060/1982 and Japanese Patent Disclosure 
No. 59061/1982. FIG. 8 is a sectional view of an internal combustion 
engine for which the conventional apparatus is employed wherein the whole 
structure of the apparatus is schematically illustrated in the drawing. In 
the drawing, reference numeral 1 designates an air cleaner, reference 
numeral 2 designates an air flow meter for measuring a quantity of intake 
air, reference numeral 3 designates a throttle valve, reference numeral 4 
designates an intake air manifold, reference numeral 5 designates a 
cylinder, reference numeral 6 designates a coolant temperature sensor for 
detecting the temperature of a coolant flowing through the engine, 
reference numeral 7 designates a crank angle sensor, reference numeral 8 
designates an exhaust gas manifold, reference numeral 9 designates an 
exhaust gas sensor, reference numeral 10 designates an injector, reference 
numeral 11 designates an ignition plug, reference numeral 12 designates a 
controller and reference numeral 13 designates an igniter. 
With the conventional apparatus as constructed in the above-described 
manner, the crank angle sensor 7 outputs to the controller 12 a reference 
position indicative pulse per each reference position for a crank angle of 
the crankshaft (e.g., per 180.degree. in the case of a four-cylinder type 
internal combustion engine; per 120.degree. in the case of a six-cylinder 
type internal combustion engine). In addition, the crank angle sensor 7 
outputs to the controller 12 a unit pulse per unit crank angle of the 
crankshaft. After the controller 12 has the reference position indicative 
pulse inputted thereinto, it calculates the number of inputted unit angle 
indicative pulses to determine the present crank angle of the crankshaft. 
Further, the controller 12 can determine the present engine speed by 
measuring a frequency or a period of the unit angle pulse. Incidentally, 
the crank angle sensor 7 is normally mounted in a distributor. 
The controller 12 is normally constituted in the form of a microcomputer 
including, e.g., CPU, RAM, ROM, an input/output interface and so forth. An 
intake air quantity indicative signal S1 transmitted from the air flow 
meter 2, a coolant temperature indicative signal S2 transmitted from the 
coolant temperature sensor 6, a crank angle indicative signal S3 
transmitted from the crank angle sensor 7, an air/fuel ratio indicative 
signal S4 transmitted from the exhaust gas sensor 9 and a signal (not 
shown) indicative of a fully closed state of the throttle valve 3 are 
inputted into the controller 12, respectively. In response to these 
signals, the controller 12 performs calculations to calculate an ignition 
timing and a quantity of fuel to be injected. Subsequently, the controller 
12 outputs an ignition signal to the igniter 13 such that ignition occurs 
at the calculated ignition timing. After the ignition plug 11 is 
activated, the controller 12 outputs a driving signal S5 to drive the 
injector 10 with a predetermined air/fuel ratio. 
To correctly calculate the ignition timing, a basic ignition timing 
corresponding to an engine speed N and an intake air quantity Q is 
previously stored in the controller 12. When the engine starts, the 
controller 12 reads the engine speed N and the intake air quantity Q and 
then determines a quantity of correction to be made by performing addition 
or multiplication in consideration of the temperature of a coolant and 
other factors, whereby a desirable ignition timing is obtained. 
With the conventional apparatus as described above, however, it has been 
found that the apparatus has a problem that the controller cannot carry 
out ignition timing control at which a maximum torque is obtainable, if a 
point representative of minimum advance for best torque (hereinafter 
referred to as an MBT point) at the time when an ignition timing map is 
set is different from an MBT point at the time of practical usage, because 
engine characteristics vary as time elapses and a certain amount of 
productive fluctuation unavoidably occurs with the apparatus. 
SUMMARY OF THE INVENTION 
The present invention has been made with the foregoing background in mind. 
An object of the present invention is to provide an apparatus for 
controlling ignition timing in an internal combustion engine wherein 
ignition timing control can always automatically be carried out with a 
maximum torque being obtainable, irrespective of how far engine 
characteristics vary as time elapses or of how much productive fluctuation 
occurs with the apparatus. 
To accomplish the above object, there is provided according to one aspect 
of the present invention an apparatus for controlling ignition timing in 
an internal combustion engine, wherein the apparatus comprises means for 
detecting an increased rate of pressure in a cylinder, means for detecting 
a crank angle of a crankshaft for the internal combustion engine, means 
for calculating a crank angle at which an increased rate of pressure in a 
cylinder is maximized in response to inputting a signal transmitted from 
the means for detecting an increased rate of pressure in the cylinder as 
well as inputting a signal transmitted from the means for detecting a 
crank angle of the crankshaft, means for averaging values derived from the 
calculations, and means for comparing a value so derived with a target 
value to control the ignition timing such that a differential value 
between the averaged value and the target value is eliminated. 
Further, according to another aspect of the present invention, there is 
provided an apparatus for controlling ignition timing in an internal 
combustion engine, wherein the apparatus comprises means for detecting 
pressure in a cylinder, means for detecting a crank angle of a crankshaft 
for the internal combustion engine, means for calculating a crank angle of 
the crankshaft at which an increased rate of pressure in the cylinder is 
maximized in response to inputting a signal transmitted from the means for 
detecting pressure in the cylinder as well as inputting a signal 
transmitted from the means for detecting a crank angle of the crankshaft, 
means for detecting an occurrence of incorrect ignition in response to a 
signal indicative of pressure in the cylinder, means for comparing a value 
derived from the calculation with a target value to control the ignition 
timing such that a differential value between the averaged value and the 
target value is eliminated, and means for inhibiting feedback control from 
being carried out for the ignition timing when an occurrence of incorrect 
ignition is detected. 
With the apparatus of the present invention, a controller calculates a 
crank angle of the crankshaft at which an increased rate of pressure in 
the cylinder is maximized and carries out feedback control for the 
ignition timing such that the calculated crank angle coincides with a 
preset target value. When an occurrence of incorrect ignition is detected, 
the controller inhibits any feedback control from being carried out. 
Other objects, features and advantages of the present invention will become 
readily apparent from reading of the following description which has been 
made with reference to the accompanying drawings.

DESCRIPTION OF THE PREFERRED EMBODIMENT 
Now, the present invention will be described in detail hereinafter with 
reference to the accompanying drawings which illustrate a preferred 
embodiment thereof. 
FIG. 1 is a sectional view of an internal combustion engine for which an 
ignition control apparatus for the internal combustion engine in 
accordance with the embodiment of the present invention is employed. 
Essential components represented by reference numerals 1 to 13 are 
identical to those of the conventional apparatus as described above. 
Therefore, they are represented by the same reference numerals. Thus, 
repeated description in them will not be required. In the drawing, 
reference numeral 14 designates a pressure sensor for detecting a pressure 
in the cylinder 5. The pressure sensor 14 is practically used in place of 
the washer for the ignition plug 11 so as to allow variation of the 
pressure in the cylinder 5 to be picked up in the form of an electrical 
signal. The controller 12 is constructed such that an intake air quantity 
indication signal S1 transmitted from the air flow meter 2, a coolant 
temperature indication signal S2 transmitted from the coolant temperature 
sensor 6, a crank angle indication signal S3 transmitted from the crank 
angle sensor 7, an air/fuel ratio indication signal S4 transmitted from 
the exhaust gas sensor 9, a pressure indication signal S6 transmitted from 
the pressure sensor 14 and a signal (not shown) indicative of a fully 
closed state of the throttle valve 3 are inputted into the controller 12, 
respectively. In response to the aforementioned signals, the controller 12 
performs calculations for calculating ignition timing and then outputs the 
ignition signal S7 to the igniter 13 to activate the ignition plug 11 
based on results derived from the calculations, whereby ignition occurs 
with the calculated ignition timing. 
FIG. 2(A) is a plan view of the pressure sensor 14 and FIG. 2(B) is a 
vertical sectional view of the pressure sensor 14. In the drawings, 
reference numeral 14A designates a piezoelectric element, reference 
numeral 14B designates a minus electrode and reference numeral 14C 
designates a plus electrode. FIG. 3 is a fragmentary sectional view 
illustrating that the pressure sensor 14 is mounted on a cylinder 15 by 
threadably tightening the ignition plug 11. 
FIG. 4 is a characteristic diagram illustrating a relationship between a 
crank angle .theta.(dP/d.theta.).sub.max and an output torque generated by 
the internal combustion engine wherein the crank angle 
.theta.(dP/d.theta.).sub.max represents a crank angle of the crankshaft at 
which an increased rate of pressure in the cylinder 5 per 1.degree. of a 
crank angle of the crankshaft is maximized. In the drawing, a 
characteristic curve identified by a plurality of .DELTA. marks represents 
a case where the internal combustion engine operates under conditions of 
an engine speed of 3000 rpm and an intake air pressure of 200 mmHg, 
whereas a characteristic curve identified by a plurality of .smallcircle. 
marks represents a case where the internal combustion engine operates 
under conditions of an engine speed of 1500 rpm and an intake air pressure 
of 400 mmHg. As is apparent from the drawing, the crank angle 
.theta.(dP/d.theta.).sub.max having a maximized engine output torque is 
kept substantially constant independently of the present load and engine 
speed. In the example, the crank angle .theta.(dP/d.theta.).sub.max having 
a maximized engine output torque is located at a position represented by 
ATDC 8.degree. in FIG. 4. The crank angle .theta.(dP/d.theta.).sub.max 
having a maximized engine output torque is hereinafter referred to as 
.theta. MBT. 
FIG. 5 is a characteristic diagram illustrating a relationship between the 
ignition timing and the .theta.(dP/d.theta.).sub.max. As is apparent from 
the drawing, the ignition timing is associated with the 
.theta.(dP/d.theta.).sub.max in the corresponding relationship relative to 
the latter. Thus, the .theta.(dP/d.theta.).sub.max can correctly be 
controlled by controlling the ignition timing. 
In a case where the igniter 13 malfunctions or a combustible gas mixture is 
incorrectly generated, incorrect ignition occurs. At this time, the 
pressure in the cylinder exhibits a wave form as shown in FIG. 9(B), and 
the crank angle of the crankshaft having a pressure increased rate 
maximized largely shifts to the advance angle side compared with the case 
shown in FIG. 9(A). Thus, an occurrence of incorrect ignition can be 
detected by setting a specific crank angle position .theta..sub.1 for 
determining an occurrence of incorrect ignition between 
.theta.(dP/d.theta.).sub.max at the time of normal combustion and 
.theta.(dP/d.theta.).sub.max at the time of incorrect ignition and then 
comparing the crank angle position .theta..sub.1 with the 
.theta.(dP/d.theta.).sub.max derived from practical measurements. 
As will be apparent from the above description, it can be known that a 
maximum torque is always obtained by controlling the ignition timing such 
that the .theta.(dP/d.theta.).sub.max becomes .theta. MBT. In addition, it 
can be known that incorrect ignition occurs, if the 
.theta.(dP/d.theta.).sub.max does not remain within a predetermined crank 
angle range. 
Next, a process for obtaining the .theta.(dP/d.theta.).sub.max will be 
described below with reference to a flowchart in FIG. 6. This flowchart 
illustrates an interruption routine which is executed in response to a 
pulse transmitted from the crank angle sensor 7 per 1.degree. of the crank 
angle of the crankshaft. When the routine starts, it first enters a step 
100 at which the controller 12 obtains a crank angle .theta. by 
calculating the number of pulses per 1.degree. of the crank angle of the 
crankshaft after a reference pulse is inputted into the controller 12. 
Then, the routine moves to a step 101 at which the controller 12 
determines whether or not the crank angle .theta. obtained at the step 100 
remains within the range from the crank angle .theta..sub.1 for detecting 
an occurrence of incorrect ignition to an angle .theta..sub.2 located 
behind a combustion TDC (wherein the angle .theta..sub.2 is preset in 
consideration of the range where the .theta.(dP/d.theta.).sub.max can be 
assumed arbitrarily). If the result derived from the determination at the 
step 101 is YES, the routine moves to a step 102 at which the controller 
12 reads an A/D value indicative of the pressure P(.theta. ) in the 
cylinder 5. Subsequently, the routine moves to a step 103. If the result 
derived from the step 101 is NO, the main routine is re-established. At 
the step 103, the controller 12 determines whether the crank angle .theta. 
is an angle of .theta..sub.1 or not. If the result derived from the 
determination at the step 103 reveals that the crank angle .theta. is 
.theta..sub.1, the routine moves to a step 104 at which the controller 12 
calculates equations of P.sub.1 =P(.theta.) and .DELTA.P.sub.1 =0 using 
the A/D values representative of the pressure P(.theta.) in the cylinder 5 
so that the results derived from the calculations of the both equations of 
P.sub.1 =P(.theta.) and .DELTA.P.sub.1 =0 are stored in a memory of the 
controller 12. Then, the main routine is re-established. If the result 
derived from the determination at the step 103 reveals that the crank 
angle .theta. is not .theta..sub.1, the routine moves to a step 105 at 
which the controller 12 determines whether the crank angle .theta. is an 
angel of .theta..sub.2 or not. If the result derived from the 
determination at the step 105 reveals that the crank angle .theta. is not 
.theta..sub.2, the routine moves to a step 106 at which the controller 12 
calculates an equation of .DELTA.P.sub.2 =P(.theta.)-P.sub.1 so that the 
result derived from the calculation of the foregoing equation is stored in 
the memory. Then, the routine moves to a step 107. If the result derived 
from the determination at the step 105 reveals that the crank angle 
.theta. is .theta..sub.2, the routine moves to a step 108 at which the 
controller 12 shows a flag indicative of completion of the calculation of 
.theta.(dP/d.theta.).sub.max. Then, the main routine is re-established. At 
the step 107, the controller 12 determines whether or not .DELTA.P.sub.2 
is equal to .DELTA.P.sub.1 or .DELTA.P.sub.2 is larger than 
.DELTA.P.sub.1. If the result derived from the determination at the step 
107 is YES, the routine moves to a step 109 at which the controller 12 
updates the content of .DELTA.P.sub.1 under a condition that 
.DELTA.P.sub.1 is equal to .DELTA.P.sub.2. Then, the main routine is 
re-established. If the result derived from the determination at the step 
107 is NO, the controller 12 determines that the pressure increased rate 
has been maximized. Subsequently, the routine moves to a step 110 at which 
the controller 12 calculates an equation of .theta.(dP/d.theta.).sub.max 
=.theta. so that the result derived from the foregoing equation is stored 
in the memory. Then, the main routine is re-established. Consequently, the 
crank angle .theta.(dP/d.theta.).sub.max, at which an increased rate of 
pressure in the cylinder 5 per 1.degree. of the crank angle of the 
crankshaft is maximized within the range from the predetermined crank 
angle .theta..sub.1 for detecting an occurrence of incorrect ignition to 
the crank angle .theta..sub.2 located behind the combustion TDC, can be 
obtained by processing the aforementioned steps. 
Next, control for an ignition timing with the use of 
.theta.(dP/d.theta.).sub.max will be described below with reference to a 
flowchart in FIG. 7(A). The flow shown in FIG. 7(A) is a flow to be 
executed at every time when the .theta.(dP/d.theta.).sub.max is obtained 
in accordance with the flow in FIG. 6 and the controller 12 shows a flag 
indicative of completion of the calculation of the 
.theta.(dP/d.theta.).sub.max. At a step 200, the controller 12 reads an 
engine speed N and a quantity of intake air Q. Then, the routine moves to 
a step 201 at which the controller 12 reads a previously stored basic 
ignition timing map with reference to N and Q to obtain a basic ignition 
timing .theta..sub.o. Subsequently, the routine moves to a step 202 at 
which the controller 12 calculates an error signal required for carrying 
out feedback control and represented by an equation of .theta..sub.e 
=.theta..sub.r -.theta.(dP/d.theta.).sub.max (a target value .theta..sub.r 
of the .theta.(dP/d.theta.).sub.max is usually preset to a value of the 
.theta. MBT) and then shows a flag indicative of completion of the 
calculation. Thereafter, the routine moves to a step 203 at which the 
controller 12 performs proportional integrating calculation for the error 
signal .theta..sub.e thereby to calculate a quantity of feedback 
correction .theta..sub.fb. Subsequently, the routine moves to a step 204 
at which the controller 12 obtains a final ignition timing .theta..sub.ig 
in the form of a sum of the basic ignition timing .theta..sub.o read from 
the foregoing map and the quantity of feedback correction .theta..sub.fb. 
At this time, the controller 12 outputs the ignition signal S7 to the 
igniter 13 such that ignition occurs at the final ignition timing 
.theta..sub.ig. Thus, the ignition plug 11 is activated to ignite a 
combustible mixture gas. 
Next, control for an ignition timing with the use of 
.theta.(dP/d.theta.).sub.max will be described below with reference to a 
flowchart in FIG. 7(B). The flow shown in FIG. 7(B) is a flow to be 
executed at every time when the .theta.(dP/d.theta.).sub.max is obtained 
in accordance with the flow in FIG. 6 and then the controller 12 shows a 
flag representative of completion of the calculation of the 
.theta.(dP/d.theta.).sub.max. At a step 300, the controller 12 reads an 
engine speed N and a quantity of intake air Q. Then, the routine moves to 
a step 301 at which the controller 12 reads a previously stored basic 
ignition timing map with reference to N and Q to obtain a basic ignition 
timing .theta..sub.o. Thereafter, the routine moves to a step 302 at which 
the controller 12 determines whether the .theta.(dP/d.theta.).sub.max 
which has been calculated in accordance with the flowchart in FIG. 6 is 
.theta..sub.1 or not. If the result derived from the determination at the 
step 302 reveals that the .theta.(dP/d.theta.).sub.max is .theta..sub.1 , 
this means that the .theta.(dP/d.theta.).sub.max is located on the advance 
angle side ahead of the .theta..sub.1. The controller 12 determines that 
incorrect ignition occurs. Subsequently, the routine moves to a step 306. 
If the result derived from the determination at the step 302 is not 
.theta..sub.1, the controller 12 determines that normal combustion takes 
place, and the routine moves to a step 303. At the step 303, the 
controller 12 calculates an error signal required for carrying out 
feedback control and represented by an equation of .theta..sub.e 
=.theta..sub.r -.theta.(dP/d.theta.).sub.max (a target value .theta..sub.r 
of the .theta.(dP/d.theta.).sub.max is preset to a value of the .theta. 
MBT) and then resets a flag representative of completion of the 
calculation of the .theta.(dP/d.theta.).sub.max. At a step 304, the 
controller 12 performs a proportional integrating calculation for the 
error signal .theta..sub.e to calculate a quantity of feedback correction 
.theta..sub.fb. Then, the routine moves to a step 305 at which the 
controller 12 obtains a final ignition timing .theta..sub.ig in the form 
of a difference between the basic ignition timing .theta..sub.o read from 
the foregoing map and the quantity of feedback control .theta..sub.fb. The 
controller 12 outputs the ignition timing signal S7 to the igniter 13 such 
that ignition occurs at a final ignition timing .theta..sub.ig. Thus, the 
ignition plug 11 is activated to ignite a combustible mixture gas. On the 
other hand, at a step 306, the controller 12 determines whether the number 
of times of incorrect ignitions within a predetermined period of time is 
smaller than a specific number n of times or not. This determination is 
intended to determine whether the foregoing incorrect ignition is single 
incorrect ignition due to a contingent phenomenon or it is frequent 
incorrect ignition attributable to other factors. In the former case, the 
controller 12 determines that the number of times of incorrect ignitions 
is smaller than the number n of times. Subsequently, the routine moves to 
a step 307 at which the controller 12 does not introduce the .theta..sub.e 
derived from the .theta.(dP/d.theta.).sub.max into the present quantity of 
feedback correction .theta..sub.fb but carries out feedback control using 
the present .theta..sub.fb. In a case where the controller 12 has 
determined at the step 306 that the number of times of incorrect ignitions 
is larger than the number n of times, the routine moves to a step 308 at 
which the controller 12 stops feedback control and calculates the ignition 
timing .theta..sub.ig based on the basic ignition timing .theta..sub.o 
which has been read at the step 301. 
In the embodiment shown in FIG. 7(A) and FIG. 7(B), dP/d.theta. 
representative of a value per unit crank angle of the crankshaft is used 
as an increased rate of pressure in the cylinder 5. Alternatively, dP/dt 
representative of a value per unit time may be substituted for the 
dP/d.theta. to carry out same control. This is due to the fact that, since 
a relationship represented by an equation of .theta.=6Nt is established 
among a crank angle .theta., an engine speed N and a time t (wherein 
.theta. is represented by degree, N is represented by rpm and t is 
represented by second), an equation of d.theta.=6Ndt is established, 
unless the engine speed N varies, and the (dP/d.theta.).sub.max becomes 
equal to (dP/dt).sub.max /(6N), whereby the (dP/dt).sub.max can be used in 
place of the (dP/d.theta.).sub.max. 
In addition, the present invention has been described above with respect to 
a case where the crank angle .theta.(dP/dt).sub.max at which a maximum 
increase in the rate of pressure in the cylinder 5 is obtainable in 
accordance with the program flow. However, the present invention should 
not be limited only to this case. For example, the 
.theta.(dP/d.theta.).sub.max may be obtained by using circuits, e.g., a 
peak value holding circuit depending on the differential wave form 
representative of pressure in the cylinder. In the embodiment shown, a 
target control value .theta..sub.r for the .theta.(dP/d.theta.).sub.max 
has been set to a value with which the maximum torque is obtainable. In 
some cases, however, there arises a problem that the target control value 
.theta..sub.r remains within the knocking region under a condition of a 
large magnitude of load. In view of this problem, the target value 
.theta..sub.r may be preset to a certain value as a map within the range 
where no knocking occurs such that the maximum torque is obtainable at the 
foregoing value. In this case, the controller 12 may read the target value 
.theta..sub.r depending on the engine speed N, the intake air quantity Q 
and so forth. 
Further, the present invention has been described above with respect to the 
case where an absolute value indicative of the pressure in the cylinder 5 
can be measured. It is obvious that the present invention is more 
preferably employable in a case where a rate of variation of the pressure 
can be measured. 
As will be apparent from the above description, according to the present 
invention, the controller operates such that it calculates a crank angle 
.theta.(dP/d.theta.).sub.max at which an increased rate of pressure in the 
cylinder is maximized, compares a value derived from the calculation with 
a target value thereby to control an ignition timing such that a 
difference between the calculated value and the target value is eliminated 
and moreover inhibits feedback control from being carried out at the time 
of incorrect ignition. Therefore, the apparatus of the present invention 
can automatically control ignition timing at all times such that ignition 
occurs when the maximum torque is obtainable, irrespective of how far the 
ignition timing varies as time elapses or irrespective of how much 
productive fluctuation occurs within the apparatus. 
While the present invention has been described above with respect to a 
single preferred embodiment thereof, it should of course be understood 
that the present invention should not limited only to this embodiment but 
various changes or modifications may be made without departure from the 
scope of the invention as defined by the appended claims.