TECHNICAL FIELD
[0001] The present invention relates to a knock generation control system for engines for
controlling a knock control factor (for example, ignition timing, air/fuel ratio,
supercharging pressure or the like) by detecting a knock generated in an engine, and,
more particularly, to a knock generation control system for engines including the
setting of a knock decision level.
BACKGROUND ART
[0002] Generally, a knock decision level V
KD is produced by multiplying a mean level of a knock sensor signal by a constant K.
In such a KCS, there is a problem that on optimum value of K changes due to manufacturing
dispersion, variations with time, etc. of engines, knock sensors and so on, which
makes it difficult to perform accurate knock detection. In order to solve this problem,
a system has been proposed which pays attention to the fact that, as shown in Fig.
15, the shape of a frequency distribution curve (broken line) of representative values
of a knock sensor signal, in the case where a knock is generated, is distorted in
the direction of a region of greater representative values of the knock sensor signal
as compared with that of a frequency distribution curve (solid line) in the case where
no knock is generated, and which contemplates to automatically correct a knock decision
level on the basis of a degree of the distortion (for example, a relation in magnitude
between the area of a region ① and that of a region ② in Fig. 15) (for example, see
JP-A-62-267574).
[0003] However, when the region ① or region ④ in Fig. 15 is used as a parameter for correcting
the knock decision level as in the above system, a long time is required before a
sufficient amount of data for correcting the knock decision level is obtained, since
the probability for a representative value to fall within the region ① or region ④
is small. Accordingly, there is a problem that a long time would elapse before the
knock decision level is automatically corrected to have an adequate level and, as
a result, inadequate knock detection is made during that time.
DISCLOSURE OF INVENTION
[0004] The present invention is made to solve the above-mentioned problem, and an object
of the present invention is to provide a system which enables automatic correction
of the knock decision level to have an adequate level within a short period of time.
[0005] Fig. 1 is a functional block diagram which comprehensively illustrates a functional
relation between constituent elements of the system of the present invention.
[0006] In order to attain the above-mentioned object, the present invention proposes a knock
generation control system for engines which comprises, as shown in Fig. 1;
a knock sensor for detecting a knocking phenomenon generated in an engine;
representative value detecting means for detecting a representative value of a
signal from the knock sensor which is effective for the detection of a knock;
standard deviation detecting means for detecting a quantity SGM corresponding to
a standard deviation in a frequency distribution of logarithmic conversion values
of the representative values;
cumulative percentage point detecting means for detecting a value of a cumulative
percentage point in the frequency distribution;
knock decision level setting means for setting a knock decision level in accordance
with the quantity SGM corresponding to the standard deviation and a quantity corresponding
to the cumulative percentage point;
knock detecting means for detecting generation of a knock in accordance with the
representative value and the knock decision level and producing a detection signal;
and
adjusting means responsive to the detection signal from the knock detecting means
for adjusting a knock control factor so as to suppress the generation of a knock.
[0007] It should be noted that the value of the cumulative percentage point in the frequency
distribution denotes a value which represents a position on the abscissa of a graph
showing the cumulative percentage of the frequency of generation in the graphical
representation of a frequency distribution curve.
[0008] In the knock generation control system for engines, the knock decision level setting
means may comprise engine state detecting means for detecting a state of the engine,
the knock decision level setting means setting a knock decision level in accordance
with the quantity SGM corresponding to the standard deviation, the quantity corresponding
to the cumulative percentage point and the state of the engine so that the frequency
of knock decision per unit time assumes a predetermined value.
[0009] The engine state detecting means may include speed detecting means for detecting
a rotational speed of the engine.
[0010] The system may further comprise logarithmic conversion means for forming a logarithmic
conversion value ℓV of the representative value V in accordance with the relation
[0011] The logarithmic conversion means may comprise:
storing means in which the logarithmic conversion values are preliminarily stored;
and
reading means for reading a logarithmic conversion value corresponding to the representative
value from the storing means.
[0012] The knock decision level setting means may set the knock decision level V
KD in accordance with the quantity SGM corresponding to the standard deviation and the
value V
P of the cumulative percentage point in the form of V
KD = SGM
u X V
P (u: a variable defined depending upon the state of the engine).
[0013] The knock decision level setting means may comprise
u value setting means for setting a value of
u so that it becomes larger as a value representative of the state of the engine becomes
larger.
[0014] The knock decision level setting means may comprise knock decision level correcting
means for correcting a knock decision level, which is set in accordance with a rotational
speed of the engine, the quantity SGM corresponding to the standard deviation and
the value V
P of the cumulative percentage point, by using a predetermined value.
[0015] The standard deviation detecting means may comprise updating means for updating the
quantity SGM corresponding to the standard deviation so that at least one of a condition
that a probability of satisfying the relation V
P/SGM ≦ V ≦ V
P with respect to the representative value V and the value V
P of the cumulative percentage point becomes 1/3 and a condition that a probability
of satisfying the relation V
P/SGM ≦ V ≦ V
P x SGM becomes 2/3.
[0016] The standard deviation detecting means may comprise first detecting means for detecting
that the engine is in a state in which a knock is easily generated, whereby the standard
deviation detecting means performs detection of the quantity SGM corresponding to
the standard deviation only when the first detecting means detects that the engine
is in the state in which a knock is easily generated.
[0017] The standard deviation detecting means may comprise:
second detecting means for detecting that the engine is in a state in which a knock
is hard to be generated;
upper limit value setting means for detecting, when the second detecting means
detects that the engine is in the state in which a knock is hard to be generated,
the quantity SGM corresponding to the standard deviation in that state and setting
the detected quantity SGM corresponding to the standard deviation as an upper limit
value for the standard deviation; and
suppressing means for suppressing the upper limit value by the quantity corresponding
to the standard deviation.
[0018] The adjusting means may comprise:
reference level setting means for setting a reference level higher than the knock
decision level in accordance with the quantity SGM corresponding to the standard deviation
and the value V
P of the cumulative percentage point; and
adjustment quantity setting means for setting an adjustment quantity for adjusting
the knock control factor in accordance with the representative value and the reference
level.
[0019] The value V
P of the cumulative percentage point may be set to a cumulative percentage point of
50% (median value) V
MED.
[0020] The cumulative percentage point detecting means may comprise:
speed detecting means for detecting a rotational speed of the engine;
speed logarithmic conversion means for making logarithmic conversion of a rotational
speed of the engine; and
cumulative percentage point correcting means for correcting the cumulative percentage
point in accordance with the logarithmically converted engine speed.
[0021] The engine state detecting means may include at least one of speed detecting means
for detecting a rotational speed of the engine; and load detecting means for detecting
a load on the engine.
[0022] The cumulative percentage point detecting means may comprise:
mean value detecting means for detecting a mean value of the representative values
corresponding to each engine cylinder; and
cumulative percentage point correcting means for correcting the cumulative percentage
point in accordance with the mean value.
[0023] The standard deviation detecting means may comprise:
probability detecting means for detecting a probability of a representative value
to fall within a predetermined region of the frequency distribution; and
standard deviation correcting means for correcting a standard deviation in accordance
with the probability.
[0024] Further, in order to achieve the above-mentioned object, the present invention proposes
a knock generation control system for engines comprising:
speed detecting means for detecting a rotational speed of an engine;
a knock sensor for detecting a knocking phenomenon generated in the engine;
representative value detecting means for detecting a representative value from
an output signal of the knock sensor which is effective for the detection of a knock;
standard deviation detecting means for detecting a quantity SGM corresponding to
a standard deviation in a frequency distribution of logarithmic conversion values
of the representative values;
cumulative percentage point detecting means for detecting a value of a cumulative
percentage point in the frequency distribution;
knock decision level setting means for setting a knock decision level in accordance
with the rotational speed of the engine, the quantity SGM corresponding to the standard
deviation and a quantity corresponding to the cumulative percentage point so that
a frequency of knock decision per unit time assumes a predetermined value;
knock detecting means for detecting generation of a knock in accordance with the
representative value and the knock decision level and producing a detection signal;
and
adjusting means responsive to the detection signal from the knock detecting means
for adjusting a knock control factor so as to suppress the generation of a knock.
[0025] In the system of the present invention having the construction mentioned above, a
knocking phenomenon occurring in the engine is detected by the knock sensor. A representative
value of the knock sensor signal effective for the detection of a knock is detected
by the representative value detecting means.
[0026] On the other hand, in the knock decision level setting means, a knock decision level
is set in accordance with a quantity corresponding to a standard deviation detected
by the standard deviation detecting means and a quantity corresponding to a cumulative
percentage point detected by the cumulative percentage point detecting means.
[0027] The generation of a knock is detected by the knock detecting means is accordance
with the representative value and the knock decision level. Further, the adjusting
means adjust a knock control factor in accordance with a detection signal from the
knock detecting means so as to suppress the generation of a knock.
BRIEF DESCRIPTION OF THE DRAWINGS
[0028]
Fig. 1 is a functional block diagram showing the present invention;
Fig. 2 is a view showing the construction of first and second embodiments;
Fig. 3 is a block diagram showing the construction of representative value detecting
means in the first and second embodiments;
Figs. 4, 7, 9, 11, 12, 14 and 16 are flow charts useful in explaining the operation
of the first embodiment;
Figs. 17, 18, 20, 21, 22 and 23 are flow charts useful in explaining the operation
of the second embodiment;
Figs. 5, 6, 10A to 10D, 13A and 13B, 15, 19 and 24A to 24C are characteristic diagrams
showing the frequency distribution of representative values; and
Fig. 8 is a characteristic diagram showing the relation between the rotational speed
of the engine and the value of u.
BEST MODE FOR CARRING OUT THE INVENTION
[0029] A first embodiment to which the present invention has been applied will now be explained
with reference to Figs. 2 to 16.
[0030] Fig. 2 is a structural diagram showing the first embodiment.
[0031] In Fig. 2, 1 denotes a four-cylinder four-cycle engine (referred to simply as engine)
to which intake air is supplied from an intake pipe 2 through an air cleaner and an
air flow meter which are not shown. The amount of the intake air supplied to the engine
1 is adjusted by a throttle valve 3. 4 denotes a distributor which includes therein
a reference angle sensor 4a for detecting a reference crank angle (for example, a
top dead center) and a crank angle sensor 4b for generating an output signal at every
predetermined crank angle of the engine 1. An engine speed is calculated on the basis
of the signal from the crank angle sensor 4b by an electronic control unit (ECU) 9
which will be described later.
[0032] 5 denotes a knock sensor as knock detecting means for detecting the vibration of
an engine block corresponding to a knocking phenomenon of the engine 1 piezoelectrically
(by using a piezoelectric element) or electromagnetically (by using a magnet or a
coil), and 6 denotes a water temperature sensor for generating a signal representing
the temperature of a cooling water of the engine 1. 7 denotes an injector for injecting
fuel into an intake manifold in accordance with a control signal from the ECU 9.
[0033] 8 denotes representative value detecting means for detecting a representative value
V from an output signal from the knock sensor 5 (namely, a knock sensor signal). As
shown in Fig. 3, the representative value detecting means 8 is composed of a filter
circuit 8a for selectively extracting only a knock frequency component of the knock
sensor signal, an amplifying circuit 8b for amplifying a signal from the filter circuit
8a, and a peak hold circuit 8c for detecting, as a representative value V, a peak
value V
peak of the knock sensor signal occurring within a predetermined crank angle. In the present
embodiment, the predetermined crank angle is defined, for example, by a constant period
of time (a knock decision period) after the generation of an ignition output in order
to prevent erroneous detection of a knock from being caused by noises, since a knock
is generated only during a combustion period.
[0034] As is well known, the ECU 9 is composed of a central processing unit (CPU) 9a which
performs various operations, a read only memory (ROM) 9b in which a control program
and so on are stored, a writable/readable random access memory (RAM) 9c which temporarily
stores processed data and so on, an analog-digital converter (ADC) 9d which converts
an analog signal into a digital signal, an input port 9e which takes in sensor signals
from the above-mentioned various sensors into the ECU 9, an output port 9f which outputs
control signals to the above-mentioned various actuators, and a bus 9g which interconnects
the above-mentioned components with each other.
[0035] The ECU 9 controls ignition timing, a fuel injection quantity and so on in accordance
with the signals from the various sensors and a state of generation of a knock.
[0036] The detection of a knock and the setting of a knock decision level V
KD will now be explained on the basis of flow charts shown in Figs. 4, 7, 9, 11, 12
and 16.
[0037] The following routine is processed at every cycle and is started immediately after
the falling of a gate signal outputted from the ECU 9 to the peak hold circuit 8c,
that is, immediately after the ECU 9 has read in the peak value V
peak.
[0038] This routine starts from step SOO. In step SO1, the peak value V
peak detected by the peak hold circuit 8c is read in.
[0039] In step SO2 which is a correcting step, the peak value V
peak is subjected to logarithmic conversion in accordance with the following equation
to obtain ℓV
pk. In the following step, correction is made by retardation of ignition timing so that
the frequency distribution of peak values V
peak shows a normal distribution.

