Fuel Trim Malfunction codes (0170 and 0173) and Cat Efficiency problems (0420 and 0430) have been mentioned a few times recently, particularly with reference to LPG conversions. I've also chatted with a few members via PM who have been interested in what's behind it and the following explanation evolved, which I thought probably deserved to be available in public.
Fuel trim codes can be a common problem where an LPG system hasn't been tuned accurately or where another malfunction of the engine or associated systems has had an effect on the tuning of the engine. So, first things first. What is fuel trim?
The petrol engine ECU has a number of inputs to tell it about the engine operating conditions and from these inputs it looks up in a calibrated table (called the "MAP") how much fuel to inject into the engine. This results in the petrol injectors being opened for a precisely controlled length of time during each engine cycle called the "injector duration". Since the injectors flow petrol at a constant rate when open, the volume of fuel is directly controlled by the injector duration. This typically ranges from 3 milliseconds (0.003 seconds) at idle to perhaps 15 milliseconds at full load.
The above describes an "open loop" fuel injection system, of the type that were common before catalytic converters were mandatory. The map was calibrated for a given combination of engine, injector flow rate, induction and exhaust system, cam profile, etc. Provided none of this changed significantly the engine remained in a reasonable state of tune, with only the odd mixture adjustment required at MOT time to keep the emissions at idle within specification. Crucially, the ECU is operating "blind" in an open loop system. It delivers fuel to the engine, but has no idea if the fuel mixture turns out to be correct.
With the advent of 3 way catalytic converters the fuel mixture burnt by an engine became more crucial. A catalytic converter will only clean up the exhaust emissions successfully when there is a chemically correct mixture of fuel and air being burnt in the engine. This means tighter control of the fuel mixture. Lambda sensors are the mechanism by which this control is achieved. They give the ECU feedback on the actual mixture burning in the engine.
The most common type of Lambda sensor, and the type used on all Omegas, is termed a "narrow band" sensor. This is because it measures the fuel mixture over a very narrow operating region centred around the chemically correct mixture. Such a sensor can be viewed as indicating whether the mixture is "lean" (too little fuel) or "rich" (too much fuel) with respect to the chemically correct mixture. Basically, the petrol ECU will use the output of the lambda sensors to adjust the quantity of fuel injected (the injector duration) so that the lambda sensors are always at the point of switching between "lean" and "rich", so the average mixture is correct.
It does this by maintaining a variable called a "fuel trim" for each bank of the engine (on a V6 - just the one on a 4 pot). If the lambda sensor reads "lean" it will increment the fuel trim periodically. If it reads "rich" it will decrement it. The fuel value from the map is multiplied by the fuel trim before calculating the injector duration so the fuel trim has a negative feedback effect, adjusting the injector duration read from the fuel map to keep the mixture correct.
The fuel trim is used to compensate for variations between engines, fuels, injectors, etc. to ensure the mixture is always right for the catalytic converters. However, it has a maximum range based on how much trim would normally be expected. If the fuel trim exceeds a threshold programmed into the ECU, a fault code is stored and the EML comes on.
Many ECUs take this a stage further and store a "long term fuel trim" value based on the long term average of the fuel trim that is in use. This variable is often stored in non volatile memory so it is available from start-up before the Lambda sesnors have warmed up. It is also often applied to areas of the map where the closed loop correction is not active, for example at full throttle where the mixture is too rich for the Lambda sensors to provide useful feedback.
Many ECUs also store long term fuel trims in a so-called "block learn table" which effectively stores separate fuel trim values for different areas of the fuel map, as the fuel trim required when idling is often different to that in use when motorway cruising, for example.
Add LPG to the equation and the LPG ECU is watching the injector duration in use by the main ECU and using it to calculate the LPG injector duration required. The tuning of the LPG ECU relates these two durations, and also applies corrections for the temperature and pressure of the vapour being delivered to the engine so if, for example, the petrol ECU uses a 3ms injector duration, the LPG injector duration might be 5ms for the same amount of fuel. If this is done correctly the fuel trim remains roughly the same as on petrol and the main ECU is happy.
Now, let's say for a 3ms duration the LPG ECU only injects 90% of the fuel required, due to a fault in the LPG system or to bad calibration of the LPG system. The fuel trim is increased by the main ECU until the mixture is right. This will require a fuel trim of +10% to correct the situation. So, it is straightforward to see that, if the LPG ECU is not correctly tuned, the main ECU adds fuel trim to make the mixture correct again, and if that trim is too large, the EML comes on.
Incidentally, you can watch this process happening on a Tech 2 or, on later engines, using an OBDII compatible reader. It allows you to view the variables inside the ECU in real time.