Pages: [1] 2 3 ... 5
Author Topic: KFZW - KFZWOP and tuning  (Read 78663 times)
phila_dot
Hero Member
*****

Karma: +170/-11
Offline Offline

Posts: 1709


« on: May 22, 2011, 03:13:19 PM »

I cannot find any concrete information on the process of moving from KFZW to KFZWOP and back. All that I can find in the Funktionsrahmen is in ZWGRU considering KFZW, "If the engine does not knock, entry of the optimum ignition angle".

Also, it appears that one of the prerequisites for both KFZW and KFZWOP are that Lambda=1. If that is the case, then what map is used when Lambda!=1?

Just thinking logically, I would think that we would want to modify KFZWOP and have KFZW to fall back on. KFZWOP seems to be pretty agressive from the factory.

Modules ZWGRU and MDBAS share the following:

Variables:
DZWOAG - exhaust gas recirculation rate depend. ignition angle correction of optimum ZW
DZWOL   - lambda depend. ignition angle correction of optimum ZW
FNWUE   - weighting factor overlap camshafts (intake)
LAMBAS  - base-lambda
NMOT_w - motor speed
RL_w      - relative air charge (word)
SY_NWS - system constant cam timing : no, 2 pt, or continuous
TMOT     - motor temperature
WNWUE  - camshaft overlap angle

Parameter:
DZWNWSUE - delta ignition angle dependant on camshaft overlap

I hope that no one considers this beating a dead horse, but I didn't find any real clear information on this.

My intent is for a consolidated thread discussing the facts, theories, and experiences tuning these maps.
Logged
julex
Hero Member
*****

Karma: +78/-4
Offline Offline

Posts: 923


« Reply #1 on: May 22, 2011, 04:21:36 PM »

From my limited experience it works this way: the timing gets its timing value REGARDLESS of lambda from KFZW, the description is wrong here alike how it is wrong with the fueling at "partial load" map.

Then it advances towards KFZWOP until knock is encountered. I am not sure or know which calibration for knock govern this behavior but, again, in my experience you want to set up your KFZW map to timing values where you already encounter at least 1.5 retard to "expedite" the learning at WOT.

If you don't see 2.25-3.0 retard in your logs, you are wasting your performance potential.

Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12232


WWW
« Reply #2 on: May 22, 2011, 05:23:12 PM »

Then it advances towards KFZWOP until knock is encountered.

I've never seen timing advance past KFZW at zero CF... or at least i've never seen it at WOT.

I could be wrong though Sad
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
julex
Hero Member
*****

Karma: +78/-4
Offline Offline

Posts: 923


« Reply #3 on: May 22, 2011, 07:00:43 PM »

Then it advances towards KFZWOP until knock is encountered.

I've never seen timing advance past KFZW at zero CF... or at least i've never seen it at WOT.

I could be wrong though Sad

Well, that's what theory says so no wonder it never moves up anyway. Maybe that works only within certain RPM delta as when you cruise at static RPM etc.

For WOT you just need to log/tune period.
Logged
phila_dot
Hero Member
*****

Karma: +170/-11
Offline Offline

Posts: 1709


« Reply #4 on: May 22, 2011, 07:05:52 PM »

If julex is correct, then there may be a better approach to this. Instead of forcing advanced timing it might be better to increase the rate that timing is advanced in the absence of knock. I revisited silentbob's post in the acceptable knock thread and added all the parameters he mentioned to my XDF. I haven't fully wrapped my head around it yet though.
What do you guys think?

What you see in the logs is the variable dwkrz(x) which is the delta ignition angle that is passed on to the ignition module in the software. Depending on operating conditions it can represent different variables.
Most important one is when knock control is active (not meaning that it pulls ignition angle but that it s not inactive due to cold engine(TMKR), low load(LKRN) for example), it s not in idle control and there is no safety retard due to failures for example in the knock sensor ciruit: dwkrz(x) = wkr (x)
wkr(x) is the RAM area where the ignition retards are summed up for each cylinder.
Without adaption knock control retards the ignition angle individualy for every cylinder by KRFKN(KRFKLN in stationary mode) with every recognized knocking cycle and sums it up in wkr(x).
wkr(x) is limited to KRMXN (which is the max value incl. adaption) on retard and 0 on advance of ignition.
For advancing the values in wkr (x) back to 0 the counter zkrvf(x) is used. It is initialized on every knocking cycle with the values out of KRVFN which controls how fast the ignition is phased back to normal. For every non knocking cycle were the ignition angle is limited due to knock control activity, this counter is decremented by 1. When the counter is 0 the ignition angle is advanced by 1 degree and reinitialized with KRVFN.
Now the adaption comes into play. The map for the adaption values in RAM is wkra (x). The axes are load (KRALx) and RPMs (KRANx).

