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 inzkrvf(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 x stkrnx) + (40 x 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 x KRVFN
KRDWKLA = 0 °KW: approx
2 sec/°KW advancing or approx. 1/2 x 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 x 5 x 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 x stkrnx + 40 x 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 |