Ability to log injector duty cycle

Post your feature requests here.
Post Reply
User avatar
manselainen
Posts: 109
Joined: October 21st, 2011, 3:56 pm

Ability to log injector duty cycle

Post by manselainen »

US guys are speaking about their IDC's but I can't find such a variable to be logged in VT.
Tuned with Image by Image

3 MPS '07, BNR S3, ported IM, VTCS delete, test pipe, PTP HPFP internals, RMM
mituc
VersaTuner guru
Posts: 1324
Joined: December 17th, 2011, 2:47 pm
Location: Iasi/Romania

Re: Ability to log injector duty cycle

Post by mituc »

There's no PID for that, but the injector duty cycle is actually calculated based on the RPM and the injector pulse width, and for these you have PID's.
I'm calculating it like this:

Injector_DC = 100*RPM*INJ_Pulse_Width/(2*60*1000*1000) = RPM*INJ_Pulse_Width/1200000

If you're interested to know how I've got to that formula you can read below, if not you can simply stop here and copy the formula in your excel where you can make a new column using the replacing the RPM and INJ_Pulse_Width variables with the right table columns to compute the injector duty cycle for each line.

So why this formula:
- the injector pulse width is in microseconds (at least this is how it's logged by my dashdaq - need to check if VT logs it the same way);
- the engine RPM is in revolutions per minute;
- the injector can stay open maximum half of the time required for a complete engine revolution;
- the injector duty cycle is actually a percent of how much the injector stays open within half of the time required for the engine to complete a revolution (which is the maximum time an injector can stay open);

So the formula is obtained like this:
1. RPM means RPM/60 per second and RPM/(60*1000*1000) per microsecond;
2. half of it is RPM/(2*60*1000*1000);
3. you need to get the amount time in microseconds from here for the maximum time an injector can stay open at this RPM, so this is going to be (2*60*1000*1000)/RPM;
4. when you calculate the percent of time the injector stays open it's going to be:

100*INJ_Pulse_Width/INJ_MAX_Time = 100*INJ_Pulse_Width/((2*60*1000*1000)/RPM) = 100*INJ_Pulse_Width*RPM/(2*60*1000*1000).

Possible flaws: this is how I compute it in my script that I use to parse the logs from my dashdaq (which logs this specific PID in microseconds). If the injector pulse width is not in microseconds then you may need to cut or add the right number of 0's at #3 above.

I guess the Versatuner Developers can use this formula and add a new (fake) PID based on the RPM and injector pulse width variables. Basically this is the only reason why one would need to log the injector pulse width, to calculate later the injector duty cycle. I guess this is how "the US guys" get the IDC in their AP, that or the software reading its logs already has that implemented.

Later edit: here it is better explained (or not?): http://injector-rehab.com/shop/idc.html
2008 Cosmic Blue Mazda 3MPS
Built engine + WMI + GTX3071 gen2, ~509BHP @34PSI
2008 Icy Blue Mazda CX7
Stock engine and exhaust (YES!!), JBR3" + GTX2867 gen2 + Autotech HPFP, self-tuned to 330-ish BHP
User avatar
manselainen
Posts: 109
Joined: October 21st, 2011, 3:56 pm

Re: Ability to log injector duty cycle

Post by manselainen »

Wow, I'll try that, thanks!
Tuned with Image by Image

3 MPS '07, BNR S3, ported IM, VTCS delete, test pipe, PTP HPFP internals, RMM
User avatar
manselainen
Posts: 109
Joined: October 21st, 2011, 3:56 pm

Re: Ability to log injector duty cycle

Post by manselainen »

I get following as max IDC of one sample run:

rpm 5000 1/min
injector pulse width (IPW) 9 ms
-> injector duty cycle (IDC) 38 %

Do you get something similar?

So IDC is IPW/time_of_one_engine_cycle = IPW/2*time_of_one_revolution in a 4-stroke engine.

I can't understand how somebody gets IDC close to 100%, that would mean that it's spraying also during exhaust phase... maybe they calculate it somehow differently...

If I would take just intake and compression phases into consideration, that would mean half the time available, I would get IDC 76%.
Tuned with Image by Image

3 MPS '07, BNR S3, ported IM, VTCS delete, test pipe, PTP HPFP internals, RMM
User avatar
Steve @ VersaTune
Lead tuner
Posts: 1157
Joined: March 29th, 2010, 12:58 pm

Re: Ability to log injector duty cycle

Post by Steve @ VersaTune »

you have to consider that injection can only happen during intake and compression. Your duty cycle is actually 76% not 38%.

Duty cycles > 100 imply that injection is happening during combustion.
User avatar
manselainen
Posts: 109
Joined: October 21st, 2011, 3:56 pm

Re: Ability to log injector duty cycle

Post by manselainen »

Thanks Steve!

So IDC is injector_pulse_width/time_of_one_revolution.

Was just wondering if my IDC's would somehow already be too high and thus reducing my WGDC.
Tuned with Image by Image

3 MPS '07, BNR S3, ported IM, VTCS delete, test pipe, PTP HPFP internals, RMM
User avatar
Steve @ VersaTune
Lead tuner
Posts: 1157
Joined: March 29th, 2010, 12:58 pm

Re: Ability to log injector duty cycle

Post by Steve @ VersaTune »

It takes high load at high rpm to hit that. I can't recall if a K04 can hit that.

Either way, it will be fixed in the next release of VT. I have that limit disabled in the internal beta version that I run. It works quite well :)
mituc
VersaTuner guru
Posts: 1324
Joined: December 17th, 2011, 2:47 pm
Location: Iasi/Romania

Re: Ability to log injector duty cycle

Post by mituc »

Ok, I checked my logs and indeed the IDC doesn't go above like 35%. I changed my formula already, so I will not divide it by two anymore.
2008 Cosmic Blue Mazda 3MPS
Built engine + WMI + GTX3071 gen2, ~509BHP @34PSI
2008 Icy Blue Mazda CX7
Stock engine and exhaust (YES!!), JBR3" + GTX2867 gen2 + Autotech HPFP, self-tuned to 330-ish BHP
User avatar
wcs
Posts: 61
Joined: May 12th, 2021, 12:46 am

Re: Ability to log injector duty cycle

Post by wcs »

@mituc Wow great write up and excellent link to Injector-Rehab.

I found this thread investigating what the IPW unit of measure was for VT.
I expected it to be milliseconds but suspected it to be in microseconds which you confirmed, thank-you.

FWIW my brain works better converting the logged value to milliseconds when doing the math but whatever works eh.
That said your equation made it way easier to enter into MegaLogView HD

InjectorDutyCycle = 100*[Fuel injection pulse width]*[RPM]/(1*60*1000*1000)

I've used the value "1" when calculating the "cycles per microsecond" because this is for a rotary engine.
(I know I could have just removed it but it is a reminder that this value needs to reflect the number cycles per injector pulse)

Thanks again!
Post Reply