How does the adaption learn the values:
When adaption is active ( TCO>TMKRA + knock control is active) and writing into the adaption map is not forbidden due to rl < LKRAN, TCO<TMKRAS, N<NKRAMIN, N>NKRAMAX, ASR, VMAX,NMAX, then the values of wkr(x)+KRDWKLA (which is 0 on S4/RS4) is written into the adaption map if the value is more retarded than the saved value in wkra(x).
If the current ignition retard in wkr(x) is more than KRDWA earlier than the stored value in wkra(x) and zkrvf(x)=0 the value in the adaption map is advanced by KRDWSA.

How are the adaption values used for ignition angle calculation:
As already mentioned the variable that influences ignition calculation is dwkrz(x) = wkr (x).
The values of wkr (x) are overwritten with the values out of wkra (x) when the adaption is active (conditions see above).

Summed up:
What you see in your logs are applied ignition corrections of the knock control including adaption values. The maximum retard due to knock control is limited to KRMXN! If you learn high adaption values it will take the adaption quite a while to get ign <back to normal>.
The mean value of the last 6 ignition corrections dwkrz(x) due to knock control also influence the max. allowed load in LDRXN. It has a long term adaption which becomes active above RLKRLDA.
The correction factor for LDRXN can be found in KFFLLDE. How fast the adaption works can be influenced by TLKRLDAB and TLKRLDAU.
If there are any specific questions just feel free to ask.


His post seems to be more geared toward timing retardation than advancement though and I am not sure exactly what he means by "phased back to normal".

Also, does the ECU consider any amount of knock acceptable or does the presence of any knock = timing retard?
Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12232


WWW
« Reply #5 on: May 22, 2011, 09:17:14 PM »

Instead of forcing advanced timing it might be better to increase the rate that timing is advanced in the absence of knock.

Yes. KRANH and KRALH affect CF recovery (hysteresis). Both are in my XDF.

Quote
His post seems to be more geared toward timing retardation than advancement though

Semantics Tongue

There is only CF (retard). Recovery from CF is what you call "advancement".

Quote
and I am not sure exactly what he means by "phased back to normal".

As far as I can tell, normal is CF = 0, and adaptation = 0 (i.e. actual = KFZW, not KFZWOP)


Quote
Also, does the ECU consider any amount of knock acceptable or does the presence of any knock = timing retard?

From what I can tell, any time the ecu sees knock, and the window allows it, CF is increased by KRFKLN, until NKRAMAX is reached, upon which the long term retard term is increased by KRDWSA
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12232


WWW
« Reply #6 on: May 22, 2011, 09:19:57 PM »

BTW from my reading of various papers (not the funktionsrahmen), KFZWOP is used to determine "actual" torque output using the optimal torque map, and comparing actual timing with KFZWOP. The more "actual" timing differs from KFZWOP, the lower the "actual" torque is (using the optimal torque map as a reference). I am unsure what maps govern this calculation.
Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
phila_dot
Hero Member
*****

Karma: +170/-11
Offline Offline

Posts: 1709


« Reply #7 on: May 23, 2011, 12:05:30 AM »

Thanks nyet, although that is a little disappointing. So in your experience, KFZW is it. All the logs that I have seen agree with you, but they are also all WOT.

Maybe silentbob will join in and provide some clarity/confuse me.
Logged
Rick
Hero Member
*****

Karma: +62/-4
Offline Offline

Posts: 704


« Reply #8 on: May 23, 2011, 04:32:47 AM »

KFZWOP is never used for timing!

It is there so the ECU can calculate how much load is needed to generate the requested torque.  The OP timing values are the timing values the engine produces most torque at if it were not limited  by knock, which it always is.

The ECU looks at the difference between optimum timing and actual timing.  There is an equation which produces a factor by which is used to calculate the torque. 

Actual timing is will never increase beyond KFZW.

