Idle Operation Part 1
#1
FormerVendor
Thread Starter
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 525
Likes: 0
Received 0 Likes
on
0 Posts
Idle Operation Part 1
As promised here's the first installment of the idle airflow calculations the PCM uses to control the engine idle. Again, i don't profess to know everything and happy to take corrections from people, especially on terminology, since i have a habit of just making names up that sound right to me
Also, this is not an exhaustive list of every little thing and possible outcome that the PCM does on idle calculations, because it is a very complex state machine, but you'll get the idea...
Chris...
Idle Airflow Operation
General Operation
The PCM calculates the IAC position based on a number of Airflow calculations and estimations, the final idle airflow value consists of the following two main components:
- Base Idle Airflow (Base + LTIT)
- Adaptive Airflow correction (STIT)
LTIT = Long Term Idle Trim
STIT = Short Term Idle Trim
Note: i just made these names up cos they are easier to understand than proportional blah blah, integrator slow filtered idle airflow...
The first thing to realise is that the PCM only runs the adaptive idle control routines when at idle conditions (below certain TPS and MPH limits). However, the base airflow routine is controlling the IAC position during all driving conditions (things you are aware of already, such as the Throttle Cracker, and if you set your Base Running Airflow values too high you get cruise control etc.)
Base Idle Airflow
The Base Idle Airflow is combination of looked up values from various tables within the PCM and also incorporates a Long Term Idle Trim (LTIT) correction. This airflow directly controls the IAC position when at non-idle and is the "starting point" for adaptive idle control. The base airflow consists of the sum of the following individual components:
Base Running Airflow
- this is the main Idle Airflow when in PN (A4 only) or Gear (A4 or M6)
- a table vs ECT
Startup Airflow
- additional airflow during engine startup and initial run period (decays to zero in the first few seconds of engine operation)
- a table and a few delays and decay rates
Startup Spark Retard Airflow
- airflow correction to account for startup spark retard (if used)
Fans On Airflow
- Additional airflow to account for increased engine load during cooling fan operation
- Two values depedending if one fan active or both active.
DFCO Airflow
- used to set IAC position during DFCO
Throttle Cracker Airflow
- additional airflow to open the IAC based on MPH and RPM
- zero duing idle conditions
- a table
Throttle Follower Airflow
- controls rate of closing the IAC valve during throttle closure
- zero during idle conditions
- a few tables of initial value and decay rates
Long Term Idle Trim Airflow (LTIT)
- a slow moving correction based on the adaptive idle routines (think LTFT's for fuel)
- the idea of this correction is to bring the Short Term Idle Trims (STIT) to zero
- it has +ve and -ve limits
- a calculated value
AC Airflow
- airflow correction for when the AC is on, this is a torque based calculation that estimates how much torque the AC is pulling and calculates an airflow correction to compensate.
IAC Park Airflow
- airflow used to calculate IAC position when ignition is off and engine not running
- used in place of all of the ablove
- a table
The combination of all these components is what i call the Base Idle Airflow in grams/sec.
Adaptive Idle Control
The whole point of the idle control routines is to maintain the desired Idle RPM. The PCM therefore needs to "close the loop" and use the Idle RPM error as a feedback to provide this control. The monitoring of the Idle RPM results in a Short Term Idle Trim (STIT) that provides the fast moving closed loop control of the IAC valve. Again here it is very analagous to the STFT's and feedback from the O2 sensors. Thats why i chose these names rather than the normal Proportional, Integral, Derivate stuff that makes most peoples head spin...
Okay, so the PCM has a Desired Idle RPM it is trying to achieve and it is constantly measuring the current RPM and calculating an Idle RPM error value. The PCM uses various agressive and not so agressive algorithms to control the STIT, to provide fast convergence (and also stall saver capability) but also reasonable idle stability.
During all this, the PCM is maintaining a fairly complex state machine of are we at idle, is the engine transitioning back to idle, etc. The PCM does remember a few different last known state of the STIT, such as when you turn the AC on the PCM stops updating the "ACoff STIT" and starts updating the "ACon STIT" (again here think Fuel Trim cells). The idea of this is that when you turn the AC off the PCM can quickly return to the original IAC operating point. For A4 vehicles you also have the PN/Gear dimension as well.
A good example of the STIT in action is if you have an M6, you have your foot on the brake and you partially let the clutch out and you feel the engine pull harder to try and maintain the desired idle RPM. If you were logging the IAC steps or the desired idle airflow you would see it increase. Very soon with our scanner you will be able to log the LTIT and STITs directly and see them correcting. Monitoring the LTIT and STIT is a very good tool to get your Base Running Airflow values correct, ensuring your LTITs are not maxing out on the limits and troubeshooting PN/Gear and Fan On/Off stumble etc. especially after head/cam install.
Desired Idle Airflow
So the net result, is that the PCM takes the Base Idle Airflow (including LTIT) and then adds the STIT to come up with a final Desired Idle Airflow (which generally is available as a PID for logging). Then there is a final step that takes this airflow value and translates it to the actual IAC valve position or the ETC TPS position. Maybe more on this later, but it's basically just a units transformation for the most part and the IAC and the ETC have their own control routines and state machines that effectively take this idle airflow as an input.
What else?
In addition to the Idle Airflow routines the PCM also has an RPM based idle spark correction "closed loop" operation that it uses to control the idle RPM. Since the spark advance can move much faster than the IAC, it can provide very fine control of idle speed. When logging you will see this as a jagged spark advance chart, most noticable with cams at lower idle RPMs where the spark advance generally oscillates between it's min/max allowed values as the engine "cams" at idle.
END.
Also, this is not an exhaustive list of every little thing and possible outcome that the PCM does on idle calculations, because it is a very complex state machine, but you'll get the idea...
Chris...
Idle Airflow Operation
General Operation
The PCM calculates the IAC position based on a number of Airflow calculations and estimations, the final idle airflow value consists of the following two main components:
- Base Idle Airflow (Base + LTIT)
- Adaptive Airflow correction (STIT)
LTIT = Long Term Idle Trim
STIT = Short Term Idle Trim
Note: i just made these names up cos they are easier to understand than proportional blah blah, integrator slow filtered idle airflow...
The first thing to realise is that the PCM only runs the adaptive idle control routines when at idle conditions (below certain TPS and MPH limits). However, the base airflow routine is controlling the IAC position during all driving conditions (things you are aware of already, such as the Throttle Cracker, and if you set your Base Running Airflow values too high you get cruise control etc.)
Base Idle Airflow
The Base Idle Airflow is combination of looked up values from various tables within the PCM and also incorporates a Long Term Idle Trim (LTIT) correction. This airflow directly controls the IAC position when at non-idle and is the "starting point" for adaptive idle control. The base airflow consists of the sum of the following individual components:
Base Running Airflow
- this is the main Idle Airflow when in PN (A4 only) or Gear (A4 or M6)
- a table vs ECT
Startup Airflow
- additional airflow during engine startup and initial run period (decays to zero in the first few seconds of engine operation)
- a table and a few delays and decay rates
Startup Spark Retard Airflow
- airflow correction to account for startup spark retard (if used)
Fans On Airflow
- Additional airflow to account for increased engine load during cooling fan operation
- Two values depedending if one fan active or both active.
DFCO Airflow
- used to set IAC position during DFCO
Throttle Cracker Airflow
- additional airflow to open the IAC based on MPH and RPM
- zero duing idle conditions
- a table
Throttle Follower Airflow
- controls rate of closing the IAC valve during throttle closure
- zero during idle conditions
- a few tables of initial value and decay rates
Long Term Idle Trim Airflow (LTIT)
- a slow moving correction based on the adaptive idle routines (think LTFT's for fuel)
- the idea of this correction is to bring the Short Term Idle Trims (STIT) to zero
- it has +ve and -ve limits
- a calculated value
AC Airflow
- airflow correction for when the AC is on, this is a torque based calculation that estimates how much torque the AC is pulling and calculates an airflow correction to compensate.
IAC Park Airflow
- airflow used to calculate IAC position when ignition is off and engine not running
- used in place of all of the ablove
- a table
The combination of all these components is what i call the Base Idle Airflow in grams/sec.
Adaptive Idle Control
The whole point of the idle control routines is to maintain the desired Idle RPM. The PCM therefore needs to "close the loop" and use the Idle RPM error as a feedback to provide this control. The monitoring of the Idle RPM results in a Short Term Idle Trim (STIT) that provides the fast moving closed loop control of the IAC valve. Again here it is very analagous to the STFT's and feedback from the O2 sensors. Thats why i chose these names rather than the normal Proportional, Integral, Derivate stuff that makes most peoples head spin...
Okay, so the PCM has a Desired Idle RPM it is trying to achieve and it is constantly measuring the current RPM and calculating an Idle RPM error value. The PCM uses various agressive and not so agressive algorithms to control the STIT, to provide fast convergence (and also stall saver capability) but also reasonable idle stability.
During all this, the PCM is maintaining a fairly complex state machine of are we at idle, is the engine transitioning back to idle, etc. The PCM does remember a few different last known state of the STIT, such as when you turn the AC on the PCM stops updating the "ACoff STIT" and starts updating the "ACon STIT" (again here think Fuel Trim cells). The idea of this is that when you turn the AC off the PCM can quickly return to the original IAC operating point. For A4 vehicles you also have the PN/Gear dimension as well.
A good example of the STIT in action is if you have an M6, you have your foot on the brake and you partially let the clutch out and you feel the engine pull harder to try and maintain the desired idle RPM. If you were logging the IAC steps or the desired idle airflow you would see it increase. Very soon with our scanner you will be able to log the LTIT and STITs directly and see them correcting. Monitoring the LTIT and STIT is a very good tool to get your Base Running Airflow values correct, ensuring your LTITs are not maxing out on the limits and troubeshooting PN/Gear and Fan On/Off stumble etc. especially after head/cam install.
Desired Idle Airflow
So the net result, is that the PCM takes the Base Idle Airflow (including LTIT) and then adds the STIT to come up with a final Desired Idle Airflow (which generally is available as a PID for logging). Then there is a final step that takes this airflow value and translates it to the actual IAC valve position or the ETC TPS position. Maybe more on this later, but it's basically just a units transformation for the most part and the IAC and the ETC have their own control routines and state machines that effectively take this idle airflow as an input.
What else?
In addition to the Idle Airflow routines the PCM also has an RPM based idle spark correction "closed loop" operation that it uses to control the idle RPM. Since the spark advance can move much faster than the IAC, it can provide very fine control of idle speed. When logging you will see this as a jagged spark advance chart, most noticable with cams at lower idle RPMs where the spark advance generally oscillates between it's min/max allowed values as the engine "cams" at idle.
END.
#3
gameover - have you been able to compare ETC calibrations with nonETC calibrations?? Do you see differences in how the "IAC Park" and "IAC reset" with the ETC and nonETC calibrations? TIA.
joel
joel
#4
TECH Enthusiast
iTrader: (12)
Join Date: Mar 2002
Location: w.s.n.c.
Posts: 539
Likes: 0
Received 0 Likes
on
0 Posts
gameover. Nice writeup and good info. To pick up on Joel's question, think you might find some time to look at the differences between cable and fly by wire? One difference that is important to your C5 customers is the IAC Park table and how it relates.
Joe
Joe
#6
We need part 2. I don't mean to be picky, but there are massive gaps in that info that I have been trying to get filled. But nobody has stepped up with the goods yet. Anybody? Please?
Trending Topics
#11
Yeah, right...nothing new. This board has been dead lately. Must be the holidays or something. I thought for sure my thread on eliminating surging and bucking would have gotten some interest. But it's a "floater" just like the rest of these.
#12
FormerVendor
Thread Starter
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 525
Likes: 0
Received 0 Likes
on
0 Posts
okay so here's some extra info re ETC. I'm just adding all this stuff to our editor at the moment so its a good time to write this down...
Let's pickup at the "Desired Idle airflow part, which is the final "airflow" value the idle control routines deliver to set either the IAC motor position or the ETC position.
After the "Desired Idle Airflow" is calculted , it is then translated into an "Effective area" value in square millimeters (mm2). This is the cross sectional area required to deliver the airflow desired (taking into account air density and pressure ratio across the throttle/IAC). Now at this point the calculation branches to either IAC or ETC.
If IAC is installed the "Effective Area" is translated into a number of "steps" that delivers this area (a table of IAC Steps vs. Effective Area).
If ETC is installed then there is a single value that translates "Effective Area" into "Desired throttle area percent" units of % area per mm2. This number is then handed over to the ETC routines that control the ETC TPS %.
The ETC logic is quite simple in that it has two main inputs the Accelerator Pedal Position (APP%) and the "Desired throttle area percent" (IAC%). In the ETC code there is a maximum value that the IAC% is clipped at as a safety check (mostly on the throttle cracker), but the Throttle Cracker, Follower, Adaptive and various compensation routines are all the same tables (ie. the ETC code has nothing extra).
Now, the ETC looks at the APP% and checks if it is 0. If it is not 0 then the commanded ETC position is a direct function of the APP%+IAC% (accounting for throttle cracker). If it is zero then the ETC position is controlled via the IAC% (as you would expect).
Once this ETCDesiredThrottleArea% has been passed thru the numerous limiter functions (ETC RPMlimiters, MPH limiter, TorqueMangement etc.) the final ETC Rotation% is calculated via a simple transfer function of ETC Rotation% vs DesiredThrottleArea%.
There are maximum slew rates, minimum position checks and a few other bits n peices here as well, but in terms of idle nothing else comes into it.
Unless you have modified your ETC in anyway, there whould be no reason to change the ETC% vs EffectiveArea scaler or anything else there as far as i can see.
Hope that helps,
Chris...
Let's pickup at the "Desired Idle airflow part, which is the final "airflow" value the idle control routines deliver to set either the IAC motor position or the ETC position.
After the "Desired Idle Airflow" is calculted , it is then translated into an "Effective area" value in square millimeters (mm2). This is the cross sectional area required to deliver the airflow desired (taking into account air density and pressure ratio across the throttle/IAC). Now at this point the calculation branches to either IAC or ETC.
If IAC is installed the "Effective Area" is translated into a number of "steps" that delivers this area (a table of IAC Steps vs. Effective Area).
If ETC is installed then there is a single value that translates "Effective Area" into "Desired throttle area percent" units of % area per mm2. This number is then handed over to the ETC routines that control the ETC TPS %.
The ETC logic is quite simple in that it has two main inputs the Accelerator Pedal Position (APP%) and the "Desired throttle area percent" (IAC%). In the ETC code there is a maximum value that the IAC% is clipped at as a safety check (mostly on the throttle cracker), but the Throttle Cracker, Follower, Adaptive and various compensation routines are all the same tables (ie. the ETC code has nothing extra).
Now, the ETC looks at the APP% and checks if it is 0. If it is not 0 then the commanded ETC position is a direct function of the APP%+IAC% (accounting for throttle cracker). If it is zero then the ETC position is controlled via the IAC% (as you would expect).
Once this ETCDesiredThrottleArea% has been passed thru the numerous limiter functions (ETC RPMlimiters, MPH limiter, TorqueMangement etc.) the final ETC Rotation% is calculated via a simple transfer function of ETC Rotation% vs DesiredThrottleArea%.
There are maximum slew rates, minimum position checks and a few other bits n peices here as well, but in terms of idle nothing else comes into it.
Unless you have modified your ETC in anyway, there whould be no reason to change the ETC% vs EffectiveArea scaler or anything else there as far as i can see.
Hope that helps,
Chris...
#14
Thanks gameover!!!!! It's going to take me awhile to get thru this - but I'll survive
I've installed a 90mm TB - how does that effect the "Effective Area" and "Desired Throttle Area Percent"?
It seems like with a 90mm blade the true "Effective Area" would be larger than stock - but the ETC doesn't know this - would it "learn" this value downwards to compensate for the additional TB (true/actual 90mm) Area?
Thanks,again. Big help!!
I've installed a 90mm TB - how does that effect the "Effective Area" and "Desired Throttle Area Percent"?
It seems like with a 90mm blade the true "Effective Area" would be larger than stock - but the ETC doesn't know this - would it "learn" this value downwards to compensate for the additional TB (true/actual 90mm) Area?
Thanks,again. Big help!!
#15
FormerVendor
Thread Starter
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 525
Likes: 0
Received 0 Likes
on
0 Posts
Originally Posted by Bink
Thanks gameover!!!!! It's going to take me awhile to get thru this - but I'll survive
I've installed a 90mm TB - how does that effect the "Effective Area" and "Desired Throttle Area Percent"?
It seems like with a 90mm blade the true "Effective Area" would be larger than stock - but the ETC doesn't know this - would it "learn" this value downwards to compensate for the additional TB (true/actual 90mm) Area?
Thanks,again. Big help!!
I've installed a 90mm TB - how does that effect the "Effective Area" and "Desired Throttle Area Percent"?
It seems like with a 90mm blade the true "Effective Area" would be larger than stock - but the ETC doesn't know this - would it "learn" this value downwards to compensate for the additional TB (true/actual 90mm) Area?
Thanks,again. Big help!!
I'll be adding these things to our scanner real soon to assist folks tuning idle.
The Idle routines are a full Proportional, Integral, Derivative controller hence it's not real easy to describe in laymans terms...
Chris...
#16
Okay, now I get it. Makes sense of what I've seen - old 78mm TB RAF was 11.0+ ( 80*C and above) and now with 90 mm TB it's 10.6.
With the ETC and a Nick Williams-90 mmTB "Idle Relearn" is a Must with each flash - at least that's my experience.
Nick's 90mmTB is a work of art. My IAC Park values and Throttle Followers are all stock !! Functionally it is a masterpiece - my hat's off to Nick!!
I guess this makes sense in terms of functions, slopes, integrals and derivatives. Are we talking Calculus here??
With the ETC and a Nick Williams-90 mmTB "Idle Relearn" is a Must with each flash - at least that's my experience.
Nick's 90mmTB is a work of art. My IAC Park values and Throttle Followers are all stock !! Functionally it is a masterpiece - my hat's off to Nick!!
The Idle routines are a full Proportional, Integral, Derivative controller hence it's not real easy to describe in laymans terms...
#17
So basically, there is a conversion for g/sec to IAC counts, yes? Because it makes no sense to me that Running Airflow would be the same no matter what you drill your throttle body to, or how you change your set screw. Because making those changes instead of changing Running Airflow works. So is there some conversion, so you can log your actual IAC counts and correct your Running Airflow table? Or is there some variable we cannot change yet, like Airflow vs. Actual IAC Position?
#18
10 Second Club
iTrader: (4)
Join Date: Feb 2004
Location: Marysville, WA
Posts: 9,448
Likes: 0
Received 0 Likes
on
0 Posts
Chris,
My car has a problem when it's moving. The idle stays up above 1500 rpm at any speed above 5mph. Kinda like an unwanted cruise control, it rolls along at 35mph with my foot off the gas. Even if I put in in neutral it stays at 1500 until I get back down to 5mph. Then it drops to 800 where I have the idle set.
I read thru this thread & others, & looked at my tune vs stock & jimmyblue's & horist's, but I just don't see where the problem is. Any ideas where to look? The Base Running Airflow table is at stock values. I assume it's from something the folks at Predator changed (or didn't) for my Hot Cam to make the car idle. And I originally drilled the TB & raised the idle screw to make it idle, but returned the idle screw to stock after getting the tune.
Mark
Good thread BTW. I think I'll paste this into my tuning tips Word document.
My car has a problem when it's moving. The idle stays up above 1500 rpm at any speed above 5mph. Kinda like an unwanted cruise control, it rolls along at 35mph with my foot off the gas. Even if I put in in neutral it stays at 1500 until I get back down to 5mph. Then it drops to 800 where I have the idle set.
I read thru this thread & others, & looked at my tune vs stock & jimmyblue's & horist's, but I just don't see where the problem is. Any ideas where to look? The Base Running Airflow table is at stock values. I assume it's from something the folks at Predator changed (or didn't) for my Hot Cam to make the car idle. And I originally drilled the TB & raised the idle screw to make it idle, but returned the idle screw to stock after getting the tune.
Mark
Good thread BTW. I think I'll paste this into my tuning tips Word document.
#20
Originally Posted by Another_User
So basically, there is a conversion for g/sec to IAC counts, yes? Because it makes no sense to me that Running Airflow would be the same no matter what you drill your throttle body to, or how you change your set screw. Because making those changes instead of changing Running Airflow works. So is there some conversion, so you can log your actual IAC counts and correct your Running Airflow table? Or is there some variable we cannot change yet, like Airflow vs. Actual IAC Position?
Good question........gameover???