PDA

View Full Version : Idle drops low when coming to a stop



jangell
08-31-2019, 03:00 PM
Since I've done my 3.0L EFI conversion I've been having a persistent problem with a low idle when coming to a stop. Sometimes this stalls the car, which is loads of fun in traffic. It's more likely to happen if I stop while going up a hill, presumably due to a combination of the extra load on the engine and that I can stop more quickly on an incline.

I've just been living with this for the last few months, but I've taken a few steps to mitigate it:
- Raised my idle to 900 RPM
- Adjusted the ignition table to some pretty high values in the 700 RPM range, and higher-than-normal in the 800 range, with the "ideal" 14 degree idle at the 950 RPM range. This actually seemed to help the most. Previously I had these high values down around 500 or 600 RPM, but that wasn't enough time for it to catch up before stalling.

If my car gets below about 700 RPM it starts to run rough, and in the 500-600 range it threatens to stall. Below 500 it will probably stall. I'd like to go back to 800 RPM for idle, but I'm not sure how I'd do that.

What I really want is for the idle to seek more aggressively when it drops below about 720 RPM, but I'm not actually sure how to do that. I'm running closed loop idle, but I'm not using the PID controls right now, just the Basic slider. I also have idle advance set to for CL PID, although I"m that doesn't seem to be doing enough to actually avoid stalling. Ideally (from my point of view) the ECU would open the IAC more to catch the stall, but I don't know how to make it do that.