A = 64/log (4)
a = 4
where A and
a are constants (the details of which will be described later). In subsequent step
SO3 which is a knock decision level setting step, a knock decision level V
KD is set (the details will be described later).
[0040] Here, V
KD is a knock decision level which is determined by the use of a graph of the frequency
distribution of ℓV
pk which represents logarithmic conversion of representative values V
peak. In step SO4, knock detection is performed. If ℓV
pk ≧ V
KD, the occurrence of a knock is decided.
[0041] Ignition timing, etc. are controlled in a knock control region (for example, a heavy
load region) in accordance with the result of the decision. In step SO5, a decision
is made as to whether the operating condition of the engine satisfies a specified
condition. This specified condition is defined, for example, by one of or a plurality
of the following conditions:
① a load on the engine is equal to or greater than a predetermined value;
② an engine speed Ne is within a predetermined range;
③ a rate of change of the engine load is equal to or smaller than a predetermined
value; and
④ a median value VMED of the distribution of ℓVpk is within a predetermined range.
[0042] The processing proceeds to step SO6, if the result of step SO5 is YES, while, to
step SO7, if the result of step SO5 is NO. In step SO6 which is a standard deviation
detecting step, a value (standard deviation) SGM corresponding to a standard deviation
of the frequency distribution (normal distribution) of the logarithmic conversion
values ℓV
pk is updated (the details of which will be described later). In step SO7 which is a
cumulative percentage point detecting step, a cumulative percentage point of the frequency
distribution of the logarithmic conversion values ℓV
pk (in the present embodiment, it is a 50% point, that is, a median value V
MED) is updated (the details of which will be described later).
[0043] In step SO8, the processing ends.
[0044] Next, the logarithmic conversion performed in the above-mentioned step SO2 will be
explained.
[0045] In the present embodiment, the constants A and
a in the equation (1) are assumed as:
A = 64/log 4, and
a = 4
[0046] The values of the constants A and
a are defined on the assumption that:
① the entire logarithmic normal distribution (Fig. 5) of peak values Vpeak when a knock does not occur at all (where the ratio of a larger output to a smaller
output is about 4) is divided into 64 parts; and
② a 10-bit peak value Vpeak obtained through A/D conversion by the ADC 9d is compressed to 8-bit data so that
the data may be processed easily by using a 4-bit or 8-bit CPU.
[0047] In the following, equations which satisfy the above two conditions will be derived.
[0048] A logarithmic normal distribution shown in Fig. 5 is converted to such a normal distribution
as shown in Fig. 6.
[0049] Assumption is made as follows.
[0050] Firstly, in order to divide by 64 the whole distribution, it is necessary that the
following relation is satisfied.
[0052] Accordingly, a logarithmic conversion equation satisfying the above-mentioned conditions
is as follows:
(It is not absolutely necessary to define the constants A and
a to assume the above-mentioned values, respectively.)
[0053] In the present state of art, direct logarithmic conversion by using the CPU 9a takes
a log time and therefore it is not applicable to practical control. Therefore, in
practical control, it is desirable that logarithmic conversion values ℓV
pk corresponding to peak values V
peak are calculated beforehand and are stored in the ROM 9b, and then the stored calculated
values are sequentially read out from the ROM 9b. Further, in the case where a peak
value V
peak is not smaller than 2⁸, the peak value V
peak in this case can be determined by reading a logarithmic conversion value ℓV
pk corresponding to the value of one fourth of the peak value V
peak from the ROM 9b and adding 64 to the read-out value. Therefore, 2⁸ (= 256) bytes
suffice as data to be stored in the ROM 9b.
[0054] The setting of the knock decision level in step SO3 shown in Fig. 4 will be explained
on the basis of a flow chart shown in Fig. 7. This routine starts from step SO30.
In step SO31, an engine speed Ne is subjected to logarithmic conversion. A manner
of logarithmic conversion in step SO31 is the same as that of step SO2 shown in Fig.
4. In step SO32, a deviation dℓNe between the logarithmic conversion value ℓNe of
an engine speed Ne at the present control timing and the logarithmic conversion value
ℓNeO of an engine speed Ne at the preceding control timing is obtained. In subsequent
step SO33, the present logarithmic conversion value ℓNe is stored so that it is used
at the next control timing as a preceding logarithmic conversion value ℓNeO. In step
SO34, a mean value V
MALL of logarithmic conversion values ℓV
pk of peak values V
peak for all engine cylinders is corrected in accordance with the following equation (the
details will be described later):
where β is a constant whose value is about 2, and the mean value V
MALL is updated at every control timing of step SO7 shown in Fig. 4.
[0055] In subsequent step SO35, a median value V
MED is corrected in accordance with the following equation:
where dV
MED is a deviation between a median value V
MED for each cylinder and the mean value V
MALL. This deviation dV
MED is updated at every control timing of step SO7 shown in Fig. 4.
[0056] In step SO36, a knock decision level V
KD is set in accordance with the following equation:
where V
KD is a knock decision level obtained by using a graph of the frequency distribution
of ℓV
pk which represents logarithmic conversion of representative values V
peak' u is a value set in accordance with the engine speed Ne (the details will be described
later), SGM is a value corresponding to a standard deviation in the frequency distribution
of logarithmic conversion values ℓV
pk, and V
MED is a median value in the frequency distribution of logarithmic conversion values
ℓV
pk. In step SO37, the processing of the routine ends.
[0057] Next, an explanation will be made of the correction of the mean value V
MALL in step SO34 shown in Fig. 7.
[0058] The present inventors have conducted experiments on various engines and have found
that a median value V
MED in the frequency distribution of logarithmic conversion values ℓV
PK of peak values V
peak is given by the following equation:
where V
O and β are constants determined by an engine, a cylinder, a knock sensor, etc., β
has a value of about 1.5 to 2.5, and Ne is an engine speed.
[0059] Now, assume that the engine speed Ne is varying at a rise rate α
RPM/sec. Then, a rise rate dV/dn of the median value V
MED per cycle (n: the number of cycles) is as follows:

