It is currently Mon May 21, 2018 5:13 am



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 27 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: Dead (compesation) time
PostPosted: Wed Jun 12, 2013 9:42 pm 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
The dead(compensation) time variable in the FS code is a global number meaning is sets all injectors......easy but not so good for balancing the injectors and mismatched dead times are generally the biggest cause of cylinder to cylinder variations.

I'm thinking the answer is to just set the value in the etpu code to 0 and then add the dead time to the desired pulse width

Other thoughts?


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Thu Jun 13, 2013 1:59 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
Perhaps if you use the FS code's dead time for the battery voltage compensation factor....

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Thu Jun 13, 2013 8:12 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
abecedarian wrote:
Perhaps if you use the FS code's dead time for the battery voltage compensation factor....


There isn't really any way to do that because the Volt compensation is a % of the baseline compensation number.

I had originally planned to make the individual injector number a % of the baseline and add just that to the pulse width but that doesn't work at low power where the pulse width is short compared to the dead time so the required pulse could be negative....plus its more processor work that way so a lose/lose.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Thu Jun 13, 2013 12:03 pm 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
Battery compensation is either added to the dead time or multiplied with the final calculations, no? So it's hard for me to visualize when things result in negative pulse widths.

I've seen formulae work both ways.

For instance one where the dead time is stated as 1.0ms @ 13.2v and then an "X" millisecond/volt correction is given. Assuming "X" is 0.19ms/v, if battery voltage is 12.2v, 0.19ms would be added to the dead time; 11.2=0.38; if 14.2v, -0.19ms is added. I might be able to see this come up with negative values but if your fuel injection volume pulse width is say 2.1ms and you add the dead time of 1.0ms, your pulse would be 3.1ms @ 13.2v. You would have to be well over 25 volts for the battery correction to subtract enough to be negative pulse width.

With a multiplication factor, it should never go negative since the factor will be a positive value which could (arbitrarily chosen by me) range from 0.1 to 2, with 1 being no correction. Again 1.0ms @ 13.2v dead time and calculated 2.1ms pulse width would be 3.1ms pulse width at 13.2v, i.e. the correction factor would be 1. As battery voltage increases above 13.2v, it would go below 1- 0.9, 0.8, et cetera down to around 0.2-0.1 @ 18v.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Thu Jun 13, 2013 12:20 pm 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
abecedarian wrote:
Battery compensation is either added to the dead time or multiplied with the final calculations, no? So it's hard for me to visualize when things result in negative pulse widths.
.


Yes and no.

The etpu expects 2 values, one for dead time, one for fuel time and then it adds them to produce the actual pulse length.

Dead time is longer at low voltage and shorted at higher voltage so anything over the reference voltage (generally normal operating voltage) produces a reduction in dead time..... and that would be negative if you were trying to ONLY handle voltage compensation. It could also produce a negative pulse width if you applied it to the fuel inject time (which at low power is often small compared to dead time). The total time would never go negative.....which is the whole point of combining the 2 values before passing it to the etpu.

We are already adding dead time to pulse width in the cpu to produce the injection time value for the tuner to display....I'm thinking we might as well just pass that value to the etpu as pulse width and 0 the dead time setting rather than try to complicate something that should be simple.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Fri Jun 14, 2013 11:55 pm 
Offline
User avatar

Joined: Thu May 30, 2013 1:11 am
Posts: 54
So if we are sending dead time + pulse length, then we should be applying the voltage corrections to the dead time and NOT the pulse time. The thing that changes with changing voltage is how quickly the injector opens, but once it is open, the fuel flow is a function of fuel pressure and not voltage.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Sat Jun 15, 2013 2:05 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
clcorbin wrote:
So if we are sending dead time + pulse length, then we should be applying the voltage corrections to the dead time and NOT the pulse time. The thing that changes with changing voltage is how quickly the injector opens, but once it is open, the fuel flow is a function of fuel pressure and not voltage.

Functionally, there's little difference between:
- total dead time (volt comp + injector spec) and injector open time sent to the eTPU, leaving the eTPU function to calculate it... or ...
- a function in the core doing the calculations itself and sending the eTPU function a dead time of "0" and the calculated injector duration.

For readability of the code and logic flow, I 'think' I agree; dead time is one entity and injector open time is another, and might best be kept separate so modification of one part of the code doesn't cascade into another requiring more modifications.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Sat Jun 15, 2013 7:42 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
clcorbin wrote:
So if we are sending dead time + pulse length, then we should be applying the voltage corrections to the dead time and NOT the pulse time. The thing that changes with changing voltage is how quickly the injector opens, but once it is open, the fuel flow is a function of fuel pressure and not voltage.


Correct.

