Sorry for those who DLed the Excel since now.
It was wrong.
To look for the real Load value @ idle, while engine running, you just lower the "Maximum Load" constant to the point the mixture starts to lean out.
The idle Load is just above that value. The point is that my Excel was showing higher values cause I didn't get this
https://s4wiki.com/wiki/Load into account.
So: Load=Q/(n*K*0.5)/SM where SM is the Standard Mass: using this formula Excel numbers are really close to emulation ( and in points different than idle too).
What's left is the same as before: for any Volt(V) input you get the Transfer Function Q(g/s) number, while "n" is rpm and "K" (g/s) the injection constant.
V->Q is from the abused Rogue_Ant (from Renlist) excel: same V->Q as in the FR Wilk (RIP) former website.
K is calculated by
http://nefariousmotorsports.com/forum/i ... 745.0;wap2 .
Don't know exactly what motronic is M3 E30 EMS: somewhere is ML3.1 (087 and 071 ECU, older), other - professional too - M1.something (newer), but more often ML 3.1 which is FR Wilk conclusion (and cope with FR Wilk reported TF).
Don't know if K is stored in the EPROM either, but getting K in L formulas makes the real time L emulation close to theoretical numbers.
IF M3 E30 EMS is ML3.1 and V->Q, K formula are correct:
_____________________________________________________________________________________________________
K:
Cilynders 4
AFR target 14.70
Injector flow rate (cc/min) 236.50
Injector flow rate (g/min) 177.38
Correction for heptane number (g/min) 186.24 (=177.38*1.05)
K (g/min) = 4*14.70*186.24 = 10951.13
Load:
Flow rate (lets assume @ idle), @ ~1V -> Q = 5,67 g/s
SM = 2300 * 0.00122521 = 2.82 g
Load @ 800 rpm =5,67/(800*10951.13*0.5)/2.82*3600000 = 1.65ms (3600000 is from units adjusting).
_______________________________________________________________________________________________________
Repeating for each Q and rpm you get the L table in the attachment (made an assumption on gas density 0.75 g/cc).
ECU would pick any L number from 1.05ms (min load value - EPROM) to 9.35ms (max load value - EPROM) in the L table and corrects L @ Partial Throttle (PT) from 1.00ms (?why less than 1.05ms?) to 6.40ms (min/max Load Breakpotins in PT map), corrects for ide and WOT anywhere in the min/max load values range when the Throttle Position Switch (TPS) switches (regardless AFM output) by the idle and WOT maps (rpm breakpoints only).
Emulation/AFR monitoring shows that to lower Maximum Load constant to 7ms is not leaning the mixture @WOT on the entire rev band to limiter on a new s14b23 and a stock (200cv dyno) healthy (tested) AFM. Setting the max load @ 6.35ms leans out from 5000 rpm: eventually the increasing AFM output @ WOT while revving - flap opening - would mean at some point the engine asking for more L (6.35ms x WOT correction table).
The maximum max Load programmable is 12.75ms (stock 9.35ms), the Load Table ends @ 9.28ms (5V AFM output).
Don't know if the injection constant is the FQS (Fuel Quality Switch) values in the EPROM.
UPDATE (Wide Open Throttle):
Emulation confirms that when @ WOT (WOT switch active) the Load coming from the formula above is multiplied by the factors in the WOT correction table (rpm dependent): if computed L is above the max load constant value, ECU will cut it to that value, but again, @ WOT, multiplying it by the WOT factors:
1000 1.24
1480 1.3
2000 1.36
2480 1.27
3000 1.35
3480 1.41
4000 1.35
4480 1.39
4760 1.38
5000 1.34
5520 1.31
6000 1.29
6240 1.24
6480 1.19
6760 1.15
7000 1.09
So, if setting max load to 6.35ms leans the mixture past 5000 rpm @ WOT, it means that 6.35ms x WOT correction (from 5000 rpm on) leads to an L insufficient to feed the engine properly.
Here is what should be the actual L (not considering other ECU corrections) @ WOT when lowering the max load from 9.35ms to 6.35ms (the red is where the engine leans out):
rpm load(ms)
1000 7.874
1480 8.255
2000 8.636
2480 8.0645
3000 8.5725
3480 8.9535
4000 8.5725
4480 8.8265
4760 8.763
5000 8.509
5520 8.3185
6000 8.1915
6240 7.874
6480 7.5565
6760 7.3025
7000 6.9215
And follows, again, actual L @ WOT, but setting max load = 7ms, mixture not leaning past 5000 rpm:
1000 8.68
1480 9.1
2000 9.52
2480 8.89
3000 9.45
3480 9.87
4000 9.45
4480 9.73
4760 9.66
5000 9.38
5520 9.17
6000 9.03
6240 8.68
6480 8.33
6760 8.05
7000 7.63
So, considering that Partial Throttle (PT) Load breakpoints are from 1,00 to 6,40 ms and that 7ms max load is sufficient for a smooth/rich AFR @ WOT, I'd say that L numbers are below the 7ms threshold, before any ECU correction [?].
Here:
https://www.msextra.com/forums/viewtopic.php?t=39721
Maybe multiplication precedes addition: e.g. Acceleration Enrichments and Warmup & Hot Enrichments factors seem to be additive because (differently from PT and WOT table values) setting them to zero does not make the engine stall.
UPDATE (Partial Throttle).
Did some other tests.
Changing Load breakpoints in the PT table will make ECU pick correction factors in a different column than stock, and, changing the rpm breakpoints, in a different row.
The ECU computes Load e.g. 3.40ms @ 3000 rpm and applies the correction factor place in the 10th column (3.40) & 8th row (3000).
If you modify the stock Load breakpoints [1.00 (1) 1.20(2) 1.40(3) 1.60(4) 1.80(5) 2.00(6) 2.30(7) 2.60(8) 3.00(9) 3.40(10) 3.80(11) 4.30(12) 4.80(13) 5.30(14) 5.80(15) 6.40(16)] moving 3.40 e.g. in the 7th column, the correction factor @ 3.40 and 3000 is picked in the 7th column (instead of the stock 10th) and 8th row.
Moving 3000 out of its stock position (8th row) will make the ECU look in the new row (not 8th anymore).