Roland@pcmtec Posted June 1, 2020 Share Posted June 1, 2020 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 IDLE STATUS MID49718 "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 "Multiplier as a function of load on spark feedback gain" 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 "IDLE MAF INI MID13617" or desired idle mass airflow base setpoint. The following airflow adders are all added together to create the open loop desired airflow. IDLE MAF INI MID13617 = 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: MID04184 IDLE BSE AIR alternator: auF11849 Steady state alternator power consumption Datalogger value: MID03283 ALT AIR FLOW power_steering: auF1288 Power Steering transient airflow adder Datalogger value: MID69657 PSTEER AIRF electric_fans auF11417 Low speed fan adder auF12807 High speed fan adder Datalogger value: MID23418 FAN AIR TRG air_conditioning: auF2292 EVC Air Conditioning airflow * auF1296 (AC air adder) Datalogger value: MID00532 AC AIR FLOW 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 "MID13617 IDLE MAF INI" 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 2 Quote Link to comment Share on other sites More sharing options...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.