[0060] Approximating β by 2, we obtain
[0061] Namely, the follow-up delay of a mean value V
MALL at the time of transition can be prevented by adding only 240·α·V
O to the mean value V
MALL at every cycle.
[0062] However, since V
O greatly differs with each engine, each cylinder, a knock sensor, etc., there exists
no addend value which satisfies a combination of all such conditions. Accordingly,
it is difficult to suitably correct the mean value V
MALL in accordance with the rise rate α.
[0063] The influence of V
O can be eliminated by subjecting peak values V
peak and an engine speed Ne to logarithmic conversion.
[0064] More precisely, both sides of the above equation V
MED = V
O x Ne
β are subjected to logarithmic conversion. Then,
[0065] Representing a logarithmic conversion value of
x by ℓx, we obtain
[0066] Since the first term of the right side of the above equation is a constant term,
the differentiation of both sides gives the following equation:
[0067] Accordingly, the mean value V
MALL can be corrected disregarding the value of V
O, if a rise rate of logarithmic conversion of V
MED is obtained by detecting dℓNe/dn at every cycle or at every ignition timing and thereby
calculating β x dℓNe/dn.
[0068] In the following, the setting of the knock decision level performed in step SO36
shown in Fig. 7 will be explained.
[0069] Now, assume a way or an amount of advance/ retardation to be the retardation of 1°CA
per one knock and the advance of 1°CA per one second. According to this way of advance/retardation,
the frequency of knock decision by which the advance/retardation is stabilize is once
per second when no knock is generated. When the knock decision level V
KD is set so that the frequency of knock decision is once per second, ignition timing
is controlled to be substantially constant, since the amount of retardation R converges
to a constant value.
[0070] However, the maximum torque of the engine is obtained in a region where a certain
number of knocks are generated. Therefore, it is necessary that control is made so
that the ignition timing is always in an advanced state when no knock is generated.
[0071] Accordingly, it is desirable that a knock decision frequency is set to be lower than
the above-mentioned knock decision frequency by which the advance/retardation is stabilized.
[0072] Now, assuming that the knock decision frequency in the case of a four-cylinder engine
is once per four seconds, knock decision probability P
K is represented by

