CoreyG Posted August 21, 2022 Share Posted August 21, 2022 Hi everyone, I have thrown together a simple web application that might be useful for people working on injector scaling. As has been discussed many times on this forum, changing the low slope / breakpoint / deadtime offset affects the amount of fuel delivered at higher pulse widths. This app provides you with the ability to adjust these values with a slider to help figure out the optimal injector scaling (or at least as close to optimal as possible). The site is currently hosted at https://injectorscaling.fly.dev/ Fill in the information in the attached spreadsheet and upload it to the site to play around. Unfortunately there is a 30 second time out with fly.io (that I can’t change), so you might need to refresh your page every so often. The top plot shows you a comparison of the original injector settings (black line) and the new settings (red line) – based on the sliders of the left. The dashed horizontal lines show the breakpoint (change between low and high slopes). The vertical dashed lines show the injector minimum pulse width (which isn’t really used in this app). The second plot shows what (approximate) effects these changes will have on the amount of delivered fuel. I’m not quite happy with this part, so I’m happy to have suggestions/comments. However, you can think of this like so: the PCM asks for a certain amount of fuel and uses the first plot like a look up table (draw a line in from the y-axis until you hit the black line, then draw a line down to the x-axis to see the pulse width required). To make this plot, I then draw a line up from that pulse width until we hit the red line, then draw a line across to the y-axis. This would be the amount of fuel that is delivered (assuming all of the new values are actually correct). The difference in expected vs delivered is converted to a pseudo long-term fuel trim and shown on the graph. Note: this could also be shown for pulse width instead of fuel on the x-axis. There is another plot below those two that show the injector deadtime vs battery voltage. I allow you to change the battery voltage on the slider, but it doesn’t qualitatively change much in the first two graphs. Rather than change all the values of this, I have applied a simple “offset” that just adds or subtracts a fixed time to the injector deadtime. You can see that it raises or lowers the entire curve and can make a large difference in the first two plots. This is just a first prototype. I was hoping to have more features before releasing it, but I haven’t made much progress due to time constraints. I have another app for viewing the spark advance table under different engine conditions e.g. sliders to change ECT, ACT, Lambda, catalytic converter temp etc. The excel file has 18 tabs (not all of which are needed for all situations), so it isn’t the friendliest thing to use. I’ll post when this site is up. Injector_scaling.xlsx 3 1 Quote Link to comment Share on other sites More sharing options...
hjtrbo Posted August 21, 2022 Share Posted August 21, 2022 oh I love a good spreadsheet. Looking forward to the spark one. Question on that, are you also looking at the cold start adders as well? FG auF0210, 1 & 2. Nice job on the app. Have got new injectors coming so your timing couldn't be better! Legend Quote Link to comment Share on other sites More sharing options...
CoreyG Posted August 21, 2022 Author Share Posted August 21, 2022 Thanks, hjtrbo. Yes, I am including the cold start adders auF0210/1/2. I added the spreadsheet that I am currently working with. I'll finish up the couple views I am working on and will make it live so I can get some feedback. Spark_viewer.xlsx 1 Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted August 22, 2022 Share Posted August 22, 2022 Great work. Things that I would love to see. An exaggerated annotated zoom for the low/high slope to make the changes really obvious Some way to take a histogram like below and annotate it: Then have your tool auto suggest corrections to the injector slopes. It could be iterative and have filtering (eg avoid transients, bad data rates, high standard deviation etc due to a random extra digit in a speed density table). Then have a big red magic "Fix my injectors" button. People would pay to use that button if it worked well or at least got them in the ball park. Some example of problems, and things it could potentially fix: Linear WOT error. Change high slope. Error around the deadtime/low slope, suggest deadtime/breakpoint/high slope changes to try and attempt to keep the WOT fueling consistent. Error around the breakpoint only, suggest breakpoint/low/high slope changes to fix the error in this zone only. Similar to what we were doing manually in this thread. Automating this would save tuners thousands of hours, I'm sure people would pay you for this service if its simple to use. Happy to help provide you anything you need to help get it there. Also if it works well, we would definitely push people to use it. Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted August 22, 2022 Share Posted August 22, 2022 Another one. If you could upload a datalog showed the fuel trim errors and you got the following result. It would be immediately obvious that you don't actually have a fuel injector slope problem. But (in this extreme example probably bad data or mechanical failure). But more than like your speed density slope and map is out. This is always a chicken and egg problem. However if you could somehow determine if the error data is purely a function of injector slopes/breakpoints/offsets you could say. Hey use these settings to fix it. If you had a graph like he one below, you could go "Hey this actually needs a speed density recalculation" to fix your problem. You could then spit out new SD tables instead. The way to determine if the error is a function of injector slopes is fairly easy, you just look at the standard deviation on the scatter plot of the LTFT. if its wild and all over the place, you know the LTFT error is actually related to a 4th or 5th variable (probably map pressure and cam angle) in which case it could come up with a solution for retuning the map/map offset tables and ALSO the injector slopes. You could then plot the problem cells (with a high SD against) map pressure and cam angle to validate this as well. This is something I tried to do here, but once again ran out of time. The main issue is the whole thing was quite technical, if you can bundle it up into a simple program where it says "log x,y,z" follow the the following dyno run. Then input the data, you could effectively get factory level fuel trims and steady state open loop lambda all automatically without having to be an engineer to understand what is going on. You can then try and figure out a function for your LTFT error term, ensure its actually a function of what you are trying to optimise then provide a solution. http://www.hptuners.com/forum/showthread.php?58174-Custom-graphing-software-for-logging-fuel-trims-and-recalculating-speed-density-maps here was an example where the LTFT error was actually not an injector slope issue (Which I was chasing my tail trying to correct) and was due to map slope offset. Kudos to actually building a working app. I look forward to seeing updates! Quote Link to comment Share on other sites More sharing options...
hjtrbo Posted August 22, 2022 Share Posted August 22, 2022 I love it how Paul at Injector dynamics describes Fords injector characterising method ... Quote Ford’s method of characterizing fuel injectors is unique, and elegantly simple. Yes, when the data is spot on. For us plebs learning GM with a MAF sensor and then a few tweaks to the VE (SD) table with ball park injector data, we can get things dialled in close enough that everything is fine. Even when switching between fuels, so long as the data is close enough just a minor fudge to the stoich table gets you back in the game. To bring Pauls comment back in to light, "as elegant and as simple as Fords method is," if you're switching between fuels, and you're miles off after adjusting stoich, then you have a full engineering problem to deal with. Almost makes the $1,000 for a China injector test bench seem good value for money. Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted July 29, 2023 Share Posted July 29, 2023 How are you going with this Corey? @CoreyG Quote Link to comment Share on other sites More sharing options...
Mick Posted October 17, 2023 Share Posted October 17, 2023 As Corey does not appear to be coming here anymore, I ask the question to some of you knowledgeable types, can something like his app be made from Excel? Quote Link to comment Share on other sites More sharing options...
CoreyG Posted October 25, 2023 Author Share Posted October 25, 2023 Sorry, everyone. I've been a bit all over the place. Not sure I even know what a car is anymore 😒 Here is a prototype excel workbook (it has macros/VBA, so you'll need to allow them). The first tab shows the calculated final spark, plus the BLK and MBT tables (after adjustment). You have some sliders on the right where you can change the ECT, Lambda, and IAT. There is a colour code picker, so you can choose to colour code the table by the spark source, highest to lowest values etc. If you want different colours, change the background colour of the Colour Picker cells and cycle the selector. The second tab shows how you might paste in a log output and see how changing the spark tables affects the calculated spark (the example data was taken from cruise while logging pretty much everything i.e. it's not great). The cool thing is that you could change your tables and see exactly where the spark "should" change. Just be aware of the Spark Source (I've included a table for what the numbers mean). Spark sources other than 1/2 could be wildly different. The other tabs are where you can copy in your tables from PCMTEC. It's not an elegant solution, but it works. I haven't extensively tested it or verified there aren't stupid mistakes in there (it would be worth knowing whether MBT - ECT adjustment is correct, or if it should be additive...). It would be worth generating some high quality logged data and seeing what it looks like. Then refine the model or extend to additional tables/modifiers. Spark_sim.xlsm 1 2 Quote Link to comment Share on other sites More sharing options...
Mick Posted October 25, 2023 Share Posted October 25, 2023 Hi Corey Thanks for allowing us access to your work, is there any chance, if it's not too hard, that you could change the injector worksheet so that larger data can be entered into it? Quote Link to comment Share on other sites More sharing options...
CoreyG Posted October 26, 2023 Author Share Posted October 26, 2023 20 hours ago, Mick said: Hi Corey Thanks for allowing us access to your work, is there any chance, if it's not too hard, that you could change the injector worksheet so that larger data can be entered into it? Hi Mick, I've updated the site so the sliders can go much higher. I've also added another slider which allows you to change the max injector pulse width time on the plots. 1 Quote Link to comment Share on other sites More sharing options...
Mick Posted October 26, 2023 Share Posted October 26, 2023 Thank you very much Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted October 28, 2023 Share Posted October 28, 2023 Just out of curiosity how are you hosting the site and what language did you write it in? Quote Link to comment Share on other sites More sharing options...
CoreyG Posted November 2, 2023 Author Share Posted November 2, 2023 I'm just running it on a free instance on fly.io It is a docker image (rocker/r-base) running a shiny app (https://shiny.posit.co/). It is written in R, as it is what I use everyday for work. Quote Link to comment Share on other sites More sharing options...
Roland@pcmtec Posted August 8 Share Posted August 8 On 10/25/2023 at 4:55 PM, CoreyG said: Sorry, everyone. I've been a bit all over the place. Not sure I even know what a car is anymore 😒 Here is a prototype excel workbook (it has macros/VBA, so you'll need to allow them). The first tab shows the calculated final spark, plus the BLK and MBT tables (after adjustment). You have some sliders on the right where you can change the ECT, Lambda, and IAT. There is a colour code picker, so you can choose to colour code the table by the spark source, highest to lowest values etc. If you want different colours, change the background colour of the Colour Picker cells and cycle the selector. The second tab shows how you might paste in a log output and see how changing the spark tables affects the calculated spark (the example data was taken from cruise while logging pretty much everything i.e. it's not great). The cool thing is that you could change your tables and see exactly where the spark "should" change. Just be aware of the Spark Source (I've included a table for what the numbers mean). Spark sources other than 1/2 could be wildly different. The other tabs are where you can copy in your tables from PCMTEC. It's not an elegant solution, but it works. I haven't extensively tested it or verified there aren't stupid mistakes in there (it would be worth knowing whether MBT - ECT adjustment is correct, or if it should be additive...). It would be worth generating some high quality logged data and seeing what it looks like. Then refine the model or extend to additional tables/modifiers. Spark_sim.xlsm 1.63 MB · 24 downloads I missed this, but it could be incorporated into the editor very easily, very neat tool. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.