Injector flow rate linearization table
#1
Injector flow rate linearization table
<strong>November 29, 2014: Updated for accuracy</strong>
<strong>December 1, 2014: Added table address for 94170015</strong>
<strong>December 27, 2014: Added table address for 96530006 and 90550001 (thanks SkyNight)</strong>
<strong>December 29, 2014: Adding links to FIC2150, FIC1650, and FIC1100 flow rate linearization tables</strong>
<strong>September 27, 2015: Fixed for messed up EvoM text parser.</strong>
This table has been discussed before, but mostly only in passing. Fuel injectors are supposed to have a linear relationship between pulse width and fuel flow rate. Any good injector will have a linear relationship between pulse width and fuel flow rate everywhere except at low pulse widths. However, even the best injectors will have a non-linear relationship between pulse width and fuel flow rate at very low pulse widths. This isn't a problem for motors with typical HP/displacement ranges because the injector size can be selected so that the non-linear partial opening region can be excluded from the operating range. However, it is a potential problem for big power Evos that need a big fuel injector because these injectors will operate in the non-linear response range at idle and cruise conditions. An example of this non-linear response is shown in the plot below that I borrowed from the FIC website. Two horizontal lines show typical fuel flow rates required for idle and cruise. A stock size injector is fully linear before even reaching flow rates required for idle while the FIC2150 is smack in the middle of the non-linear region at idle and cruise.
<img alt="" src="http://fuelinjectorclinic.com/image/data/zoom%204.jpg" />
The engine control code is written with the general assumption that the fuel flow rate is linear with pulse width, so a non-linear response is a problem for obtaining best possible idle and cruise AFRs for big injectors. As it turns out, most (if not all) modern engine control programs are written to deal with the non-linear response at low pulse widths. The way it works with the Evo ECU is that it first calculates the pulse width assuming a linear relationship, and then for low pulse width ranges, it applies a correction to the calculated linear value. The correction table is determined by comparing the low pulse width flow data to a linear fit to the high pulse width data. An example of the required correction is shown in the figure below.
<img alt="" src="https://www.evolutionm.net/forums/attachment.php?attachmentid=236232" />
This correction information can be determined for the non-linear region to build the table. The engine control code adds these corrections to the linear fuel pulse width value to obtain a pulse width that gives the correct fuel flow rate. The table definition is listed below for the USDM Evo 9 88590015 ROM.
For the 94170015 ROM, change "31db" to "37c7" in the table data below.
For the 96530006 ROM, change "31db" to "37c7" in the table data below.
For the 90550001 ROM, change "31db" to "3977" in the table data below.
Table Definition for USDM Evo 9 88590015 ROM
For the stock Evo 9 ROM, the table is shown below. As can be seen, the linearization values are quite significant compared to the requested pulse width, so they can make a big difference in fuel pulse size.
<img alt="" src="https://www.evolutionm.net/forums/attachment.php?attachmentid=236234" />
<strong>December 1, 2014: Added table address for 94170015</strong>
<strong>December 27, 2014: Added table address for 96530006 and 90550001 (thanks SkyNight)</strong>
<strong>December 29, 2014: Adding links to FIC2150, FIC1650, and FIC1100 flow rate linearization tables</strong>
<strong>September 27, 2015: Fixed for messed up EvoM text parser.</strong>
This table has been discussed before, but mostly only in passing. Fuel injectors are supposed to have a linear relationship between pulse width and fuel flow rate. Any good injector will have a linear relationship between pulse width and fuel flow rate everywhere except at low pulse widths. However, even the best injectors will have a non-linear relationship between pulse width and fuel flow rate at very low pulse widths. This isn't a problem for motors with typical HP/displacement ranges because the injector size can be selected so that the non-linear partial opening region can be excluded from the operating range. However, it is a potential problem for big power Evos that need a big fuel injector because these injectors will operate in the non-linear response range at idle and cruise conditions. An example of this non-linear response is shown in the plot below that I borrowed from the FIC website. Two horizontal lines show typical fuel flow rates required for idle and cruise. A stock size injector is fully linear before even reaching flow rates required for idle while the FIC2150 is smack in the middle of the non-linear region at idle and cruise.
<img alt="" src="http://fuelinjectorclinic.com/image/data/zoom%204.jpg" />
The engine control code is written with the general assumption that the fuel flow rate is linear with pulse width, so a non-linear response is a problem for obtaining best possible idle and cruise AFRs for big injectors. As it turns out, most (if not all) modern engine control programs are written to deal with the non-linear response at low pulse widths. The way it works with the Evo ECU is that it first calculates the pulse width assuming a linear relationship, and then for low pulse width ranges, it applies a correction to the calculated linear value. The correction table is determined by comparing the low pulse width flow data to a linear fit to the high pulse width data. An example of the required correction is shown in the figure below.
<img alt="" src="https://www.evolutionm.net/forums/attachment.php?attachmentid=236232" />
This correction information can be determined for the non-linear region to build the table. The engine control code adds these corrections to the linear fuel pulse width value to obtain a pulse width that gives the correct fuel flow rate. The table definition is listed below for the USDM Evo 9 88590015 ROM.
For the 94170015 ROM, change "31db" to "37c7" in the table data below.
For the 96530006 ROM, change "31db" to "37c7" in the table data below.
For the 90550001 ROM, change "31db" to "3977" in the table data below.
Table Definition for USDM Evo 9 88590015 ROM
Code:
<scaling name="InjLinearizationPWScale" units="PW Adder (ms)" toexpr="x*0.004" frexpr="x/0.004" format="%.3f" min="0" max="0.5" inc="0.004" storagetype="uint8" endian="big"/> <table name="Injector Flow Linearization PW Adder" category="Fuel - Injector Settings" address="31db" type="2D" level="2" scaling="InjLinearizationPWScale"> <table name="Requested FPW (ms)" type="Static Y Axis" elements="66"> <data>0.016</data> <data>0.048</data> <data>0.080</data> <data>0.112</data> <data>0.144</data> <data>0.176</data> <data>0.208</data> <data>0.240</data> <data>0.272</data> <data>0.304</data> <data>0.336</data> <data>0.368</data> <data>0.400</data> <data>0.432</data> <data>0.464</data> <data>0.496</data> <data>0.528</data> <data>0.560</data> <data>0.592</data> <data>0.624</data> <data>0.656</data> <data>0.688</data> <data>0.720</data> <data>0.752</data> <data>0.784</data> <data>0.816</data> <data>0.848</data> <data>0.880</data> <data>0.912</data> <data>0.944</data> <data>0.976</data> <data>1.008</data> <data>1.040</data> <data>1.072</data> <data>1.104</data> <data>1.136</data> <data>1.168</data> <data>1.200</data> <data>1.232</data> <data>1.264</data> <data>1.296</data> <data>1.328</data> <data>1.360</data> <data>1.392</data> <data>1.424</data> <data>1.456</data> <data>1.488</data> <data>1.520</data> <data>1.552</data> <data>1.584</data> <data>1.616</data> <data>1.648</data> <data>1.680</data> <data>1.712</data> <data>1.744</data> <data>1.776</data> <data>1.808</data> <data>1.840</data> <data>1.872</data> <data>1.904</data> <data>1.936</data> <data>1.968</data> <data>2.000</data> <data>2.032</data> <data>2.064</data> <data>2.096</data> </table> </table>
<img alt="" src="https://www.evolutionm.net/forums/attachment.php?attachmentid=236234" />
Last edited by mrfred; Sep 28, 2015 at 06:31 AM.
The following 2 users liked this post by mrfred:
ace33joe (Feb 19, 2017),
dr_latino999 (Oct 26, 2016)
#2
Evolving Member
Good information here as always and would prove extremely helpful for injectors that are, apparently, NOT linear.
I am using ID2000s, which appear to be very linear according to ID's website ( pictured below ) with the min IPW mod set to 1.032 and it idles great @ 900rpm.
I am using ID2000s, which appear to be very linear according to ID's website ( pictured below ) with the min IPW mod set to 1.032 and it idles great @ 900rpm.
#3
The ID2000 looks pretty linear until a line is dropped on it. ID2000s and FIC2150s are essentially the same size, and both will require an ~0.5 ms fuel pulse width (IPW = FPW + latency = ~0.5 ms + ~0.8 ms = 1.3 ms) at idle on an Evo assuming linear response. So the non-linearity of the ID2000s is right in the middle of the idle range.
Indeed, these big injectors can idle well without tweaking this correction. I've seen the same thing on my buddy's Evo with FIC2150s. So this linearization business can be considered optional.
Indeed, these big injectors can idle well without tweaking this correction. I've seen the same thing on my buddy's Evo with FIC2150s. So this linearization business can be considered optional.
Last edited by mrfred; Nov 29, 2014 at 11:25 AM.
#4
Former Sponsor
iTrader: (1)
Very interesting thread, and something that I hope will end up being very valuable to the Evo community so thank you for taking the time to do this mrfred! We will help with what we can in gathering the data you need to complete this project.
When comparing the FIC and ID graphs above, I just wanted to make sure that the scale of each graph is noted. Of course when you zoom out things look very linear but when you really zoom in tightly, you start to see the detail of the short pulse width area which is going to be non-linear in some way for every injector. For this reason we displayed our graph at 4 different levels of detail here so you can get an idea of the big picture as well as the nitty gritty details down low (we're not afraid of talking about the limitations of injectors in the pursuit of knowledge): http://fuelinjectorclinic.com/data-match-technology
When comparing the FIC and ID graphs above, I just wanted to make sure that the scale of each graph is noted. Of course when you zoom out things look very linear but when you really zoom in tightly, you start to see the detail of the short pulse width area which is going to be non-linear in some way for every injector. For this reason we displayed our graph at 4 different levels of detail here so you can get an idea of the big picture as well as the nitty gritty details down low (we're not afraid of talking about the limitations of injectors in the pursuit of knowledge): http://fuelinjectorclinic.com/data-match-technology
#5
https://www.evolutionm.net/forums/ec...ated-maps.html
The FPW range is the same as for the 8/9, but the steps are a bit more coarse.
Last edited by mrfred; Jun 16, 2014 at 01:43 PM.
#6
Evolving Member
I wish I understood more of this information and data, but can you graph the utilized correction the ECU is using against the known data of the Injector from the manufacture to obtain correct data to enter into the table?
Trending Topics
#8
Evolved Member
iTrader: (9)
I have a ticket open with Injector Dynamics which I actually need to supply all the stock table values/pictures for them to generate the equivalent of this table (Low Pulse Width IPW Adder as named for Evo X definitions) for ID1300's. This one also has more resolution than the Evo X has.
I've been fighting getting my ID1300's dialed in and latencies and expected scaling being totally off from what ID advertises. I expected it to be different to some extent but I also have working values from a few people and mine are no where near theirs which aren't to far off from ID.
I've had a lot going on lately so I haven't gotten to it and this just reminded me to do it...
I've been fighting getting my ID1300's dialed in and latencies and expected scaling being totally off from what ID advertises. I expected it to be different to some extent but I also have working values from a few people and mine are no where near theirs which aren't to far off from ID.
I've had a lot going on lately so I haven't gotten to it and this just reminded me to do it...
#9
Evolved Member
iTrader: (10)
Join Date: Mar 2013
Location: Chicago
Posts: 890
Likes: 0
Received 0 Likes
on
0 Posts
Mychailo, I am using the FIC 1100 high z injectors. I know you used to use these, I'm not sure if you still are running them though. Would any adjustment be needed for these 1100's in your opinion? Thanks, Jason
#12
It does. See one of my earlier posts. I link to tephra's thread where he has the definition written out.
#13
Evolved Member
iTrader: (10)
Join Date: Mar 2013
Location: Chicago
Posts: 890
Likes: 0
Received 0 Likes
on
0 Posts
Can non linear response at idle be a static issue (only show an issue every once in awhile)? Or would it be a constant if there was an issue? Occasionally when I roll up to a stop sign or a stop light my afr's at idle go lean to 17's. It's not decel fuel cut either. I'm talking about already being completely stopped and the car's afr goes really lean sitting there at idle. It only does this occasionally and just lightly tapping the gas returns the afr at idle to 14.7 instantly every time.
#15
As jeffbeagley said, ideally the response of the injector should always be the same under a range of operating conditions, and I imagine that's a goal for any injector manufacturer. I have no idea how close they get to that goal though.
I haven't seen that kind of behavior in my FIC1100s. They've been the best injector I've had to-date.
I haven't seen that kind of behavior in my FIC1100s. They've been the best injector I've had to-date.