View Single Post
Old 03-06-2009, 02:54 PM   #866 (permalink)
rmccomiskie
EcoModding Lurker
 
Join Date: Aug 2008
Location: Massachusetts USA
Posts: 84

Ziggy - '95 Audi S6 Sedan

Manfred - '97 Audi A6 Quattro Sedan
90 day: 20.61 mpg (US)

Clarabell - '03 Audi A4 Quattro Avant

Sherman - '98 Audi A6 Quattro Avant

Cab - '96 Audi Cabriolet
Thanks: 0
Thanked 2 Times in 2 Posts
Okay then. The experiment worked. By excluding very high elapsed times, I've eliminated the high GPH readings.

Here's my changes:

Code:
void processInjClosed(void){      
//  long t =  microSeconds();
//  long x = elapsedMicroseconds(injHiStart, t)- parms[injectorSettleTimeIdx];  
  unsigned long t = microSeconds();
  unsigned long s = parms[injectorSettleTimeIdx];  //set to 72
  unsigned long x = elapsedMicroseconds(injHiStart, t);
  
  if (x >= s && x < parms[pulsewidthLimit]) {  //elapsed time within range of settling time(72) and upper threshold(3000)
    x -= s;                                    //then normal pulse, subtract settling time
  }else{
    x = 0;                                     //otherwise pulse width assumed to be zero
  }
  
//  if(x >0)  //no longer needed, x is guaranteed to be zero or greater
  tmpTrip.injHius += x;       
  tmpTrip.injPulses++;      

  if (tmpInstInjStart != nil) {
//    if(x >0)  //no longer needed, x is guaranteed to be zero or greater
    tmpInstInjTot += x;     
    tmpInstInjCount++;
  } else {
    tmpInstInjStart = t;
  }
  
  tmpInstInjEnd = t;
}
I found info for my injector that indicates the settling time should be 615uS using Yoshi's formula. I scaled that down to 72uS for the ECU signal based on the ratio of the ECU to injector pulsewidth.

The maximum pulsewidth that I've seen during normal operation is 1904uS. That's a full throttle run to redline. I've set the upper limit of the pulsewidth to 3000. I don't expect any combination of normal operation will get close to that pulsewidth.

So, the acceptable range of pulsewidths is constrained to 72-2999. Any elapsed time greater than that is assumed to be a flatline ECU signal.

In my experiment, the GPH now seems to operate normally, i.e. it drops to zero when coasting.

Now that I've found a solution, I'll merge the changes back into a clean copy of v0.75 and test it in the car for a while. I still need to fine tune the uS/gal setting for the ECU signal.

Last edited by rmccomiskie; 03-06-2009 at 03:16 PM..
  Reply With Quote