[0073] If the engine speed Ne = 2000 rpm, then P
K = 0.0375, and, as the value of
u for this knock decision probability P
K , u = 2.67 can be derived from a normal distribution table. Also, if the engine speed
Ne = 4000 rpm, P
K = 0.001875 and u = 2.90 can be derived. Fig. 8 is a characteristic diagram showing
a relation between the engine speed Ne and the value of
u. Here, the parameter T denotes a period in which a knock is detected. As is clearly
understood from the characteristic diagram of Fig. 8, when the knock detection frequency
is constant (namely, T is constant), the value of
u becomes larger as the engine speed Ne increases.
[0074] Usually, it is possible to univocally set the knock detection frequency, since the
way or amount of advance/retardation is constant. Therefore, it is desirable that
the values of
u corresponding to engine speeds Ne are obtained beforehand from the normal distribution
table and are stored in the ROM 9b, and then the stored values of
u corresponding to engine speeds Ne are sequentially read from the ROM 9b.
[0075] Also, since a knock is hard to occur under a light load, the value of
u under a light load may be made large by detecting a load on the engine 1.
[0076] In the present embodiment, the value of
u is set so as to give a predetermined knock detection frequency (for example, T =
4). However, in order that control is made so that the ignition timing is always in
an advanced state when no knock is generated, the value of
u may be set to a value larger than a value given by the characteristic curve for T
= 1 shown in Fig. 8, for example, in the case of the above-mentioned way of advance/retardation.
[0077] Next, the details of the knock decision in step SO4 shown in Fig. 4 will be explained
on the basis of a flow chart shown in Fig. 9.
[0078] This routine starts from step SO40. Firstly, in step SO41, a knock decision is made
in accordance with a logarithmic conversion value ℓV
pk of a peak value V
peak. More precisely, a decision on the generation of a knock is made when the following
equation is satisfied:
[0079] The processing proceeds to step SO42 when a knock is generated, while, to step SO49
when no knock is generated.
[0080] In steps SO42 to SO46, a retardation amount R is calculated in accordance with the
magnitude of the logarithmic conversion value ℓV
pk. Firstly, in step SO42, a decision is made as to whether the logarithmic conversion
value ℓV
pk satisfies the following equation:
[0081] If this equation is not satisfied, the retardation amount R is set in step SO46 so
as to be increased by a predetermined value ΔR. This predetermined value ΔR may be
found in the above-mentioned way of advance/retardation. In the case of the above-mentioned
way, ΔR=1° CA results.
[0082] If the above equation is satisfied in step SO42, the processing proceeds to step
SO43.
[0083] In step SO43, a decision is made as to whether the logarithmic conversion value ℓV
pk satisfies the following equation:
[0084] If this equation is not satisfied, the retardation amount R is set in step SO45 so
as to be increased by a predetermined value 2 x ΔR.
[0085] If the above equation is satisfied in step SO43, the retardation amount R is set
in step SO44 so as to be increased by a predetermined value 3 x ΔR.
[0086] In steps SO47 and SO48, guard processings are performed with respect to the retardation
amount R. Firstly, in step SO47, a decision is made as to whether the retardation
amount R set in step SO44, SO45 or SO46 is larger than an upper limit value R
max. Here, the upper limit value R
max is a value set in accordance with the state of an engine. If the retardation amount
R is larger than the upper limit value R
max, the retardation amount R is set again in step SO48 to the upper limit value R
max.
[0087] If the retardation amount R is decided in step SO47 to be smaller than the upper
limit value R
max, the processing proceeds to step SO49. In step SO49, a decision is made as to whether
a predetermined time Tad has elapsed. Here, the predetermined time Tad is a time required
for making advance. For example, in the present embodiment, Tad is selected to be
one second. If the predetermined time Tad has elapsed, the retardation amount R is
set in step SO4A so as to be decreased by the predetermined value ΔR.
[0088] In subsequent steps SO4B and SO4C, guard processings are performed with respect to
the retardation amounts R. Firstly, in step SO4B, a decision is made as to whether
the retardation amount R is smaller than a lower limit value R
min. Similarly to the upper limit values R
max, the lower limit value R
min is a value set in accordance with the state of the engine. If the retardation amount
R is smaller than the lower limit value R
min, the retardation amount R is set again in step SO4C to the lower limit value R
min.
[0089] In this manner, the processing of the knock decision routine is completed.
[0090] Taking controllability into consideration, it is preferable that the retardation
amount R, in the case where a knock takes place concentratedly in one or two cylinders,
is set to be larger than that in the case where a knock takes place distributively
in a plurality of cylinders. For example, a cylinder, in which a knock has taken place,
is stored, and a predetermined value 2 x ΔR is added to the retardation amount R to
provide increased retardation when a knock takes place successively in the same cylinder.
[0091] Next, an explanation will be made of the processing in step SO42 shown in Fig. 9
which changes a retardation amount R depending on whether or not a logarithmic conversion
value ℓV
pk is larger than the sum of the knock decision level V
KD and a standard deviation SGM.
[0092] In Figs. 10A and 10B, the distribution of logarithmic conversion values ℓV
pk, when no knock is generated, is a normal distribution as shown by solid line, and
the distribution thereof when a knock is generated (namely, in the case of mixed occurrence
of a cycle, in which no knock takes place, and a cycle in which a knock takes place),
becomes distorted at the high output side, as shown by broken line. Even in the case
of a knock generation state of the same style of distorted distribution of logarithmic
conversion values ℓV
pk , the degree of distortion in the case where a standard deviation SGM of logarithmic
conversion values ℓV
pk , when no knock is generated, is large as shown in Fig. 10B, is increased as compared
with that in the case where the above-mentioned standard deviation SGM is small as
shown in Fig. 10A. But the probability of ℓV
pk falling in the distorted portion is the same. Therefore, if it is premised that a
decision level used in judging the strength of a knock is represented, for example,
by V
KD'1 = V
KD + k (k: a constant) as compared with the fundamental decision level V
KD , there is a problem that the probability of logarithmic conversion values ℓV
pk exceeding the knock decision level V
KD may have a different value is spite of the same condition of knock generation. Since
the present description is made based on the logarithmic axis in Figs. 10A and 10B,
the constant
k is added. While, when based on the real number axis, the knock decision level V
KD is multiflied by the constant
k. Namely, the decision level V
KD'1 for judging the knock strength is also a multiplication of the fundamental decision
level V
KD by a constant. Therefore, even if the fundamental decision level has an optimum value,
an accurate knock strength decision can not be made. On the other hand, if a knock
strength decision level is set by V
KD'2 = V
KD + SGM by using the standard deviation SGM as shown in Figs. 10C and 10b, it is possible
to set a knock strength decision level V
KD'2 which conforms to the distribution pattern. Namely, the probability of logarithmic
conversions values ℓV
pk exceeding the knock strength decision level V
KD'2 can be made identical for every distribution pattern.
[0093] Next, the updating of the standard deviation SGM in step SO6 shown in Fig. 4 will
be explained on the basis of a flow chart shown in Fig. 11.
[0094] This routine starts from step SO60. In step SO61, a decision is made as to whether
a logarithmic conversion value ℓV
pk falls within a range between V
MED - SGM and V
MED.
[0095] The processing proceeds to step SO62, if the above condition is satisfied, while,
to step SO63, if the above condition is not satisfied.
[0096] In step SO62, the standard deviation SGM is updated in accordance with the following
equation:
where dsgm is an update quantity for the standard deviation SGM and is set in accordance
with a change of the state of the engine. For example, when a deviation dℓNe of a
logarithmic conversion value ℓNe of an engine speed Ne is large, the update quantity
dsgm is set to a large value. Further, when a change of the engine load is large,
the update quantity dsgm is also set to a large value.
[0097] In step SO63, the standard deviation SGM is updated in accordance with the following
equation:
[0098] In this manner, the update routine of the standard deviation SGM is completed.
[0099] Another embodiment of the updating of the standard deviation SGM will be explained
on the basis of a flow chart shown in Fig. 12.
[0100] This routine starts from step SO65. In step SO66, a decision is made as to whether
a logarithmic conversion value ℓV
pk falls within a range between V
MED - SGM and V
MED + SGM. The processing proceeds to step SO67, if the above condition is satisfied,
while, to step SO68, if the above condition is not satisfied.
[0101] In step SO67, the standard deviation SGM is updated in accordance with the following
equation:
[0102] In step SO68, the standard deviation SGM is updated in accordance with the following
equation:
[0103] In this manner, the update routine for the standard deviation SGM according to this
another embodiment is completed.
[0104] Now, an explanation will be made of the reason why the standard deviation SGM is
obtained by the above processing.
[0105] Assuming in Fig. 13A that the probability of a logarithmic conversion value ℓV
pk to fall within the range (the hatched region) from V
MED - SGM to V
MED is represented by P
s ,
results at a point where the standard deviation SGM is stabilized by the processing
according to the flow chart shown in Fig. 11. When the value of
u corresponding to this standard deviation SGM is obtained from the normal distribution
table, we obtain u ≒ 0.97 which is substantially equal to the standard deviation (u
= 1.0).
[0106] In the same way, assuming in Fig. 13B that the probability of a logarithmic conversion
value ℓV
pk to fall within the range (the hatched region) from V
MED -SGM to V
MED + SGM is represented by P
s ,
results at a point where the standard deviation SGM is stabilized by the processing
according to the flow chart shown in Fig. 11. When the value of
u corresponding to this standard deviation SGM is obtained from the normal distribution
table, we obtain a value which is substantially equal to the standard deviation.
[0107] Thus the standard deviation SGM can be obtained easily by the processing according
to the flow chart shown in Fig. 11 or 12.
[0108] The processing is not limited to the above-described ones. For example, step SO62
in Fig. 11 may be changed to the following equation:
[0109] However, in this case, P
s = 1/4 results, and hence u = 0.67 results. As a result, a standard deviation SGM
to be obtained by the above equation has a value 0.67 times as large as that of the
actual standard deviation.
[0110] Accordingly, if the balance of the quantities of an increase and a decrease of the
standard deviation or the facility of a postprocessing is taken into consideration,
the processing shown in Fig. 11 or 12 is preferable.
[0111] Next, the updating of a median value V
MED in step SO7 shown in Fig. 4 will be explained based on a flow chart shown in Fig.
14.
[0112] This routine starts from step SO70. In step SO71, a decision is made as to whether
a logarithmic conversion value ℓV
pk is larger than the median value V
MED. The processing proceeds to step SO72, if ℓV
pk > V
MED, while, to step SO73, if ℓV
pk ≦ V
MED.
[0113] In step SO72, the operation of dV
MED ← dV
MED + dV
m is performed. Then, the processing proceeds to step SO75. Here, dV
m represents an update quantity for a deviation dV
MED. In step SO73, a decision is made as to whether a logarithmic conversion value ℓV
pk is smaller than the median value. The processing proceeds to step SO74, if ℓV
pk < V
MED, while, to step SO75, if ℓV
pk ≧ V
MED. In step SO74, the operation of dV
MED ← dV
MED - dV
m is performed. In step SO75, the operation of V
MALL ← V
MALL + (ℓV
pk - V
MALL)/N
s is performed. Here, N
s is a constant to be set in accordance with a change of the state of the engine. For
example, if the deviation dℓNe of a logarithmic conversion value of an engine speed
is large, the constant N
s is made small. Also, it is effective to decrease the value of the constant N
s only during a predetermined period after a load or the change rate of the load has
satisfied a specified condition (for example, a heavy load or a large load change
rate).
[0114] The above processing provides the following effects.
[0115] Since a knock strength value is subjected to logarithmic conversion so that a signal
from the knock sensor has a normal distribution, and a knock decision level is determined
based on the median value and the standard deviation, it is possible to make accurate
knock decision without being affected by a change in distribution due to a variation
of each engine, each cylinder, a knock sensor, etc.
[0116] Also, since the median value and the standard deviation are updated at every cycle,
it is possible to set a suitable knock decision level rapidly.
[0117] 10-bit data can be compressed into 8-bit data by having the knock strength subjected
to logarithmic conversion in accordance with the following equation:
[0118] Accordingly, handling of data by using a 4-bit or 8-bit CPU can be made easy.
[0119] Since an engine condition is subjected to logarithmic conversion and a knock decision
level is corrected in accordance with the result of logarithmic conversion, it is
possible to prevent a delay in the follow-up of a knock decision level at the time
of transition.
[0120] Further, since the processing is performed by using a logarithmic operation so that
it becomes possible to treat multiplication as addition and a power of a number by
multiplication, a load imposed on the CPU can be reduced.
[0121] Furthermore, with respect to the setting of a knock decision level V
KD , since the value of
u is set so that the knock decision probability becomes constant irrespective of the
state of the engine when no knock is generated, it is not necessary to have a suitable
value K determined beforehand, as done in the prior art.
[0122] The following processings may be added to the above-described first embodiment.
① When the engine is in a predetermined state, a median value VMED and a standard deviation SGM for a specified cylinder or all cylinders are corrected.
This processing makes it possible to cope with a case where a median value VMED and a standard deviation SGM greatly change only in a certain state of the engine
as compared with the other state of the engine.
As one example, assume a case where a standard deviation SGM of No. 3 engine cylinder
in the state of Ne = 3000 rpm is extremely large as compared with the other state
or the other cylinders. In this case, even if the standard deviation SGM is updated
at every cycle, there may be a possibility that a delay in the follow-up would occur
according to a running condition. In order to solve such a problem, the following
correction is made for example. Namely, the standard deviation SGM in step SO36 in
Fig. 7, step SO61 in Fig. 11, and step SO66 in Fig. 12 is corrected in accordance
with the following equation:

where SGMT is a correction term for the standard deviation SGM, and it is stored in
the ROM 9b in correspondence with logarithmic conversion values ℓNe of an engine speed.
In the case of the above example, a difference between an extremely large standard
deviation SGM and a normal standard deviation SGM, that is, a correction term SGTM
is stored at a location in the ROM 9b corresponding to the vicinity of Ne = 3000 rpm.
Here, if a correction term SGMT for the other condition or the other cylinders is
made zero, no bad influence is exerted. Thus, it is possible to prevent a delay in
the follow-up of the standard deviation SGM from occurring at the time of transition
and to prevent the standard deviation SGM under a steady running condition at Ne =
3000 rpm from becoming extremely large as compared with that under the other conditions.
In the above description, a standard deviation SGM has been taken as an example. However,
it is similarly the case with a median value VMED.
② The standard deviation SGM is corrected in accordance with the probability of a
logarithmic conversion value ℓVpk to fall within each of the regions shown in Fig. 15 which have been divided in accordance
with the median value VMED and the standard deviation SGM. When the standard deviation SGM is updated in accordance
with the flow chart shown in Fig. 12, the distribution of logarithmic conversion values
ℓVpk can be divided into the regions ①, ②, ③ and ④ shown in Fig. 15 in accordance with
the median value VMED and the standard deviation SGM. Assume that the probabilities of the logarithmic
conversion values ℓVpk to fall into the regions ①, ②, ③ and ④ are represented by P₁, P₂, P₃ and P₄, respectively.
[0123] When no knock is generated, P₁ = P₄ = 1/6 and P₂ = P₃ = 1/3 hold. However, when a
knock is generated so that the frequency distribution of ℓV
pk is distorted as shown by broken line, P₃ is decreased by a value corresponding to
a hatched portion so that P₃ < 1/3 holds. Then, there occurs a phenomenon that the
standard deviation SGM is made larger than a required value so as to satisfy P₂ +
P₃ = 2/3. This problem can be solved by detecting the occurrence of this phenomenon
and correcting the standard deviation SGM in a direction of decreasing its value.
When this phenomenon occurs, not only the relation P₃ < 1/3 holds, but also the following
features result. Namely, as the standard deviation SGM becomes large, P₁ < 1/6 and
P₂ > 1/3 result. Further, since P₃ + P₄ = 1/2, then P₄ > 1/6 results. Therefore, if
the above phenomenon is detected from one or a combination of those features, the
standard deviation SGM may be corrected in a direction of becoming smaller.
[0124] For example, the following processing is performed. The standard deviation SGM is
increased by dsgm when the logarithmic conversion values ℓV
pk have fallen into the region ①, it is decreased by dsgm when ℓV
pk have fallen into the region ②, and it is increased by dsgm when ℓV
pk have fallen into the region (3) and it is decreased by dsgm at every six cycles.
Assuming that the probabilities of logarithmic conversion values ℓV
pk to fall within the regions ① and ④ are represented by Pe and Ph, respectively, an
expected value ds of a change quantity of the standard deviation SGM per one cycle
is represented by the following equation:
[0125] Then,

