Pages: [1]
Author Topic: correct KHFM-Calculation @ M3.83 /M3.8x?  (Read 43762 times)
MIL_on
Full Member
***

Karma: +12/-2
Offline Offline

Posts: 119


« on: March 26, 2014, 04:19:50 AM »

Hi Guys,
i'll have to toy around with an M3.82 during the next weeks and so i wanted to get some things clearer.
First thing i couldnt get the best info about was KHFM - Grundanpassungskonstante.
basically it seems to be quite identical to the krkte in me7.
the only formula i found for it was:

KHFMnew= Qstatnew*KHFMorig/Qstatorig  . Being someone who likes if not everyhtings based on a rule of three i started digging into it 3 hours ago. So i found a patent whith a rough description of how it works:
lets call it:
air mass (better said arithmetic mean of it) gets divided by rpm (identical to me7):

        mL          kg*min
mLn=-------------
        nmot       h

after that follows the KHFM division. The result has to be in ms being the injection time needed for lambda=1 based on that mL:

mLn
----- = x[ms]
KHFM
                                                                     kg*min
from that follows that KHFM has to have the unit: -----------
                                                                     h *ms

based on that i would say the correct way to calculate KHFM is:

         nCyl*14,7*Qstat[g/min]*0,0000167[ms/min]*60[min/h]
KHFM=---------------------------------------------------------
           1000 [g/kg]

with nCyl=number of cylinders
0,0000167, 60 and 1000 bein there for changing units of the input. Also remember from ME7 FRM that Qstatbenzin= 1,05*QstatHeptan.
so if i feed that calculation now with my mLn the resulting unit of the equation is ms.
I made a test equation:


1. The original AGU injectors (06A906031; 0280150464) are called to have 249,1cc/min and 179,2 g/min according to Stan Weiss: http://users.erols.com/srweiss/tableifc.htm
with Qstatbenzin= 1,05*179,2 g/min = 188,16 g/min.

I made a guess with nmot=5000 and mL=140g/s= mL=504kg/h --> mLn=0.1008 [kg*min/h]

  mLn                      0,1008*1000
-----------=--------------------------------= 9,09 ms      (time for one rotation @ 5000 rpm= 12ms)
  KHFM            4*14.7*60*188.16*0.0000167


with 440cc Bosch Injectors the calculation delivers 5.065ms


I think the resulting values appear to make sense.
Based on that i checked the decimal value in the 06A906018CG File which is: 43860. dividing KHFM for the original Injectors (0,0111085936) by 43860 i got my factor for that value which is: 0.000000253. Does it make sense?
Also another question i have in my mind is: is this the value which is also used as the load-values?

so my initial question should be: Is anyone able to tell me whether this is correct or proof me wrong?
« Last Edit: March 26, 2014, 08:05:21 AM by MIL_on » Logged
eliotroyano
Hero Member
*****

Karma: +47/-7
Offline Offline

Posts: 796


« Reply #1 on: March 26, 2014, 10:27:45 AM »

Nice information. Here are my comments and info found.

From what I have read & evaluated, KHFM & FGAT0 constants vastly define fuel injection in old Motronic.

Looking in the net I found the following info:
"Motronic needs exactly three things to calculate LOAD.
1) A signal from the air meter, normalized to "Q" airflow in kg/hr
2) A measure of current engine rpm "n"
3) A programmed injector size constant "Ki" (K sub eye)

LOAD aka Tl (Tee sub ell) is calculated as:
Tl = Q / (n * Ki)
LOAD is not just a representation of cylinder filling, but the theoretical Injector Time Open (Ti, Tee sub eye) needed to reach stoich (Lambda= 1) with the current injector setup assuming that the motor is "perfect".

Which it isn't, hence there are fueling tables which are used as multiplicative corrections to LOAD to reach the actual Ti.

With Tl quantified, we now take into account the vagarities of the particular engine family and operating conditions by introducing multiplicative factors to correct the theoretical injector time to the ACTUAL time for injection (Ti) needed at that instant. Finally an ADDITIVE factor (Tv) is added to compensate for the differing injector opening time under lower than nominal voltages.

Ti = (Tl * [C,D,E...]) + Tv
It is this signal (Ti) that is applied to the injectors
Hope this helps, it's from a BOSCH primer I'm writing ...

Jim Comforti"


Looking some old M38x & M592 OEM dumps for 1.8T & VR6 engines, I found that old Motronic suggest that OEM FGAT0 values (fuel injection factor or multiplier) usually are 1 (128 Hex) for an OEM KFLF map (Main Correction Lamdba Map) to reach lambda = 1 as close as possible. That is my impression from looking OEM maps. Also FGAT0 acts as a factor of the Ti = (Tl * [C,D,E...]) + Tv formula mentioned before.

