Author Topic: Calibrating warmup fuelling enrichment  (Read 8785 times)

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Calibrating warmup fuelling enrichment
« on: October 09, 2007, 11:08:50 am »
I'm wondering what exactly warmup enrichment is trying to achieve, and therefore how best to set the parameters.

As far as I understand it, it's more difficult to vaporise fuel when an engine is cold, therefore you need to add more than you "think" you need.  (But surely this situation doesn't extend for long beyond starting - the temperature of the valves etc must rise quite quickly?)

So then, are we just aiming to run the engine a little rich until it's warm?  If so, then why not have a lambda offset on the map and use feedback as soon as the sensor is active?  Perhaps because it's unreliable when the exhaust is cold?  Or it's easier to write the code to run in open loop with a % modifier on the base fuelling?

So are we trying to achieve a lambda that is inversely proportional to temperature, (is a linear curve OK, or should it be some kind of exponential decay or even a fixed lambda offset until the car is nearly warm, then tail it off to "normal operation"?

OK, what I have in the car works, but it isn't perfect, and I believe in the pursuit of perfection at reasonable cost...

Offline Sprocket

  • Hero Member
  • *****
  • Posts: 867
  • BHP: 29
Re: Calibrating warmup fuelling enrichment
« Reply #1 on: October 09, 2007, 04:26:07 pm »
I played around with this ALOT!, lol. In the end i found best results by having EGC active after 75c. Use the Lambda gauge to tune the enrichments below 75c to achieve lambda 1 and then use the scaling for the rpm to tune the higher speed enrichments. You have to tune the fast idle air as well to keep the idle speed correct this means looking at the ignition advance, ensuring it is what is in the map at that engine speed. Idle control advance may be increasing or decreasing it to try and control the engine speed. Using a stepper motor IAC means you have to change the step numbers ( below the fast idle threshold) in the PID reference table at the active temperature bin at the same time changing the warm up enrichments at the same active temperature bin to achieve the fast idle speed and lambda 1.

Its all rather complicated but once you grasped the idea and know the symptoms, it can be done fairly quickly, all be it it takes about four or five attempts to get it close. Obviously with some extrapolation for the colder temp bins.

Well thats how i do it, it works really well for me, whether its right, i dont know. Nothing is simpel these days. If its too simple you wont get what you want. A bit like the acceleration enrichments :-\

Offline dnb

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 837
  • BHP: 19
Re: Calibrating warmup fuelling enrichment
« Reply #2 on: October 09, 2007, 07:57:05 pm »
I've never been sure exactly how the RPM scaling works.  It seems a little strange to me - from the logs, I can't see what it's doing. 

What I have already works well, but I'm sure it isn't optimal - I mapped it for lambda = 0.9 tailing off to lambda = 1.0  (allowing for accel enrich and the lambda target map of course...) as temperature approaches 70C (closed loop works OK for me here)  I'm really seeking to formalise the things I've done so that I can do the next one more quickly - I have 2 VEMS to fit & tune before the end of the month.

I don't really use the PID controller for idle control.  I just have the tables with temperature comp and this works very well with the ignition idle control.  (My wild cammed Rover v8 just doesn't seem fussy about the stepper position!)

BTW accel enrichment is not too bad - you just need a lot of data. ;) 

Offline cliffb75

  • Global Moderator
  • Full Member
  • *****
  • Posts: 167
  • BHP: 10
Re: Calibrating warmup fuelling enrichment
« Reply #3 on: December 10, 2007, 10:59:38 pm »
I'm wondering what exactly warmup enrichment is trying to achieve, and therefore how best to set the parameters.

As far as I understand it, it's more difficult to vaporise fuel when an engine is cold, therefore you need to add more than you "think" you need.  (But surely this situation doesn't extend for long beyond starting - the temperature of the valves etc must rise quite quickly?)

So then, are we just aiming to run the engine a little rich until it's warm?  If so, then why not have a lambda offset on the map and use feedback as soon as the sensor is active?  Perhaps because it's unreliable when the exhaust is cold?  Or it's easier to write the code to run in open loop with a % modifier on the base fuelling?

So are we trying to achieve a lambda that is inversely proportional to temperature, (is a linear curve OK, or should it be some kind of exponential decay or even a fixed lambda offset until the car is nearly warm, then tail it off to "normal operation"?

OK, what I have in the car works, but it isn't perfect, and I believe in the pursuit of perfection at reasonable cost...


Wow - bit late spotting this one!

You've made me realise I never did get around to writing that part of the fuelling guide (maybe I will eventually), so I'll answer your question here. :)

Your understanding is basically correct. When the engine is cold, the fuel does not vapourise, and in many cases actually forms droplets. These are simply too rich to burn. Therefore, we need to add excess fuel in order to end up with enough vapourised fuel to actually burn. This happens because fuel isn't simple - it comprises a number of components which vapourise at different temp/pressures. It is the volatile parts (sometimes know as the light ends) that we are actually using, and the heavier part of the fuel is effectively wasted.

In fact through the year, fuel companies continually alter the blend of fuel to vary the relative proportion of these ingredients. Therefore, samples of fuels taken across a year will have different vapour pressure's - winter being the most volatile (vapourises most easily) and summer the least voltile.

You are right that we do want to add an offset to lambda after start and control to it - however, under these conditions some of the fuel we put in just passes straight through and is 'lost' Therefore we still need to dd more fuel than we would calculate as required even at the richer measured lambda. Plus of course the sensor takes some time to become operational and accurate - but we want to be running the engine during that time. Therefore we need to get the initial open loop fuelling correct until we can trust the sensor.

Anyway, that is why we put excess fuel into the engine in the first place when its cold. Next, we need to know how to put it in.

Basically there are 3 stages to cold start enrichment. First is the crank/priming pulses. Their main purpose is create the initial fuel wall film so that subsequent injections will be used purely for combustion, though some of this pulse will also be used for the first combustions too before the engine passes the crank to run threshold.

Next is the afterstart enrichment. This is quite a large value at first but ramps out quite quickly, usually against revolution counts. This is compensating for the in cylinder temperature effects. As you can imagine, it doesn't take many combustions for the cylinder walls, valve heads etc to heat up quite a reasonable amount, even if the bulk temperature of the engine is still quite cold.

Lastly is the warmup enrichment. This is dealing with the cylinder head runner and injector temps - i.e. the the bits upstream of the inlet valve.

So the total fuelling requirement is all those added together - oon top of the normal calculated fuelling requirement.

In terms of the profile - the additional fuel at start is an exponential curve aginst decreasing temperature. So typically you'll need no additional fuel at fully warm (90C), maybe 10% extra at 60C, 50% at 40C, 100% at 20C, 500% at 0C, 1000% at -15 and 2000% at -30C - but only for the first few combustions.

The requirement then drops away very quickly (afterstart fuelling) - for example, for the 40C case, you would add 50% extra fuel for the first combustion, but by about 300cycles in (maybe 40 secomds running), you would be down to only 10% additional fuel as the cylinder walls and valves have warmed enough keep the fuel mainly as vapour once it enters the combustion chamber. The coolant temp sensor will barely have moved by this point, and you will now be running on the warmup curve, which is also an exponetial type decay as you move towards 90C.

Thats about it really. I hope that was clear, but as ususal any questions on bits I've not explained properly, ask away.