Tuning w/ N20 TMAP to see 22+ Boost

  • Dark Theme is now available. Switch at the bottom of the page or in your preferences.
Jun 4, 2018
70
Found something interesting.

If I turn the ignition on before I start the car, I get the code, but if I go straight from key insert to start without first turning the ignition on, then I dont get the code. Normally I turn the ignition on before starting the car to let the fuel pumps prime the line (the enable on my controller is tied to ignition, but the BMW normally turns the fuel pumps on when you unlock the car to do the same (without the ignition on, but with my custom LPFP setup it doesnt)).
 
Last edited:
Jan 28, 2018
40
Better don't rely on that spreadsheet...
My car was targeting 28 instead of the planned 24 PSI.
Will remove this notice once I found the problem and confirmed it to work.


Tried to create a spreadsheet to help with scaling tables.

Just enter the values used in the 3 cell Map Conversion table in "Map Conversion" sheet.
On the same sheet you can get scaled Load values for PSI / Load you enter.

To rescale a table with Load on X Axis, Copy&Paste the table values and the Load values into "Base Table".
"Map Conversion Adjusted" will contain values according to what you configured in "Map Conversion".
Adjusted values will be a linear interpolation, if your scaled load values lie far outside of the original table that will not be a very good guess.

"Manual Adjusted" can e used to interpolate values when adjusting an axis manually.


Could someone also confirm that important tables that need to be scaled are:
-Load Target *
-Fuel (Bank 1/2)
-Fuel Scalar
-Timing (Main)
-Timing (Spool)
-Timing (Fail Safe)
-Timing (Unk Throttled)
-Timing (Unk Emergency Limp)
-Load Target Limit Factor ( Charge Air Temp)
-Vanos *

I guess it is safe to ignore:
-Load to Torque Limit *
-Torque Loss
 

Attachments

Last edited:
Jan 28, 2018
40
Don't forget Load2Torque, BRO, and PID tables as well
Thanks for pointing me to those tables.

The Load to Torque Limit tables are just used to calculate the torque DME will see based on load as far as I know. Am I missing something?
If that's all those table do I will probably report a bit lower values above 140 load, guess no big deal but I guess I will just fix them.

Boost request offset, not sure. Why adjust it?
X-Axis is intake cam spread no load, but probably there are other reasons to adjust it?

Where you referring to the WGDC PID tables?
I rescaled boot setpoint already, but I think I will have to do some manual rework due to the scaled MAF Req.
Guess it would be better to use WGDC (RPM x Boost Setpoint) to avoid building a base table based on somehow skewed MAF Req values.

Whats really confusing and scaring me right now is that I once saw a boost request of 28 with a load request of about 190.
I have few other WOT logs showing boost target at ~24 PSI with a load request at ~190 so I am not sue what to think about it.

According to my math I am targeting 24 PSI , but maybe my math is flawed?
Would be really appreciated if someone could double check.

That's my Map Conversion:

upload_2018-10-11_21-21-19.png


I am targeting a load of 196 that should make the DME target ~18.8 PSI (unscaled).
18.8 PSI are mapped to ~3,5 V which equals to ~24 PSI with the N20 TMAP.
See yellow line below.

upload_2018-10-11_21-28-27.png
 
Jun 4, 2018
70
Because of the compressed scaling changes in boost request get exaggerated, what used to be a change from say 20 PSI to 18.5 PSI is now a much larger change in actual boost request.

Based on a ton of factors (IAT, coolant temp, barro pressure, etc) the requested boost to meet a load changes. At altitude in my car before going hybrids and N20, I'd see a change in boost request from 23 PSI for 210 load on hot days with an IAT in the 120's to 17.5 PSI with an IAT of -8 on a very cold day. That swing would be HUGE with the compressed scale. Thankfully we are tricking the ECU into thinking its operating in a much lower load area and thus the swing is not as bad as it is at 210 load, but its still large.

With the N20 and my hybrids I've seen 28 PSI boost request on stupid hot days with 120 IAT, and down to 23 PSI with a 30 deg IAT on cold days with a 185 load request.

I'm not sure there is an easy way to make that range be smaller. I do know that having your WGDC base table properly scaled for the MAF you're requesting and the boost setpoint factor will make it easier to hit those wider range targets with base WGDC, but at the same time, do you want to?

