Idle Valve Tuning Guide
This is currently just information that I gathered together from what's scattered in the Wiki.
Connect a diode (like 1n4007 or BY399 or ES2J or similar)
- Anode to switched point of the solenoid (channel output, EC18-pin..)
- Cathode (marked with a line) to the other pad of the solenoid: the same where you connect the positive +12V (switched and fused) power
Q: What output channel is recommend for idle-valve (2-pin VDO-valve)?
- A free injector channel is most common
- Or a stepper output
Because these have onboard flyback by default.
Hints for Tuning Idle
- Play with mdi.. where .. is the 2 hex digits from 00 to FF.
- set back to mdi00 at the end for automatic control
- set Integral decrease limit according to I value (though 06 sounds right)
- Decrease the reference positions, a bit (like 5..10) higher above than the best mdi.. values (temp dependent). As high that still allows reaching target RPM, but does not allow much lower). Decreasing from a high value until RPM target reached is probably the easiest way. Do it for every temp as it warms up.
But when releasing throttle (engine-braking), some throttle is needed at low RPM, otherwise it often stalls. Obviously, the integral "winds up" too much (actually negative in this case: closing iac too much), than it stalls before it could recover
How to eliminate integral windup ?
- play with iac_integral_limit_dec (decrese limit) and ref positions. This should prevent unnecessary integral windup.
- DONE: with lower integral_limit_dec or higher ref_position idle goes too high
- Use even lower iac_integral_limit_dec and increase the PID I value. If the multiple (I * integral_limit...) is the same, the maximum effect of the PID integral is the same: it only makes recovery faster (changing the integral time constant).
- in general, make sure PID is tuned reasonably. Take logs and analyze them. If you publish logs, you can point out a few sections for discussion. Like: on engine/car ... with config and tables ... in logfile ..., after throttle is released, undershoot is way too much, 320 RPM (target RPM is 820)
- Firmware mod suggestion: when RPM goes down towards target, reset the integral value at some point. Either
- Tuner-configured "iac activation RPM point" (that would be relative to RPM target. Eg. +200..300 would mean that with idle RPM_target=800 RPM, iac integral would be resetting when going from above 1100 RPM downto under 1000 RPM.
We strongly consider this mod if there is a report with detailed analysis and log of the "problem" (saying "trying for months" is no substitute for logs). Otherwise, if it's an integral value tuning problem, than better to tune the PID first anyway.
Negative integral windup
iac_integral_limit_dec=A0 is way too high. set it muuuch lower (05..40 is likely) to prevent negative integral windup.
When RPM is higher than target, integral goes negative; if high iac_integral_limit_dec allows it to go too negative, it requires too much time to diminish after RPM drops under target => engine stalls.
Set IAC actuator speed/PWM freq
Stepper speeds : 0 - 976 steps/s, 1 - 488, 2 - 326, 3 - 244, 4 - 195, 5 - 163, 6 - 139, 7 - 122, 8 - 108, 9 - 98, 10 - 89, 11 - 81, 12 - 75, 13 - 70, 14 - 65, 15 - 61.
PWM freq: 0 - 244 Hz, 1 - 195, 2 - 163, 3 - 139, 4 - 122, 5 - 108, 6 - 98, 7 - 89, 8 - 81, 9 - 75, 10 - 70, 11 - 65, 12 - 61, 13 - 57, 14 - 54, 15 - 51.
Other related pages