[0126] The condition of the stabilization of the standard deviation SGM is represented by
ds = O. When no knock is generated, the frequency distribution of ℓV
pk is symmetrical with respect to the median value V
MED. Thus, assuming Pe = Ph = P, ds = P - 1/6 = 0 and hence P = 1/6 result. Thus, it
is possible to obtain a probability value which is close to the standard deviation.
[0127] On the other hand, when a knock is generated and the frequency distribution is represented
by a curve shown by broken line in Fig. 15, Ph > 1/6 holds and hence ds < 0 results.
Thus, if the level of a knock exceeds a predetermined level, the standard deviation
SGM changes to become smaller, thereby making it possible to elevate knock detecting
capability.
[0128] Further, it is also effective to restrict the standard deviation within a predetermined
range by changing steps SO5 - SO6 in Fig. 4 as shown in Fig. 16. This routine starts
from step SO50. In step SO51 which is a first detecting step, a decision is made as
to whether a specified condition ① is satisfied. The processing proceeds to step SO6,
if the specified condition ① is satisfied, while, to step SO52, if the specified condition
① is not satisfied. The specified condition ① is, for example, the same with the specified
condition in step SO5 in Fig. 4. Also step SO6 in Fig. 16 may be the same with step
SO6 in Fig. 4. In step SO52 which is a second detecting step, a decision is made as
to whether a specified condition ② is satisfied. The processing proceeds to step SO53,
if the specified condition ② is satisfied, while, to step SO58, if the specified condition
② is not satisfied. The specified condition ③ is defined, for example, by one or a
plurality of the following conditions:
ⓐ a load on the engine is equal to or larger than a predetermined value;
ⓑ an engine speed is within a predetermined range;
ⓒ the change rate of an engine load is equal to or smaller than a predetermined value;
and
ⓓ the value of VMED is within a predetermined range.
[0129] In other words, the specified condition ① is a condition under which a knock is apt
to generate, whereas the specified condition ② is a condition under which a knock
is hard to generate. But, the specified conditions ① and ② are common to each other
in that a suitable standard deviation SGM can be obtained, that is, the state of the
engine is relatively stable and hence a sufficient resolution of a sensor signal can
be obtained. In step SO53, a standard deviation SGM2, which is a variable in the case
of the specified condition ②, is updated. The manner of this updating is the same
with that in step SO6. In subsequent step SO54, a comparison of magnitude is made
between the variable SGM2 and an upper limit value SGMLMT. The processing proceeds
to step SO55, if SGM2 > SGMLMT holds, while, to step SO58, if SGM2 < SGMLMT holds.
In step SO55, the value of the variable SGM 2 is substituted for the upper limit value
SGMLMT.
[0130] On the other hand, in step SO56, a comparison of magnitude is made between the standard
deviation SGM updated in step SO6 and the upper limit value SGMLMT. The processing
proceeds to step SO57, if SGM > SGMLMT holds, while, to step SO58, if SGM < SGMLMT
holds. In step SO57, the standard deviation SGM is set again to the upper limit value
SGMLMT. This routine ends in step SO58. In the foregoing embodiment, only the upper
limit of the standard deviation SGM has been limited by the upper limit value SGMLMT.
However, a lower limit thereof may also be limited.
[0131] Further, in the case of the specified condition ②, the standard deviation SGM has
been limited by the maximum value of the standard deviation SGM2 in that case. However,
not being restricted to the maximum value, the maximum value + α (α: a constant) may
be used to limit the standard deviation. Namely, the standard deviation SGM may be
limited in accordance with the value of the variable SGM2 in a region where no knock
is generated.
[0132] Instead of making such a limitation, another method may be employed in which a knock
is decided to be large if a difference between the standard deviation SGM and the
variable SGM2 becomes equal to or larger than a predetermined value, and either a
knocking control factor or a knock decision level is controlled in a direction of
preventing a knock from being generated.
[0133] With the above-described processings, it becomes possible to prevent the standard
deviation from becoming extremely large when a knock is generated.
[0134] In the above-described first embodiment, after-knock strength values have been detected,
the detected knock strength values are converted so that they have a normal distribution.
Alternatively, it is possible to employ a construction in which output signals of
the knock sensor or output signals of a band pass filter or the like have a normal
distribution.
[0135] For example, an amplifier having a logarithmic characteristic is provided in a succeeding
stage of a band pass filter and a knock strength value is obtained from an output
of the amplifier.
[0136] Alternatively, the knock sensor may be designed so that its output has a logarithmic
characteristic.
[0137] In the above-described embodiment, a knock decision is made by using logarithmic
conversion values ℓV which have been obtained by having representative values V subjected
to logarithmic conversion. However, it is possible to make a knock decision by using
representative values themselves.
[0138] In the following, an embodiment, in which a knock decision is made by using representative
values themselves without having them subjected logarithmic conversion, will be explained
based on a flow chart shown in Fig. 17.
[0139] Similarly to the above-described embodiment, the following routine is also started
after the peak value V
peak has been read from the peak hold circuit 8c shown in Fig. 3.
[0140] This routine starts from step S10. In step S11, representative values V of knock
sensor signals are detected. The representative value V is, for example, a peak hold
value V
peak of a knock sensor signal generated within a predetermined crank angle, similarly
to the first embodiment. In step S12, a knock decision is made. When V ≧ V
KD holds, the presence of a knock is decided. Here, V
KD represents a knock decision level determined from a distribution curve of representative
values V which are not subjected to logarithmic conversion. Like the first embodiment,
ignition timing or the like is controlled in accordance with the result of the knock
decision. In step S13, a decision is made as to whether the operating condition of
the engine satisfies a specified condition. This specified condition is defined by,
for example, one or a plurality of the following conditions:
① a load on the engine is equal to or larger than a predetermined value;
② an engine speed is within a predetermined range;
③ the change rate of an engine load is equal to or smaller than a predetermined value;
and
④ the value of VMED is within a predetermined range.
[0141] The processing proceeds to step S14, if the result of step S13 is YES, while, to
step S15, if it is NO. In step S14, a value SGM corresponding to a standard deviation
of the frequency distribution of logarithmic conversion values log (V) of representative
values V is updated (the details will be described later). In step S15, a median value
V
MED of the distribution of representative values V is updated (the details will be described
later.)
[0142] In step S16, the value of
u corresponding to the knock decision frequency is obtained. This
u is the same as the
u of the foregoing first embodiment.
[0143] In step S17, a knock decision level V
KD is set by the following equation in accordance with the standard deviation SGM and
the median value V
MED:
[0144] In step S18, this routine ends.
[0145] Fig. 18 is a detailed flow chart for the updating of the standard deviation SGM in
step S14 in Fig. 17. This routine starts from step S140. In step 141, a decision is
made as to whether V ≦ V
MED is satisfied. The processing proceeds to step S142, if the result of step 141 is
YES, while, to step S144, if it is NO. In step S142, a decision is made as to whether
SGM x V ≧ V
MED is satisfied. The processing proceeds to step S143, if the result of step S142 is
YES, while, to step S144, if it is NO. In step S143, SGM is decreased by 2 x ΔS. In
step
S144, SGM is increased by ΔS. Here, ΔS is a constant. In step S145, this routine ends.
[0146] Next, the reason why SGM is given a value corresponding to a standard deviation of
the log (V) distribution through the above-described processing illustrated by Fig.
18 will be explained by making reference to Fig. 19. Assuming that a median value
of the distribution of x = log (V) is represented by x
M = log (V
M) and a point of -σ is represented by x
-σ = log (V
M) - σ
x (where σ
x denotes the standard deviation of the distribution of
x), the integration of the probability of
x to fall within a hatched portion in Fig. 19 is expressed by