For my self, I don't want to boost up to 28 PSI when its really hot out, its too much WGDC on the turbo's at altitude. At the same time I would like to hit 26 PSI when its 90 IAT, and I'd like to stay at 24 or so for 40, and then lower when its even colder. This means that for the same WGDC base to hit 26 PSI its likely I'll get throttle closures in the cold (and I do).

The way to fix this in my opinion, is the proper WGDC table scaling, as well as making the P and I negative error spots more aggressive, as well as the d factor to help prevent overshoot, and relaxing on the throttle closure aggression table. I don't want to however change the positive error to be more aggressive because I don't want to try to push my WGDC too high in the silly high boost request times. One could argue I should do this by limiting the max WGDC, but that would then cause that same limit to apply to spool in low RPM unless you're using lean spool mode. So another way to deal with it would be to limit the WGDC max, then use lean spool. One has to be careful though because when in lean spool at low RPM you could hit way more boost than you want if your boost request is too high, so proper load targeting at low RPM is important when using lean spool.

If there is a way to help even out such a wide variance in requested boost, I'd love to know more about it.
 

RSL

Sergeant
Aug 11, 2017
275
That seems like a big swing on a non-scaled map. I've had 100F+ IAT differences between summer and winter with maybe a 1psi difference on scaled maps with hybrids. I'd be curious how much the ambient pressure changed between your target differences. It may be a larger factor for target than any temp. My ambient remained relatively stable around 14.2psi +/- 0.1 whether it was 25F or 110F outside.

If target has room to move up and is allowed to, it certainly will as the DME sees fit. That doesn't mean actual has to follow it up closely past a certain point, just depends how things are setup. You could certainly hold actual at 10psi with a 30psi target if you wanted without any limit table or it ever touching negative errors. Not saying you wouldn't run into other issues with a gap that big, just that WGDC as-is can be used to set a more or less max %/actual whether target is 0.1 or 20psi above it. Other option is to make sure target can't go higher than the absolute max boost you want and allow +/- errors to trim it as you see fit relative to it.

Almost seems easier to setup 2-3 bins with the minor tweaks for the specific conditions/goals if you've got months of essentially the same weather and it's 2 minutes to flash. If there are huge environmental swings throughout the day, not an ideal option. If you're set on running a single bin year-round though, consider what you correctly pointed out and at what scaling looks like...may have a needlessly large factor causing needlessly large swings.
 
Jun 4, 2018
70
I've found that the swings at altitude are larger than at sea level.

My ambient pressure is usually between 12 - 12.4 psi, if I go up into the mountains I've seen it as low as 9.5 psi at 12,000 feet.

This seems to indicate to me that there is some model, likely related to AR ratio on the compressor and shaft speed (... maybe the turbo efficiency map of the stock turbo?) that plays into what the requested boost is. Thus the larger swing at higher altitude because the boost set point factor is that much higher for the same relative requested boost.

Anyways, my point was that yes, running 1 map for all conditions (how I think it should be, including going to low altitude and back), you should set base WGDC high enough that the PID can hit your target when its a reasonable temperature/altitude, which then prevents it from going too high when the boost request is silly high at high temp/altitude, and then change the negative error sections of the PID to keep overboost from being an issue when you get too cold/low altitude.

Otherwise if you make the PID gains high enough with a low base WGDC so that you dont get any boost overshoot at cold/low altitude, you're then likely to get a huge WGDC at bank to meet the big requested boost target.
 

RSL

Sergeant
Aug 11, 2017
275
I've found that the swings at altitude are larger than at sea level.

My ambient pressure is usually between 12 - 12.4 psi, if I go up into the mountains I've seen it as low as 9.5 psi at 12,000 feet.

This seems to indicate to me that there is some model, likely related to AR ratio on the compressor and shaft speed (... maybe the turbo efficiency map of the stock turbo?) that plays into what the requested boost is. Thus the larger swing at higher altitude because the boost set point factor is that much higher for the same relative requested boost.

Anyways, my point was that yes, running 1 map for all conditions (how I think it should be, including going to low altitude and back), you should set base WGDC high enough that the PID can hit your target when its a reasonable temperature/altitude, which then prevents it from going too high when the boost request is silly high at high temp/altitude, and then change the negative error sections of the PID to keep overboost from being an issue when you get too cold/low altitude.

Otherwise if you make the PID gains high enough with a low base WGDC so that you dont get any boost overshoot at cold/low altitude, you're then likely to get a huge WGDC at bank to meet the big requested boost target.
Yeah, I'd expect that to be a challenge, but really why PID is a good thing, barring the annoying trade-offs. I wonder how the RPM x Setpoint logic responds in these situations since much of the usual tables are ignored. That might be an interesting test.

