Page 1 of 1
Fuel Injector Duty Cycle Logging
Posted:
Wed Apr 17, 2024 10:11 am
by PEI330Ci
I've put a C125 dash and LTC on a KX250F motocross bike to help tune a fairly modified engine with Kawasaki's KX FI Tuner.
I would like to log the injector duty cycle of both the upstream and downstream injectors, but have been struggling to setup inputs that give what I'm looking for.
Can someone share how they setup Speed Inputs to log injector duty cycle?
Thanks in advance.
Re: Fuel Injector Duty Cycle Logging
Posted:
Wed Apr 17, 2024 10:40 am
by David Ferguson
I did something similar on a enduro car to determine fuel consumption.
I configured a SPD input for the channel 'Fuel Cyl1 Pulse Width [ms]". Calibration was set to Pulse Width, with .1ms mapped to .1ms, and 32ms mapped to 32ms. Spd Levels were set as a Hall Effect with a 1.5V threshold voltage
To get duty cycle, you just need to divide this time, by the cycle time at the current engine speed. I would create a 3D table, with Engine Speed on one axis, and Injector Pulse width on the other axis. The output would be injector duty cycle.
Fill the table with the calculation of "InjPulseWidth[ms] / 1000/((EngineSpeed[RPM] / 60) / 2)".
Let's use 10ms at 6000 RPM as an example. First we convert Engine Speed Rev/Min to Rev/Sec by dividing by 60 (6000 / 60 = 100), and from revolutions to cycles (for a 4-stroeke engine) by dividing by 2 (100/2 = 50). Now there are 1000 ms per second, so 1000 (ms/s) / 50 = 20ms cycle period. -- therefore 10ms / 20ms = .5 (ratio) or 50% duty cycle.
Re: Fuel Injector Duty Cycle Logging
Posted:
Wed Apr 17, 2024 10:03 pm
by PEI330Ci
Dave,
Thanks for the detailed explanation, and example. It helped tremendously.
I was able to get the pulse width to read no problem.
I was not able to get the 3D table to work, and I think it's because the Table values are limited to only 1 decimal point.
For example: 0.1ms @ 1500 RPM = 0.00125
When I try to enter that value into the table, it defaults to 0.0. I've attached a snapshot of that table to illustrate.
Re: Fuel Injector Duty Cycle Logging
Posted:
Thu Apr 18, 2024 1:27 am
by PEI330Ci
Dave,
I used a maths channel in i2 to generate the IDC, which ultimately is the same thing.
I'l share some more feedback once I get more track testing completed.
One thing that I suspected, but have just now confirmed is that the downstream injector, the one closest to the valve, maxes out at 34%, which is approximately the same as the total inlet valve open time across 720 degrees rotation. I'm also logging the pressure sensor, which is just behind the TB, at 500hz, and can see the valve opening and closing through port pressure in fairly good detail at low RPM.
Re: Fuel Injector Duty Cycle Logging
Posted:
Thu Apr 18, 2024 4:05 am
by David Ferguson
Good Solution.
If you did want the 3d table to work, then make sure the output units are in % and allow the table to interpolate to get the resolution needed. A quick spreadsheet produced this table that you could use:
- Injector Duty Table.JPG (48.34 KiB) Viewed 3842 times
And here is the table for importing into your dash:
Re: Fuel Injector Duty Cycle Logging
Posted:
Thu Apr 18, 2024 6:02 am
by PEI330Ci
Dave,
Thank you, that worked like a charm.
More importantly, it reminded me to investigate the calculation more thoroughly in Excel. (It seems so obvious now)
Back on the data side, I've been getting data "artifacts" on the 2nd injector that turns off under light load. When Irescaled the graph, I found an interesting correlation with engine RPM.
- 2nd Injector Noise.JPG (314.3 KiB) Viewed 3838 times
I'm getting the RPM signal using SPD1 which is connected to the lead wire from the ECU to the ignition coil. Would switching the RPM signal to the DIG1 input be beneficial? I am not connecting the C125 sensor ground to the ECU sensor ground to avoid "skewing" the sensor inputs. Would this possibly be allowing the igntion noise to loop through the inactive Injector circuit?
Re: Fuel Injector Duty Cycle Logging
Posted:
Thu Apr 18, 2024 7:50 am
by David Ferguson
well, something isn't right in the math. You can't really have a duty cycle > 100% (that would be injector open the complete cycle). So the fact that your secondary injector duty cycle is greater than 100 doesn't seem right. Double check the math channel, and verify with the injector pulse width & RPM data you logged.
Re: Fuel Injector Duty Cycle Logging
Posted:
Thu Apr 18, 2024 11:30 am
by PEI330Ci
Dave,
I think we have 3 things going on at the same time:
#1 - The 2nd injector is turned off, so the pulse width measurement maxes out @ 32.767ms continuously.
- Max Pulse Width.JPG (290.19 KiB) Viewed 3826 times
#2 - The Duty Cycle calculation has a fixed value in the calculation of 32.767ms, so of course the output WILL vary with RPM.
#3 - I haven't figured out how to filter the non-valid data.
Re: Fuel Injector Duty Cycle Logging
Posted:
Thu Apr 18, 2024 12:06 pm
by David Ferguson
Well, we either make the 3d "math" table, show values of "zero" or 100 for values > 100%, or you use maths in I2 (choose(IPW > <max cycle time>, valid value calc, invalid()) to make invalid data.
Re: Fuel Injector Duty Cycle Logging
Posted:
Thu Apr 18, 2024 12:32 pm
by PEI330Ci
Dave,
I went with option 1, using a value of 0 @ 20ms for all RPM points
- 0 Table.JPG (62.14 KiB) Viewed 3823 times
I'll follow up with data after the next session.
Thanks for the guidance, I have learned a lot.