Path from MAF pulse to Injector pulse
#16
Evolved Member
Thread Starter
1. %&*%^*&%$&^$(SDFDS?
2. Closer Presently I'm going through the existing code to see how I can nobble it most neatly and efficiently to do what we need, as well a making an easy to tune VE table.
2. Closer Presently I'm going through the existing code to see how I can nobble it most neatly and efficiently to do what we need, as well a making an easy to tune VE table.
#17
Good stuff mate, sounds like there is alot of work still to do though, with making a VE table.
#18
Evolved Member
Thread Starter
MAF Hz scaling in our datalogs should be 6.25x as per the latest Evoscan.
Raw MAF Hz scaling where it is looked up in tables should be divided by 10.24.
This is because the time between MAF pulses is counted with a 250kHz clock, multiplied by 0x9C(156), and later to convert to Raw MAF scaling is multiplied by 0x401A(16410). MAF Hz for logging purposes is divided by 64.
156*16410/250000=10.24
There are a few versions of MAF scaling floating around in the loggers and Ecuflash, all fairly close.
The above assumes a 32MHz CPU clock which I think we're fairly sure on based on baud rates and RPM accuracy etc.
Raw MAF Hz scaling where it is looked up in tables should be divided by 10.24.
This is because the time between MAF pulses is counted with a 250kHz clock, multiplied by 0x9C(156), and later to convert to Raw MAF scaling is multiplied by 0x401A(16410). MAF Hz for logging purposes is divided by 64.
156*16410/250000=10.24
There are a few versions of MAF scaling floating around in the loggers and Ecuflash, all fairly close.
The above assumes a 32MHz CPU clock which I think we're fairly sure on based on baud rates and RPM accuracy etc.
Last edited by jcsbanks; Mar 1, 2009 at 05:59 AM.
#21
Evolved Member
iTrader: (22)
Join Date: Nov 2003
Location: Northern KY near Cincy
Posts: 2,408
Likes: 0
Received 6 Likes
on
6 Posts
MAF Hz in my version of EvoScan is as follows....
Format %.0f
Units Hz
Rom to Display f(x)= 6.29*x/64
Display to ROM f(x)= 64/(6.29*x)
Data type int16
Display min 0
Data endian big
Display max 5000
Edit increment 1
Based on your findings, is this still correct????
Format %.0f
Units Hz
Rom to Display f(x)= 6.29*x/64
Display to ROM f(x)= 64/(6.29*x)
Data type int16
Display min 0
Data endian big
Display max 5000
Edit increment 1
Based on your findings, is this still correct????
#22
Evolved Member
Thread Starter
No should be 6.25 where you have 6.29. It doesn't matter terribly unless you start doing SD conversions etc, just that I cracked the precise calculation from the code so I thought I'd post.
#24
Evolved Member
iTrader: (8)
2 months later and it finally sinks in enough to ask a question.
(MAFMULTIPWARMUP is based on coolant temperature, moderated by load so it has little effect at high load).
Still in this busy CAS interrupt, we eventually make a calculation that forms a precursor to IPW:
MUTC7 * O2Feedback * MAFSOURCEMAINxMAFMULTIPWARMUP +- accel enrichments + Injector deadtime
MUTC7 is not loggable as it is beyond the MUTBF end of the MUT table, but it is calculated from the main engine control loop (not in CAS interrupt), but in FU_MAF_OTHER:
Lean spool and fuel maps lookup to give AFRMAP
AIRFLOW=MAFSOURCEMAIN/TIMEBETWEENCASPULSES, used to lookup MAFSCALING, MAFSMOOTHING, TEMPBAROAIRFLOWLOOKUP to give MAFsmthsclgfactorxINJSCALING
MUTC7=MAFsmthsclgfactorxINJSCALING * AIRTEMPDENS * BARO * WARMUPCOUNTER * COOLANTTRIM * MAFMULTIPWARMUP * LOADBASEDMAFMULT * AFRMAP (and a few other compensations that seem unimportant)
In summary IPW is calculated from:
AFRMAP*AIRTEMP*BARO*MAFSCALING*MAFSMTHG*TEMPBAROAI RFLOWLKUP*INJSCALING*MAFSOURCEMAINxMAFMULTIPWARMUP
(* WARMUP*COOLANT*MAFMULTIPWARMUPxLOADBASEDMULT*O2FEEDBACK)
+ accel1 - accel 2 (still to be fully worked out)
+INJDEADTIMELOOKUP*INJLAGRES
Questions?
What are all of these coolant temp based and load based multipliers? Got any tables?
These look like a solution to warmup stumbles.
(MAFMULTIPWARMUP is based on coolant temperature, moderated by load so it has little effect at high load).
Still in this busy CAS interrupt, we eventually make a calculation that forms a precursor to IPW:
MUTC7 * O2Feedback * MAFSOURCEMAINxMAFMULTIPWARMUP +- accel enrichments + Injector deadtime
MUTC7 is not loggable as it is beyond the MUTBF end of the MUT table, but it is calculated from the main engine control loop (not in CAS interrupt), but in FU_MAF_OTHER:
Lean spool and fuel maps lookup to give AFRMAP
AIRFLOW=MAFSOURCEMAIN/TIMEBETWEENCASPULSES, used to lookup MAFSCALING, MAFSMOOTHING, TEMPBAROAIRFLOWLOOKUP to give MAFsmthsclgfactorxINJSCALING
MUTC7=MAFsmthsclgfactorxINJSCALING * AIRTEMPDENS * BARO * WARMUPCOUNTER * COOLANTTRIM * MAFMULTIPWARMUP * LOADBASEDMAFMULT * AFRMAP (and a few other compensations that seem unimportant)
In summary IPW is calculated from:
AFRMAP*AIRTEMP*BARO*MAFSCALING*MAFSMTHG*TEMPBAROAI RFLOWLKUP*INJSCALING*MAFSOURCEMAINxMAFMULTIPWARMUP
(* WARMUP*COOLANT*MAFMULTIPWARMUPxLOADBASEDMULT*O2FEEDBACK)
+ accel1 - accel 2 (still to be fully worked out)
+INJDEADTIMELOOKUP*INJLAGRES
Questions?
These look like a solution to warmup stumbles.
#25
Evolved Member
Thread Starter
I quickly looked at the trends and what inputs these variables had. I did not make xmls to show them because I was mainly trying to find the uncompensated path which was bad enough. Some of them are tables that have been discussed before, such as the ones Mattjin found. In that lot are all the timer and coolant based trims, most of which become neutral in the warmed up normal engine. What sort of warm up stumbles do you get? I've not edited these tables since I don't get anything like that.
#26
Evolved Member
iTrader: (8)
My car just consistently runs lean while it is warming up. It likes to hang out around 16:1, which of course causes lean misfires/stumbles. It did this before I rescaled my MAF, but it has gotten worse. It makes me wonder if Mits intentionally scaled the MAF to the rich side down low to help out, thinking they would just force closed loop early on and it wouldn't be much of an issue but would improve cold operation.
I'm not 100% sure, but it seemed like it did this even when running full open loop, so I don't think it's being caused by the closed loop stuff. I'll double check on this tomorrow and try to get a log showing targeted AFR vs. actual AFR while in warmup and openloop.
My car often requests an AFR of 16:1 (MUT32) while running though (cold or warm) so it may be something the ECU is intentionally doing.
I'm not 100% sure, but it seemed like it did this even when running full open loop, so I don't think it's being caused by the closed loop stuff. I'll double check on this tomorrow and try to get a log showing targeted AFR vs. actual AFR while in warmup and openloop.
My car often requests an AFR of 16:1 (MUT32) while running though (cold or warm) so it may be something the ECU is intentionally doing.
#27
Evolved Member
Thread Starter
Mine never has an AFRMAP leaner than 14.7. Closed loop starts at about 20C IIRC, and as soon as it does my STFT is in the -6 to -8 range, before being around zero when it gets a bit warmer. The coolant enrichment is making it richer than stoich and then the closed loop is making a negative correction to bring it to stoich.
How modified is your car? Does a standard Evo 8 US behave like this? Some cars when modified just behave like a faster stock car, I wonder why yours doesn't?
How modified is your car? Does a standard Evo 8 US behave like this? Some cars when modified just behave like a faster stock car, I wonder why yours doesn't?
#28
Evolved Member
iTrader: (22)
Join Date: Nov 2003
Location: Northern KY near Cincy
Posts: 2,408
Likes: 0
Received 6 Likes
on
6 Posts
My car just consistently runs lean while it is warming up. It likes to hang out around 16:1, which of course causes lean misfires/stumbles. It did this before I rescaled my MAF, but it has gotten worse. It makes me wonder if Mits intentionally scaled the MAF to the rich side down low to help out, thinking they would just force closed loop early on and it wouldn't be much of an issue but would improve cold operation.
I'm not 100% sure, but it seemed like it did this even when running full open loop, so I don't think it's being caused by the closed loop stuff. I'll double check on this tomorrow and try to get a log showing targeted AFR vs. actual AFR while in warmup and openloop.
My car often requests an AFR of 16:1 (MUT32) while running though (cold or warm) so it may be something the ECU is intentionally doing.
I'm not 100% sure, but it seemed like it did this even when running full open loop, so I don't think it's being caused by the closed loop stuff. I'll double check on this tomorrow and try to get a log showing targeted AFR vs. actual AFR while in warmup and openloop.
My car often requests an AFR of 16:1 (MUT32) while running though (cold or warm) so it may be something the ECU is intentionally doing.
#29
Evolved Member
Thread Starter
IIRC, the coolant corrections are multipliers, so it shouldn't matter what the mods are. If it is throttle transients that go lean, there are IIRC some asynchronous acceleration enrichment adjustments by temperatures. |Also I can't remember if the async enrichment using injector size or is just a raw injector value, but that would tend to make it richer on the car with bigger injectors, which would not give this problem.
Can we see a log of everything possible when cold and lean and warm and stoich? (including AFRMAP, all the trims, injector pulse width, RPM, load, airflow etc)
Can we see a log of everything possible when cold and lean and warm and stoich? (including AFRMAP, all the trims, injector pulse width, RPM, load, airflow etc)