There's probably an easy table fix to tone down target swing size, but that doesn't mean easy to find. There are modeled turbine flow tables, compressor efficiency, intake manifold to exhaust manifold PR, WG pressure to ambient PR vs. turbine flow, etc. not to mention probably hundreds of environmental factors/offsets for various things. Without tracing the target calculation, could probably spend an eternity finding and testing tables to see if/how they affect it.

There are IAT sensor parameters already defined for anti-lag, but I've paid zero attention to them or what their changes hit. It would be just one possible temp consideration that you might be able to mess with relatively easily.
 
Jan 28, 2018
40
The DME is definitely compensating the lower air density caused by higher IAT.

I have a single log from a pull on the Autobahn and the boost requested for a load of ~194 is ranging from 18.5 to 21.1 (hit limit) PSI.

See https://datazap.me/u/impuls/autobahn?log=0&data=3-6-14-18-22&solo=3-6-14-18&zoom=0-131
(I know timing corrections at the end of the log are ugly and I know I should get a better FMIC)


To be honest I am quite sure the DME will always try to get a specific air mass into the cylinder no matter what is the IAT and most likely also no matter what is the ambient pressure. Does make sense when building a car that is supposed to behave consistently, but it is not particularly helpful when trying to squeeze out as much power of a motor as possible.

Based on the log above it seems the DME is really trying to target a pretty constant air density (for same load) entering the cylinder and the numbers seem even more consistent when considering small variances in load. Note that at 138°F IAT DME was not able to target more boost due to the Boost Ceiling.

[TABLE="class: brtb_item_table"][TBODY][TR][TD][/TD]
[TD]81°F[/TD][TD]101°F[/TD][TD]138°F[/TD][/TR]
[TR][TD]Air Denisty[/TD]
[TD]1.15[/TD][TD]1.11[/TD][TD]1.04[/TD][/TR]
[TR][TD]Boost Target[/TD][TD]18.5[/TD][TD]19.3[/TD][TD]21.1[/TD][/TR]
[TR][TD]Load[/TD][TD]195.5[/TD][TD]194.1[/TD][TD]194.4[/TD][/TR]
[TR][TD]Density Target[/TD][TD]2.63[/TD][TD]2.60[/TD][TD]2.57[/TD][/TR]
[TR][TD]Density/Load[/TD][TD] 1.34[/TD][TD] 1.33[/TD][TD] 1.32[/TD][/TR][/TBODY][/TABLE]


Generally PID / will not change a thing about how much boost the DME is targeting, but tuning it carefully will help to not actually reach harmful boost levels. To be honest I would prefer to really target what I want to run and not rely on just not reaching the requested boost.

What I think can fix this issue:
Load Target Limit Factor (Charge Air Temp) and Load Limit Factor can be used to adjust load based on IAT and ambient pressure. It should not be too difficult to setup at least the IAT table to compensate the adjustments the DME is making to the boost request by reducing the load.

When I had this strange log with 28 PSI boost request the IAT was 80°F while in other logs with 24 PSI the IAT was at 60°F.
Considering the scaling this could account for 2 PSI, not sure what caused adding two more.
Now that I accidentally deleted the log anyways I am planning to only compensate the IA T as written above an collect a few proper logs.
 
Jun 4, 2018
70
Hmm, an interesting idea.

How does the math work on the load limit factor table? Mine is currently set to .130 all across the board.

It seems the load limit factor (charge air temp) 1.000 means 100% and .990 means 99% of the load target?
 
Jan 28, 2018
40
How does the math work on the load limit factor table? Mine is currently set to .130 all across the board.
Wasn't unit %/hPa?
That would be 130% at sealevel, maybe it will just limit if it is < 100%


It seems the load limit factor (charge air temp) 1.000 means 100% and .990 means 99% of the load target?
Pretty sure that's how it works.
 

RSL

Sergeant
Aug 11, 2017
275
Target dips don't seem to correlate with a sudden IAT change or anything else immediately obvious to me. In fact, target drops a small amount steadily on a constant set point and then both fall together largely at "some" point. I'd be more inclined to believe something else is acting on it since it does it relatively high in all the gears. There are a lot of things besides IATs and ambient pressure that affect target.

https://datazap.me/u/impuls/autobahn?log=0&data=3-4-5-6-22&solo=5-6&zoom=0-131

