I've been wanting to measure my fuel injector pulsewidth for quite some time for use in fuel consumption calculations and for backing out a fuel map for the day when I convert this engine to a megasquirt. I tapped a wire of the number 1 injector and hooked it up to a pulse input. Then I set the channel as a pulsewidth measurement, medium timer speed, logged at 20hz. It appears that the signal is sort of inverted as when I'm at idle the pulse width "fuel" channel on my log is higher than when at higher speed/load. The reported signal also appears to be a bit slow to change, I need to go run again with the time speed changed, but I'm still not sure this will fix my issue. I checked the pulsewidth on my oscilloscope and it looks to be just under 4 msec at idle, sadly I forgot to actually measure the pulsewidth with the scope.
Anything else I should be trying / looking at to get this logged correctly? I checked the forums but hadn't seen where anyone else had measured pulsewidth yet on the racecapture. It's and RC Apex by the way. Pics to come in subsequent post.
Measuring Injector Pulsewidth
Moderators: JeffC, rdoherty, stieg
The signal to a fuel injector is typically a low-going pulse -- as the other side of the injector is connected to permanent power. If the measurement is of the high pulse (injector closed), then you need to so some math with the engine cycle time to determine the fuel pulse width. This is assuming sequential fuel injection, where there is one fuel pulse per cycle.
First, figure out the cycle time (the time for two revolutions of a 4-stroke engine).
Cycle Time [sec] = 60 [sec/min] / (Engine Speed [Rev/Min] / 2).
Then subtract the measured pulse width from the cycle time to get the "on" pulse width.
Fuel Pulse Width [sec] = Cycle Time [sec] - Measured Pulse Width [sec]
Add that math to a Lua script for a new Fuel Pulse Width channel.
I've done this before with other systems for endurance racing, were multiply the Fuel Pulse Width by a scale factor and add them up to determine fuel consumption. It can work amazingly well (+/- 1/2 gal accuracy per tank).
First, figure out the cycle time (the time for two revolutions of a 4-stroke engine).
Cycle Time [sec] = 60 [sec/min] / (Engine Speed [Rev/Min] / 2).
Then subtract the measured pulse width from the cycle time to get the "on" pulse width.
Fuel Pulse Width [sec] = Cycle Time [sec] - Measured Pulse Width [sec]
Add that math to a Lua script for a new Fuel Pulse Width channel.
I've done this before with other systems for endurance racing, were multiply the Fuel Pulse Width by a scale factor and add them up to determine fuel consumption. It can work amazingly well (+/- 1/2 gal accuracy per tank).
-
- Posts: 7
- Joined: Mon Mar 23, 2015 11:50 pm
David,
What you said matches what's going on in my data, it's picking up the other part of the pulse which explains the inverted nature of this.
I too have used this on a Motec and found it very accurate when properly calibrated by weighing out ones fuel jugs for volume. Hoping to do the same here. Will post it up once I get the calculations all working. Thanks
-Scott
What you said matches what's going on in my data, it's picking up the other part of the pulse which explains the inverted nature of this.
I too have used this on a Motec and found it very accurate when properly calibrated by weighing out ones fuel jugs for volume. Hoping to do the same here. Will post it up once I get the calculations all working. Thanks
-Scott
- Attachments
-
- IMG_20190108_191255.jpg (249.75 KiB) Viewed 11524 times
-
- pulsewidth.JPG (255.54 KiB) Viewed 11524 times