This means that the probability of x to fall within the range of x
-σ ≦ x ≦ x
M is 0.34. In a different view, it results from the processing shown in Fig. 18 that
SGM is corrected so that the probability of representative values V to satisfy the
relation of V
MED/SGM ≦ V ≦ V
MED becomes 1/3 (about 33%). Thus, an expected value K
s of a change quantity of the standard deviation SGM per cycle is expressed by

and then the value of the standard deviation SGM converges to a value which satisfies
the relation

which relation results from the above expression when K
s becomes zero.
[0147] As a result, the relation
golds.
[0148] If this standard deviation SGM is applied to the following equation
it results that the knock decision level V
KD is set to a point of 3σ of the log (V) distribution.
[0149] Further, a processing such as illustrated by a flow chart shown in Fig. 20 may also
be employed as an embodiment other than that shown in Fig. 18.
[0150] This routine starts from step S146. In step S147, a decision is made as to whether
V ≦ V
MED x SGM is satisfied. The processing proceeds to step S148, if the result of step S147
is YES, while, to step S14A, if it is NO. In step 148, a decision is made as to whether
SGM X V ≧ V
MED is satisfied. The processing proceeds to step S149, if the result of step S148 is
YES, while, to step S14A, if it is NO.
[0151] In step S149, SGM is decreased by ΔS. In step S14A, SGM is increased by 2 x ΔS. In
step S14B, this routine ends.
[0152] Next, an update routine for updating an median value V
MED of the distribution of representative values in in step S15 in Fig. 17 will be explained
in detail by making reference to Fig. 21. The update routine for updating V
MED starts from step S150. In step S151, a decision is made as to whether V ≧ V
MED is satisfied. The processing proceeds to step S152, if the result of step S151 is
YES, while, to step S153, if it is NO. In step S152, V
MED is increased by ΔV. In step S153, a decision is made as to whether V < V
MED is satisfied. The processing proceeds to step S154, if the result of step S153 is
YES, while, to step S155, if it is NO. In step S154, V
MED is decreased by ΔV. In step S155, ΔV is updated. In step 5156, this routine ends.
[0153] In the above explanation, SGM and V
MED are updated at every cylinder.
[0154] The decision level may be corrected by using a constant in order to change a knock
control level in accordance with the state of the engine or each cylinder. For example,
V
KD is set in accordance with the relation V
KD = SGM³ x C x V
MED (where C is a constant to be set in accordance with the state of the engine or each
cylinder).
[0155] Also, it is effective to restrict SGM within a predetermined range, as occasion demands.
[0156] Further, it is also effective to restrict a knock decision level within a predetermined
range, as occasion demands.
[0157] A further embodiment of the setting of the knock decision level other than that illustrated
by steps S16 and S17 in Fig. 17 will be explained based on a flow chart shown in Fig.
22.
[0158] Firstly, the value of
u' is obtained in step S161. Here, though
u' is obtained by the use of a method same as the method of obtaining
u used in step S16 in Fig. 17,
u' should have a value corresponding to a knock decision frequency which provides a
stabilized advance/retardation quantity when no knock is generated. For example, when
the above-described way of determining an advance/retardation quantity is considered,
the knock decision frequency at which an advance/retardation quantity becomes stabilized
is once per second, and the knock decision probability in the case of a four-cylinder
engine operating at an engine speed Ne of 2000 rpm is 1.5%. From the above-mentioned
conditions, u' = 2.17 results.
[0159] Then, in step S171, a knock decision level is set in accordance with the following
equation:
where K is a constant larger than 1. Since the constant K is larger than 1, the above
equation is equivalent to a case where
u has been set to a value smaller than a value corresponding to the knock decision
frequency at which an advance/retardation quantity is stabilized. Therefore, it is
possible to assuredly make an advance whenever no knock is generated.
[0160] The concept of
u can be applied to the art disclosed by JP-A-60-243369. This will be explained by
making reference to a flow chart shown in Fig. 23.
[0161] This routine starts from step S180. In step S181, a variable A is calculated from
A = SGM
u + D, where D is a variable determined by the distribution pattern of output signals
of a knock sensor. In step S183, a decision is made as to whether an operating condition
of the engine or a knock sensor signal satisfies a specified condition. The processing
proceeds to step S184, if the result of step S183 is YES, while, to step S188, if
it is NO. This specified condition includes, for example:
(i) an engine load is equal to or larger than a predetermined value;
(ii) an engine speed is within a predetermined range;
(iii) the change rate of the engine speed is equal to or smaller than a predetermined
value; and
(iv) the value of VMED is within a predetermined range.
In step S184, a decision is made as to whether V ≦ V
MED/A is satisfied. The processing proceeds to step S185, if the result of step S184
is YES, while, to step S186, if it is NO. In step S185, D is increased by 2 x ΔD.
In step S186, a decision is made as to whether V ≧ V
KD is satisfied. The processing proceeds to step S187, if the result of step S186 is
YES, while, to step S188, if it is NO. In step 187, D is decreased by ΔD. In step
S188, this routine ends. Here, D is not restricted to have a positive value, but it
may have a negative value. Thus, the variable D is corrected to be decreased in case
of a large knock condition, that is, when the frequency of occurrence of the region
④ in Fig. 15 is large, while, it is corrected to be increased in case of a small knock
condition, that is, when the frequency of occurrence of the region ① in Fig. 15 is
large.
[0162] By virture of the above-described processings, when the median value V
MED deviates from a true value at the time of transition, et., the standard deviation
SGM is changed to compensate the deviation. Therefore, an accurate knock decision
is made possible even at the time of transition.
[0163] In the following, a supplementary explanation will be made of the above-described
effect by making reference to Figs. 24A to 24C. Under the condition of