You can tune the knock contol to do the following: Reduce the number of engine cycles needed to reduce the CF after knock stops being detected.  Reduce the CF step size.  Reduce the difference between current timing and adaptation map timing needed in order for the adaptation map to advance.  Recalibrate knock sensor sensitivity.

Rick
Logged
julex
Hero Member
*****

Karma: +78/-4
Offline Offline

Posts: 923


« Reply #9 on: May 23, 2011, 07:17:58 AM »

Rick:  Kiss

Well, that settles it then!
Logged
DJGonzo
Guest
« Reply #10 on: May 23, 2011, 07:21:11 AM »

Awesome job Rick!

Right on point!

KFZW is all you should need to tweak for basic timing changes.
Logged
phila_dot
Hero Member
*****

Karma: +170/-11
Offline Offline

Posts: 1709


« Reply #11 on: May 23, 2011, 12:48:34 PM »

Thank you Rick, Nyet, and everyone else that contributed. This makes alot more sense now.
Logged
silentbob
Full Member
***

Karma: +30/-1
Offline Offline

Posts: 141


« Reply #12 on: May 24, 2011, 08:12:24 AM »

KFZWOP is never used for timing!

It is there so the ECU can calculate how much load is needed to generate the requested torque.  The OP timing values are the timing values the engine produces most torque at if it were not limited  by knock, which it always is.

The ECU looks at the difference between optimum timing and actual timing.  There is an equation which produces a factor by which is used to calculate the torque.  

Actual timing is will never increase beyond KFZW.

............

Just some details I want to add:

Ignition angle can be earlier that KFZW as some corrections are applied to calculate zwgru.

The engine is not knock limited on lower loads. A common mistake even big name Pro Tuner make is to put higher values in KFZW than in KFZWOP (Can happen if you use a different fuel. The values on knock limited areas are extrapolated out of a ignition angle sweep). This leads to the problem that the ECU will reduce the ignition angle far more than it has to if you have a torque intervention in that area resulting in poor drivability. In that case you would have to increase the values in KFZWOP as well. KFZW<= KFZWOP


« Last Edit: May 24, 2011, 08:16:54 AM by silentbob » Logged
phila_dot
Hero Member
*****

Karma: +170/-11
Offline Offline

Posts: 1709


« Reply #13 on: May 28, 2011, 01:28:24 PM »

Thank you silentbob.

Please let me know if I am understanding this correctly. In order to recover from ignition retard faster, then I want to decrease the values in the maps KRVFN, KRLVFN, and KRVFSN. Also, increasing KRDWSA will increase the amount it is advanced and setting KRDWA to zero will allow it to fully recover.

Should all three maps be lowered? If so, anyone have the address for KRLVFN?

0x19662 KRVFN - number of ignitions/cylinders, or time indication of an early adjustment to early adjustment (step-width KR)

0x?Huh? KRLVFN - number of ignitions/cylinders, time indication of an early adjustment to early adjustment (slow early adjustment)

0x19672 KRVFSN - number of ignitions/cylinders, or time for quick adjustment of the early KR

I am thinking of cutting all values in these maps in half, changing KRDWSA from 1.5 to 3, and KRDWA from 2.25 to 0.

Am I on the right track? Has anyone done this? Is this idea and my values safe? Is there anything I am missing?

Thanks again guys.
« Last Edit: May 28, 2011, 01:43:39 PM by phila_dot » Logged
nyet
Administrator
Hero Member
*****

Karma: +604/-166
Offline Offline

Posts: 12232


WWW
« Reply #14 on: May 28, 2011, 06:41:46 PM »

I have mildly modified DWKRMSN, KRALH, KRANH, KRFKLN and KFFLLDE to no ill effect, as noted on the s4wiki: http://s4wiki.com/wiki/Tuning#Knock_recognition

Logged

ME7.1 tuning guide (READ FIRST)
ECUx Plot
ME7Sum checksum checker/corrrector for ME7.x

Please do not ask me for tunes. I'm here to help people make their own.

Do not PM me technical questions! Please, ask all questions on the forums! Doing so will ensure the next person with the same issue gets the opportunity to learn from your experience.
Pages: [1] 2 3 ... 5
  Print  
 
Jump to:  

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Page created in 0.027 seconds with 16 queries. (Pretty URLs adds 0.001s, 0q)