ColdStart Control Algorithms/Compensations/Trims/Enrichments

Official FreeEMS vanilla firmware development, the heart and soul of the system!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

ColdStart Control Algorithms/Compensations/Trims/Enrichments

Post by Fred »

This thread is to try to work out an optimal way to handle extreme weather cold starts. Peter lives in a place where it gets damn cold. Currently his only tools are generic warm up across all operating conditions based on CHT and by % AND a priming pulse of tunable length based on CHT. He says that starting is not particularly good at ultra low temps (-20C or so?). These are ideal test conditions to hone a better set of GP algorithms.

If you know how any OEM system handles this intimately (I'm looking at you, Merp!) or have experience setting up standalone ECUs in cold climates (I'm looking at you, Baldur!), please share a detailed one-post write up on the topic.

Let's try to keep this thread pretty clean. I'll try to stay out of it. People with experience in cold places are welcome. People with knowledge of OEM strategies are welcome. Tuning standalones in Australia, NZ or Hawaii doesn't count, too warm :-p

Let's help Peter get something that works excellently for him so that he can tell some smart-arse, know-it-all teenager to fuck off!

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
baldur
QFP80 - Contributor
Posts: 44
Joined: Tue Aug 19, 2008 4:05 pm

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by baldur »

You'll want an enrichment percentage based on coolant temperature and another enrichment or gain factor based on time since start.
These can be joined in one 2D table of coolant temp vs time since start or as two individual tables.
At very low temperatures you'll need a lot of fuel to get the engine started but there is a significant lag between the combustion chamber and valves heating up and the engine coolant, so after just a few cycles where combustion takes place, the evaporating fraction of the fuel grows fast.

What you should probably also have is a gain factor for the enrichment based on engine load since WOT operation doesn't appear to need as much enrichment as part throttle and idle.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by Fred »

(20:13:21) TekniQue: fredcooke: without countering time since start in, a mixture rich enough to fire after a small amount of starting, will soon become too rich and stall the engine after starting
(20:14:10) TekniQue: I should also add, batch fuelling appears to work better than sequential for starting
(20:14:39) TekniQue: in my experience
(20:15:14) TekniQue: injecting more short pulses appears to work better than one long pulse
(20:15:23) TekniQue: (per cycle)
(20:19:15) Fred: probably true, more chance to evap
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Merp
TO220 - Visibile
Posts: 5
Joined: Wed Jul 11, 2012 6:43 am

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by Merp »

Subaru OEM controls use a system very similar to what Baldur has described.

Cranking: fixed injector pulsewidth pulled from a 2D table with ECT axis. This logic uses a few different tables which are similar or identical. Regarding the choice of table, the guys who exposed these tables mentioned:
some of it is based on whether the ignition switch is on or off and whether the motor has begun to start or not at any given time in the cranking process. TGV status may also be involved
Where TGV's are tumble generator valves. I will try to find some more insights as to the conditions for each and the effects. Then, these IPW values are compensated by a 3D table with RPM and ECT axes that decreases IPW as RPM increases between 100-500 RPM, and decreasing more when ECT goes below 0*C. Finally, IPW is compensated by a 2D table with throttle angle. The throttle table reduces IPW to zero as throttle is added above 50% or so, as to prevent/fix a flooded engine.

Post Start: Open loop fueling immediately after start until O2 is up to temp, then CL. During this time lambda enrichment offsets are applied to determine the minimum enrichment from stoich (closed loop) or target AFR (open loop) This offset is determined by adding the result of three branches of logic. All branches use their own tables for everything, nothing is shared between them.

Branch 1: Open Loop: pulled live from 2D table with ECT axis. Closed Loop: pulled live from a 3D table with Engine Load & ECT axes. No active decay of the value, it is continuously pulled from the table so it only decreases according to the table.

Branch 2: Initial value pulled from one of four similar 2D tables with ECT axis. Initial value is immediately decayed using a step which is pulled from one of two 2D tables with ECT axis. (choice is determined by the initial value table used)

Branch 3: Initial value follows the same type of logic as branch 2. Initial value is decayed by a fixed multiplier (0.9) after a delay period which is pulled from one of two 2D tables with ECT axis. (choice is also determined by the initial value table used)
User avatar
BenFenner
LQFP144 - On Top Of The Game
Posts: 360
Joined: Wed Jul 09, 2008 3:15 pm

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by BenFenner »

If I'm understanding baldur correctly, what he describes is also AEM's approach to this. Or it is very similar.

I will describe the tables in chronological order (as they are referenced during start-up) as best I can.

Image

Initial Crank Pulse table - This is fuel injection pulsewidth versus coolant temp. This is over and done with once you leave the cranking phase. Pretty self explanatory.

Crank Injector Time table - This is fuel injection pulsewidth percentage (not really, but best to think of it that way) from the above-mentioned table versus throttle position. This is over and done with once you leave the cranking phase. This is basically used for most to allow for a "flood clear" mode with high throttle application, but can be used to make sure fueling is correct during WOT starts.

Warm Up Enrichment table - This is fuel injection pulsewidth percentage added to the base fuel table versus coolant temp. Self explanatory.

Start Extra vs Temp table - This is fuel injection pulsewidth percentage added to the base fuel table versus coolant temp. This works directly with the next table...

Start Extra Decay table - This is time after leaving the cranking phase versus coolant temp. This represents how long the fuel added in the above table takes to decay (gradually reach zero).



The rest is not cold start fuel related.

RPM Offset vs Start table - This is additional idle RPM versus time after leaving the cranking phase.

Ign vs Start Time table - This is ignition timing adjustment versus time after leaving the cranking phase.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by Fred »

Ben and Merp, how is cranking phase determined? Simple RPM cut over point? Blend from one to the other?
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
BenFenner
LQFP144 - On Top Of The Game
Posts: 360
Joined: Wed Jul 09, 2008 3:15 pm

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by BenFenner »

With AEM, the cranking phase is determined by two, adjustable, RPM points. "Crank Minimium RPM" and "Crank Exit RPM" which usually are set to values of 50 RPM and 400 RPM respectively. If you're not even cranking at 50 RPM then you get no fuel, nothing. If you're over 400 RPM the cranking phase is over. It is a simple cut-over. No blending. (Unless you count the extra fuel that decays with time as a sort of blend...)
User avatar
BenFenner
LQFP144 - On Top Of The Game
Posts: 360
Joined: Wed Jul 09, 2008 3:15 pm

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by BenFenner »

There's one more thing I forgot. A table of tip-in enrichment percentage (draws data from the tip-in enrichment table(s)) versus coolant temp.
Last edited by BenFenner on Mon Jun 02, 2014 4:52 pm, edited 1 time in total.
tpsretard
QFP80 - Contributor
Posts: 99
Joined: Thu Mar 19, 2009 3:05 am

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by tpsretard »

the Ign vs Start Time table is one of the best things GeMs (Makers of AEM) ever did.
Every dam ecu should have it.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: ColdStart Control Algorithms/Compensations/Trims/Enrichm

Post by Fred »

Just read through this again, and there's a lot to digest, but I'm living with bad cold starts at the moment due to a lack of such behaviour from FreeEMS. On the other hand, the car has NEVER since I first bought it started as well hot as it does not. Beautiful. Expect some progress in this area soon as I have the tools (winter + TBI) to test any uncertain implementation choices. :-)
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
Post Reply