DSM/SAFC Overview


First, a quick overview of the DSM air metering system:

    The goal of the DSM air metering system, and any air metering system really, is to be able to calculate the mass flow of the air entering the motor.  Now, in order to keep this short I’m going to keep the chemistry to a minimum, if you want more description in that area ask or start another thread.  The basic premise is the combustion of gas and air is a chemical reaction, for which you need a certain amount of air molecules and a certain amount of gas molecules.  The mass of a fluid is directly proportional to the number of molecules of said fluid, and thus by knowing the mass of something you can figure out the number of molecules.

    Chemically, it turns out that in order to have a reaction that uses up all of the gas and all of the air available, you need to have about 14.7 times the mass of air, as you have the mass of gas.  For example, if you have 14.7 pounds of air, you need 1 pound of gasoline to burn both of them completely.

    The ECU needs to calculate the amount of fuel to shoot into the motor.  In order to know how much gasoline it needs to inject, it needs to know how much air is coming in, and what the target air to fuel ratio (A/F ratio) is at that point in time.  This is the job of the air metering devices, and some of the code in the ECU, which interprets the information from these devices.

    The DSM air metering system consists of four parts:  the karman vortex sensor in the MAF, and intake air temperature sensor, the intake air pressure sensor (barometric pressure sensor), and the ECU.

    The karman vortex sensor works by detecting the frequency of small vortices that happen when a smooth airflow is presented with an obstruction.  The number of vortices is proportional to the velocity of the airflow (I believe it follows the form frequency = kv^2).  When the MAF outputs a “Hz” signal to the ECU, what you are really seeing is the frequency of these vortices inside the upper chamber of the MAF.

    Now, if the ECU knows the velocity of the airflow, and if it is programmed to know the cross-sectional area of the MAF, then it can calculate the volumetric flow of air through the MAF.  Think about it, if you have air moving at 1 foot per minute, through a tube that has a cross-section of one square foot, you will have a flow of one cubic foot per minute.  The flow of the motor is obviously much higher than that, but it’s the same theory.

    If you remember high school chemistry, then you remember the ideal gas law.  The ideal gas law states that PV=nRT, or when rearranged, that PV/RT=n.  “n” is the number of molecules of the gas (which, as we said above, it proportional to mass).  P is the pressure, V is the volume, T is the temperature, and R is a constant depending on the units used to describe the aforementioned items.  In order to find the mass of the incoming air (n), me need to find all of the “other stuff” on the left side of the equation.  We already solved for volume (in terms of volume per unit time), R is a constant stored in the ECU, and we can find temperature and pressure from the other two sensors in the MAF!

    So, we do some math, and we get an air mass.  Then, the ECU looks at a air/fuel ratio table (if in open-loop) or shoots for 14.7:1 (if in closed loop), and decides how much fuel it needs.  Since the ECU knows how much the injectors flow, it can figure out how long it needs to open them up.  For example, if it wants half the fuel that the injectors can deliver, then it will just open them up half the time.

    Now, what happens when you install larger injectors?  Larger injectors basically have bigger holes in the end, so if you open them for the same amount of time as the stockers, you squirt out more fuel.  Of course, the ECU doesn’t know that the injectors are flowing more, so it keeps opening them for the same amount of time.  Therefore, in order to get back to the A/F ratios that you want, you need to reduce the pulsewidth of the injector for each set of conditions.

    The way a SAFC, or any other piggyback, does this is by reducing the amount of air mass the ECU thinks it is seeing.  If the ECU thinks it is seeing less air, then it will shorten the pulsewidth.  Since it’s not really seeing less air (the SAFC intercepts the airflow signal and reduces it), you get the same amount of air, plus a shorter pulsewidth, plus a larger injector, and the end result puts the A/F ratio back where it should be.

    Basic SAFC operation: The SAFC intercepts the Karman frequency signal coming from the MAF.  It then has a set of maps, indexed by rpm and load (TPS), which it looks to to find a correction factor.  It multiples the airflow signal by that correction factor, and then sends the changed signal to the ECU.  For example, if the airflow signal is 1000Hz, and the correction is -50% (maximum reduction) it will end up sending a 500Hz signal to the ECU.

    One of the main things I think people don’t understand about the SAFC, is the way the rpm and load based interpolation works.  While I won’t go off on a tangent on load here, the basic theory is that TPS is a representation of the amount of load on the motor (although not a very good one on a turbo car).  The two different maps allow you to have different corrections under different load conditions, so that, for example, you can have the car richen up more as load increases in order to attempt to avoid knock.  The use of the RPM points is obvious, as they just allow you to change the correction based on engine speed.

    The question that comes up is, what happens if you’re between points?  In reality, it’s pretty simple.  The SAFC just builds a curve (although it is built out of straight lines between the points, as with most engine management).  If the correction is +10% at 2000 rpm and +20% at 3000 rpm (not likely, but it makes for an easy example) then the ECU will basically “connect the dots” and when you are between those two points it just looks where that line points to on the correction map.

    Examples:  If you are at 2500 rpm, since you are halfway between the points, you will get +15% correction (15 is halfway between 10 and 20).  If you are at 2250 rpm, you will get 12.5% correction, because that is one-quarter of the way from 10 to 20.

    The SAFC does the exact same thing with the throttle points, between the high and low maps.  If you are halfway between the two throttle points, then the SAFC will find the correction that is halfway between the corrections on the high and low maps.  When you are below the lo throttle point, it just uses the low throttle settings, and when you are above the hi throttle point, the SAFC just uses the high throttle settings.

    One of the main side effects of changing the airflow with a SAFC, is the profound effect it has on timing.  The timing map in the ECU is set up as such:  the ECU looks at the engine speed and the airflow (actually the airflow per rev, but we wont go there right now), and then finds the point on the timing map.  The timing map is just set up like a spreadsheet, with the columns representing either engine speed or airflow, and the rows representing the other.  The tendency of the timing map is that lower airflow (less load on the motor) gets more timing advance.  This is for a couple reasons, but generally lower load means less heat and less cylinder pressure, which means you can use more timing advance to get the mixture to combust at the correct point.  The effect this has is that if you reduce the amount of airflow that the ECU sees, it will move down on the timing map, and you will get more advance.

    You need to be very careful with this.  Not only do you get more advance at WOT, but you also get more advance at cruise and part throttle.  In most cases, the WOT knock that can be caused by too much advance can be tuned out, but the knock caused at part throttle and when the turbo is spooling can’t always be.


Kyle Tarry 2003