|
Hi there RR,
I'm investigating some Closed Loop routines this week in order to make some new patch functions and features.
Recently I have added the Closed Loop Compensations (ECT) to the Flex Fuel Functions, that way I can have a regular CL Target on Closed Loop warm-up for Gas, and a richer for Ethanol.
However, I've noticed that there was always a limit of 0.15 lambda enrichment for Closed Loop compensations. The richest I could go was 0.85 lambda, always, dispite adding higher and higher compensations.
Ethanol closed loop warm-up requires, 0.78 to 0.82 lambda below 30C, which is not possible without modifying those limits.
So I went deep on that CL routine and found out there was indeed a limit for Closed Loop Lambda MAX and MIN, post compensations.
On 32bit ROMs, search for 3F599999, you will find two main occurrences in the same Subroutine.
The main one limits the max and min, as follows:
mov #h'FFFFFFF0, r0 fmov.s @(r0,r9), fr4 mov #h'FFFFFFF8, r0 fmov.s @(r0,r9), fr8 fadd fr8, fr4 fldi1 fr8 fadd fr8, fr4 mov.l #Possible_Max_CL_Lambda_PostCompensations_B, r2 fmov.s @r2, fr6 mov.l #Possible_Min_CL_Lambda_PostCompensations_B, r2 jsr @r10 ; sub_BE634 fmov.s @r2, fr5
on my ROM, BE634 is the subroutine that does a basic comparison:
if value > max, value = max. if value < min, value = min else value = value.
* Changed the values to 0.75 and now closed loop allows compensations up to 0.75 lambda, verified in car.
Not sure if thats gonna be useful for anyone in the future, as ethanol blends lower than E85 won't require those fine tunings.
Best regards Tom
_________________ 2011 Forester S Edition 5EAT~ Flex Fuel 2011 WRX 6MT ~ Flex Fuel
|