Closed loop IAC control: Documentation

This is a forum for discussing the development and testing of alpha MS2/Extra code. Documentation
(Runs on MS2 and Microsquirt)

Moderators: jsmcortina, muythaibxr

Post Reply
Philip Lochner
Super MS/Extra'er
Posts: 1004
Joined: Thu Feb 16, 2006 6:18 am
Location: George, South Africa

Closed loop IAC control: Documentation

Post by Philip Lochner »

Last update of this page: 8 Nov 09

I'll try and keep this first page current (by editing this particular post) with input from all who would be willing to do so. I've taken verified info from http://www.msextra.com/viewtopic.php?f=91&t=28500 and have added my own as I understand it - subject to verification by Ken , James etc. Credit still goes to Ken and James.

IMPORTANT:
1) This page is relevant to the 2.1.0 beta 20090201 FW, subsequent beta releases and the current 2.1.0 Release Code.
2) IAC operation has been changed from B&G FW and previous releases of Extra FW and now closes with smaller numbers and opens with larger numbers
3) Using the "Advanced / Idle valve test" feature may help in determining the following PID parameters:
(Anyone that has played with this Idle valve test please let us know how this really works)
- That your IAC is correctly wired
- Idle open steps
- Idle valve closed steps
- RPM with valve open
- RPM with valve closed
4) Ensure that the VE table is tuned such that, if anything, the engine will idle somewhat rich (not overly rich either - but certainly not leanish) in order to tune closed loop idle - particularly at MAP values LOWER than typical idle MAP. You can always lean it out again once closed loop performs as desired.
5) Same as with AFRs in #4 also ensure that your timing will be very stable by having a flat timing curve. Again, idle timing can be modified later IF needed.
6) IAT's play a big role at idle, so its important that either the MAT correction factor or the MAT correction table is also tuned fairly well before attempting closed loop idle.
7) PID control is synonomous with "closed loop control".
8 ) to be verified means that Ken or James or other boffins should please indicate the correctness or not of the following description

Conditions for closed loop control to activate
Closed loop control will commence if:

