Tuesday, January 24, 2012

Exhaust VANOS

It hasn't been a priority for me to get the exhaust cam working.  When I first started tuning the M54 I thought having control over exhaust timing was the holy grail of engine tuning, that great things would come from it.

After numerous trips to the dyno I gained exactly ZERO power with ANY amount of exhaust retard, anywhere.   I had best power by leaving it unplugged!

Like Spiderman's Uncle Ben said, "With great power comes great responsibility".   Use your exhaust powers wisely!

It wasn't until I installed the fantastic euro S50b32 headers that I found power by retarding the exhaust cam.

On to the nuts and bolts...


Datalog In is the only remaining input that is suitable for a +12v cam signal input.  As noted  by Megasquirt, the C12 cap is too large.  0.1uF delays the incoming signal by around .8ms which translates to around 4 degrees of error at 800 rpms.  What's worse is that the error grows significantly as the rpms increase and I saw the indicated cam position error increase by 15 degrees at 3000 rpms.  Unacceptable...  I removed this capacitor and the error disappeared.



Exhaust map.  Most retard at full load in the 3000rpm range.  Optimal retard highly dependend on your exhaust.
With my headers, I found that exhaust retard adds about 5hp in the 3000rpm area and needs to be advanced again at higher rpms. 

In theory, the exhaust can be retarded at lower loads to increase fuel economy but it won't increase power.

Megasquirt is programmed to target the minimum cam position + chart value so the "normal" position is 40.  25 on the chart is 15 degrees of retard.  I limit the advanced value to 38 to keep the integer value from winding-up and maxing-out the duty cycle to help the response time.  When the table is set to 40 the cam can't physically get there so the integer value keeps increasing to try to get it there.

Friday, January 6, 2012

Fuel Injector Heat soak

This one has taken me quite a while to narrow down.  The symptom is that with a heat-soaked start, such as when I stop at the grocery store for 20 minutes, the car will idle significantly leaner.

The usual suspect is heat-soaked MAT but I found that even with MAT correction completely turned off I was still having the issue.  The curious thing was that even at identical injector pulsewidths it was still idling much leaner.  For instance, at normal operating temperature my idle PW is 2.2ms and will be at around 14.4 AFR.  During a heat-soaked idle it will still be at 2.2ms but up around 16.0 AFR.

Why?

I started to hypothesize that the fuel injectors themselves were getting heat soaked and that the extra resistance in the copper coil windings was increasing the latency, therefore less of the 2.2ms PW was going towards delivering fuel.

I found some literature that showed injector latency can increase as much as 100ns which is .1ms.

If my idle PW is 2.2ms, that means the actual squirt is around 1.1ms with my normal 1.1ms latency.  (squirt + latency = 2.2ms).  If the latency is increased by .1 ms that means the squirt is reduced from 1.1ms to 1.0ms, a 10% reduction and certainly enough to explain the lean idle!
A plot of injector resistance with time after a hot shutdown.


I plotted injector resistance with time after a hot engine shutdown and found that the resistance does increase significantly.  I'm guessing it's the fuel that cools the injector when the engine is running.  As soon as the fuel flow stops it heats up, increases the resistance which increases latency.

I was hoping that I could correlate heat soak of the MAT with heat soak of the injector but I don't think it's good enough to use for software compensation.

For now, there's nothing that can be done to compensate for this directly.   Know that it exists and is not the same as MAT heat soak.   I don't use closed-loop EGO at idle because it creates more instability than it solves.

I would also recommend insulating the fuel rail since the fuel itself can boil causing similar issues.