≧ 0 at the time of acceleration, etc., V
MED becomes smaller than a true value, as shown in Fig. 24B. (In a normal operating state,
V
MED coincides with the true value, as shown in Fig. 24A.) For example, assuming that
V
MED is positioned at a cumulative percentage point of 40%, then

(where V₅₀ denotes the true value of the median value V
MED) results. Therefore, in order to satisfy the equation

it is necessary that the equation

holds. As a result, SGM is corrected to make the value of

converge to a value corresponding to a cumulative percentage point of 7%.
[0164] The cumulative percentage points of 40% and 7% respectively correspond to a point
of -0.25 σ and a point of -1.47 σ (which are obtained from the normal distribution
table). Accordingly, it results that SGM is corrected toward a value corresponding
to a point of [-0.25 - (-1.47)] σ = 1.22 σ in the frequency distribution of peak values,
and it takes a value larger than the true value. Therefore, an erroneous knock decision
can be prevented in accordance with the compensation of a deviation of V
MED from the true value by the correction of SGM. On the other hand, under the condition
of

< 0 at the time of deceleration, etc., V
MED has a value larger than the true value, as shown in Fig. 24C. For example, assuming
that V
MED is positioned at a cumulative percentage point of 60%, a similar technical concept
is also applicable here, and SGM is corrected to make

converge to a cumulative percentage point of 27 (= 60-33)%. Since the cumulative percentage
points of 60% and 27% correspond to points of -0.25 σ and -0.61 σ, respectively, it
results that SGM is corrected toward a value corresponding to 0.86 (= 0.25 + 0.61)
σ, and hence it takes a value smaller than the true value, thereby compensating the
deviation of V
MED from the true value.
[0165] As has been explained above in detail, the present invention provides the following
excellent effects.
① Since a knock decision level is set in accordance with a cumulative percentage point
and a standard deviation in the frequency distribution of representative values and
the state of an engine, the knock decision level is not effected by a change of the
frequency distribution due to variations in the engine, cylinders, knock sensors,
etc. As a result, it is possible to make an accurate knock decision.
② Since the cumulative percentage point and the standard deviation are detected at
every cycle, it is possible to set a suitable knock decision level rapidly.
③ Since the knock decision level is set so that the knock decision frequency becomes
constant when no knock is generated, it is possible to control ignition timing so
that it is advanced always at a constant rate.