Moderator: Freon
letsteyr wrote:- AFR:
for subarus, AFR = 14.7/ (1+ value)*.0078125
why 0.0078125 ? what are the orginal values (unit) we got in afr tables? It's an enrechiment comparing to 14.7? (0 for 14.7)?
- advance:
for subarus we got advance = ([value]*.3515625)-20
why 20 and 0.3515625? what's the original unit of mesure? What do we physically get?
- RPM:
what's the link beeteween the number of teeth of the flywheel and the rpm we get? With what unit does the ecu work?
Freon wrote:letsteyr wrote:- AFR:
for subarus, AFR = 14.7/ (1+ value)*.0078125
why 0.0078125 ? what are the orginal values (unit) we got in afr tables? It's an enrechiment comparing to 14.7? (0 for 14.7)?
The 0.078125 is because the value is stored as a single byte, 8bit integer. So the values for X are 0, 1, 2... 254, 255. 127 would be 1.0 Lambda, or no enrichment. A value of 191 would be an enrichment factory of 1.5, or 9.8 AFR. Basically, the conversion equation you see in the def is converting the integer value stored by the ECU back into what we guess (or imply, or know from other disassembly of how the value is actually used later) the actual unit of measure is meant to be. Realistically, everything in the ECU is actually in lambda, not AFR. "14.7" is pretty much nowhere in the ECU at all, but "0.0078125" certainly is.
To address the question, "Why 0.3515625?", imagine that the arc of a complete circle is divided into 1024 equal segments instead of the "normal" 360 one-degree segments. To convert that unit into degrees, one would divide by 1024 and then multiply by 360. It turns out that 360/1024 = 0.3515625. To address the question "Why -20?", I have no idea and am very suspicious about this value. It implies that the base ignition advance table values are all relative to 20 degrees After Top Dead Center (ATDC). This makes no sense for a production car ECU. Why would FHI engineers wish to allow the spark to fire AFTER top dead center?Freon wrote:letsteyr wrote:- advance:
for subarus we got advance = ([value]*.3515625)-20
why 20 and 0.3515625? what's the original unit of mesure? What do we physically get?
Same deal here. It is the conversion factory for how the ignition timing is converted to be stored into a single byte, 8bit integer value. So with valid values for [value] from 0 to 255, you can set from -20 to +69 (BTDC) with a precision of 0.3515625. Ignition timing is always degrees before top dead center (*BTDC).
imagine that the arc of a complete circle is divided into 1024 equal segments instead of the "normal" 360 one-degree segments
First, observe that the load reference for Subarus is grams of intake air per engine revolution, or g/rev. Let's work an example where the current load is 2 g/rev, and open loop fuel control is in effect, and the raw desired enrichment value for the current RPM and 2 g/sec load is 32. The value 32, as explained in my previous post above, means that the desired enrichment is 25% richer than stoichiometric.letsteyr wrote:oh yes sorry, sorry for the mistake in the conversion of the afr. I have understood the afr now.
And then, how does the ecu converts AFR to injector pulse?
It knows the flows of air entering in the inlet pipe.......with the fuel table it knows what has to be the flow of fuel (using scaling injector too).......but many cylinders may have inlet valves opened in same time no? So what's the accurate conversion? I ask that because other manufacturers use injection timing in their fuel table.
If MAF is mass air flow in grams per second (g/sec), then Subaru's load, in g/rev, is MAF*60/RPM. Load at WOT for a particular RPM frequently does increase with a higher gear. That's why most tables support multiple load values for any particular RPM. Also, Subaru ECUs do make some adjustments in response to a throttle tip-in.letsteyr wrote:I got another question too. Some cars don't use a MAF. For subarus the load = (RPM/MAf)/4 in g/rev
But for other cars, fuel tables have the throttle position as a scaling? How can it be accurate cause depending on the gear engaged, the load won't be the same!! there are many working with the TPS. Sometimes some of them only have as a scaling the inlet pressure !!! how do they do to be as accurate as subaru does?
Yes, but a range of only 90 degrees is quite sufficient to specify any realistic spark advance in terms of degrees BTDC. The ECU maintains the current absolute crank angle position at a much higher two-byte precision.letsteyr wrote:imagine that the arc of a complete circle is divided into 1024 equal segments instead of the "normal" 360 one-degree segments
why 1024? The ignition is defined on 8bit so FF no.......so 256 values? that would means that a quarter of the position of the flywheel is defined? And why from -20 to 69°......because the ecu needs other positions for ignition/fueling timing no?
Users browsing this forum: No registered users and 1 guest