Attached is my current tune (which now features A/C idle up with more or less default settings, since I just got that working today). The fuel table is pretty much good (not perfect, but I'm happy enough with it), but everything in the idle range is targeted at not stalling. The IAC is working a little extra hard due to me closing the throttle plates completely at idle to try to bring down the vacuum while my oil vapor separator was missing, and I haven't gotten around to opening it back up yet. The IAC table for going into idle are also rather aggressive in another attempt to avoid low RPMs when going into idle (I do need to bring that down a bit).
61039

Also three logs from some driving today. Of course the car didn't stall at all, but the idle did drop a bit during my tests.

Log 1 is just a trip to the store. I tried to mark (by tapping space) low idle points during the drive.
61038

Log 2 is me in a parking lot simply shifting between R, N and D. The idle drops down to the 600s and sometimes lower while doing just this.
61040

Log 3 is some driving around an industrial park, trying to get it to act unusually, which didn't really work. I stopped on some inclines and couldn't get it to drop low enough to risk stalling out there either. The last 10 or so minutes of the log are me driving home.
61041

I've been concerned about this recently because my car simply stalled in the middle of the road, JUST before a light turned green, and I couldn't get it started until JUST after it went red again (the cars behind me loved that). I had to give it some gas to get it to start, and then I drove with two feet on the way home just to be sure that it didn't stall on me again (and it got close a few times). Of course I didn't have my laptop with me, so none of that is logged.

Thanks!

-- Joe

Bitsyncmaster
08-31-2019, 04:03 PM
I don't think you can have your throttle plates close completely. At least on the K-jet engines you fix the stall problem by opening the curb idle screw a little.

Your MS system has faster RPM detection than the stock idle ECU since your RPM signal comes from a tack wheel. The stock ECU needs almost a full revolution of the crank to get an RPM reading so it's reaction is pretty delayed.

I wonder what priority your MS system has set for RPM reading. Maybe the system is busy with another task and that is delaying your idle control.

FABombjoy
08-31-2019, 04:47 PM
I see you still don't have TPS :) It's tough to judge your intentions without knowing what your foot was actually doing, but based on some guessing this is what jumps out immediately:

Chief cause of the drop/stall is because you are lean in the 600 RPM column. You can see a corresponding lean spike in the logs with those low VE numbers. This probably is the biggest factor in the RPM drop & stall. You're losing RPM then you're losing fuel too. I would just copy your 740 column into your 600 column and see what happens.
...but you have a minimum target RPM of 900 but three fuel columns are lower than 900. I'd revisit those breakpoints and rescale accordingly.

Overall the VE table doesn't seem right. You're hitting 110 EGO at times which says you're running lean based on AFR target. The table is pretty bumpy in spots, but critically it's bumpy in your normal operating range. EGO should only make mild changes, it shouldn't hit the end of its authority like that. It looks like it's been autotuned with the default parameters, which won't work - you need a corrected lambda delay table before using VEAL.

As an alternative to pre-tuning VEAL, you can heavily constrain it's operation to nearly steady-state operation, but disabling ego, setting resistance to hard and putting in a filter like:
MAPdot > 1 && TPSdot > 1 && RPMdot > 1
This means it won't make changes when data is transient (filters out data with large changes to MAP/TPS/RPM)

You have idle advance RPM correction enabled but you also have a huge boost in advance at 600 RPM. Those are acting together give you up to 32 degrees of advance at 600RPM which will change the fuel needs at that range. 14 degrees of advance and 33 degrees of advance will have different "happy zones" for fueling if that makes sense :D

I would disable idle advance correction until you have idle generally stable. Then turn (and tune) correction to minimize the amount of steps the IAC valve needs to move around to hold a steady idle RPM.

14.2 target AFR at 1000RPM and below is pretty rich for idle / low loads. Your warmup is also very rich (11.7 measured at 100 degrees). Tuning warmup would normally be the final step once you have a VE table that's proper for an up to temp motor, but you might want to lower your warmup curve in the meantime as it's just wasting gas & getting close to the point of causing rough running if you go under light load that rich.

MAP-based accel enrich settings seem aggressive - AFRs drop to 10 at times and even below. Probably want to turn that down a bit as well.

jangell
08-31-2019, 06:49 PM
TPS: Yeah, every time I try to put one in it jams after a few turns. It un-jams when I lose the bolts holding to it to the throttle. I've tried leaving it a little loose or putting an extra gasket in to avoid any kind of vacuum leak, but I can't seem to get it to work. I'm tempted to just mount something to the gas pedal, although that wouldn't be as reliable as something right on the throttle.

Fuel table: I did a lot of automatic adjustment with auto-tune, but I would try having a helper tinker with the tables to get 14.7 AFR while I was driving at different speeds and loads. It's been a while since I've done that, though. Ideally I would be able to both adjust the throttle and the table at the same time, since then I know what I'm doing and can see what needs to be adjusted, but that's not really practical without a dyno.

I really do need to learn how to read the logs better. I'll see changes in the graphs, but not enough to understand what to do about them. I'll try copying the 740 column to the 600 column and see what happens, and bring the idle target back down to 790..

Which brings us to the very low RPM fuel columns (<900), which were set up for my original idle target of 790. I chose 740 and 890 to bracket the idle target. An idle of 900 RPM was only supposed to be a temporary thing. Originally I had the two columns set to the same values. The bumpiness that is now visible is from attempts to adjust the AFR to 14.7 over time. I admit that I'm not happy with graph being bumpy like that. I'll try to tinker with this tomorrow at the industrial park (a "foot on the gas and brake" kind of thing to add some load) where the noise won't bother anyone. My understanding is that, ideally, I'd hit the center of every cell, hold the MAP and RPM steady, and adjust the fuel until the AFR is 14.7. It's just figuring out how to do that in the real world. It sounds like your idea of heavily constraining VEAL with a filter might accomplish that.

I have noticed that EGO goes way rich when I'm decelerating (very low MAP, mid-range RPM). When I try to bring the fuel down for those areas to get the AFR down, I get popping sounds from the exhaust, which I understand to be Bad.

I was wondering if idle advance and my high advance in the 600 RPM column were interfering with each other. Bring the 600 RPM column up, and in particular redefining it as 725 RPM seemed to be the thing that helped the most, but not necessarily for the right reasons. I'm not sure where you see the large boost in advance at 600 RPM in the tune, though.

I did warm-up tuning with the warm-up auto-tuner early on. It seemed to do OK then, but I haven't touched it since, and I've made other changes in the meantime that may have affected it. I'll take a look.

I feel like I set the AFR table to 14.2 at 1000 RPM to try to correct a rough idle, but I don't remember anymore. I've reset it to to the auto-generated table that uses 14.7 there.

The aggressive acceleration enrichment was an attempt to avoid stalls when pushing on the gas pedal, if I remember correctly. I don't have those problems now, but I haven't looked into what fixed it. I can bring the values back to their originals (I believe it was half what it is now).

The biggest problem I have is that there are a lot of variables to play with, and it's not entirely clear which ones are doing what I want them to do because the other variables may be too far out of whack to get the correct variables to behave properly.

That's a lot of stuff -- I'm sure I've missed some of it already. :)

-- Joe

jangell
08-31-2019, 07:32 PM
I went for a quick drive after changing some of the settings above. From memory here:
- Brought idle back to 790.
- Reset the AFR table to the auto-generated one.
- Played with the VE table around idle.
- Played with the ignition table at idle (the 15.1 and 15.0 cells in the 790 column that seem out of place; this was to try to keep the advance from jumping around).
- Turned off adaptive ignition advance for idle.
- Found out that sitting in a parking lot and revving the engine while in gear with your foot on the brake just moves diagonally through the VE table and isn't actually that useful.
- Halved acceleration enrichment.

The attached logs have these changes. The RPMs still drop down low, but I'm not stalling yet. The idle is also seeking, although I think I can resolve that with the Closed Loop Gain slider. first short log is just me sitting in a parking lot tapping the gas and watching the RPMs drop. The very end of the second log jumps a bit because opening and closing dialogs in TunerStudio stumbles MS briefly for some reason. The

61042
61043
61044

I have a couple of hours of driving to do tomorrow. I'll turn back on VEAL with the filter you suggested and see how that goes.

Thanks!

-- Joe

jangell
08-31-2019, 07:43 PM
I don't think you can have your throttle plates close completely. At least on the K-jet engines you fix the stall problem by opening the curb idle screw a little.

Your MS system has faster RPM detection than the stock idle ECU since your RPM signal comes from a tack wheel. The stock ECU needs almost a full revolution of the crank to get an RPM reading so it's reaction is pretty delayed.

I wonder what priority your MS system has set for RPM reading. Maybe the system is busy with another task and that is delaying your idle control.

I believe that in this case I can close the throttle screw all the way because the IAC can add air when running in closed loop mode. Wether or not it should be closed all the way is another story.

There are a lot of controls for the closed loop idle, which I think I mostly have right, but it's hard to really know for sure, and I might have other issues that are affecting it because I'm making all of this up as I go along. :) For how quickly it finds idle there's a the "basic" mode that I'm using, which is just a Closed Loop Gain slider but if you set it t too high it will overshoot and seek. The alternative is PID, but while I know of this, and that it's used for things outside of idle control (like for self-balancing robots), I'm not clear on how exactly to set its three value. I really should look it up (in a general sense, not just for MS) someday.

