### ## ## ## ## ## #### ## ## ## ##
_ _ | | | | | |_| | | _ | | | | | \_| |_/
### ## ## ## ## ## ####
#### ## ## ## ####
### # # ## # ## ### # # #
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: '''Developer page for AlphaN''' In the 2004.Nov.firmware (without the patch below applied) the base fueling algorithm options are * pw = MAP * VE(MAP, RPM) (speed density) (config13 bit2=0) * pw = VE(TPS, RPM) (alphaN, without MAP) (config13 bit2=1) are supported, configurable in one bit. (The only reason for having it this way in one bit was compatibility with MegaManual and MegaTune protocol) A patch applied at some point enables these new modes: * pw = MAP * VE(TPS, RPM) (alphaN, with MAP multiplication; actually multiplication with load, see the difference below) * pw = VE(MAP, RPM) (probably useless) Note that if both MAP and TPS sensors are wired and configured correctly, either mode will work, but all will result in different VE (j) table and some will be harder to tune. The patch works like this: '''Load''' can be TPS / TPS .. MAP / MAP * below ''hybrid_rpm_a'' use TPS to index the VE (and ign and lambdatarget) table(s) that is VE(TPS, RPM) * above ''hybrid_rpm_m'' use speed density mode VE(MAP, RPM) (m for MAP or max) * load is a "blending of MAP and TPS signal" between hybrid_rpm_a and hybrid_rpm_m (as RPM goes up, it changes from fully TPS to fully MAP) '''multuplication with load''' * config13 bit2 chooses only if multiplication with load is applied or not ** config.config13 bit2=0 (multiplication with load is applied). With low hybrid_rpm_a=hybrid_rpm_m=00 this is the pure speed-density setup (TPS is used below RPM<0 that is never; MAP is used above RPM>0 that is always ). Multiplication with load makes sense for turbo engines, so the MAP also does matter above certain RPM, not only TPS. ** config.config13 bit2=1 (multiplication with load is NOT applied, useful for turbo). With high hybrid_rpm_a=hybrid_rpm_m=FF this is the pure alpha-n setup (MAP is not used, ever, since 25500 RPM is not reached at all). New tests here. MembersPage/SamuelLindkvist/AlphaN When OK, update AlphaN and GenBoard/Manual. ---- '''More details''' From fuelcalc.c the code is simpler than the blabla explanation: <code> if (!(config.config13 & _BV(CONTROL_STRATEGY))){ // speed-density uint16_t kpa_or_tps; if( engine_rpm8() >= config.hybrid_rpm_m ){ // normally, the MAP is used: kpa_or_tps = engine.kpa250; } else { // TODO: constant multiplier when RPM <= config.hybrid_rpm_a // for AlphaN, the MAP is not fully trusted kpa_or_tps = engine.kpa_tps_blend << 2 ; } res = mult_div596( kpa_or_tps, res ); } else { res = mult16_8(res, 172) >> 8; } </code> remember tps_or_kpa is the TPS / MAP blend as determined by hybrid_rpm_a and hybrid_rpm_m '''Thumb rule''' * always adjust hybrid_rpm_a and hybrid_rpm_m to determine the RPM for TPS / TPS-MAP / MAP * The alpha-n naming is very confusing, really. config13 bit2 should be called "disable multiplication with load", because that's what it does when bit2=1 . ---- Emils notes: Checked how another system works, will try to write down some info here.. * VE table runs fully alpha-n, ends at 100% TPS-load * lambda and spark table uses MAP instead * fuel amount on boost is calculated from the TPS based VE entry, multiplied with MAP and lambda-table. * This system doesnt need any MAP multiplication table, but in a possible VEMS implementation, it could be wise to have a MAP vs fuel multiplication table with a few cells. for example 200 kPa = 200% fuel, 250kPa = 250% fuel, this is likely the correct settings, but might be handy to test different settings, especially with bad injector control (not flat VE table) ---- For a system whith the '''MAP hose connected before''' the throttle butterfly this could be one way to do it. * VE table is 0-100% TPS, any values over that is ignored. The table should actually have the 0-100% values. Not 0-255=0-100%TPS as it's very confusing and the resolution is not needed. This part is almost perfect. -Jörgen * The target lambda table assume that all 0-100% values are TPS and that all >100 values is pressure. One way would be for it to start using the values from the pressure section of the table when the pressure is >110kPa or so.-Jörgen ** one other way would be to let it first pick the TPS target lambda and then multiply it with the pressure target lambda multiplier. Not as straight forward to tune but it would probably let the engine run at a more optimal mixture most of the time. This could result in a lambda table that has 0.9 at 100%throttle and then 1.0 multiplier at 101kPa to end up with 0.9 at 300kPa. This would mean that at 100% throttle and 101kPa the car would run at lambda 0.9 but at 100% throttle and 300kPa it would run at lambda = 0.81. If the same engine had lambda = 1.0 at 30% throttle in a certain position and the car then saw 300kPa before the blades the lambda would once again be 0.9.-Jörgen * The ignition is harder, one way would be to have it to run by the TPS value when pressure is below 110 or so and then start running the ignition specified in the >110kPa cells. This would probably offer good drivability as the only cases where the ignition would be all wrong is when the engine is fairly throttled. And that the car is not running at MBT then is not a problem.-Jörgen ** One other alternative would be to look up the ignition timing from the 0-100% tps range and then subtract timing from the kPa range (>110kPa or so). This table could have 30deg timing at 100% and then start at 0 at 101kPa, to then subtract 1-3 deg per 10kPa boost. This could be a bit unpredictable, I can't visualize how well it would match the engines ignition demand at small throttle openings and high boost. -Jörgen Note that all NA alpha-N cars need baro correction, the 'baro pressure' is often measured in the plenum before the blades to be able to compensate for badly sized air filters and ram air effect in addition to barometric compensation. This is one reason that both Lambda and ignition should be looked up from the TPS reading until pressure >110kPa. ---- '''See also''' * AlphaN * GenBoard/Manual/Config/ManifoldAbsolutePressure * [http://not2fast.wryday.com/efi/blendingMAPnTPS.shtml theories/algorithms to blend alpha-n and speed density] 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.