For Tl = Q / (n * Ki) or LOAD = (MAF/RPM)*KHFM, you can see that KHFM= 1/Ki. Then we have that RPM X LOAD(ms/RPM))/(MAF Flow (KG/H)) = KHFM.

I have take some logs of my own engine (1.8T AGU 06A906018CG M383) and obtain all the time that KHFM is around 84, same value you can find in WinOLS KHFM constant (8bits). Also FGAT0 = 1.

MIL_on your information seems to be well defined, but I have the impression from my research, that KHFM is a constant that could relate injectors & MAF allowing the ECU uses in old Motronic MAF Flow (Kg/H) and KHFM as main Load calculation and FGAT0 as correction factor for fuel injection (ms).
« Last Edit: March 26, 2014, 07:38:00 PM by eliotroyano » Logged
eliotroyano
Hero Member
*****

Karma: +47/-7
Offline Offline

Posts: 796


« Reply #2 on: March 26, 2014, 12:36:22 PM »

Hi MIL_On take a look......
Logged
MIL_on
Full Member
***

Karma: +12/-2
Offline Offline

Posts: 119


« Reply #3 on: March 26, 2014, 01:29:55 PM »

Hi elio,
I waited for your comment as i had you in my mind being oneof the guys who already dived deeper into that topic Wink
Btw here is the document, where i found the base of my initial guess:
http://www.google.com/patents/DE4336813A1?cl=de
so i agree with you in all points except one:
I think that this Ki you are using in your first formula is KHFM for real. But it is only used for building the main load signal and being tweaked via the factors to become the correct value for the non-ideal but real engine injection time including external influences.
Prj also pointed me into a important direction (thanks for that mate!) :
By changing KHFM all maps using load on one of their axes will be screwed up! So its like natural underscaling by using another injector in my equation above...which makes me unsure whether it can be correct, because i can only hardly imagine that bosch built such a crappy ecu, where every map has to be redone when changing the injectors!?!
also you mentioned your khfm is 8 bit? But in the damos its 16 bit?
The next important question for me is: what are the 3 different kfzw for?


edit: you posted your excel while i wrote that post, so i'll have a look at it first, before i answer to that Smiley
« Last Edit: March 26, 2014, 01:48:15 PM by MIL_on » Logged
MIL_on
Full Member
***

Karma: +12/-2
Offline Offline

Posts: 119


« Reply #4 on: March 26, 2014, 02:14:27 PM »

ok...i dont get what you want to tell me with the excel, because if you ask me that just shows that my guessing was correct?
the measured load vs. calculated load after my method:
yellow measured, orange calc (mLn/KHFM=Load [ms])

then divide your injection time by 2 (load is built by division mL/nmot and not combustion cycle which takes 720°!) and compare it to my calculated value mLn/KHFM. of course it doesnt fit perfect as for example the values i got from the internet (Qstat for the injectors for example) are different or bosch has changed the value slightly (red=inj. period/2, blue= mLn/KHFM [ms])

and then compare youre so called K against my KHFM... it all fits more or less? and that could or even should differ a little bit based on youre so called C, D, E


a logging file with a real driving condition would be interesting also because idling is always some kind of special situation...
Logged
eliotroyano
Hero Member
*****

Karma: +47/-7
Offline Offline

Posts: 796


« Reply #5 on: March 26, 2014, 08:13:06 PM »

Btw here is the document, where i found the base of my initial guess:
http://www.google.com/patents/DE4336813A1?cl=de

That is good technical document, that I need to read in detail. Thanks for it.

so i agree with you in all points except one:
I think that this Ki you are using in your first formula is KHFM for real. But it is only used for building the main load signal and being tweaked via the factors to become the correct value for the non-ideal but real engine injection time including external influences.

Sorry if I don't elaborate more my idea about Ki (KHFM) in Tl (Load) = Q / (n * Ki) formula. I agree with you, Tl (Load) here is the main Load calculation, known as Specified Load --> http://s4wiki.com/wiki/Load

Prj also pointed me into a important direction (thanks for that mate!) :
By changing KHFM all maps using load on one of their axes will be screwed up! So its like natural underscaling by using another injector in my equation above...which makes me unsure whether it can be correct, because i can only hardly imagine that bosch built such a crappy ecu, where every map has to be redone when changing the injectors!?!

My understanding is that KHFM, as a constant, defines the main play zone (load area) where engine should work (from max vacuum to max allowed boost) not defined axis. That means that from "X1" load takes "Y1" value in other map or maps, but if we change KHFM, a different load value, "X2" for example will take "Y2" result. This work if for all maps if the X & Y values remains under the maps axis size, if not we don't have other way than scale related maps by hand. That is my idea.