I really just want it to be more aggressive when below a certain RPM. Googling suggested that there's a forked firmware that would allow this, but I'd rather stick with the stock stuff. I mean, it SHOULD be possible to get this to work out of the box, after all...

-- Joe

jangell
08-31-2019, 08:12 PM
As an alternative to pre-tuning VEAL, you can heavily constrain it's operation to nearly steady-state operation, but disabling ego, setting resistance to hard and putting in a filter like:
MAPdot > 1 && TPSdot > 1 && RPMdot > 1
This means it won't make changes when data is transient (filters out data with large changes to MAP/TPS/RPM)

My current filter is:

RPMdot < 100 && RPMdot > -100

So, when the RPM is stable. I'll add one for MAP as well with the same specs. Although I notice that the way I set up a filter is different from how you set it up... I thought that the dots went negative (so that you could tell the direction fo the change) and were represented in the units of their respective sensor per second, but I could be wrong.

-- Joe

FABombjoy
09-01-2019, 10:15 AM
Probably a good idea to add the negative conditions in as well.

VEAL is useless without tuning the delay table but your delay table still looks stock. I can't emphasize enough that VEAL will do more damage than good in that state. If you constrain VEAL to only genuine steady-state conditions using data filters it will work but you still have to manually interpolate / massage the VE table.

Your idle zone still has out of sequence numbers and is oscillating heavily as a result. Since the AFR is up and down the idle follows suit. It's like K-jet emulation mode LOL

jangell
09-01-2019, 10:51 AM
K-Jet simulator: :)

I went for a drive this morning with the filter in VEAL and it changed quite a lot of the table. I probably shouldn't be surprised by this.

I did look at adjusting the delay table a long time ago, but since I was still very new to this stuff I really didn't quite understand how to do it and actually have a proper table. It seemed to be only a couple of time steps between the MAP change and the AFR change, so short that I was having trouble come up with anything that seemed meaningful.

As for the ignition table, you mean how it drops to 14 in the 950 column? I think I did that because of the attempt to idle at 900, and having it interpolate between the 950 and 790 columns. I'll re-interpolate that column to smooth it from 790 to 1200.

I also threw a bunch of fuel into the 600 column to try to handle the low idle issues, but I'll need to re-test that with the updated ignition table.

I've just interpolated the table from VEAL, and am about to do my 2 hours of driving. I'll let VEAL do its job during that trip as well, and report back with the logs and tune. The logs from this morning aren't too useful as I kept tinkering with the tune at the time.

Thanks!

-- Joe

jangell
09-01-2019, 12:28 PM
I also forgot to mention that the AFR on warm up doesn’t appear to be due to the warm-up enrichment. I set that to 100% across the board and the AFR was still around 12. I’m guessing something sells is screwing ip the AFR at that point.