To be honest I would prefer to really target what I want to run and not rely on just not reaching the requested boost.
That's pretty much what I was getting at in the prior posts: you don't need to hit target (or technically even be close to it) to limit the actual boost where you want.

0.13 might be high, depends how other things are set and what loads actually look like. It limits load that can be requested, which may be higher or lower than load targets, but it's not the only table that affects requests. Not sure on the math or absolutely positive a % of what pressure, but would bet on it actually being fuel related.
 
Jan 28, 2018
40
Target dips don't seem to correlate with a sudden IAT change or anything else immediately obvious to me.
The dip seems to be delayed, but what it dips to correlates with IAT corrected boost target very well, it was clise to perfect for the points I have chosen.

My theory right now is that DME just delays reducing target while not hitting target anyways.

That's pretty much what I was getting at in the prior posts: you don't need to hit target (or technically even be close to it) to limit the actual boost where you want.
Some say being under target for to long will disable PID leaving you at WGDC Base. Actually my main motivation is I want the DME to obey and understand what is happening.

Right now doing some charting and statistics with 5 logs (different tune versions, different ambient) trying to proof that we can predict boost target based on load if we consider IAT and pressure corrections
 
Aug 7, 2017
29
Right now doing some charting and statistics with 5 logs (different tune versions, different ambient) trying to proof that we can predict boost target based on load if we consider IAT and pressure corrections
I quit messing around with load targets on my scaled/n20 map because boost target wasn't reliable. PID would 'time out' if boost target was too high for my stock turbos to reach.

I've since moved load out of the way and used BLM to define my boost target per given maf req with success.

https://datazap.me/u/m6keharr/new-injectors?log=0&data=3-6-23
 

RSL

Sergeant
Aug 11, 2017
275
^^ This is essentially what I was talking about. Setting actual boost where you want max and then adjusting target to it. I assume actual was in relatively the same place even when target was set higher. PID timeout also seems to vary and might be less of an issue depending how boost control is tuned and, obviously, just how big gap/error/PID add is, for how long, RPM, etc. People run below target some amount for long periods all the time without issue, some very below target. Others can timeout in one gear.

The concern was target moving up, which is why I mentioned it, but moving at all or how much on temps is what's on the table. I'll be curious how the 5 revisions are different and how the stats change between them compared to the overall average.
 
Aug 7, 2017
29
Yes, I noticed boost target would vary a bit (based on temps I'd guess) when I was using load to set target.
I don't have access to my BIN right now so the figures below aren't 100% accurate.

Now, boost target is pretty consistent when using the method below.
1) Move load target out of the way
---- My load target is flat and maf req and RPM have a positive slope
2) Set your max boost via the Boost Ceiling table
---- My Boost Ceiling is set to ~1.19 bar (~24 psi scaled)
---- This will set the max your tune will target
3) Set Boost Limit Multiplier table values to define target boost per maf req
---- My values taper from 3.0 to 2.3X toward 450 maf req (6k rpm)

 
Last edited:
Jan 28, 2018
40
Thanks for the suggestions for controlling boost control, I think I will at least combine that with adjusting load to IAT.

It seems the DME does at least correct IAT and ambient pressure to some extent.
Using the formula (IAT*0.00023+0.149)*Load_Request-Ambient_Pressure does match boost target in log much better than without corrections.

In case anybody is interested in the Excel sheet to create this mess, let me know...

Two example logs:

upload_2018-10-18_22-36-36.png


upload_2018-10-18_22-46-2.png
 
Jun 4, 2018
70
So for my self at least, I've found that the boost setpoint changes decently between the temperature changes, not just with ambient pressure.

Given this, I re-scaled my WGDC table to go up to 3.0 boost setpoint and 410 MAF. (I have a spread sheet I made that does the re-scaling for me... saves a lot of time). This then made it so that my WGDC base much more closely fallows boost requested when it shifts from 26.5 to 24 psi in the cold, etc.

Then to limit the requested boost, I just set the boost ceiling to 1.37 bar (which equates on an N20 map with a boost limit multiplier of 3.0 to about 26.5 PSI). From there, one can limit the max possible WGDC by not having too high a PID gain (already that way for pretty much everyone), not having too high of a base, and not having too high of a WGDC adder airflow (as well as WGDC ceiling adder).
 

Create an account or login to comment

You must be a member in order to leave a comment

Create account

Create an account on our community. It's easy!

Log in

Already have an account? Log in here.

Top