We treat them separately during the calculations applying the right corrections to each just like we always have so nothing changes there ......but then we'll let the cpu add them together and send the total time to the etpu instead of sending the separate values and letting the etpu add them.

It's a minor change but it allows a little better control. It's usually differences in dead time injector to injector that bugger up idle and this change will allow you to correct for it instead of needing to buy the expense dynamically matched injector sets.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Sun Jun 16, 2013 2:44 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
mk e wrote:
....
... but then we'll let the cpu add them together and send the total time to the etpu instead of sending the separate values and letting the etpu add them.
....
Why?

Even if you send a "0" to the eTPU for dead time it still executes the instructions and does the math, and doing the calculations in the core uses core cycles that might be better utilized elsewhere... if not now, possibly soon.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Sun Jun 16, 2013 7:07 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
abecedarian wrote:
mk e wrote:
....
... but then we'll let the cpu add them together and send the total time to the etpu instead of sending the separate values and letting the etpu add them.
....
Why?

Even if you send a "0" to the eTPU for dead time it still executes the instructions and does the math, and doing the calculations in the core uses core cycles that might be better utilized elsewhere... if not now, possibly soon.


Because in the etpu dead time is a single gobal value that is applied to all fuel channels...so it require you to have a set of injectors that all have exactly the same dead time like the injectors you get from injector dynamics.

If you don't have the expensive injector dynamics injectors you can be pretty sure that the dead times do not match exactly and you will want individual deadtime settings to fix it and clean up you idle/low power ....but the canned FS etpu code can't do that so we are going to move it to the CPU. I've seen this issue many times and once to the point that one plug come out white to the point the cylinder was missing and the one next to it come out black black after less than 10 minutes idling, this was a high boost engine so pretty big injectors running pretty short times at idle and there was just no way to fix it other than switch to an ecu that had the ability to do cylinder tuning. If we want o5e to be taken seriously in the performance world it needs individual injector control IMO.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Sun Jun 16, 2013 10:06 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
mk e wrote:
abecedarian wrote:
mk e wrote:
....
... but then we'll let the cpu add them together and send the total time to the etpu instead of sending the separate values and letting the etpu add them.
....
Why?

Even if you send a "0" to the eTPU for dead time it still executes the instructions and does the math, and doing the calculations in the core uses core cycles that might be better utilized elsewhere... if not now, possibly soon.


Because in the etpu dead time is a single gobal value that is applied to all fuel channels....

Makes sense, and is why I suggested using that for voltage compensation. Could still do per-cylinder trim in the core though.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Sun Jun 16, 2013 10:44 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
abecedarian wrote:

Because in the etpu dead time is a single gobal value that is applied to all fuel channels....

Makes sense, and is why I suggested using that for voltage compensation. Could still do per-cylinder trim in the core though.[/quote]

You can't really separate out the voltage compensation from the deadtime....at least not in any very practical way because it's a correction that wants to act on the dead time.

I think the way to do it is to apply grab the dead time, apply the the voltage correction, add it to pulse width, pass to the etpu.

We can reduce clock cycles if needed by reducing the rate we update dead time at.....but i don't think there is anything like an issue even with the slow 80mhz 5634 processor.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Sun Jun 16, 2013 11:59 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
True. The only thing really affecting injector opening time would be battery voltage. It's going to drop during cranking and rise once running until the voltage stabilizes.

What you would have to be careful about is the voltage swing while cranking since voltage can easily vary 1 volt or more during cranking, resulting from the current draw of the starter and cylinder compression- high compression engines will cause the starter to draw more current and thus lower the voltage when cylinders are in the compression stroke. You might want to do a weighted mean of the voltage across each engine cycle because of this.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Fri Nov 22, 2013 6:20 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
The motec M1 series are doing something kind of interesting here.

They have a table that is flow v pressure v voltage with the time in the cells. They go 1 thru 20 ul then jump to max. This gets the dead time but also corrects for any non-linearity at low flow giving a very exact fuel delivery.

There is a separate table for each injector.

...now there aren't many places you can go to get this type information. Injector dynamic supplies it with there injectors but they only deal with their own injectors. I'm told motec is building a data base and can measure injectors......but how you do this at home I have no idea.


Attachments:
Motec deadtime.JPG
Motec deadtime.JPG [ 66.11 KiB | Viewed 13269 times ]
Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Fri Nov 22, 2013 8:46 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
Quote:
I'm told motec is building a data base and can measure injectors......but how you do this at home I have no idea.

Not sure what good a database of injector flow characteristics such as this would be unless they're going to offer a full system with uber-matched injectors. I mean, unless injectors are 'serialized' and the data made available so that one could start the tuning software and enter "XXXXYYYZZZ12343964" and the software would have the flow data, as you mention, how to do this at home. And even then, flow will alter over time, in generally unpredictable ways, necessitating alteration to the data.