also you mentioned your khfm is 8 bit? But in the damos its 16 bit?

I mention that my 1.8T AGU 06A906018CG KHFM value is 84 @ 8bit Factor 1 Offset 0, but is totally right value 43860 @ 16bit LoHi Factor 1 Offset 0.


The next important question for me is: what are the 3 different kfzw for?

From my research in M38x & M592 I found this info:
-KFZW - Zündwinkelkennfeld: Main Ignition Advance Angle Map (pre-calculation map) --> X/Y/Z : Load (ms/RPM) / RPM / Crank Angle BTDC ºDegrees.
-KFZWNA - Zündwinkelkorrekturkennfeld: Ignition Correction Map by Coolant Temperature (ECT) --> X/Y/Z : Coolant Temperature (°C) / RPM / Crank Angle BTDC ºDegrees
-KFZWOPT – optimaler Zündwinkel: KFZWOPT = Optimum ignition angle at lambda = 1 / Ignition Firing Angle Optimum Map - Max Desired f Max Torque --> X / Y / Z = Load [ms/Umdr] (Quantisierung der Einspritzzeit [ms/Umdr]) / RPM / Crank Angle BTDC ºDegrees (Zuendwinkellage ab BZM)
-KFZWS - Sicherheitszündwinkelkennfeld bei defektem Leerlaufschalter: Ignition Safety Map with a Defective Idle Switch --> X/Y/Z : Load (ms/RPM) / RPM / Crank Angle BTDC ºDegrees
Logged
eliotroyano
Hero Member
*****

Karma: +47/-7
Offline Offline

Posts: 796


« Reply #6 on: March 26, 2014, 08:40:45 PM »

ok...i dont get what you want to tell me with the excel, because if you ask me that just shows that my guessing was correct?

The idea of the excel file is to show you my results from my calculations.

the measured load vs. calculated load after my method:
yellow measured, orange calc (mLn/KHFM=Load [ms])
then divide your injection time by 2 (load is built by division mL/nmot and not combustion cycle which takes 720°!) and compare it to my calculated value mLn/KHFM. of course it doesnt fit perfect as for example the values i got from the internet (Qstat for the injectors for example) are different or bosch has changed the value slightly (red=inj. period/2, blue= mLn/KHFM [ms])
and then compare youre so called K against my KHFM... it all fits more or less? and that could or even should differ a little bit based on youre so called C, D, E
a logging file with a real driving condition would be interesting also because idling is always some kind of special situation...

Anyway as you said comparing K & KHFM for your calculation, mine and logs, both are very close. That was my point with excel file. Also some good logs will awesome to test the calculations.

Also C,D,E factors are that makes final injection period real. From Ti = (Tl * [C,D,E...]) + Tv, Tv will be TVUB or injectors battery voltage compensation. So C,D,E will temperature, altitude, etc..... The main idea is isolate KHFM as much as possible from load from logs taken to validate it formula.
« Last Edit: March 26, 2014, 08:52:21 PM by eliotroyano » Logged
MIL_on
Full Member
***

Karma: +12/-2
Offline Offline

Posts: 119


« Reply #7 on: March 26, 2014, 11:48:25 PM »

Regarding KFZW: If they were labeled that clear it wouldnt be a problem Cheesy  but in the damos i have the following KFZW with KFZW0, 1, 2 and additional the normal ones like KFZWOPT etc.
so what are the differences between KFZW0, KFZW1, KFZW2? i read somewhere that the M3.83 was already able to be used in combination with VVT. So one of them could be for the second Cam Position? Or do you just always change all 3 to the same value?

And what do you mean by telling KHFM in 8 bit? I am looking at a 18CG-File too and it is defined as 16 bit starting at 6A68 and containing the value 54AB Hex.
Logged
eliotroyano
Hero Member
*****

Karma: +47/-7
Offline Offline

Posts: 796


« Reply #8 on: March 27, 2014, 10:54:56 AM »

Regarding KFZW: If they were labeled that clear it wouldnt be a problem Cheesy  but in the damos i have the following KFZW with KFZW0, 1, 2 and additional the normal ones like KFZWOPT etc.
so what are the differences between KFZW0, KFZW1, KFZW2? i read somewhere that the M3.83 was already able to be used in combination with VVT. So one of them could be for the second Cam Position? Or do you just always change all 3 to the same value?

