KRRA 15.130 (Knock Control with Individual Cylinder Retard)
From Nefmoto
See the funktionsrahmen for the following diagrams:
krra-main KRRA: knock control including steady state adaptation
krra-bbkrra BBKRRA: release of knock control and adaptation
krra-bbkr BBKR: release of knock control and adaptation
krra-bb-krdws BB-KRDWS: condition for safety retard of ignition
krra-bb-lzf BB-LZF: release of leading cylinder function
krra-lzist LZIST: determination of led and leading cylinders
krra-uewkr UEWKR: overwrite ignition retard of led cylinders
krra-wkral WKRAL: Update of the cylinder selective ignition retard at adaptation area change (wkra -- > wkr)
krra-wkrber WKRBER: Calculation of ignition retard
krra-krvf FRUEHVERST: Release of ignition advance adjustment
krra-wkri WKRI: calculation of the average ignition retard
krra-begwkr BEGWKR: limitation of ignition retard after reading adaptation map
krra-stkra STKRA: Detection of load- and speed range
krra-kr-adap KR_ADAP: Adaptation of ignition retard
krra-vswkr VSWKR: Ignition adjustment with VS2x
krra-kr-freeze KR-FREEZE: calculation of ignition retard for frozen knock control
krra-initialise Initialise function
Note:
The cylinder-specific variables wkr, dwkrz, wkra and zkrvf are indicated in the following description through a control variable (i) - like in the ECU code, for example wkr(i). The corresponding RAM-cell which can be read via VS100 is marked by _i, for example: wkr_i
The Knock Control cylinder counter zzylkr serves as control variable (except wkra)
The following applies to it:
zzylkr = 1 ... SY_ZYLZA ASCET-Model
zzylkr
= 0 ... SY_ZYLZA-1 ECU-Code
See also the Application Notes section in this module
KRRA 15.130 Function Description
Function of Knock Control
The KRRA module includes calculation of the cylinder-specific change of ignition angle of the knock control and adaptive calculation of the cylinder-specific retarding wkr(i) (WKRBER) with storage in an adaptation characteristic map wkra(i) (KR ADAP). The input values of the adaptation map are current cylinder number, engine speed and load (STKRA)
The value of the retarding dwkrz(i) which is passed on to the ignition comes to dependent on the operating condition (BBKC):
1. B_kr & !B_krdws & !B_llr dwkrz(i) = wkr(i)
2. B_kr & B_krdws dwkrz(i) = krdwsw KRDWS – Safety retarding see modules DKRS, DKRNT and DKRTP
3. B_kr & !B_krdws & B_llr dwkrz(i) = wkrm wkrm – average retard over all cylinders
4. !B_kr & (!)B_krdws dwkrz(i) = 0 Condition for active Knock Control without exhaust gas recirculation B_kr: ((rl > LKRN) v B_krldy) & (tmot > TMKR) & B_stend & (nmot > NKRF) Condition for active Knock Control with exhaust gas recirculation B_kr: (( rl > LKRAGRN) v B_krldy) & (tmot > TMKR) & B_stend & (nmot > NKRF) Condition for active adaptation: B_kra : B_kr & (tmot > TMKRA) The lower speed threshold NKRF should prevent the engine stalling at low speed by Knock Control-Ignition Angle-intervention
Co-ordination of the Ignition Angle for Torque Management
When knock control is active, the earliest cylinder-specific ignition angle results: KFZW + dwkrz(i) + wkrdy (wkrdy is derived dynamically from module KRDY, included in module ZUE) There are two types of control action: 1. Output ignition angle = KFZW + dwkrz(i) + wkrdy --> B_zwkraa = 1 --> knock control algorithm remains unchanged 2. Output ignition angle < KFZW + dwkrz(i) + wkrdy --> B_zwkraa = 0 --> advancing algorithm of wkr(i) is frozen and knock control adaptation is disabled. (due to exhaust gas reasons, Stability Program operation, idle control, etc.) In module ZUE the bit B zwkra is formed synchronously to the ignition angle output and it is then stored in the corresponding position in bit array zwkrafld. E.g. B_zwkraa is then determined from zwkrafld as follows: SW cylinder counter
(zzylkr) |
5 |
4 |
3 |
2 |
1 |
0 |
|
B_zwkra |
1 |
1 |
0 |
1 |
0 |
0 |
zwkrafld = 25 + 24 + 22 = 52 |
B_zwkraa (zzylkr = 3) = 0 (= false) Please note: Signs of the ignition angle (in degrees crankshaft (°KW)) according to mathematical convention
KFZW > 0 (with TDC as the point of reference,
ignition "before" DTC means mathematically positive angles KFZW)
dwkrz(i) £ 0 ("retard" timing with regard to the basis ignition angle
means mathematically negative dwkrz(i) )
Retarding of the ignition angle without adaptation
(WKRBER)
If B_kr and !B_kra are set the knock control operates
as follows:
If a knocking combustion (B_kl) is detected in module
KRKE then the ignition angle of the corresponding cylinder i is adjusted by
retarding it by an amount KRFKN per knock event. If the engine is in the Knock
Control-steady-state operation, is adjusted by retarding it by an amount KRFKLN
per knock event. This cylinder-individual retarding is added independently of
load and engine speed in the RAM-area wkr(i)
For engine smoothness reasons and in order to avoid
spurious misfire detections, the retarding is limited in each calculation to a
range around the mean value wkrm of the latest given SY_ZYLZA retardings
wkr(i), given by wkrm plus/minus a freely selectable threshold
This threshold DWKRMSN is a characteristic line over
the engine speed
Additionally the retarding is limited in wkr(i)
towards retard to KRMXN and towards advance to 0°
wkr is a RAM-area in which a RAM-cell is reserved for each cylinder
If the “Knock Control active” operating range of the
engine is left (!B kr) then the latest present retarding remains stored in
wkr(i) until the “Knock Control active” range is entered again. The same
applies for wkrm
In the “Knock Control not-active” range of the engine
zero is passed on to module ZUE as adjustment value dwkrz(i)
If the ignition is switched off, the retardings in
wkr(i) are set equal to zero
Advancing of the ignition angle (WKRBER &
FRUEHVERST)
The retardings from wkr(i) are cancelled on a
cylinder-specific basis if B_kr is set and if a cylinder-specific advancing
counter zkrvf(i) has reached zero
During each knock event B_kl, the cylinder-specific
counter zkrvf(i) is populated with the value KRVFN. Each non-knocking combustion
in cylinder i for which in addition B zwkraa = 1 applies (i.e. the given ignition
angle was limited by Knock Control) decrements zkrvf(i) by 1. When zkrvf(i) = 0
is reached, the retarding in wkr(i) assigned to the corresponding cylinder is
decremented by one quantization step and the counter is again populated with
KRVFN
During each timing towards advance, the wkr(i) are
limited to the mean value wkrm of the latest given retarding SY_ZYLZA minus a
freely selectable threshold DWKRMSN or to the value zero
If the “Knock Control active” operating range of the
engine is left (!B_kr) the latest available counter values remain stored in zkrvf(i)
until the “Knock Control active” range is entered again
If the ignition is switched off, the counter values in
zkrvf(i) are set equal to zero
If changed engine operating conditions result in a
reduced tendency to knock, a quicker advancing of the wkr(i) is performed until
the first knock event occurs after the beginning of this quick advancing. In
this case, the counters zkrvf(i) are started when KRVFSN < KRVFN. The
condition for the start of the quick advancing is either the transition from reading
adaptation values wkra(i) to wkr(i) or the termination of a dynamic phase or
a negative load range shift
There should be no quick advance during dynamic
operation (B_krldya / B_krndy = 1)
Knock Control Steady-State Mode
In Knock Control steady-state mode, the ignition angle
per knock event is retarded by the value KRFKLN or KRFKN. So that the knock
frequency at different retards is not too high, the Knock Control steady-state
mode advance adjustment speed adjusted by KRLVFKN
The Knock Control steady-state operation is indicated
by B_krstatb. This bit is set if |drl| < DRLKRSTMX and |ngfil| < NGKRSTMX
for TVKRSTAT seconds
Retarding of the ignition angle with adaptation (KR
ADAP)
B_kra = B_kr & (tmot > TMKRA) --> Adaptation active
B_krafrz = B_kra & ((rl < lkraw) || (tmot <
TMKRAS) || (nmot < NKRAMIN) || (nmot > NKRAMX) || B_asr || B_nmax ||
B_vmax) --> Learning the
adaptation values is prohibited
The adaptation ensures that also for strongly
map-dependent varying retardings the knock frequency does not increase in case
of quick changes of the map ranges. For this purpose, when adaptation is
active, the current retards under certain conditions are written in a load-speed-dependent
adaptation map (see Storage) or overwritten with the values stored in the
map (see Read). Read access to the adaptation map is only enabled when the engine temperature is stable and when there
is a significant knock control requirement (i.e. TMKRA ³ TMKR), whereas the knock control must be activated
even at low knock control requirements (worst case conditions). Write accesses to
the adaptation map are enabled until the second temperature threshold (TMKRAS ³ TMKRA) and the second load threshold (LKRAN ³ LKRN) are exceeded. This prevents, on the one hand,
spurious adaptation due to retardings during warm-up and on the other hand, a
learning of the adaptation value to 0 at lower loads
A RAM cell is reserved in the adaptation map wkra for
each load- and speed range per cylinder. The load and speed limits are removed
for administration labels (KRAL1-3N or KRAN1-4). The values stored there will
be used as the limiting values in case of increasing load or speed
In case of decreasing load or engine speed, an adjustable hysteresis
(KRALH, KRANH) is subtracted from these
values
The current load range is stored in stkrlx, the speed
range in stkrnx
When the ignition is switched off all values remain
stored in wkra. If the supply voltage of the ECU is disconnected the values are
lost. After the supply voltage of the ECU has been reconnected all values are
set to 0
DIAGRAM
For the indexing of the wkra(i) - RAM-cells the
following specification is used in the SW:
i = zzylkr + (8 ´ stkrnx) + (40 ´ stkrlx zzylkr) = 0...7,
so at the maximum, 8 cylinders can be represented
stkrnx = 0...4, 5 engine speed ranges
stkrlx = 0...3, 4 load ranges (value of 0 is
notwithstanding the ASCET-Model!)
The wkra of the current adaptation range can be
obtained from the RAM cells wkraa_i, i = 0 ... SY_ZYLZA-1
Adaptation - Learning Conditions:
The following conditions update the adaptation map:
1. During each knock event, the ignition angle retard
wkr of the cylinder in which the knock event occurred, is increased by an
offset KRDWKLA then stored in the current load-speed range of the adaptation
map when this sum (wkr + KRDWKLA) is later than the value stored in wkra
2. If the current retard wkr(i) is at least KRDWA
earlier than the last value stored in the adaptation map and advance adjustment
counter zkrvf (i) = 0, the ignition angle retard is changed to KRDWSA towards
advance in the adaptation map
3. If the current retard wkr(i) = 0 and the advance
adjustment counter zkrvf (i) = 0, wkra (i) is changed by KRDWSA towards advance
The adaptation of the characteristic map is only
performed during steady-state operation and during not active safety retarding (B
krdws=0). When idle control is active, the steady-state adaptation is also
blocked, because the control is via the average wkrm retardation
In order to avoid the unjustified adaptation of large
amounts of retardation, further writing to the adaptation map (combined into
B_krafrz) is prohibited under the following conditions:
- tmot < TMKRAS error identifiers due to extraneous
noise during warm-up
- nmot > NKRAMAX error identifiers due to
extraneous noise from the dump valve
- nmot < NKRAMIN error identifiers due to
extraneous noise from the drivetrain
- B_asr = 1 transient engine conditions via fast ignition
angle-intervention, possibly error identifiers
- B_nmax = 1 ditto
- B_vmax = 1 ditto
Writing is also
prohibited when
- rl < LKRAN
Adaptation – Read Conditions
During active adaptation the retarding of all
cylinders wkr(i) is overwritten by the values from wkra(i) if one of the
following conditions is fulfilled:
1. Transition from !B_kra to B_kra
2. Load range changes
with dynamic response (B_krl/ndyn = 1)
3. Engine speed changes
with dynamic response (B_krl/ndyn = 1)
4. Entering or exiting
idle control
During overwriting of
wkr(i) with wkra(i), ignition angle jumps away from advance can happen (e.g
adaptation has not yet settled in all adaptation ranges) which may give rise to
undesirable results (judder, knock). For this reason, early ignition angle
changes will be limited via overwriting KRDWAA. KRDWAA = 0 means that ignition
angle jumps away from advance will be prevented. KRDWAA = KRMXN means that ignition
angle jumps away from advance within the scope of the maximum Knock Control
range are permitted
Knock Control in the case of Active Dynamic Response
(KRRA, KR_ADAP, BBKR)
In case of active dynamic response (B_krldy, B_krldya,
B_krndy, see module KRDY) the further adaptation of the steady-state values
wkra(i) is blocked. A change of the adaptation ranges leads to an updating of
wkr(i) with the values adjusted in wkra(i)
Each knocking combustion (B_kl), like so far, leads to
a retarding by KRFKN and is therefore added to the cylinder-individual
retarding in wkr(i)
In addition to B_krldya,
an adaptive dynamic derivative action wkrdy (see module KRDY) is added. For the
fastest possible inclusion of this derivative action for dynamic response
detection, an auxiliary bit B_wkrdyw set in module KRDY triggers the
corresponding updating of all dwkrz_i included in wkrdy in the next KR-time
frame. This algorithm is not shown in the ASCET images
Knock Control during
Active Idle Control (KRRA)
When idle control is
active (B_llr = 1) cylinder-specific knock detection and control of the
retardings wkr(i) still occurs. However, at ignition, the average retardation
wkrm is output (dwkrz(i) = wkrm for all i)
In this way, additional
idle disturbance via KR-ZW-intervention is avoided. During activation or
deactivation of idle control respectively, the adaptation map is read
Knock Control Above
NKRMAX (BBKR, WKRBER)
Errors can frequently
occur at high speeds due to noise (e.g. valve lift). Therefore, in order to
avoid unduly large amounts of retarding, there is a speed threshold, NKRMAX,
above which the de facto knock control is disabled! Instead, wkr(i) is
permanently overwritten with the adapted values of
the current adaptation range wkra(i) + an offset. This offset (krfkw - KRDWKLA)
is implemented so that a margin from krfkw to the knock limit in this adaptation range
is maintained. However, the prerequisites for this are a nearly constant knock
limit within the respective adaptation areas and the presence of a current
adaptation value
Please apply this
function with the utmost care!
Optional Leading Cylinder
(LZ)
The leading cylinder
function is enabled:
- On exceeding a
cylinder-specific speed threshold KRNLZ[i], above which the cylinder has poor
knock detection, this cylinder is led by the cylinder with a good knock
detection
- For systems with two
knock sensors, if an error has been detected for the knock sensors. (The one
knock sensor associated cylinder are hereafter referred to as a group.) The
cylinders of the group concerned are then led by the cylinders of the group
having a good working knock sensor. On exceeding KRNLZ [i], the safety
retardation will be activated for all of the cylinders. This mitigation measure
will be turned off via the codeword CWKRNLR. If an error is detected, a sensor
immediately activates the security retardation
Leading Cylinder Function
when Engine Speed > KRNLZ, Without Knock Sensor Error
The corresponding leading and led cylinders are selected via the elements
LZFUER_0 to _k (k = SY_ZYLZA - 1), of the blocks of constants LZFUER. The leading cylinder (LZ) is indicated by set bits in
the bytes to
LZFUER_0 _k
The elements i = 0 to k
of the constants LZFUER are selected via the cylinder
block counter zzylkr in Knock Control, i.e. LZFUER_i belongs to zzylkr = i the
cylinder counter counts the combustion within an AS. The connection between
zzylkr and physical
cylinder is given by the firing sequence. Accordingly, the bits 0-7 of LZFUER_i
refer to zzylkr indexed combustion
During activation of the
lead cylinder function in this case, the contents of LZFUER is copied into the
RAM-array LZIST (loop from i = 0 ... SY_ZYLZA-1 on a 100 ms time frame). Thus
LZIST will contain the most current association between leading and led
cylinders
For example:
6 cylinder engine with
firing sequence zzylkr = 0 1 2 3 4 5
Physical cylinders: 1 4 3 6 2 5
Block of constants LZFUER
Led cyl. Bit 7 6 5 4 3 2 1 0 <-- (leading cylinder)
LZFUER_0 0 0 0 0 0 0 0 0 -- > 00 -- > physical
cylinder 1 will not be led, i.e. separate knock detection
LZFUER_1 0 0 0 0 1 0 0 0 -- > 08 -- > physical
cylinder 4 will be led by cylinder 6
LZFUER_2 0 0 0 0 1 0 0 1 -- > 09 -- > physical cylinder
3 will be led by phys. cylinder 6 or 1 (late selection)
LZFUER_3 0 0 0 0 0 0 0 0 -- > 00 -- > physical
cylinder 6 will not be led, i.e. separate knock detection
LZFUER_4 0 0 0 0 1 0 0 0 -- > 08 -- > physical
cylinder 2 will be led by cylinder 6
LZFUER_5 0 0 0 0 1 0 0 0 -- > 08 -- > physical
cylinder 5 will be led by cylinder 6
A led cylinder may not be
defined as a lead cylinder for itself, i.e. the bit i in LZFUER_i must be
"0"
In the lead cylinder
function, the following active measures are taken:
1. The knock detection
will continue unchanged
2. The knock control and
adaptation of the leading cylinder continues unchanged
3. For a led cylinder i, the
retardation of the latest i assigned to leading cylinders j plus a
cylinder-specific offset WKRLZOF_i is used as a late adjustment: wkr_i is
overwritten in the background program with wkr_j + WKRLZOF_i. The adaptation
continues unchanged. The adapted (and possibly incorrect) values for led cylinders arising because of 6 are not output
If the code word CWKRLZFK
= 1, the retard for the led cylinder is determined according to the following
minimum selection:
wkr_i = MIN (wkr_i,
wkr_j) + WKRLZOF_i
4. Detected knock for the
led cylinders has no effect: the retardation per knock is set to zero for the
cylinder
If the code word CWKRLZFK
= 1, wkr_i will be retarded according to krfkw in the led cylinders and also
the cylinders in which knock is detected, regardless of the leading cylinder
function
5. An independent advance
for led cylinder is suppressed: the step width of the counter zkrvf_i for the
led cylinder i is set continuously in the background program KRVFN
If the code word CWKRLZFK
= 1, the step width counter zkrvf_i is not overwritten for the led cylinder i
Thus, an advance of wkr_i independent of the leading cylinder is possible. But
because this results in an earlier ignition angle than with the leading
cylinder, wkr_i will be overwritten with the ignition angle-adjustment of the
leading cylinder. Thus, the earliest possible ignition angle for the led
cylinder is given by the leading cylinder’s ignition angle + offset
6. When reading from the
adaptation maps, ignition angle changes away from advance are limited to 0°
crank angle, rather than KRDWAA
Leading Cylinder Function
With Knock Sensor Error and Engine Speed < KRNLZ
If the knock sensor in
group 2 is off (B_kseb2 = 1), then the cylinder of group 2 is led by group 1
according to the measures described in points 1 to 6 above. Instead of the
individual cylinder offsets WKRLZOF_i, a global offset, WKRLZOFEKS is applied
to the led cylinder. In this case, the content of LZB1 is copied into the RAM
array LZIST (see above)
If the knock sensor in
group 1 from (B_kseb1 = 1), then the cylinder of group 1 is led by group 2
according to the measures described in points 1 to 6 above. Instead of the
individual cylinder offsets WKRLZOF_i, a global offset, WKRLZOFEKS is applied
to the led cylinder. In this case, the content of LZB2 is copied into the RAM
array LZIST (see above)
If both knock sensors are
off (B_kseb1 = 1 & B_kseb2 = 1), the safety retardation is activated
(B_krdws = 1)
Through the elements
LZBi_0 to LZBi_k (k = SY_ZYLZA - 1) of the constant
blocks LZBi (i = 1,2) the corresponding leading and led cylinders are selected
The leading cylinder (LZ) is indicated by set bits in the bytes LZBi_0 to LZBi_k
The elements n = 0 to k
of the constant block are selected by the cylinder
counter zzylkr in the Knock Control function, i.e. LZBi_n is zzylkr = n. is one
of the cylinder burns the counter counts within an AS. The connection between
zzylkr and the physical cylinder is given by the firing sequence. Accordingly, the
bits 0-7 of LZBi_n refer to zzylkr by indexed combustion
For example:
6 cylinder engine with
firing sequence zzylkr = 0 1 2 3 4 5
Physical cylinders: 1 4 3 6 2 5
Constant block LZB1
Led cyl. Bit 7 6 5 4 3 2 1 0 <-- leading cylinder
LZB1_0 0 0 0 0 0 0 0 0 = 0
LZB1_1 0 0 0 1 0 1 0 1 = 21 -- > physical cylinder
4 is led by the cylinders of group 1
LZB1_2 0 0 0 0 0 0 0 0 = 0
LZB1_3 0 0 0 1 0 1 0 1 = 21 -- > physical cylinder
6 is led by the cylinders of group 1
LZB1_4 0 0 0 0 0 0 0 0 = 0
LZB1_5 0 0 0 1 0 1 0 1 = 21 -- > physical cylinder
5 is led by the cylinders of group 1
Constant block LZB2
Led cyl. Bit 7 6 5 4 3 2 1 0 <-- leading cylinder
LZB2_0 0 0 1 0 1 0 1 0 = 42 -- > physical
cylinder 1 is led by the cylinders of group 2
LZB2_1 0 0 0 0 0 0 0 0 = 0
LZB2_2 0 0 1 0 1 0 1 0 = 42 -- > physical
cylinder 3 is led by the cylinders of group 2
LZB2_3 0 0 0 0 0 0 0 0 = 0
LZB2_4 0 0 1 0 1 0 1 0 = 42 -- > physical
cylinder is led by the cylinders of group 2
LZB2_5 0 0 0 0 0 0 0 0 = 0
A led cylinder may not be
defined as a lead cylinder for itself, i.e. the bit i in LZBi_n must be
"0"
Safety Retardation During
Active Knock Control (KRRA)
The knock control system hardware
(sensors and signal processing IC CC195) is continuously monitored using the
diagnostic functions DKRNT, DKRTP and DKRS. When errors are detected, the corresponding
error flags E_ * are set, resulting in setting B_krdws to trigger the safety
retardation. Resetting of B_krdws after detection of error healing and hence
the withdrawal of the safety retardation may only happen with "knock
control not active" (to prevent torque jumps)
Other system errors that
lead to triggering of the safety retardation are:
- Lack of synchronization
(B_synph = 0)
For systems with two or
more knock sensors (KSZA > 1), in the absence of general synchronization
safety retardation will be switched on
For systems with only one
knock sensor (KSZA = 1) and without active leading cylinder function, knock
detection in the absence of synchronization will be performed with the most
sensitive knock detection threshold (B_krnl = 1 = > emergency knock detection
– see also module KRKE), the knock control system continues unchanged
The operation of the
leading cylinder function sets the synchronization of the system (B_synph = 1)
mandatory in advance. It follows that in absence of synchronization and active
leading cylinder function in safety retardation (B_krdws = 1) it must be switched,
regardless of how many knock sensors the system has
In the absence of
synchronization, an emergency operation of the engine by using dual ignition
per SW (mirroring the ignition = > Half firing interval) can occur. In the
case of an odd number of cylinders, the required sychronisation between the
Knock Control measurement windows and combustion is no longer necessarily
given. It must, even for systems with a knock sensor, be switched to safety
retardation. A value of > 1 is therefore input to KSZA
- Emergency tachometer
(B_nldg = 1)
During speed-sensor
emergency operation, the measurement window cannot be output with the required
accuracy. Therefore security retardation is activated. To prevent unnecessary
setting of safety flags B_krdws after an ECU reset, the setting of c_inisyn is
blocked for 3 seconds. If the Knock
Control safety flag, B krdws, is set (see modules DKRS, DKRNT and DKRTP),
dwkrz(i) and wkrma are overwritten by KRDWS if the knock control is active
wkra(i), wkr(i) and wkrm are not updated as long as B
krdws is set
If B krdws is again reset dwkrz(i) is overwritten by
wkr(i), wkrma by wkrm
Application Notes
Cylinder-specific and load/engine speed
range-dependent values are marked by (i) in the description corresponding to
their realization in the ECU-code, e.g. wkr(i). The corresponding RAM-cell
which can be read via VS100 is indicated in the ASCET-image by i, e.g. wkr i
The cylinder counter zzylkr generated in module GGKS
serves as control variable for the index i of the cylinder-individual RAM-cells
(wkr(i), dwkrz(i), zkrvf(i), with the exception of wkra(i), see above)
Knock Control can be switched off via the label TMKR:
TMKR > tmot == > !B_kr
For the application the following typical values are
suggested:
KRFKN -3 °crank is a
value for the retarding of the ignition angle. Experience shows that it is a
sufficient value to safely run the engine at the knock limit with stabilized
adaptation
KRMXN -12 °crank is a
value which is sufficient for most applications. When fixing this
characteristic line it must be noted though that the engine can be operated
absolutely knock-free with the programmed value under worst-case conditions
(i.e. engine speed, ambient temperature and fuel with lowest octane number)
In the process attention must be paid to the maximum
permitted exhaust gas temperature
KRVFN approx. 4 sec/°KW
advancing is a typical value. The control speed of Knock Control during
quasi-steady-state engine running results from this characteristic line in
connection with KRFKN. The aim here is to determine a time constant which is
larger than the thermal time constant of the engine so as to avoid a thermal
strain
When adjusting KRVFN it must be taken into
consideration that the thermal strain of the engine increases with increasing
engine speed so that a larger period should be chosen for higher engine speeds
KRVFN = 1 Inc. * n / (120 * x) with 1 Inc. in °KW
n in rpm
x in °KW/sec - "speed" for
the advance adjustment
KRVFSN to be adjusted dependent of KRDWKLA in order to
enable a quick advancing of the adaptation map values in case of changed
operating conditions without provoking an increased knock frequency
KRDWKLA = -3 °KW: approx
1 sec/°KW advancing or approx. 1/4 ´ KRVFN
KRDWKLA = 0 °KW: approx
2 sec/°KW advancing or approx. 1/2 ´ KRVFN
TMKR approx. 40VC is the value during which on many
engines knocking combustions can already occur
TMKRA: Below an engine temperature threshold TMKRA it
is not useful to update wkra since experience has shown that within this
operating range the knock tendency of the engine is very low. If adaptation
would be permitted the necessary values learned in the normal operating range
would be lost which means that the knock frequency is again increased when this
operating range is reached again
Usually this engine temperature threshold lies at
TMKRA = 80°C
LKRN approx. 30% rl is a typical value. The lowest
load threshold during which knocking combustions can occur is stored in this
characteristic line
LKRAN can be parameterized with values > LKRN,
so the adaptation will only happen when there is a significant Knock Control
demand; LKRAN is ineffective when parameterized with values <=
LKRN
KRDWKLA 0 °KW
<= |KRDWKLA| <= |KRFKN|
KRDWA |KRDWA| >=
|KRDWKLA|
KRDWSA 0 °KW <
|KRDWSA| und |KRDWSA| <= |KRDWA| - |KRDWKLA|
The following sets of
parameters can be recommended:
KRDWKLA/°KW |
KRDWA/°KW |
KRDWSA/°KW |
|
0 |
2.25 |
2.25 |
= > Adaptation up to the knock limit |
-1.5 |
3.0 |
1.5 |
= > Adaptation up to the knock limit + a safety margin of 1.5 °crank |
-3.0 |
4.5 |
1.5 |
= > Adaptation up to the knock limit + a safety margin of 3 °crank |
KRWKRAIN = 0 °crank ... KRMXN, when interpretation of the ignition angle-KF close to the knock limit a value < 0 °crank is recommended KRDWAA = 0; ignition angle jumps away from advance via reading of the adaptation values are prevented = min(KRMXN); ignition angle jumps away from advance are permitted within the scope of the maximum knock control range 0 > KRDWAA > min(KRMXN) ignition angle jumps away from advance are limited to KRDWAA DWKRMSN approx. -3 °KW is a typical value to maintain the engine smoothness and to avoid misfire misdetection; if the values get smaller the cylinder-individual character of the knock control is increasingly lost
KRDWSN around -12 °crank, knock
must be avoided under worst case conditions
KRALH in order to avoid a judder at the range limits,
a hysteresis was introduced for decreasing load
Typical value for KRALH = 3%
KRANH in order to avoid a judder at the range limits,
a hysteresis was introduced for decreasing engine speed
Typical value for KRANH = 120 rpm
NKRAMIN equal to the speed, up to which error flags by
mechanical noise and vibration arise from the drive train. If the function is
not required then set NKRAMIN = 0
NKRAMAX equal to the
speed above which there can be error flags (e.g., valve lift) which
particularly applies when NKRAMAX > KRAN4 so actually in the upper speed
range, values can be adapted, otherwise there is
considerable risk of freezing the Knock Control by overwriting with NKRMAX. If
the function is not required then set NKRAMAX to the maximum value
NKRMAX equal to the speed
above which there can be error flags (e.g., valve lift) which particularly
applies when NKRMAX > KRAN4 and NKRMAX >= NKRAMAX so actually in the
upper speed range, values can be adapted,
otherwise there is considerable risk of freezing the Knock Control by
overwriting with NKRMAX. If the function is not required then set NKRMAX to the
maximum value
CWKRNLR = 1 additional
mitigation measure for systems with two knock sensors with knock sensor error
is active. CWKRNLR = 0 ... is not active
Particular attention when
determining the ignition angle maps requires knowledge of the area in which an
enrichment function (lambda <1) is active since the knock limit will shift
because of the enrichment
To ensure the stabilty of
Knock Control is not jeopardized, the ignition angle structure and the
enrichment function must be adjusted so that a uniform margin to the knock
limit is maintained (<3° crank) across the entire operating range of the
engine
The existence of some values/RAMs is determined by the
representation in ASCET (block hierarchy, course of control). They are not
realized in the SW resp. they cannot be measured definitely by means of VS100
due to their special realization:
- B wkral cannot be measured definitely
- B krvf is not realized
- zkrvf(i)=0 cannot be measured, this state can only
be detected indirectly via the performed RESET of the counter from zkrvf(i) = 1
to zkrvf(i) = KRVF(S)N
- zzylkral is not realized
Distinguishing between wkrm/wkrma
wkrm represents the mean value of the each time SY
ZYLZA latest calculated wkr(i) (possibly incl. mean value vswzm) while wkrma
represents the mean value of the dwkrz(i) (without wkrdy) which was passed on
to the ignition during the SY ZYLZA latest combustions
Adaptation characteristic map wkra
When choosing the map values a compromise has to be
achieved between the possibly varying knock tendency of the engine at different
load and engine speed ranges and the time by which the characteristic map is
updated during normal driving
If the adaptation map wkra is chosen to be too large
(i.e. many relative load-engine speed-ranges) a longer period will be needed in
order to update all ranges
Thus in case of changed operating conditions which
lead to a larger knock tendency it is inevitable that the knock frequency
increases
Generally a characteristic map with three load and
five engine speed ranges is sufficient for wkra. In this map a RAM-cell is
provided for each load/ engine speed range per cylinder
(Example 4-cylinder-engine: 3 ´ 5 ´ 4
= 60 RAM-cells for wkra)
For the indexing of the wkra(i) - RAM-cells the
following specification is used in the SW:
i = zzylkr + 8 ´ stkrnx + 40 ´ stkrlx (zzylkr = 0...7,
so at the max. 8 cylinders can be represented)
The number of adaptation ranges can be varied
according to special customer requirements but at the maximum to 4 x 8
load/engine speed ranges (change of above-mentioned indexing may possibly be
necessary)
Cylinder-individual ignition angle timing with VS20
By means of VS20 a cylinder-individual additional
timing vszw(i) can be performed (see also modules VS and VERST) so that the
following applies:
dwkrz(i) = wkr(i) + wkrdy + vszwkr(i) if B kr & !B
krdws
Label |
Timing Range |
Quantization |
Initialization/neutral value |
vszwkr_1 |
see module VS_VERST |
0.75 °crank |
0 °crank |
Vszwkr_8 |
see module VS_VERST |
i = 0 ... SY ZYLZA - 1 Attention: 1. No automatic limitation of vszwkr(i) is performed - please pay attention to engine and catalyst protection during the timing! 2. The earliest possible ignition angle determined by the Knock Control is under all circumstances, i.e. it is possible that the minimum permitted ignition angle may be undershot (due to temperature reasons
see modules ZUE and ZWMIN). Please pay attention to engine and catalyst
protection!
Abbreviations
CWKRLZFK |
Code word: knock detection is not switched off for led cylinders |
CWKRNLR |
Code word: limp home in case of 1 out of 2 knock sensors fails |
CWKRRA |
Code word for the function KRRA |
DRLKRSTMX |
Maximum drl in Knock Control steady-state operation |
DWKRMSN |
Delta ignition angle Knock Control margin from mean retarding |
KRAL1N |
load range for Knock Control adaptation maps 1 |
KRAL2N |
load range for Knock Control adaptation maps 2 |
KRAL3N |
load range for adaptation Knock Control maps 3 |
KRALH |
Load hysteresis for Knock Control adaptation maps |
KRAN1 |
speed range for Knock Control adaptation maps, sample range 1 |
KRAN2 |
speed range for Knock Control adaptation maps, sample range 2 |
KRAN3 |
speed range for Knock Control adaptation maps, sample range 3 |
KRAN4 |
speed range for Knock Control adaptation maps, sample range 4 |
KRANH |
Engine speed hysteresis for Knock Control adaptation maps |
KRDWA |
knock control difference current ignition angle to adaptation map |
KRDWAA |
Permissible ignition angle jump towards advance when reading adaptation values |
KRDWKLA |
The SV-learning value for KR adaptation after knocking detected |
KRDWSA |
The FV-learning value for KR adation when wkra-wkr > KRDWA |
KRDWSN |
knock control delta angle safety |
KRFKLN |
Retard per knock event at a slow advance |
KRFKN |
retard step knock occurrence |
KRLMDY |
Read if change of load range: always or only if dynamic active |
KRMXN |
maximum retard adjustment |
KRNLZAR |
cylinder individual speed limit for lead by leading cylinder |
KRNMDY |
Read if change of speed range: always or only if dynamic active |
KRVFN |
number of firings/cyl. or time for ignition advancing |
KRVFSN |
number of firings/cyl. or delay-time during fast ignition advancing of the Knock Control |
KSZA |
Knock sensor number |
LKRAGRN |
Load threshold knock control with Exhaust Gas Recirculation |
LKRAN |
Load threshold knock control adaptation |
LKRN |
load-signal threshold knock control |
LZB1 |
Lead cylinder assignment: Bank 1 leads to Bank 2 with error KS 2 |
LZB2 |
Lead cylinder assignment: Bank 2 leads to Bank 1 with error KS 2 |
LZFUER |
Lead cylinder assignment |
NGKRSTMX |
maximum speed gradient in the Knock Control steady-state operation |
NKRAMAX |
Upper engine speed limit for freezing Knock Control adaptation |
NKRAMIN |
Lower engine speed limit for freezing Knock Control adaptation |
NKRF |
Engine speed threshold for Knock Control release |
NKRMAX |
Upper engine speed limit for freezing Knock Control adaptation |
SENZZYL0 |
|
SNM16KRUB |
Data point distribution engine speed, 16 data points |
SY_ZYLZA |
System constant: number of cylinders |
TMKR |
Engine-temperature threshold to enable Knock Control |
TMKRA |
Engine temperature threshold for adaptive Knock Control |
TMKRAS |
Temperature threshold for releasing write access to the adaptation map |
TVKRSTAT |
Knock Control delay time steady-state operation |
WKRLZOF |
Constant bloack: ignition retard offset for leed cylinder |
WKRLZOFEKS |
Ignition retard offset for led cylinders in case of knock sensor error |
B_ADRKRA |
Condition flag: Knock Control adaptation values reset errors in memory |
B_AGR |
Condition flag: Exhaust Gas Recirculation |
B ASR |
Condition flag: ASR active |
B_KL |
Condition flag: knock detected |
B_KR |
Condition flag for knock control active |
B_KRA |
condition for active Knock Control adaptation |
B_KRAFRZ |
Condition flag: Knock Control adaptation is frozen |
B_KRDWS |
Condition flag: knock control safety ignition retarding |
B_KRFDKS |
Condition flag: enable knock sensor diagnosis |
B_KRFRZ |
Condition flag: Knock Control adaptation is frozen |
B_KRLDY |
Condition flag: load dynamics for knock detection active |
B_KRLDYA |
Condition flag: load dynamics retard and dynamics adaptation active |
B_KRLDYN |
Condition flag: load dynamics for steady-state adaptation active |
B_KRLZ |
Condition flag: knock control lead-cylinder function active |
B_KRNDY |
Condition flag: speed dynamics for knock detection active |
B_KRNDYN |
Condition flag: speed dynamics for steady-state adaptation is active |
B_KRNL |
Condition flag: emergency operation of knock detection for emergency operation of phase sensor |
B_KRNLR |
Condition flag: emergency knock control for V6 or V8 with two knock sensors and error in one knock sensor |
B_KRSTATB |
Condition flag: steady-state Knock Control operation |
B_KRVF |
Condition flag: adjustment of Knock Control ignition timing to a less retarded value |
B_KRWA |
Condition flag: Knock Control at stop |
B_KSEB1 |
Condition flag: KS-error Bank 1 |
B_KSEB2 |
Condition flag: KS-error Bank 2 |
B_LLR |
Condition flag: idle control |
B_NLDG |
Condition flag: limp-home function speed sensor |
B_NMAX |
Condition flag: speed limit active |
B_PWF |
Condition flag: power fail |
B_STEND |
Condition flag: end of start |
B_SYNPH |
Condition flag: synchronization phase |
B_TMKR |
Condition flag: engine temperature (tmot) for knock control achieved |
B_VMAX |
Condition flag: VMAX control active |
B_WKRAL |
Condition flag: to read wkr from knock control adaptation map |
B_ZWKRAA |
Condition flag: ignition angle of the Knock Control is given |
B_ZWKRUM |
Condition flag: fast ignition advance Knock Control |
DFP_KRNT |
internal failure path number: knck control zero test |
DFP_KROF |
internal failure path number: knock control offset |
DFP_KRTP |
internal failure path number: knock control test pulse |
DFP_KS1 |
internal failure path number: knock sensor 1 |
DFP_KS2 |
internal failure path number: knock sensor 2 |
DFP_KS3 |
internal failure path number: kncok sensor 3 |
DFP_KS4 |
internal failure path number: knock sensor 4 |
DRL_W |
Change in cylinder fill |
DWKR |
cylinder-specific ignition-timing retardation |
DWKRMSW |
current value for mean value limitation of the retarding |
DWKRZ |
cyl.-spec. ignition-timing retardation with retardation for dynamics |
E_KRNT |
error flag: knock control zero test |
E_KROF |
Errorflag: knock control offset |
E_KRTP |
error flag: knock control test pulse |
E_KS1 |
error flag: knock sensor 1 |
E_KS1H |
auxiliary error flag KS1 |
E_KS2 |
error flag: knock sensor 2 |
E_KS2H |
auxiliary error flag KS2 |
E_KS3 |
error flag: knock sensor 3 |
E_KS3H |
auxiliary errorflag KS3 |
E_KS4 |
error flag: knock sensor 4 |
E_KS4H |
auxiliary error flag KS4 |
KRAL1W |
current value load adaptation range 1 |
KRAL2W |
current value load adaptation range 2 |
KRAL3W |
current value load adaptation range 3 |
KRDWSW |
momentan characteristic-value for safety retard |
KRFKW |
current value of KRFKN |
KRLZN |
Cylinder-specific speed threshold of lead cylinder function exceeded |
KRMXW |
current value for retard limitation of the retarding |
KRVFSW |
initialization value for quick advancing |
KRVFW |
initialization value for normal advancing |
LKRAW |
Current value of the load threshold knock control-adaptation |
LKRW |
Current value of the load threshold knock control |
LZIST |
Array: instantaneous assignment of leading and led cylinders |
NGFIL_W |
Filtered speed gradient |
NMOT |
Engine speed |
RL |
Relative air charge |
STKRAX |
Index for Knock Control adaptation map |
STKRLX |
Load range adaptation map Knock Control |
STKRNX |
Speed range adaptation map Knock Control |
TMOT |
Engine temperature |
TPNT_AKTIV |
Activation of Knock Control functions |
VSZWKR |
Cylinder-specific adjustment of ignition angle by VS2x |
VSZWM |
Average value of adjustment ignition angle with VS2x |
WKR |
Cylinder-specific ignition retarding value knock control |
WKRA |
Adaptation map of wkr, speed- and load-dependent |
WKRAA |
Monitor for the wkra of the current adaptation ranges, wkra_0, _1… |
WKRATST |
wkra updated in real time |
WKRM |
Average value of individual ignition retarting by knocking |
WKRMA |
Average value of ignition retarding by KC, generally(limpe home with safety) |
WKR_TST |
cylinder-individual ignition angle retarding, druming |
ZKRVF |
counter determines the frequency of the cylinder-individual ignition angle adv
|
ZWKRAFLD |
bit pattern of the cylinder-individually stored B-zwkra |
ZZYLKR |
cylinder counter Knock Control |