Variations in fuel composition can affect flow if the viscosity of the fuel is changed.
Deposits / residue on the injector pintle can affect the mass of the pintle and influence its operation.

Until proven otherwise, I'm calling shenanigans on the feature and relegating it to marketing gimmick.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Fri Nov 22, 2013 9:32 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
When you buy you injectors form ID, they come as a dynamically matched set meaning they all have very similar curves and they give you the data for your particular set.

The curve shapes of a type injector tend to be characteristic but shift right/left injector to injector so having the characteristic curve is still helpful, just not as helpful as the exact right curve.

If you don't have data and want it motec will measure your injectors and give you the curves for each individual injector. Expensive but accurate.

I don't know. The OEMs use a couple different methods for handling the non-linear region.....mainly they try to stay out of it :)

...but they do try to account for it the best they can in mass production.

If you are custom matching/tuning......well you have the option to make it perfect right?


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Fri Nov 22, 2013 4:16 pm 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
mk e wrote:
....
If you are custom matching/tuning......well you have the option to make it perfect right?

True, I suppose.

That does put DIY a fair few steps down the ladder though. I mean, if the non-OEM, and maybe even OEM fuel injector manufacturers are teaming up with notable aftermarket systems' builders, costs will increase.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Wed Mar 25, 2015 3:13 pm 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
I need to decide what to do here....I don't want to add complexity but do want to handle short pulse widths.

The motec system is very accurate, a bit much for mortals I think. The MS guys came up with a % correct method which lets you keep the basic setup then add more info but it's less intelligible than the motec system I think.

I need to ponder this a bit as it does impact the way fuel is handled all through the code.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Thu Mar 26, 2015 12:58 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:52 am
Posts: 304
Location: Over here, doing 'over here' things.
I would think O2 feedback could be used to adjust injection time, at least at idle.

I.e. if you target a Lambda value and the ECU has to compensate +/- some percent to achieve that AFR, you're now taking into account the dead time. So perhaps a machine learning type thing? It's not like the dead time is going to change much over varying RPMs, no? So once you have some offset, it should be the same across the board.

The ECU / firmware could even go so far as to modify the fuel tables to incorporate that offset on its own so as to save on memory usage? As in not having an offset table stored as well....

Hmm... it made sense to me when I started typing it; not sure it does now.

_________________
/me goes off to the corner feeling like Jerry Springer with a mullet.

My O5E candidate: 1982 Honda CX500TC motorcycle.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Thu Mar 26, 2015 6:54 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
i get it. Here's the thing though, the engine mapping should right as close as possible then closed loop can step in and cleanup anything you don't have exactly right and compensate fuel brand changes and such. What you don't want is to try and run the engine off O2 feedback back as the name implies its feedback so that is lag, also if anything goes wrong with the sensor your f'd.

My biggest concern is presenting the info to the user in a way that works for backyard DIY guy just as well as it does for pro-race team guy......and that's a tall order.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Mon Apr 06, 2015 11:19 am 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
Marcus has been playing with this a bit:
Quote:
I've made some small improvements to the code and shipped them back to Mark. I wanted to learn some more about sensors and injectors so I asked around and a friend has provided me with an old Mustang fuel injection intake with pieces. Wow, that's a hefty lump coming in at 48.0 lbs. for just what sits on the motor.

I don't have the chips yet that I am considering using for the real board but I cobbled together a scrap mosfet etc. so I could look at the injector signals. I wanted to see wether it would be straight forward to observe the movement of the injector pintle. So far I've only managed to remove three injectors from the setup, they are sort of stuck or difficult to remove.

Long story short, the movement of the pintle is clearly visible in the voltage signal from the mosfet. Here's a couple of pictures. Of the first three injectors I have looked at one is stuck and the other two indeed have different timing. This is a very small sample of parts, but I think I lucked out having one stuck for comparison. The stuck part has a very smooth curve as the current rises when it has been turned on. The other two parts also show a smooth curve but with a small dip roughly in the middle of the rise. This dip corresponds ( I expect ) with the movement of the pintle. As the pintle moves it changes the inductance of the injector, increasing it, which cause the dip.

In these two pictures you can clearly see that one injector has a dip at 1.5 mSec. after it is switched on and the other injector has a dip at 1.7 mSec. I think the ECU chips we are using in this project can easily measure this. Maybe it even makes sense to measure this the first time the injector fires every time you start the motor and then apply a trim.

