##### ## ## ## ## ##### ## ##
______ | ___| | |_ | _| | | \_|
_____ ( _ ) | ( ) | | | | | | (('\| (___\_)
## ## ## ## ## ## #### ##
#### # # # # # ####
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: [http://megasquirtavr.sourceforge.net/manual/Detailed.Control.Idle.html#Config [Manual: Detailed.Control.Idle.Config]] Just seen a Bosch 0 280 140 516 solenoid (2-pin injector connector) in a 2L Opel Vectra 4cyl, 8 valve OHC, port injected (125 Hp?) engine, I wonder about it's specs * appr. price * current rating * airflow ** probably for idle air only ** not sufficient for cruise-control (or is it ?) Anyone used similar ? MembersPage/TonciLoncar uses a similar valve in his opel * the car idles perfectly * but: '''Integral windup''' 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. here is part of my iac config: iac_kp=0A iac_ki=05 iac_kd=13 iac_integral_speed=36 iac_integral_limit_dec=40 iac_integral_limit_inc=40 iac_integral_deadband=0A iac_ref_pos[9]=A8 '''At low RPM, with TPS around idle valve activation threshold''' the engine RPM (and hole car with them) are jumping This suggests a hysteresis for iac_tps_thres (idle TPS threshold). Sg. like * 1.2% (max 1.6 or 2%) above iac_tps_thres (or TPS=max if the threshold is misconfigured) would leave idle * under iac_tps_thres would activate idle mode (as now) ---- '''Notes''' '''Example idle-PWM config''' <code> iac_step_seq=C9 iac_conf=08 # ignadv off.; 0x28 would be dual-solenoid iac_max_steps=F0 iac_tps_thres=06 iac_cold_idle_temp=A0 iac_warm_idle_temp=D0 iac_cold_rpm=74 iac_warm_rpm=67 iac_cold_start_pos=A0 iac_warm_start_pos=60 iac_afterstart_rpm=00 iac_afterstart_duration=00 iac_speed=00 # very high freq., use higher value for higher period (lower freq) iac_kp=25 iac_ki=10 iac_kd=30 iac_integral_limit_dec=05 iac_integral_limit_inc=38 iac_integral_deadband=0A iac_deadband=05 iac_overclose_interval=05 iac_ref_pos[0]=60 iac_ref_pos[1]=5C iac_ref_pos[2]=58 iac_ref_pos[3]=50 iac_ref_pos[4]=4C iac_ref_pos[5]=48 iac_ref_pos[6]=3D iac_ref_pos[7]=35 iac_ref_pos[8]=31 iac_ref_pos[9]=2E iac_sol_channel=60 # last injgroup (h[0] .. mask is 10 that is inj-E ) iac_ign_slope=20 iac_ign_advance_limit=10 iac_ign_retard_limit=18 iac_ign_threshold=08 h[0]=08 04 02 01 00 00 10 00 </code> Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.