Different versions of a MAP are used for different conditions, like in an automatic transmission, VVT, failure conditions, etc..... A good example of VVT with M383 is the Barzilian VW Gol 1.0 Turbo --> http://www.lunaticfringe.org/vwfox/specs/VW-Gol-1000-16v-turbo.html

And what do you mean by telling KHFM in 8 bit? I am looking at a 18CG-File too and it is defined as 16 bit starting at 6A68 and containing the value 54AB Hex.

During my work with a M383 Damos sometimes I change the value in some constants (8 <--> 16 bits) looking for better interpretation. For example KHFM (84 @ 8bits / 43860 @ 16bits), FGAT0 (1.0001 @ 8bits / 13.0008 @ 16bits), NMAXF (60 @ 8bits / 7100 @ 16bits)......
About KHFM at the 18CG-File ( @16 bit  it starts at 6A68 and containing the value 54AB Hex) I agree with you.
« Last Edit: March 27, 2014, 01:45:29 PM by eliotroyano » Logged
prj
Hero Member
*****

Karma: +915/-425
Offline Offline

Posts: 5833


« Reply #9 on: March 27, 2014, 02:48:22 PM »

This discussion does not matter in the slightest if you are going to be doing any actual tuning.

You are going to hit 12.75 load and you are f…d

After that you can downscale load using KHFM and scale fuelling back up via FGAT0. Of course you will have to re-do all the timing maps, cold start etc.
Logged

PM's will not be answered, so don't even try.
Log your car properly.
eliotroyano
Hero Member
*****

Karma: +47/-7
Offline Offline

Posts: 796


« Reply #10 on: March 27, 2014, 06:23:53 PM »

This discussion does not matter in the slightest if you are going to be doing any actual tuning.
You are going to hit 12.75 load and you are f…d
After that you can downscale load using KHFM and scale fuelling back up via FGAT0. Of course you will have to re-do all the timing maps, cold start etc.

Thanks for your comment PRJ. As I understand from your comment, experience play a huge role in how to deal with old Motronic ECUs in a real world. But without that experience or detailed information, manage these ECUs gets hard, so only way to investigate about it, make some assumptions and with trial and error obtain some ideas/formulas about how to tune it as smart as possible.

In the case of this topic, in my humble opinion, I agree with MIL_On that KHFM could be something similar to KRKTE. Then our idea is try to define and modify KHFM in the same way that was done from the factory, letting us tweaking related ECU maps in a less empirical way.
Logged
MIL_on
Full Member
***

Karma: +12/-2
Offline Offline

Posts: 119


« Reply #11 on: March 28, 2014, 01:32:36 AM »

This discussion does not matter in the slightest if you are going to be doing any actual tuning.

You are going to hit 12.75 load and you are f…d

After that you can downscale load using KHFM and scale fuelling back up via FGAT0. Of course you will have to re-do all the timing maps, cold start etc.

touché, you're right ( as usual Tongue )
i only thought it could be easier to scale stuff by knowing the correct formula and being able to take the injectors into account in it.
but i also start to realize that theres no other way to do it other than tweak those few factors and constants till it fits.
Logged
overspeed
Sr. Member
****

Karma: +21/-5
Offline Offline

Posts: 384



« Reply #12 on: March 28, 2014, 02:16:38 PM »

Elio...As I said to you in MP...

Don´t try undertand M3.8 going down from ME7... it make no sense...

FGATO => fuel multiplier

Try looking at chanell 099 in VCDS
    if you raise it => you get STFT going negative
    if you low down it => you get STFT going positive

KHFM => is used to convert g/s in to load

It´s kind of logic that´s the most simple way to equation injector time to load in ms 
Logged
eliotroyano
Hero Member
*****

Karma: +47/-7
Offline Offline

Posts: 796


« Reply #13 on: March 28, 2014, 06:59:22 PM »

Thanks a lot for the comment Overspeed  Grin  Grin  Grin
Logged
prj
Hero Member
*****

Karma: +915/-425
Offline Offline

Posts: 5833


« Reply #14 on: March 29, 2014, 03:54:02 PM »

When you hit 12.75 load you are going to have to rescale load anyway.
Otherwise it will just cap out and nothing will work.

Also make sure you never ever hit the MAF limit or really funny things will happen with N75 duty cycle as actual can not reach setpoint. And when I say funny, I mean molten engine stuff.

Basically to tune it for high outputs, scale down KHFM by a factor, so you never hit 12.75 load.
Then scale FGAT0 up by the same factor, so that they cancel each other out.
Then re-calibrate all the timing and fueling maps, as well as cold start maps and you're done.
Logged

PM's will not be answered, so don't even try.
Log your car properly.
Pages: [1]
  Print  
 
Jump to:  

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