Overrun and tip in handling (Transient Fuel and fuel cut.)

Page started May 28th 2013 by Jörgen Karlsson after brainstorming discussion with Marcell, Gunni and Mattias on IRC.

Overrun fuelcut delay

Adjustable delay between meeting overrun fuel cut conditions and actually cutting the fuel. 0-3.1s

We have had a problem setting up the acceleration enrichment in a way that allow you to shift slow and then apply throttle quuickly without upsetting the transient fuel for normal quick shifting with fast throttle application.

The difference is that when you shift slowly (for example to spare a bad gearbox) you allow the fuel film in the intake to be sucked into the engine. You will then need to more fuel to build the new fuel film compared to when shifting quicker which leaves more fuel film in the intake.

Overrun fuel cut stall saver

When setting the overrun fuel resume to low you often get a situation where the engine can bog down to a very low rpm or even stall when pushing the clutch down or when free reving the engine.

Efficient use of the overrun fuel cut is an important part in reducing the fuel consumtion of a car. Even if our implementation is on par with competitive systems we have some work to do to match the OEM electronics found in most premium cars.

After some discussion we have come up with two different implemetnations.

Stall saver alt1 (Simple system which when setup properly will allow a lower fuelresume rpm during engine braking compared to today, when setup right disables fuel cut below fuelcut rpm when not in gear.)

If the rpm drops quicker then the set rpm/second AND RPM<Fuelcut_RPM, disable the fuel cut until fuel resume rpm is reached. (unset the fuel cut rpm reached flag.)

Config parameter max rpm/second. Config variable name: Stallsave_dRPM

Stall saver alt2 (Provides additional functionallity and is easy to understand and configure,Jörgen)

Make a table like the ones used for acceleration enrichment for the fuel resume rpm. Put the rpm/s on the X axis and the fuelresume rpm on the Y axis.

This will allow us to make an unlinear fuel resume table allowing us to be in overrun down to below 1000rpm without risking a stall or bog down. Just like it's done on German premium cars.

Implementing the table below will allow the car to be in overrrun fuelcut down to 1000rpm in a higher gear but the fuelresume rpm will increase if the rpm drops quicker. For example if you push the clutch down.

RPM/s             50     100    500   1000
FuelresumeRPM   1000    1100   1400   1800

Tip in fuel

The transient fuel requirement is significantly higher when you leave overrun fuelcut then if you apply throttle when the engine is in a normal running state. The reason for this is that the fuel is sucked from the walls of the intake when the engine is in overrun fuel cut. The tip in fuel demand is higher when the fuel has been cut for several seconds compared to when you only cut it for half a second or so. The purpouse of the tip in fuel additions to Vems is to add an additional amount of acceleration fuel when tipping in from overrun fuelcut.

Simple tip in fuel

Multiply the resulting acc enrich with tip in fuel.

Configuration parameter, % of acc fuel per second, max 100% per second.

Maximum tip in fuel added, max 100%. (=acceleration enrich * 2)

Alternate tip in fuel (I like this version best, Jörgen)

Add an additional amount of acceleration fuel when tipping in from overrun fuel cut. Multiply the resulting acc enrich with tip in fuel.

Take the amount of tip in fuel from a lookup table much like the Acceleration RPM enrichment table. But with Time in overrun on the X axis and % of acc enrich added on the Y axis.

Example table

Fuelcut time           0.3  0.8  1.5  3
Acc enrich multiplier  110  150  150  150

Tip in retard

This is functionallity needed for drivability when running an optimized ignition table at low rpm. When going out of overrun with an optimized RPM table it often result in a significant jerk. We usually work around this by NOT having an optimized ignition table in the "city driving" part of the ignition table. This works fairly well but finding the acceptable transition points is a bit hard, you often end up driving the car outside the optimized area.

One possible solution is to add a combined 8 element idle and overrrun ignition table and a second 8 element table with the rates in degrees/second we use when leaving idle/overrun conditions and going back to the ordinary ignition table. As the ignition timing in the base table is not constant it is possible that we have hit a problem. The logical solution would be to always let the ignition advance increase with the rate from the table, retard should obviously be instantaneous. Functions like ALS, Launch control, timing based idle control and such things should be excluded from the change rate limit.

For race cars the idle/overrun ignition table has the significant benefit for engines which need a high idle rpm in the 1200-1400rpm range. These engines often get stuck at a significantly higher idle rpm as the ignition timing is usually higher up there. I often need to force these down to the correct idle with a lot of ignition retard based idle control or by really messing with the ignition advance in the table. This can be a problem if the engine doesn't pull much vaccum.

Example table

RPM        700  900  1200 2000 3000 4000 5000 6000
Advance     20   10     5   10   20   20   20   20   
Rate deg/s  10   10    10   10   20   50   50   50