Idle Control is used to hold the RPM steady while off the throttle. To do this the ECU needs to be controlling a device that regulates air flow into the engine. This can be via DBW throttle control, a 2 or 3 wire solenoid, or a stepper motor valve. For this tuning guide we will assume that the idle cotnrol is already wired and is already functioning.
Why do we use the term "Duty" and what is it used for?
To make the process of tuning the idle control system easier, and to use the same tables as setting for all of these three methods, the term "Duty" is used. Duty can be considered as a percentage amount of idle.
For a DBW system there is an Idle configuration setting called DBW Max Position, which is the amount of throttle opening that is considered 100% duty for Idle. If set to 20%, when the idle is commanding 100% it will open the DBW throttle to 20%. This amount is adjustable due to some throttle bodies flowing more air than others. Same may need only 5% opening as a maximum to support all possible amounts of air that the engine can use at idle. Others may need up to 30%. Setting this too high can make it possible for the system to command large amounts of engine power and rev the engine excessively if the tables are not correctly configured. Otherwise, there is no issue with setting this a little higher than you may expect.
For a BAC solenoid controlled system, the duty is exactly as it says. 100% means the valve is completely open, 0% means it is shut. Nothing really here to configure!
For a stepper motor system, there is an Idle configuration setting called Range, which is the number of steps that is considered 100% opening. This can be tested by commanding the Min Outptut table to 100% and then increasing or decreasing the number of steps. If increasing the number does not increase engine RPM then you have already reached the flow limit of the stepper motor valve. Using a value any higher than this only slows down the calibration process that stepper motor systems always complete with each power-on.
The Base Duty itself, is the Duty required to keep the idle on Target.
Base Duty and Long Term Learning
We will start with the obvious. Set the Target RPM table to the RPM that you want the idle to be.
Next is to set up the Base Duty. As mentioned, this is the amount of idle duty that keeps the engine rpm on the target. To assist with the tuning of this important table, the smart guys at Haltech decided that a system that learns this value over time would be a brilliant way to handle the tuning of the Base Duty. This Long Term control is enabled by default, and adds its learned table values to those in the Base Duty. What it does is look at the amount of duty that the closed loop Short Term system is having to add or subtract from the Base Duty to reach the Target RPM. If it needs to add more duty, the long term see this and will slowly increase. Over time, as it increases the Short Term value will drop to zero and the Long Term no longer has to do any work. At any time in the process the Long Term can be Applied to the Base table. This is where the Long Term will add itself to the Base, and then reset the Long Term to zero.
This process is designed so that almost no effort is required to obtain the correct table values. If the tuner sees that the values are wildly incorrect, they can make changes to the Base Duty table to get it close, and then leave the Long Term to fill it out in finer detail.
Catching the RPM As It Falls To Idle
When the throttle is released and the engine falls again to idle, there is a setting that helps to "catch" the falling rpm and prevent it from dipping below the Target idle. This is in the Idle settings and is called the Decel Offset and the Decel Offset Decay Time. The Decel Offset will add an amount of duty to the Base Duty anytime the TPS % is returned below the Zero Demand amount after opening the throttle. It will hold there under deceleration until it is near idle, and then it will decay away over the time set in the Decel Offset Decay Time. These settings are adjustable so the tuner can obtain the exact feel that they want for how the idle is caught.
Setting Up PID's, and What The Hell Are PIDs anyway!
PID stands for Proportional, Integral, Derivative, are used by closed loop control systems to regulate how the system reaches its target. In a perfect world the system would be as smart as a human and simply jump to the target. Typically, the more reactive a system that is being controlled is, the more we will use Proportional to do the work. Most idle control systems are sort of in the middle, where they are a little reactive but not immediately responsive to changes. This will vary greatly though depending on things like engine displacement versus intake plenum volume, or in other words, how quickly can the engine pull air into combustion. For systems that are not immediately reactive it is more normal to use Integral as the dominant control table, and this is how we configure the default tables for the Elite series. DBW idle can use more Proportional and a little Derivative. Stepper Motors are generally slow and respond really only to Integral. BAC fit in the middle, where small amounts of Proportional can help react a little faster. Starting with Integral-only is a good way to get a feel for how the idle is reacting and the Proportional and Derivative amounts can be trialed from there to suit.