I had a request to show the trace for the stuck injector, so here it is. I got the rest of the injectors seperated from the fuel rails and manifold. It turns out that 6 of the eight are stuck and I'm glad the two that worked were among the first I removed or I might have given up. I tired a squirt of carb cleaner and also put 24V on one of them but no luck freeing them so far. What's a good way to free these up? Put them in a jar with something like lacquer thinner for a day?

In this picture you can see the trace is very smooth, which I think indicates no movement of the pintle and hence a constant inductance.


Attachments:
o5e_injector4.jpg
o5e_injector4.jpg [ 221.31 KiB | Viewed 10970 times ]
o5e_injector5.jpg
o5e_injector5.jpg [ 218.38 KiB | Viewed 10970 times ]
o5e_injector6.jpg
o5e_injector6.jpg [ 219.46 KiB | Viewed 10970 times ]
Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Mon Apr 06, 2015 4:11 pm 
Offline
User avatar

Joined: Thu May 30, 2013 1:11 am
Posts: 54
I have a small ultrasonic cleaner along with a vacuum pump and Sea Foam that I use on injectors. Basically, put the Sea Foam (SF) into the ultrasonic cleaner and get it hot. Hook up a vacuum rated tube on the fuel inlet of the injector and dip it into the ultrasonic tank (running of course!).

I then hit the injector with a 50% duty cycle square wave of around 20Hz or so and turn the vacuum pump on. That pulls the SF into the pintel and back out the fuel inlet, breaking up the varnish and crap in the injector and pushing it back out of the injector so it can't plug the pintel further.

If you use a clear tube, you will see the very dirty crap that comes out of the injector at first and then watch it become nice and clear as the SF and ultrasonic work together to clean them up.

This process worked great on the Suzuki motorcycle injectors and the injectors from my sisters 96 T-bird (4.6 2-valve mod motor) after it had been sitting for 6 years. And, the chance of damaging the injector is about zero with this procedure, plus the ultrasonic helps get the pintel freed up so the SF can do it's job.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Tue Jun 09, 2015 1:48 pm 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
I've been pondering this again and am trying something a bit different.....just using the GM system which looks pretty good.

This system in it's simplest form is just a slope and a dead time, but if you have more data you can use it.

The data for my injectors in GM format is here:
http://injectordynamics.com/wp-content/ ... 3-2011.xls


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Tue Jun 09, 2015 4:51 pm 
Offline
User avatar

Joined: Thu Mar 26, 2015 11:55 am
Posts: 112
Location: Massachusetts, USA
I'll try to take a look at that data soon. A couple of comments though.

We can put code in the ECU to use it for measuring injectors. Drive the injector for N long pulses and N*10 pulses of 10% length. You can compare the amount of fluid and then come up with an adjustment. The code would be pretty simple. What I like about this is it would give us a handle on how important this is and it might be something that serious folks would want to do.

You could also use this both to check injectors and run cleaner thru them.

I don't think the compensation for battery voltage should be linear. I think the power you're putting into the injector would go by the square of the voltage. Which would make a big difference during cranking.


Top
 Profile  
 
 Post subject: Re: Dead (compesation) time
PostPosted: Tue Jun 09, 2015 6:27 pm 
Offline
User avatar

Joined: Sat May 11, 2013 9:45 am
Posts: 729
Location: PA, USA
Horizenjob wrote:
I'll try to take a look at that data soon. A couple of comments though.

We can put code in the ECU to use it for measuring injectors. Drive the injector for N long pulses and N*10 pulses of 10% length. You can compare the amount of fluid and then come up with an adjustment. The code would be pretty simple. What I like about this is it would give us a handle on how important this is and it might be something that serious folks would want to do.

You could also use this both to check injectors and run cleaner thru them.



yes, anyone serious wants this data these days. You need the flow vs time curves covering about 8-14V and at a minimum at the pressure you're actually running, curves and a pressure sensor are better.

This is the data companies like injector dynamics supplies with all their injectors. This is a nice feature but I think way better suited to a test bench setup than trying to do on the car somehow....it could be added to test mode stuff though. I think you want to control the pulse time not the % though.....although with enough resolution on the % I suppose it doesn't matter other than needing to convert it to time to use it.



Horizenjob wrote:
I don't think the compensation for battery voltage should be linear. I think the power you're putting into the injector would go by the square of the voltage. Which would make a big difference during cranking.


yes, exponetail not linear and yes it makes a big difference during cranking.

The nice thing about the GM data is you can have a simple slope and deadtime wiht voltage correction, those you NEED, then "enable" :

short pulse correction
pressure correction

If you have the data and want them. I always try to design stuff that lets you go from simple to complex as needed and this fits that model.


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 27 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Theme designed by stylerbb.net © 2008
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
All times are UTC - 5 hours [ DST ]