(TPS < idle activation TPS threshold) AND
( (RPM < Target RPM + idle activation RPM adder) OR ( (RPMdot < RPMdot threshold) AND (Load > PID lockout max decel load) )


DEFINITIONS of terms relating to IAC and closed loop control

Start Value
This menu item is found under Startup/Idle - Idle control
This Extra fw works differently from previous Extra and B&G fw in the sense that now the IAC will CLOSE first (to establish the fully closed reference point) and then open when MS is powered up. This value specifies the number of steps that IAC will first close with and will then open to the position specified as per IAC idle cranking steps. This value therefore needs to be large enough to ensure that IAC will always fully close first before opening.

Time step size (ms)
The time allowed for 1 step of IAC to be executed. Values between 2 and 4 ms are typical. Smaller values will make IAC move faster over multiple steps.

Idle open steps
The no of steps IAC has to move to be fully open from the fully closed position. However, since there may come a point where opening IAC more (from its fully closed position) using a higher value may have no tangible effect on the engine. This may also be a value that you never want the IAC to go to, ever. i.e. if 160 in worst case causes 4000 rpm, you probably do not want it to even consider going there and you would use a substantially lower value for Idle open steps.

Idle valve closed steps
The no of steps when IAC is “fully closed” – not necessarily physically closed. This value will typically be 0 or close to 0. Please note that this position does not HAVE to be absolutely physically fully closed but can be the most closed position you want IAC ever to be at, thus still allowing a minimum amount of idle air (in those instances where the butterfly is fully closed for TPS=0%.)

Idle activation RPM adder
PID idle control will commence as soon as rpm < target rpm + “Idle activation RPM adder” provided all other conditions for PID control are met.

Idle activation TPS threshold
PID idle control will commence as soon as TPS < “Idle activation TPS threshold” provided all other conditions for PID control are met.

Dashpot adder (steps)
Every time closed loop control commences, it will first put IAC in the last known good IAC position + Dashpot adder and then closed loop control will start from there. Dash pot adder is the number of steps is the number of steps that you want to add to the last known good IAC position every time PID control commences. This means the greater Dashpot adder, the more open teh position of the IAC valave will be when closed loop commences, the more air will be available to the engine when closed loop commences. This ensures that the idle speed approaches the target rpm from above instead of below which can help with stalling when PID control re-engages.

Close delay
It's the amount of time after you go over the target+rpm_adder value with open throttle that it'll try to take to close the valve. It makes the valve close slowly instead of as fast as it can.

PID control interval
PID control interval is the number of milliseconds between each iteration of the PID code. Keep in mind for IAC motors, this value is overruled by "IAC_moving". Meaning if the IAC motor is moving, the PID code won't run again until it stops moving. The lower this value the quicker PID will respond, going too low may actually cause instability.

PID lockout rpmDot threshold
This parameter serves to identify a “stable” rpm condition that would make it suitable for PID control to commence in the unlikely event that closed loop control is not activated by the normal closed loop conditions (TPS, MAP & RPM). It should really be quite the exception for closed loop to be activated via this mechanism.

Values can range from 0 – 1000. PID control will only commence when rpmDot is LESS than this value provided all other conditions for PID control has been met. It really only uses this parameter if idle RPM somehow gets stuck above the rpm+adder value. This is a kind of "back door" into PID control even though rpm, map and tps conditions dont allow PID to commence.

The rpmDot value should be set as low as possible. Setting it too low will disable this feature. Basically, if the current MAP is above the lockout value, and RPMdot is below the set value, PID will be forced. It is essential that you set the RPMdot number to the lowest one that works so the code has a chance of discerning a very slow decel from RPM jitter.

The RPMdot value should be set slightly above observed jitter, while the MAP value should be set slightly lower than your usual idle MAP. It helps a lot if you set the TPS threshold as low as possible as well.

This will ensure that the code doesn't engage PID idle on overrun situations where the deceleration is slow but definite, but does engage the PID code in situations where you're off the throttle not moving waiting for PID to engage.
[EDIT] Philip: Its not straightforward to determine a typical rpmdot but I ran a log as my car idled and calculated rpmdot from log entry to log entry with excel and found a figure of 400rpm/s. My closed loop was getting stuck but now and with a figure of 450 it now no longer gets stuck. Higher RPM lag factors may increase rpmdot and lower rpm lag factors may reduce the rpmdot figures.

PID disable RPMdot (Only for code versions 2.1.1 onwards)
if( RPMdot > PID_disable_RPMdot) PID control is cancelled but only in the rpm rising direction (ie RPMdot must be positive), so PID won't disable when you turn on the AC.

PID lockout max decel load
This parameter serves to avoid PID intervention under overrun conditions. When the engine load (MAP in case of speed density) is LESS than this value PID control will be DISabled and will be enabled provided engine load is MORE than this value provided all other conditions for PID control has been met. Eg, engine idles at 30kpa normally, overrun generates around 15kpa. With a value of 25kpa, PID control will only commence once MAP is greater than 25kpa provided all other conditions for PID control has been met.

Min steps for PID(steps)
It's the minimum (most closed) position the PID algorithm will command. It should be >= the valve closed value. The closer together you put the upper and lower limits for open position and closed position, the less sensitive the PID loop will be. Try to determine and use realistic values here.

RPM with valve closed
“Closed” here refers to the idle speed at the most closed position to be used – not when the idle valve is physically fully closed. It's the idle speed at whatever you set for the "Idle valve closed steps" on IAC. The closer together you put the upper and lower limits for open position and closed position, the less sensitive the PID loop will be. Try to determine and use realistic values here.

RPM with valve Open
The idle speed at the most open position of the idle valve to be used. It's the idle speed at whatever you set for the "Idle open steps" on the IAC.

PID delay (sec)
The amount of time that must elapse before PID control will commence after all other conditions for PID control has been met. Typically you would not want PID to commence during gear changes. This figure should therefore be longer than a typical leisurely gear change.

Crank to run taper (sec)
The time taken to commence PID control once rpm > crank rpm.

PID ramp to target time (sec)
This is the "cushion" feature. Basically, when you let off the throttle, and the engine settles to a certain RPM based on the last position of the valve + the dashpot adder, the code makes the target whatever RPM you're currently at, then over "PID ramp to target time" seconds, it slowly ramps down to your target. This feature can (and should) be used to minimize the speed at which RPM changes after lifting the throttle and PID is engaged so that a higher value for "P" can be used (for catching sudden changes in RPM during load increases and decreases). 3-5 seconds is recommended. The longer you give it to ramp to target, the higher you should be able to set your P term, and the better the loop will be at catching sudden load increases.

PID control interval
PID control interval is the number of milliseconds between each iteration of the PID code. Typical values 50 – 200ms. Eg, 200ms means the PID loop will execute 5 times per second. The smaller this value the quicker the PID control will be. 100ms will execute 10 times per second. Keep in mind for IAC motors, this value is overruled by "IAC_moving". Meaning if the IAC motor is moving, the PID code won't run again until it stops moving.

Proportional Gain (%)
The Proportional gain factor in the PID equation. Values can range from 0 – 200. Typical values will differ from car to car. With both Intergal gain and Derivative gain = 0, this value will determine the rpm by which the desired idle speed will hunt around. Smaller values will cause the desired idle speed to be reached slowly, but the hunting range will be smaller. Larger values will cause the desired idle speed to be reach quicker but the range over which idle will hunt will be larger.

Unless the RPM changes, P will not do anything. Setting I and D to 0 and setting P to a value will almost certainly never converge on your target, or even get you close.

Integral gain (%)
The Integral gain factor in the PID equation. With integral gain = 0 the target idle speed may never be reached. Values can range from 0 – 200. This value will determine if the actual target speed will be reached. The larger this value the quicker the target rpm will be reached and the more accurately the target speed will be tracked but can also cause instability if too large.

Derivative Gain (%)
The Derivative gain factor in the PID equation. Values can range from 0 - 200. It actually dampens response a bit. So if you're quickly approaching the target, having a high D term will slow down the action of the valve that's causing it to approach the target depending on how quickly you're approaching.

Suggested tuning of the PID values: (as suggested by Ken )
Start out with the I term. At steady state, increase I until the engine starts oscillating around the target. Then reduce I until the idle is stable again.

Then set P to an intermediate value (50 for example) and suddenly increase/decrease load on the engine and increase/decrease P until the response to the increase/decrease in load is quick without overshooting. I never set D to anything other than 0. D tends to dampen the other two, and in idle-speed control nothing is changing fast enough to really need dampening.
Last edited by Philip Lochner on Sun Nov 08, 2009 3:52 am, edited 35 times in total.
Kind regards
Philip
'74 Jensen Interceptor 440ci (EFI'ed with MS2 and wasted spark + GM 4L60e GPIO controlled - both on Extra FW)
evo828
Helpful MS/Extra'er
Posts: 98
Joined: Tue Oct 21, 2008 7:49 am
Location: Slovakia

