Jump to content
PCMTEC Forums

Recommended Posts

This guide covers how the idle control on the Falcon platform works.

Short Answer:

This assumes you have under 5% LTFT and have not changed the throttle body. If your trims are > 5% you need to fix your injector scaling, if your throttle body has been changed you need to adjust the throttle tables.

If the above items are correct and your idle airflow is still wrong due to large camshafts or a large change in engine VE, then you need to adjust the open loop portion of the idle equation.

To do so first ensure you are in closed loop idle mode by datalogging iscflg "Idle Speed Control Mode Flag" and the mode is (1) Rpm Ctrl Mode or (2) Rpm Ctrl Learn Mode

-2=Drive Mode
-1=Dashpot
0=Dashpot Preposition
1=Rpm Ctrl Mode
2=Rpm Ctrl Learn Mode

Next datalog the idle air integrator (IPSIBR) and wait several minutes for it to reach a stable setpoint. If you have a large consistent error add this error term to the neutral and drive tables (log separately in drive and in neutral).

auF10622 (Neutral)

auF12842 (Drive)

This will mean the idle controller has to do less work to maintain a stable idle and should assist with a stable idle.

If you have an oscillation error, eg hunting, you can adjust the proportional gain for the closed loop controller (auF1565). Large numbers will cause more over/under shoot however it will reach the desired idle rpm faster. Smaller numbers will oscillate less however will take longer to reach the desired idle rpm. Adjust auF1565 Proportional gain

If you have a setpoint error, eg the idle simple never reaches the desired idle rpm setpoint, adjust the Integral maximum clip term auF1565

 

Long Answer:

Idle is controlled via two main closed loop controllers. A spark controller which is for very fast corrections, and an airflow controller which is for slower long term changes and is done via modulating the throttle at idle (no idle air valve is required).

Spark P (Proportional only) Controller

The spark controller is based on an error term in rpm which is then multiplied by the following gain table. auF11706 "Muliplier as a function of load on spark feedback gain"

image.png.f4ce6e56a71cf3bc6c1677137f8d69fa.png

This controller constantly adds/subtracts timing based on rpm error with a max value of MBT timing and a min value of "min spark clip". This will be constantly varied unless the error becomes too great unpon which it will no longer be controlled.

To make the spark reach MBT or minimum spark clip faster you use a larger value. To make the spark oscillate less or remove it entirely you can zero this table however this will remove the ability for the PCM to catch stalls quickly.

Airflow PID (Proportional, Integral, Derivative) Controller:

The airflow PID controller takes the following tables to determine the "DESMAF" or desired idle mass airflow base setpoint.

The following airflow adders are all added together to create the open loop desired airflow.

desmaf_pre  = base_airflow + alternator + power_steering + electric_fans + air_conditioning + trans_torque_loss

 

base_airflow is sum of the following tables

auF10622 Additional airflow in neutral

Or 

auF12842 Additional airflow in drive

* auF11555 * auF1210

Datalogger value: base_ppm

 

alternator:

auF11849 Steady state alternator power consumption

Datalogger value: alt_ppm

 

power_steering:

auF1288 Power Steering transient airflow adder

Datalogger value: ps_ppm

 

electric_fans

auF11417 Low speed fan adder

auF12807 High speed fan adder

Datalogger value: edf_ppm

 

air_conditioning:

auF2292 EVC Air Conditioning airflow * auF1296 (AC air adder)

Datalogger value: ac_ppm

 

Trans_torque_loss:

auF16467 Given an RPM and calculated torque the PCM uses this value to estimate the LOAD value.

* auF10158 Load to aircharge constant

This desired airflow of the above summed together can be datalogged as "desmaf_pre"

 

idle_ppm Dashpot Idle Air

dashpot idle air is then added on top (to smooth out return to idle) which is calculated from the following:

Dashpot air = auF2411 (Gain for dashpot calc) * auF0036 (Airflow adder for dashpot function)

Max dashpot air = auF3009 (delta rpm) * auF3081 (vehicle speed) * auF3165 (ECT clip)

This value is the open loop portion of the idle air controller.

 

The closed loop (PID) controller then calculates the following values which are constantly varied based on idle error

P (Proportional term)

auF1565 (Proportional gain table for PID idle speed controller)

I (Integral term)

Datalogger: ipsibr Idle Air Integrator

Datalogger: isckam idle Speed KAM memory (similar to LTFT but for idle air)ove

auF1452 Max integral adder

D (Derivative term)

auF1405 ISC pid controller derivative gain

 

For more reading on how a PID controller works read this wiki article. You likely have 1000s of these in various gadgets in your house.

https://en.wikipedia.org/wiki/PID_controller

 

Final Command Desired Mass Airflow:

The final value (Datalogger: desmaf) is the result of this equation:

desired idle airflow = desmaf_pre (open loop airflow as calculated above) + idle air integrator kam + Idle air integrator + idle_ppm / desired_torque_ratio

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...