Red_Baron wrote:Can "Idle target" not just be a table that can be populated by the mapper and referenced by various other parts of the code?
Idle target table values could be available *always* and you just turn on Idle valve control algorithm if you have an idle control valve, or you turn on AIA algorithm and configure that if you haven't got an idle valve, or both if you want to?
AIA helps throttle bodied cars to idle when they have no idle valve, that much is certain, especially when they have hairy camshafts!!
RB
That's sounding half-decent.
For the CL idle crowd, there should be an additional condition on AIA entry. AIA should only kick in once the car is in CL idle close to the target, not come on early while we're still ramping down from i-v-t.
Then, AIA must stay on until we're not idling anymore. AIA is for fine adjustments once we're near target.
some pseudocode to explain:
Code: Select all
if ((outpc.status2 & 0x80) && (outpc.rpm - outpc.cl_idle_targ_rpm < engage_AIA_adder_RPM)) {
AIA_enable = 1;
}
if (!(outpc.status2 & 0x80)) {
AIA_enable = 0;
}
It makes no sense to separate spark RPM targets from idle valve RPM targets. If the values are different, spark and IAC will fight each other. If you're only using one of the features, then having two tables is just wasting space.
Those who run CL idle can set the other AIA conditions so that they would always be met.
Also, AIA should be separate from idle advance maps.
AIA is a correction (spark adder) to meet desired idle speed.
Idle advance timing (absolute) is timing you want off-throttle at low speed. You may want it with or without AIA.
It makes sense, so that your main spark table, including around the idle area, can be tuned close to MBT. Then, off-throttle at low speed, you go to the retarded idle advance, so that you have a torque reserve so that AIA can kick up the spark if needed.
And rather than selectable separate RPM and Load based spark advance tables, it could be a single 4x4 or so 3D table, for simplicity, and anyone with the load only table could still run the same settings.