Re: Closed loop IAC control: Documentation

Post by evo828 »

Phil - thanks - very usefull write-up (I've been following your earlier "guide" you posted somewhere else - and it worked fine as well).

Seems that I will have to try the other (spare) IAC motor that I have for my V8 - the one that I am currently using is loosing steps (although it wasn't apparent when using the OEM ECU).
1998 Landrover Discovery I V8 3.9, MSII/E ver RC 2.1.0 20090505; EDIS8; wideband LC-1
evo828
Helpful MS/Extra'er
Posts: 98
Joined: Tue Oct 21, 2008 7:49 am
Location: Slovakia

Re: Closed loop IAC control: Documentation

Post by evo828 »

Phil - one additional items is there (but not in your list): PID delay - default is 5s - what is it?
1998 Landrover Discovery I V8 3.9, MSII/E ver RC 2.1.0 20090505; EDIS8; wideband LC-1
Philip Lochner
Super MS/Extra'er
Posts: 1004
Joined: Thu Feb 16, 2006 6:18 am
Location: George, South Africa

Re: Closed loop IAC control: Documentation

Post by Philip Lochner »

evo828 wrote:Phil - one additional items is there (but not in your list): PID delay - default is 5s - what is it?
The amount of time that must elapse before PID control will commence after all other conditions for PID control has been met. List updated.
Kind regards
Philip
'74 Jensen Interceptor 440ci (EFI'ed with MS2 and wasted spark + GM 4L60e GPIO controlled - both on Extra FW)
Red_Baron
Experienced MS/Extra'er
Posts: 328
Joined: Wed Mar 05, 2008 2:05 am

Re: Closed loop IAC control: Documentation

Post by Red_Baron »

min steps for PID I think is wrong. I thkn it means...


minimum position the valve can be in when controlled by the PID algorithm

So Open value may be 80, closed may be 0, but min steps for pid will be 10, which is your lowest RPM before stall, even though the valve is closed at 0, not 10.

RB
muythaibxr
Site Admin
Posts: 8230
Joined: Thu Oct 14, 2004 12:48 pm

Re: Closed loop IAC control: Documentation

Post by muythaibxr »

Red_Baron wrote:min steps for PID I think is wrong. I thkn it means...


minimum position the valve can be in when controlled by the PID algorithm

So Open value may be 80, closed may be 0, but min steps for pid will be 10, which is your lowest RPM before stall, even though the valve is closed at 0, not 10.

RB
It's the minimum position the PID algorithm will command. It should be >= the valve closed value.

Ken
evo828
Helpful MS/Extra'er
Posts: 98
Joined: Tue Oct 21, 2008 7:49 am
Location: Slovakia

Re: Closed loop IAC control: Documentation

Post by evo828 »

:shock: I always thought that Min steps for PID(steps) is by how much the stepper will move as minimal number of steps for a particular "move".

Hmmmm still learning - so my value (2) is wrong :(
1998 Landrover Discovery I V8 3.9, MSII/E ver RC 2.1.0 20090505; EDIS8; wideband LC-1
muythaibxr
Site Admin
Posts: 8230
Joined: Thu Oct 14, 2004 12:48 pm

Re: Closed loop IAC control: Documentation

Post by muythaibxr »

Philip Lochner wrote: RPM with valve closed (to be verified)
“Closed” here refers to the idle speed at the most closed position to be used – not when the idle valve is physically fully closed.
It's the idle speed at whatever you set for the "closed steps" on IAC.
RPM with valve Open (to be verified)
The idle speed at the most open position of the idle valve to be used.
It's the idle speed at whatever you set for the "open steps" on the IAC.
Crank to run taper (sec) (to be verified)
The time taken to commence PID control once rpm > crank rpm.
Correct. Taper is probably not a good way of referring to it but that's what it does.
PID ramp to target time (sec) (to be verified)
Input required please!!
This is the "cushion" feature. Basically, when you let off the throttle, and the engine settles to a certain RPM based on the last position of the valve + the dashpot adder, the code makes the target whatever RPM you're currently at, then over "PID ramp to target time" seconds, it slowly ramps down to your target. This feature can (and should) be used to minimize the speed at which RPM changes after lifting the throttle and PID is engaged so that a higher value for "P" can be used (for catching sudden changes in RPM during load increases and decreases).
Proportional Gain (%) (to be verified)
The Proportional gain factor in the PID equation. Values can range from 0 – 255 ??.
0-200.
Typical values will differ from car to car. With both Intergal gain and Derivative gain = 0, this value will determine the rpm by which the desired idle speed will hunt around. Smaller values will cause the desired idle speed to be reached slowly, but the hunting range will be smaller. Larger values will cause the desired idle speed to be reach quicker but the range over which idle will hunt will be larger.
Actually, with the math I'm using, unless the RPM changes, P will not do anything. Setting I and D to 0 and setting P to a value will almost certainly never converge on your target, or even get you close.
Integral gain (%) (to be verified)
The Integral gain factor in the PID equation. With integral gain = 0 the target idle speed may never be reached. Values can range from 0 – 255???. This value will determine if the actual target speed will be reached. The larger this value the quicker the target rpm will be reached but can also cause instability if too large.
Values range from 0 to 200.
Derivative Gain (%)(to be verified)
The Derivative gain factor in the PID equation. Any value > 0 of this factor will increase the responsiveness of the control loop but is most likely to cause instability if too large.
I don't know if I'd say this increases the responsiveness. It actually dampens response a bit. So if you're quickly approaching the target, having a high D term will slow down the action of the valve that's causing it to approach the target depending on how quickly you're approaching.

The D term is more useful in boost control for example. When the boost shoots up, the D term will cause the wastegate to open based on the rate at which the boost is shooting up. I typically don't use any D term for idle speed control.
Suggested tuning of the PID values: (based on my purely theoretical ?understanding? of the PID parameters)
With the engine idling (which might be a challenge initially) and warm and all possible loads switched off, start by making I and D = 0. Increase P until the engine has an idle hunting range of about 200rpm above and below the desired idle speed, say between 800 and 1200rpm if idle speed is 1000.

Then increase I as much as possible without the idle becoming unstable. Idle control should also be stable when all loads (lights + AC) are switched on (and off!) simultaneously (and when put into D or R for those with auto’s)

Now its time to increase D to try and make the PID control as “tight”/quick as possible. Gradually increase this value but after each increase, experiment by switching on loads (AC or engaging D / R is perhaps best if available) to ensure that the control does not become unstable.

Now its time to drive the car and to exit from and re-enter PID control. I'll need to do this myself before adding more info here.

I actually tune a bit differently. I start out with the I term. At steady state, I increase I until the engine starts oscillating around the target. Then I reduce it until the idle is stable again.

Then I set P to an intermediate value (50 for example) and suddenly increase/decrease load on the engine and increase/decrease P until the response to the increase/decrease in load is quick without overshooting. I never set D to anything other than 0. D tends to dampen the other two, and in idle-speed control nothing is changing fast enough to really need dampening.

Ken
Philip Lochner
Super MS/Extra'er
Posts: 1004
Joined: Thu Feb 16, 2006 6:18 am
Location: George, South Africa

Re: Closed loop IAC control: Documentation

Post by Philip Lochner »

Thanks for the input Ken. List updated
muythaibxr wrote: Correct. Taper is probably not a good way of referring to it but that's what it does.
How about using "transition" rather than "taper"?
Kind regards
Philip
'74 Jensen Interceptor 440ci (EFI'ed with MS2 and wasted spark + GM 4L60e GPIO controlled - both on Extra FW)
Tjabo
Master MS/Extra'er
Posts: 846
Joined: Sat Nov 05, 2005 7:36 pm

Re: Closed loop IAC control: Documentation

Post by Tjabo »

First of all, thank you to Philip for compiling this stuff, it really made it possible for me to get my IAC control working!
muythaibxr wrote:
RPM with valve Open (to be verified)
The idle speed at the most open position of the idle valve to be used.
It's the idle speed at whatever you set for the "open steps" on the IAC.
Ken,

Regarding the above, since the RPM in this field is limited to 2,000, I take it I need to figure out an approximate step number that will put me at 2,000 RPMs in some conditions, and input that value as the "open valve" value, huh? This is going to be a VERY different value than what I would think of as my open valve position.

Thanks for putting together some more great code Ken!

Thad
--'98 Dodge Neon ACR Turbo - MS3 beta test car - Sold
--'97 BMW 540i/6spd - Single Front/Top Mount Turbo 550+ HP - MS3+MS3X V3.0 - Sold but ripping in Vegas
--'97 BMW 328i 5.3 L33/TH400 Swapped drift car - MS3+MS3X V3.0 Full Sequential - Turbos And Radiator In the Trunk 9.6@144 on a 1.55 60ft
muythaibxr
Site Admin
Posts: 8230
Joined: Thu Oct 14, 2004 12:48 pm

Re: Closed loop IAC control: Documentation

Post by muythaibxr »

Tjabo wrote:First of all, thank you to Philip for compiling this stuff, it really made it possible for me to get my IAC control working!
muythaibxr wrote:
RPM with valve Open (to be verified)
The idle speed at the most open position of the idle valve to be used.
It's the idle speed at whatever you set for the "open steps" on the IAC.
Ken,

Regarding the above, since the RPM in this field is limited to 2,000, I take it I need to figure out an approximate step number that will put me at 2,000 RPMs in some conditions, and input that value as the "open valve" value, huh? This is going to be a VERY different value than what I would think of as my open valve position.

Thanks for putting together some more great code Ken!

Thad
Actually, the upper value doesn't matter as much as the lower value. The main thing making it higher than 2000 will do is make the loop sensitivity more controllable. I'm making it 4000 for the next beta.

Ken
Tjabo
Master MS/Extra'er
Posts: 846
Joined: Sat Nov 05, 2005 7:36 pm

Re: Closed loop IAC control: Documentation

Post by Tjabo »

Sounds good!
--'98 Dodge Neon ACR Turbo - MS3 beta test car - Sold
--'97 BMW 540i/6spd - Single Front/Top Mount Turbo 550+ HP - MS3+MS3X V3.0 - Sold but ripping in Vegas
--'97 BMW 328i 5.3 L33/TH400 Swapped drift car - MS3+MS3X V3.0 Full Sequential - Turbos And Radiator In the Trunk 9.6@144 on a 1.55 60ft
muythaibxr
Site Admin
Posts: 8230
Joined: Thu Oct 14, 2004 12:48 pm

Re: Closed loop IAC control: Documentation

Post by muythaibxr »

Also something to keep in mind:

The closer together you put the upper and lower limits for open position and closed position, the less sensitive the PID loop will be.

Ken
Tjabo
Master MS/Extra'er
Posts: 846
Joined: Sat Nov 05, 2005 7:36 pm

Re: Closed loop IAC control: Documentation

Post by Tjabo »

I think I know the answer to this question Ken, but it would be nice to have verification:

Right now my open valve setting causes an actual idle speed of more than 2,000 RPMs. Until you change the code to allow for 4,000 RPMs, I think I'm better off to try to enter an open valve setting that is low enough to be in the range of 2,000 RPMs rather than leave a higher step number in there that doesn't actually correlate to 2,000 RPMs. . . True?

Thanks!

Thad
--'98 Dodge Neon ACR Turbo - MS3 beta test car - Sold
--'97 BMW 540i/6spd - Single Front/Top Mount Turbo 550+ HP - MS3+MS3X V3.0 - Sold but ripping in Vegas
--'97 BMW 328i 5.3 L33/TH400 Swapped drift car - MS3+MS3X V3.0 Full Sequential - Turbos And Radiator In the Trunk 9.6@144 on a 1.55 60ft
SantosRacing
MS/Extra Newbie
Posts: 28
Joined: Tue Apr 22, 2008 6:45 am
Location: Kitchener, ON

Re: Closed loop IAC control: Documentation

Post by SantosRacing »

Thank you for the great information. I have just a quick question, on start up is the IAC supposed to go to fully closed or fully open?

I tried it out of the car and depending which way I wired it, it can go one way or the other depending how it's wired. Last time I tried using it (before Closed Loop, warmup only) it was wired so that it would fully opened on start up then closed to the cranking rpm and it would go from there, just want to confirm if I should leave it wired as it is or change it to go fully closed on start up to get the correct response from the values entered in the Closed Loop.
1996 Dodge Neon ACR with SRT-4 2.4L Turbo 5speed W/Quaife LSD, 1000cc Injectors. MS2 V3.0 w/Ignition & Boost Control, MapDaddy (stock ECU removed)
Red_Baron
Experienced MS/Extra'er
Posts: 328
Joined: Wed Mar 05, 2008 2:05 am

Re: Closed loop IAC control: Documentation

Post by Red_Baron »

You don't wire it to go fully open at start or fully closed, really, it is *REQUIRED* for this code that the valve fully closes (no air, low rpm) on startup and then moves open to the cranking position.

RB
Tjabo
Master MS/Extra'er
Posts: 846
Joined: Sat Nov 05, 2005 7:36 pm

Re: Closed loop IAC control: Documentation

Post by Tjabo »

And I'd add that despite my expectation of this not working out ideally, it really is working great for starts, at least in closed loop always on mode.

Thad
--'98 Dodge Neon ACR Turbo - MS3 beta test car - Sold
--'97 BMW 540i/6spd - Single Front/Top Mount Turbo 550+ HP - MS3+MS3X V3.0 - Sold but ripping in Vegas
--'97 BMW 328i 5.3 L33/TH400 Swapped drift car - MS3+MS3X V3.0 Full Sequential - Turbos And Radiator In the Trunk 9.6@144 on a 1.55 60ft
muythaibxr
Site Admin
Posts: 8230
Joined: Thu Oct 14, 2004 12:48 pm

Re: Closed loop IAC control: Documentation

Post by muythaibxr »

Tjabo wrote:I think I know the answer to this question Ken, but it would be nice to have verification:

Right now my open valve setting causes an actual idle speed of more than 2,000 RPMs. Until you change the code to allow for 4,000 RPMs, I think I'm better off to try to enter an open valve setting that is low enough to be in the range of 2,000 RPMs rather than leave a higher step number in there that doesn't actually correlate to 2,000 RPMs. . . True?

Thanks!

Thad
That *should* allow for you to set higher P, I, and D variables.

Ken
muythaibxr
Site Admin
Posts: 8230
Joined: Thu Oct 14, 2004 12:48 pm

Re: Closed loop IAC control: Documentation

Post by muythaibxr »

Phil is correct on item #1 on the first post.

Ken
enginesong
MS/Extra Newbie
Posts: 30
Joined: Tue May 29, 2007 6:11 am
Location: Virginia, USA

Re: Closed loop IAC control: Documentation

Post by enginesong »

Red_Baron wrote:You don't wire it to go fully open at start or fully closed, really, it is *REQUIRED* for this code that the valve fully closes (no air, low rpm) on startup and then moves open to the cranking position.

RB
????????????
I guess I now have the same question as SantosRacing posted on Feb 15,2009, because normally it does matter which way you wire the stepper.
What Red_Baron wrote above is backwards from standard IAC movement per MS2 documentation:
"The code works as follows:

1. At startup, the motor retracts fully (wide open, fastest idle). This becomes the 0 position.
2. It then begins to close gradually with coolant temperature. "

4th paragraph down, here:
http://www.megamanual.com/ms2/IAC.htm

Also somewhat down the page here for MS2E:
http://www.msextra.com/ms2extra/MS2-Ext ... .htm#Fidle

So has something changed recently for MS2E closed loop control that sets/resets position zero of the stepper to fully closed (low rpm) versus fully open (high rpm)?

Maybe it would be clearer if I asked the question a different way: "For MS2E closed loop IAC control circa 2.1.0beta20090201, should increasing the number of steps increase idle speed or decrease idle speed?" Or, how about this: "Do you have to reverse the IAC wiring to run closed loop vs open loop on this firmware?" I am running open loop on the bench with this firmware, wired per the manuals, and it works fine - valve opens fully at startup and then closes with increasing step number as CLT increases. I would hate to think you have to switch wiring to go back and forth between open loop and closed loop IAC idle options...
'90 Supercharged Isuzu Amigo, 4ZE1 (MSII v3.0, B&G MS2 code v2.881 w/EDIS4) - on the road since April 2007.
'95 Talon TSi AWD, 4G63 (MS2E beta 2.1.0 20090327) - on the road since June 2009.
Post Reply