Wouldn't it make more sense to normalize these numbers (in ms) against the value req_fuel? So the settings wouldn't vary as much from engine to engine.
Nice idea, but unfortunately it doesn't work quite like that.
The req fuel value is basically an injector characteristic value. However accel enrichment is required due to intake design factors - distance from injector to valve, port shape, air velocity plus some others. Therefore if you had two engines that were identical except for different sized injectors, then your idea would work. However, if you have two different engines, but that use the same size injectors (i.e. the same req fuel) then it won't, since the amount of additional fuel required to form and maintain the wall film will be different.
The req fuel is still a good reference, we work with engines that are improved over time and many engines see injector changes in the middle of it's life and we as tuners also tend to reuse base maps from one engine on an other similar engine.
I have used a system that use something similar to a req_fuel based acc enrich. Even with default settings it has been very good on all engines I have used it for. There can always be improvements but the engines I have tried it on has been very different and they have worked very well.
We know that many users will not do the acc enrich setup properly and a req_fuel based setup is much more likely to work ok on their engine.
I'm also thinking about generic scalers to handle the acc enrich demand over rpm and load. Something that is used in addition to the 3d rpm and load tables for decay and amount. I like flat tables and anything that can be flattened by using hidden scalers and compensations is good. Most likely with the option to turn the hidden optimizations on and off.
Cliff, can you offer any imput on the general acc enrich demand over rpm and load? I have seen that the acc enrich has to be more or less removed whenever you are on boost and that high rpm also decrease the demand.
The lambda at the load site we are comming from also affects the amount needed. That should be considered in the new implementation.
Jörgen
Right, lets get to the basics of it then. Transient fuelling (and this is both accel and decel) is required for 2 reasons.
First is the ECU. In order to calculate the required injection pulsewidth, the ECU needs to take a measurement of the load some time before the injector is required to open. When the engine is steady state, this all works nicely. However, under transient conditions, the time between this measurement being taken and the actual point at which the inlet valve opens allows for the actual load to increase. At low engine speeds and loads this is significant, since the lower air flows involved mean that the air has less inertia (able to accelerate quicker) and low speed means there is a longer time between measurement at valve opening (the ECU normally calculates at an angle before TDC, therefore time increases with decreasing speed). Therefore, the amount of fuel calculated as required is actually quite a bit less than is really needed. As engine speed increases, the available time decreases, and the inertia of the air increases, so that the measurement error is reduced. In the case of turbo engines on boost, the limiting factor becomes the inertia of the turbo system itelf (i.e. turbo lag) so that again the required amount reduces.
Second is the wall film. This is a physical phenomenon, which I don't fully understand - but I do know it exists and have seen its effects
. Basically the required wall film increases as load increases. Therefore there is a requirement to add some extra fuel for a short duration in order to build up this wall film as you increase in load. The amount required is dependant on various factors such as the location of the injector, its spray pattern, air temperature and so on.
These two requirements led to the dual stage nature of transient fuel - a quick spike to initially compensate the calculation error, and a smaller longer addition to build up the wall film. By getting both the total amount of fuel and the relative split of these parts correct we can achieve a stable lambda profile during the transient.
The size and duration of these parts are dependant on a number of factors. We've already mentioned engine speed (time between measurement and valve opening) and airflow (inertia). It may be possible to deal with these in the background since the ecu knows how long before TDC it has to perform the calculation. However, it doesn't know what the valve timing is, so some compensation may be required. You still need to predict how fast the load is changing though, either by looking at MAP or pedal angle rate of change. You can also help yourself out by setting up the system to make the fuelling calculation as late as possible (so there is less time for the load to change).
Next is the relative change in load. The wall film increases exponentially with load. therefore a small change in load at low load requires less additional fuel than a similar change in load at high load (if you see what I mean). However, a small change in load at low load produces a quicker response than at high load (air inertia again), so the measurememnt error is greater. Therefore the net fuel effect may balance out, but the split between first and second part varies, depending on the load at the point you tipped in.
For that you can see that the worst case is a tip in from idle to WOT. In this case, the initial engine speed is low (long time between measurement and valve opening), the airflow is low (low inertia, so load builds rapidly with time) and the wall film is small, with a final requirement to be large. Therefore the first place to try and play with transient fuelling is by doing 'throttle blips' from idle.
The VEMS system, like others, triggers the required additional fuel based on what throttle opening you start at, and how quickly you open it. However, it then uses fairly crude strategy to calculate the additional fuel to add, which doesn't really fit the physica effects.
Modern OEM systems perform a more complex load prediction based on various engine factors, and also use a simple wall film model to calculate the required additional fuel. With those two bits of info the amount of fuel and the split between first and second parts is calculated.
It is worth remembering that things in a modern system are always calculated in real quantities (mg of fuel, kg/h or air etc) and then the required injection time is calculated from this through the injector characteristic model (which may include compensations for fuel pressure, fuel temperature, flow, port conditions etc etc).
So what should we do for tranisent fueling strategy? In a system such as this, we probably don't need all that level of detail - we are not so concerned with catalyst breakthrough or CAFE tax. We just want good transient reponse without any stumbles caused by excessive rich or lean mixtures, so we can cope with being a little bit rich or not having the perfect split ratio.
I hope this is a good starting point. I need to leave it to someone else to actually suggest a strategy that will cover these requirements. (as I've said before, I need to be a bit careful about IP) I hope it makes sense, but let me know if I need to explain anything a bit further