![]() |
Adjusting AFR with Engine Load Compensation (instead of Load Limits)
**Update post 12**
I made an interesting discovery today: Engine Load Compensation is applied to both OL as well CL. Here my original problem from 5 months ago to recap: Well scaled MAF, stock ELC table, and "normal" POL fueling. I made a thread about it here: http://www.ft86club.com/forums/showthread.php?t=115056 https://s15.postimage.org/lj47qcpor/...t_18.01.52.png The big dip in AFR at 3600 rpm could be mostly solved with updated load limit. But to get the curve really flat some trickery was needed with POL fueling. Hence I had a pretty weird looking AFR command curve: https://s22.postimage.org/rh3yrfpbl/...t_18.12.58.png I still wasn't satisfied so I rescaled the MAF with the very kind help of @Kodename47 and his adaptation of 86inches tool to make a near perfect logarithmic MAF. It was a noticeable improvement and made the car more smooth (not that it was bad before at all). However, it started adding quite big LTFT and became way too rich in WOT. Even when freshly flashed and without LTFT is was too rich (keep in mind the zoom factor here): https://s1.postimage.org/exhalbq3z/S...t_15.17.45.png So I decided to try and scale the MAF again, but the resulting output didn't make sense. Like "something" was throwing it off. My intention had been to rescale the MAF and afterward redo the "Engine Load Compensation" table (again big thank you to Kodename47 for all the help!), so I had already adjusted it to match the Euro MY17 table. But since rescaling the MAF would seem to only be for the worse I decided to apply all correction to the ELC table directly instead. Stock MY13: https://s2.postimage.org/4x5xwj455/stock.png Stock MY17 adapted to MY13 (MY17 table has 2 more rows): https://s15.postimage.org/jpqyy4gtn/...t_18.47.16.png Based on the fuel error logs I ended up with this: https://s9.postimage.org/qzpog99n3/changed.png Since I wasn't expecting this to have any influence on OL fueling and I didn't have data for higher rpm/MAP (OL territory), I "guessed" the values and extended the 0.9 MAP value out to the right of the table, kind of to make it look similar to the stock table. Surprise, surprise.... :thumbup: https://s1.postimage.org/6l6iljc3j/S...t_14.53.08.png Obviously, this wasn't what intended, so I am in the process of adjusting further. So far it seems to work well to adjust the lower (0.8 and less) MAP cells using CL fuel error logs. MAP 0.9 and above seems to be best adjusted manually looking at the AFR error for WOT pull logs and apply them to the relevant cells. So far I only did one revision but it already looks pretty good, while reverting to the "normal" POL table again: https://s17.postimage.org/9gvqjnegv/...t_18.34.20.png A higher value in the ELC will make it richer and a lower will make it leaner. To anyone trying this method out, be aware it changes lookup in other tables too. E.g Base Timing B, so there is probably some adjustment to do elsewhere afterward. What remains to be seen is the effect on LTFT. Wouldn't it be great if it could be adjusted by entering the ELC table and adjust a few values? :drool: P.s.: Logs of the last edition for anyone curious: http://datazap.me/u/tor/tor-221 And the corresponding ELC table: https://s22.postimage.org/anej1o1kx/...t_18.52.58.png |
Hmmmm, very interesting.
|
Second try...
Over corrected a bit at 3600 rpm, and shouldn't have added a correction at 4800. https://s24.postimg.org/4gy3vtrmt/Sc...t_22.50.35.png Getting pretty close. The step value of the ELC table is pretty rough, so I might end up doing rough tuning in the ELC table and fine tuning in the POL. Once that is sorted I will start to do thorough tests. E.g. doing pulls in higher gears and see that there are no adverse effects and do a lot of general normal driving to see that it's not acting crazy. I drive quite a bit different when doing log drives than normal driving, so I want to be sure that it also behaves normally in those cases. Then I will also get an idea of where the LTFT might end up. The log from the last drive. Don't click on IAM or FLKC. It dropped IAM in the first log because AVCS didn't activate: http://datazap.me/u/tor/tor-2211?log...4&mark=917-946 |
So, do I adjust 4000 or 4400? Wish that table had double the resolution. :)
https://s8.postimage.org/kss42bxqd/Capture.jpg |
Quote:
the ECU will interpolate between the two values, assume it would be linear https://en.wikipedia.org/wiki/Linear_interpolation you can always rescale the axis but I think your after more rows/columns |
Quote:
|
Yes, I was partly kidding, I'm pretty happy with the results. Though my OCD would like to get the last part in line as well. :D
If making 4000 richer, it will also go richer in the old dip again. I might give the 4400 a notch up, which will probably make it too rich at 4600ish. Or I'll just leave it. I don't think rescaling is a good idea with this particular table. The resolution is not that high and the individual cells have too big differences in either one end or the other of the individual rows, so I think it would end up in cells missing somewhere. I did a lot of logs today. But unfortunately, I think it was too hot that I want to use them for further adjustments (28 to 35-40 deg IATs on average). I have IAT compensation zeroed out, so I suppose I would be adjusting the ECU to run without IAT compensations at 30+ deg. But the engine runs like a dream! I didn't mention that after rescaling the MAF I had a stuttering problem at 1500 rpm (like when driving at a parking lot in first gear). I thought it was a load limit problem. But that has been solved with ELC as well. :) I get a fair bit of FLKC but I'm not sure if it's my whole AFR curve being leaner or the temps or a combination. It looks like FLKC influences AFR and causes a fueling error? Which would then be included in the ELC if I was to use that data I suppose? Maybe filter out FLKC in the future? These are 2 pull done shortly after each other. Looking through everything in the log, the only difference I can see it the FLKC. https://s15.postimage.org/nh4rpm4pn/...03500323_o.jpg If I can't use the logs, at least I can play with them: These are the cells where the engine runs is OL: https://s13.postimage.org/b8ak7863r/OL_count.jpg And CL: https://s8.postimage.org/gkj8a4wmt/CL_count.jpg And here CL with MAF over 60 g/s: https://s12.postimage.org/tyb6ew3al/LTFT_count.jpg And the minimum volt from above: https://s2.postimage.org/9ij0moafd/LTFT_v.jpg So out of more than 1 hours of driving, I hit the magical 60 g/s for 48 split seconds. If the assumptions about where LTFT is set are correct, it looks like it's at 3600-4000 rpm and MAP 0.9 or 1.0... If that's the case it looks pretty good. I have -3 to -5 fuel error in those fields, but the good new it's the same in both OL and CL, so I assume the error is due to the lack of IAT comp. This may be the argument for not messing further with the ELC table, and adjusting the rest with POL. CL: https://s17.postimage.org/qngnysudr/CL_mean.jpg OL (it never really hits the 0.9 column): https://s24.postimage.org/3n6k8zryt/OL_mean.jpg |
Just finished reading through the original thread, and it looked like the AVCS changes were mostly responsible for reducing the AFR dip? Please correct me If I am wrong.
If that is the case, are these latest MAP load compensation updates on top of that? Im seeing the same dip you were originally seeing with my OFT stage1 on stock headers. It seems possible to go straight to correcting with the ELC table. Theoretically, any strange effects from valve timing would show more accurately in in the MAP sensor than the MAF sensor. I need to start logging MAP as well. On the other hand, I would think ambient pressure changes would really mess with the results. If you start seeing inconsistent behavior, I'd recommend correlating with baro. pressure. I have some more reading and logging to do before I start messing with the ELC or AVCS tables myself, but thanks for posting your results! |
Quote:
Yes, the load changes were done on top of those changes. And everything after that (MAF scaling, ELC). Quote:
You probably have around load 1 with stg 1 tune at 3600 rpm. With the OFT unmodified A01G tune total timing at 3600, load 1.0 is 24.14. At load 0.9 it's 25.9. So in this example reducing your load limit to e.g. 0.95 would give you 1 more deg of timing. You would need to rescale the load limits and it's not so easy. I don't know if it's good advice, but a quick fix might be to add 1 more deg to Base Timing B at load 1/3600 (or wherever your actual problem is) as a test? Quote:
With the dip: https://s30.postimage.org/w4n4hr2v5/...t_11.51.59.png With AVCS initialization error: https://s24.postimage.org/x0y60oll1/...t_12.35.55.png With or without AVCS, MAP is the same. Obviously, AFR changes and the dip is also gone. But there are probably way-way too many factors that changes, to jump to the conclusion that AVCS is the cause of the dip. With AVCS inactive the loads were far lower and timing a lot lower. AFR seems to almost follow timing with a delay. Quote:
Driving at different altitudes should make far more of a change. Pressure drops roughly 1 hpa per 30 feet altitude. So if driving at 6000 feet its 200 hpa difference or 0.2 bar. So that would take OL values from the 0.8 column (unless I am missing something else). If it's a problem or not, I can't say. Since the MAP would actually be 0.8, maybe those corrections for CL would actually be required in OL as well? (Edit: again same logic as in edit above, in 6000 feet cells below 80 must be unaffected and only cells above won't be achievable, i.e. you can't have 0 MAP at cells 0.2). In the original table, 0.93 and 1.0 and 1.013 are all the same values. This is also my intention to do. If you are at a higher elevation the ELC compensation tool allows you to enter the pressure at your altitude where the logs were made. I did correct for my 600 feet altitude, though the logs were made in hills ranging from 300 to 900 feet elevation. |
After 450 km, it has -0.75 LTFT at WOT. At 150 km it set -1.21 and at 250 in changed to -0.75 where it has stayed since.
This seems to be working! Apart from the small bump at 4200 rpm (which I can probably correct if I'd bother), AFR now follows AFR command. https://s10.postimage.org/wfbq35gq1/...t_09.25.13.png http://datazap.me/u/tor/tor-222-400k...zoom=9438-9571 With the 11.76 it's too lean for the timing. But I suppose that I am now at a point where I can use the POL table to set whatever I want to target and actually get it. :) So I'll play around with POL next and I also need to adjust MAF IAT compensation slightly. I changed the IAT comp already to be centered around 25 deg. From 20 up to 40 deg IAT AFR remains on target. Below 20 deg it starts to become slightly rich, which is where it should be running timing wise: https://s3.postimage.org/rgpc16vqb/S...t_09.28.56.png http://datazap.me/u/tor/tor-222-400k...zoom=7709-7836 My ELC table looks like this now. I think it looks reasonable: https://s9.postimage.org/e64tgfenj/S...t_09.29.43.png |
I just did an hour of logging at 15 deg C ambient temp. My old MAF scaling was done at 24-28 deg IAT and causes the car to run rich at lower temps.
Rather than messing with the IAT comp, I would rather redo the MAF at 20 deg IAT where the stock tune runs with zero compensation. I just threw in my log data in Vgi's tool and made a combined OL/CL scaling to have a look. It more or less suggests a -1 to -2% correction all along the curve. Most of the classical bumps in the curve are gone. :) https://s10.postimage.org/aogikm7o9/...t_10.13.17.png It's now quite obvious what data should be taken seriously and what not. E.g. at 3.37v where I didn't quite manage to flatten the curve completely it suggests -0.5, though the other nearest points are closer to -2. https://s1.postimage.org/w7e007xj3/S...t_10.27.15.png I would think a good process for perfect dial in would be to get MAF roughly right, then do the ELC scaling and thereafter do the final MAF scaling (and perhaps then recheck the ELC). |
I've found out that I can do away with the Load Limits above 3200 rpm (had points at 3600 and 3800 before with low load limits).
The dips and peaks in the 3500-4500 area can be kept completely under control with Engine load compensation. The benefit seems to be that I get the same fueling error in 3600 cells in both OL and CL as opposed to before. At high load in CL I would get a negative error at high MAP. In OL I would get positive error at high MAP in the same cells.... Now to avoid a dip at 3600 at WOT I had to use the OL corrections, which I suspect was the cause the ECU to set highish negative LTFT when hitting those cells. With the load limits removed, I get the same negative error in both CL and OL in the same cells, so I can apply one correction that is right for both OL and CL. I'm changing the title of the thread, because I think this may actually be the most useful part of ELC. Looking at the stock tables, it seems Subaru is following the same strategy. Load Limits up to 3200 rpm, there after compensations applied to ELC. |
Last update. My tune is done. :)
I have driven now 1000 km. Backroads, 160 km track, autobahn, cruisecontrol, aggressive, economical, cold and hot. And logged it all. During all this my WOT LTFT has been varying between 0 and -0.78. :party0030: Fixing the jumping LTFT was what I set out to do, and this seems to have done the trick. Current ELC table. Note, no load limits above 3200 rpm. Other adjustments timing at the affected loads with highish corrections (3600 negative and 42/4400 positive) and MAF IAT compensation. https://s28.postimage.org/3s7pl6nm5/...t_00.05.48.png |
Awesome work man. I've not had the time yet to give this a try, but it all makes sense. Much more sense than mucking with load limits.
|
| All times are GMT -4. The time now is 07:40 AM. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
User Alert System provided by
Advanced User Tagging v3.3.0 (Lite) -
vBulletin Mods & Addons Copyright © 2026 DragonByte Technologies Ltd.