No problems on the first leg of my trip. I’ll leave VEAL off on the return leg to so that the logs match the tune.

— Joe

jangell
09-02-2019, 06:42 PM
Here's the log and tune from yesterday. I ran with VEAL on the first leg, smoothed it out a bit, then ran without VEAL on the way home. This log and tune are from the trip home.

The fuel table is still a bit bumpy. I'm not actually sure if that's OK, or if I want it to be perfectly smooth. I know what an idea table is supposed to look like, but I'm not sure if that is actually you have in the real world.

I had no stalling, although the RPMs dropped to the 500s at times. I have A/C idle up working, and I did drive with the A/C on for most of the trip. A/C idle up is set to turn off the A/C below 700 RPMs, which may have saved me a few times, but I'm not totally sure.

I'd like the idle not to drop quite that low, but I don't really know how to stop that.

Also, I'm considering an accelerator pedal position sensor built from a pot, a 3D printed case and a rod or two. Mostly for logging purposes, but maybe I'll be accurate enough for MegaSqurit to use it. I just have to figure out exactly how I'm going to mount it.

Tune: 61048
Log (zipped; it's over an hour of driving): 61047

FABombjoy
09-03-2019, 12:25 PM
Almost certain that you need more base throttle opening.

Right at the end of the log you're at 194F, indicating warmed up. Your CL idle target RPM is 990 (base plus AC idle up). Your IAC is open over 100 steps.

Your IAC drops to a base of 33 but even that isn't enough to prevent the RPM drop on throttle close.

Typically you want to set idle when hot, lowest RPM target. Open base idle until the number of steps approaches 0.

What kind of IAC do you have?
You have 350 steps to close, but idle valve open is 200

Is the sawtooth RPM input a feature of EDIS? All of your table targets 'buzz' around which seems strange.

jangell
09-03-2019, 02:08 PM
Since my throttle plates are currently completely closed (to compensate for a vacuum leak while my oil vapor separator cap was missing), I'd say that I need more base opening too. :) Before that it was very slightly open. I assume that's what you mean by "base idle", with the IAC steps being close to 0 (fully closed) when at warmed-up idle? I recall you mentioning this once before, many months ago,

To be clear: in theory, idle should be the least amount of air the engine ever needs, which is why the IAC should be at 0 steps when at idle, right?

A slightly annoying thing about the Mustang throttle body design is that you have to pull the throttle all the way open to turn the adjustment screw. It makes iteration slower, since you have to turn the car off if you don't want to revving at WOT -- you can't just slowly turn the screw while watching the RPMs change. Not a huge deal; just annoying.

I have a a stepper IAC, I believe a pretty standard GM type. Where were you getting the 200 from? I know I have that in test mode, but that's only used for, well, testing, right? The 350 set for the Homing Steps int he Idle Control panel is correct, though (more than the number of steps to completely close the IAC). I can't seem to find where "all the way open" is set in TunerStudio. Early on I had a lot of trouble understanding test mode and IAC position until I finally removed the IAC housing from the throttle body and could just watch it moving in the housing (previously I was holding just the IAC in my hand; I lost a pintle doing that I accidentally reached the end of the range and it shot off the end of the shaft).

Possibly related, but I have noticed that if I idle for a while, the IAC will switch to completely closed and not come out of it, and the idle will be a bit high (1000-1200 or so). If I turn the car off and on again it will work properly. I think that it's losing IAC calibration and restarting the ECU re-homes and fixes it, but I'm not really sure. It only really notice it when I'm screwing around in TunerStudio, so I'm not actually sure it happens in the real world very much.

I'm not sure about the sawtooth RPM input thing. I vaguely remember something about a sawtooth signal sent to or from MS to indicate advance, but I don't remember anymore, and I can't find anything about that. To be honest, I being within 50-100 RPM of my target was normal, since I had nothing to compare it against.

I'll try to find some time tonight to play with the throttle plate base opening position. If not tonight, I'll do it tomorrow.

Thanks

-- Joe

jangell
09-03-2019, 03:04 PM
I found the IAC open and closed positions (200 and 0) -- I forgot it was in the Closed Loop Idle Settings, not the Idle Settings. I likely didn't update the homing position from 350 because I forgot to go back into that panel as I was fixated on the CLIS panel. So it's probably doing a BIT too much homing there; I can probably bring it down to 250 and be fine, but I should probably pop off the IAC housing at some point and be sure.

-- Joe