Jump to content
PCMTEC Forums
Roland@pcmtec

HOWTO: Boost Control (BA/BF)

Recommended Posts

Note this guide is an approximation and may contain errors. Caution should be used when using the assumptions made here. The parameters listed here are for BA/BF only, FG uses different parameter names. A separate guide for FG will be added later.

Boost Control

The BA/BF/FG use two main modes for boost control, open loop and closed loop. FG also uses a third addition which is feed forward control based on RPM.

Initially they operate in open loop mode. This is similar to an aftermarket controller eg eBoost etc where you set predefined gains and the system does not rely on any feedback. In open loop mode if your wastegate actuator lost preload over time or failed completely your boost levels could vary wildy.

In open loop mode the system uses the following wastegate duty cycle

auF0307 - The openloop wastegate duty cycle, used to achieve the desired boost in close loop boost control or the actual wastegate period when in open loop boost control.

image.png.77d2278c3d0cc9018140e0364ee4f883.png

Closed loop. Closed loop is where the PCM measures the boost pressure and constantly adjusts the wastegate gain using a PID controller

The PID controller will use the following table as its setpoint to reach the desired boost 

auF0306 - The desired boost pressure.

image.png.5ca2aeb71624a8259694ac3e989510f3.png

A PID Controller works in the following method. Every millisecond it executes the following function (approximation)

Error = Desired Boost (auF0306) - Actual Boost (from boost sensor)

Wastegate Duty = Open Loop value (auF0307) + Error * Proportional Gain (auF0287) + Error * IntegralSum * Integral Gain (auF0286)

This means the Wastegate duty will be added or subtracted to based on the error. A larger error will mean a larger adjustment to the wastegate value.

auF0287 - PID Turbo Proportional Gain

image.png.67159a70b1ada54882d82e5451b6d280.png

auF0286 - PID Boost Integral Gain

image.png.dc9c8e73c0ec43f4ef863541a44268d7.png

auF11628 - Desired Boost Pressure hysterisis term.

The PID controller also uses a hysteresis (deadband) value. This means if the actual measured boost is within +- (auF11628) inHg it will not further modify the wastegate value. This means your measured boost may have an error of within +- 1.46 psi under normal circumstances.

image.png.f1ebebf18dfead6c5601866bf8675a3d.png

auF2776 - HYSTERESIS FOR OPEN LOOP WASTEGATE CONTROL

image.png
If the boost error (desired - actual measured) is less than 0.15 inHg  (0.07 psi) the closed loop PID controller will be disabled and only the open loop duty cycle will be used. This means if your open loop duty cycle table is incorrect you may see oscillations in your boost level as the closed loop PID controller is enabled/disabled over and over again.

auF0296 - OVERBOOST REQUIRED FOR OPEN LOOP DUTY CYCLE

auF1890 -OPEN LOOP DUTY CYCLE FOR OVERBOOST

If the measured boost error is greater than auF0296 inHg (-40 by default) the PID controller will be disabled and the wastegate will be set to auF1890 (0 gain by default)

auF2577 - UNDERBOOST REQUIRED FOR OPEN LOOP DUTY CYCLE

auF1898 -OPEN LOOP DUTY CYCLE FOR ONDERBOOST

If the measured boost error is greater than auF2577 inHg (40 by default) the PID controller will be disabled and the wastegate will be set to auF1898 (gain of 1by default)

auF2977 - Boost Pressure error deadband to allow feed forward adaptive control (FG MK1 onwards only)

image.png.2e4911e7ab9636e3f9fb54036314182c.png

auF2646 Turbo feed forward adaptive wastegate position based on current rpm (FG MK1 onwards only)

image.png.ac363511b588e35cbdad441e1b3eed21.png

Feed forward control is enabled if the error is within 1.5 inHg (auF2977) and open loop control is active. This is added to the wastegates final position in the PID calculation to attain better control. If the wastegate has been modified in any way this may cause issues with boost control if it is not modified.

Tips

if your open loop gains are incorrect the PID controller will have a hard time reaching the setpoint. When tuning you should set the PCM to use open loop only by setting all gains to 0. Dyno the vehicle and ensure your measured boost matches your desired boost table as close as possible, only then enable closed loop afterwards. This will result in your actual measured boost matching your desired boost table with far less deviation from desired.

If you modify the turbo/wastegate system you may need to modify the PID gains to account for a faster/slower responding wastegate and also to compensate for additional wastegate flow.

Operational modes

Error between 0 and +-0.15 inHg closed loop will be disabled and the open loop values will be used.

Error between +-0.15 and 3 inHg closed loop will remain enabled however the wastegate position will not be adjusted. Essentially the PID will be frozen and hold last value.

Error between +-3 and 40inHg closed loop will remain enabled

Error +-40inHg Over/Underboost will be activated.

Error between 1.5 inHg and 40inHg Feedforward control will be active (FG only)

Overboost

Some calibrations allow temporary overboost under specific conditions. Explanation will be added later.

Boost by gear

Boost by gear is available in the XR6 Sprint calibration from the factory. Otherwise using our custom operating system you can enable boost by gear or speed. This requires the workshop edition of the software.

 

  • Like 1

Share this post


Link to post
Share on other sites

Howdy.

When using an external wastegate / external control method to control boost, is there an ECU option to disable ECU boost control? (its a NA ecu anyway so it does not have the control wiring).

I just set table - auF0306 with my target boost.

Does the Ba ECU have an over-boost / MAP voltage cut system for setting a cut for over-boost situations?

 

 

Share this post


Link to post
Share on other sites
1 hour ago, BeerTurbo said:

Howdy.

When using an external wastegate / external control method to control boost, is there an ECU option to disable ECU boost control? (its a NA ecu anyway so it does not have the control wiring).

I just set table - auF0306 with my target boost.

Does the Ba ECU have an over-boost / MAP voltage cut system for setting a cut for over-boost situations?

 

 

Hello. When using an external boost controller you can leave everything enabled, just simply disable the DTC high and low limits. Check out these parameters:

image.png.d2e2c96535d8b6971a0abccaf558592b.png

set auF2279 and auF2150 to "No Error" to disable the DTC. You can also set the fault time filter constant as well.

Share this post


Link to post
Share on other sites
1 minute ago, Roland@pcmtec said:

Hello. When using an external boost controller you can leave everything enabled, just simply disable the DTC high and low limits. Check out these parameters:

image.png.d2e2c96535d8b6971a0abccaf558592b.png

set auF2279 and auF2150 to "No Error" to disable the DTC. You can also set the fault time filter constant as well.

What is the reason for using an external boost controller? The build in one works very well in open loop mode. In the FGs the closed loop mode is excellent as well.

Howdy

its a NA ecu so it does not have the plug for the boost controller.

I ran it with just actuator pressure, however it started building to much boost after 4k - so im installing an external gate and just going to run spring pressure on that.

 

 

Is there a tourque cut / spark cut when engine reaches a desired boost level, or MAP voltage?

Share this post


Link to post
Share on other sites

See auF0309 for how much torque is reduced in overboost (I would leave this enabled in case a hose pops off). Torque reduction will be both fuel and spark depending on how your torque source table is set up. 

Then setup your desired boost table to be maybe 10% above what you are generating in cold weather.  Once the overboost threshold is hit auF0296 this will reduce torque by cutting spark, fuel and eventually shutting the throttle completely. These features will save your engine so definitely worth leaving them on and testing that they work.

Share this post


Link to post
Share on other sites

auF0306 - The desired boost pressure
All fields set to 12, the car will be run around 10psi. Set all fields the same, figgured no stock control so no need to blend figgures?

auF0309 - Wastegate FMEM Torque Reduction = 0.63 (Stock)
When in Failure Mode Effects Management (FMEM) for overboost, this is the percentage of torque reduction requested

auF0261 - Tourque other cut limitsCut        
auF0262 - Spark tourque limit             
Presume its "ETC FMEM - RPM Guard" for these 2 fields? both of these are set to default.

auF0296 - Overboost required for open loop duty cycle = -40 (standard)

So if the car goes over 3 INHG over 12Psi it will go into defence of CLOSED LOOP boost control.
If the car goes over 40inhg closed loop remains on however tourque protection is enabled.

If 3inhg is 1.47 PSI, 40 inhg is 19.6 psi, does that mean no tourque protection is aplied till 19+12?
i hope my math is out because i dont think the BA/BF sensor can even read that high.

Ideally id like it to enter protection at 14Psi, i think the MAP sensors only good for 14.7Psi anyway.

Share this post


Link to post
Share on other sites

Desired boost is in inHg not psi, so you will need to convert that. You can easily test it once you have it right.

Eg set desired boost to be very very low, and check if the car goes into torque reduction (can datalog the torque source as well).

edit: Remember that base atmospheric pressure is 14.7 psi as well, so you need to offset your figures.

Share this post


Link to post
Share on other sites

Hi Roland,

i think Im getting my head around and apologizes for all the messages.

Apparently the BA turbo MAP is a 250 KPA unit, so able to measure roughly 19 PSI of positive pressure. I allways thought being a "2bar" map they were only able to read 14.7 positive pressure.

 

auF0306 from my understanding this is positive atmospher pressure, as it has a reference table atmosphere pressure in auF0311.

So with a setting of around 20.5 INHG - we would be targeting 10PSI.

 

Given auF0296  is not referencing this table,  40INHG needs roughly 29.9INHG removed for atmospheric P, giving us 10.1INHG that works out to be roughly 4.9PSI difference to activate Torque limitations.

If that is the case, changing this number to 34INHG should give us roughly a 2PSI setting for over-boost and torque limitations. 

 

Hopefully im closer to the mark now, just getting myhead around it before doing any real world testing.

 

 

Share this post


Link to post
Share on other sites

If you set it very low, you should be able to do real world testing without any safety issues. Just make sure you log when it occurs so you can make sure your calcs are correct.

Let us know how you go.

Share this post


Link to post
Share on other sites
Quote

under boost setting 100% duty cycle 

how do I stop the ecu from commanding 100% duty cycle when it see's an under boost condition?, I have read the how to.

Share this post


Link to post
Share on other sites

That is how the PID controller controls the boost. You have to disable closed loop boost control to achieve that. Is there any reason why you want to do that? 

Share this post


Link to post
Share on other sites

Make the under boost threshold negative and the overboost one positive. Or vice versa if they already are. Make sure you make them very big values otherwise when you get an overboost it will give you 100% duty lol

Share this post


Link to post
Share on other sites
Quote

just tried both ways one still would go 100% dc and the other gave me zero dc all the time.

 

Share this post


Link to post
Share on other sites
  • ok no worries, the only way I can stop it from doing it is to make the desired boost table lower then actual. But I just find that a shit way of going about it.

Share this post


Link to post
Share on other sites

Lemme preface this by saying that I haven't tuned my car with this yet but I had a quick look in the software and it looks like there are a couple of ways of limiting the open loop underboost dc. I also wrote this for a bf turbo but fixed up one of tables that is labelled differently and has other tables linked to it.

 

auF1898 looks like the exact scalar to change the issue at hand. Second to that auF0308 would affect it as well. I'm not sure what would take precedence if you put say 0.8 into auF0308 or auF1898 and commanded 1 in auF0307  auF2894 but you could always log it with another logger or put a smaller number into auF0308 or auF1898 to feel the difference easier.

 

It should be pretty easy to work out what does what when you play with it and take a lap around the block. It will be a lot easier to mess with this stuff when the boost is near stock levels as you won't need to get right into it to create high boost levels.

 

Anyhow I can't guarantee that this is all correct or that there isn't more to it but it should give some idea of where to look if nothing else.

Share this post


Link to post
Share on other sites

I will give it a try, but there are a lot of tables that say they will do things but must get over ridden. Eg max wgdc I set that to say 70% for some safety but it just dose nothing. Answer to Roland I just don’t like the fact that if at any time ( if something go’s wrong) the ecu see’s even 1 psi of under boost it will give 100% dc, this is a large turbo and will pump out 35 plus psi.

Share this post


Link to post
Share on other sites

 

2 hours ago, will15 said:

the ecu see’s even 1 psi of under boost it will give 100% dc, this is a large turbo and will pump out 35 plus psi.

It won't work like this. It will use the number in auF3184. So if you set this table to 100 then it should never trigger an underboost scenario. Normally it would trigger 100% duty cycle only until it is out of the underboost condition. The fact you have zero'd all your PID gains is why you are having issues.

If you leave closed loop boost control enabled, you will have better results and you won't have to mess around with these tables. Is there any reason you don't want to run it?

  • Like 1

Share this post


Link to post
Share on other sites

Haha I was just dropping the lad at school but had already written this 5 minutes ago.

 

Running in open loop is a bad idea if you want accurate boost control as a cold night will add a few psi over a warm day. If you are at a boost level on 98 octane that wont allow more timing then you will have issues with detonation.

 

From what you are saying it seems that you should run the factory boost control as it was intended with a mixture of open loop and closed loop.

 

 

Share this post


Link to post
Share on other sites

Something else that catches people out is that if you get ignition retard for traction control or knock retard it will increase your boost levels as well, same goes for exhaust cam angles which can change due to cat/exhaust/turbo protection.

image.png.7e65bbff7119506ea9f24de6e5113c90.png

So you can see that when you are commanding a spark delta to reduce torque, it will also reduce your waste gate duty cycle to prevent overboost.

You'll see that it controls the boost using the cam angles as well. So if you are running open loop and haven't zero'd these out it will screw with the VCT

image.png.383229759a5a9e25e19998c96ecabc40.png

You can run completely open loop, but unless there is a good reason I always recommend people spend the time to get the closed loop system operating correctly as it means you won't get overboost in cold weather and ignition retard events.

Share this post


Link to post
Share on other sites
23 minutes ago, Roland@pcmtec said:

 

It won't work like this. It will use the number in auF3184. So if you set this table to 100 then it should never trigger an underboost scenario. Normally it would trigger 100% duty cycle only until it is out of the underboost condition. The fact you have zero'd all your PID gains is why you are having issues.

If you leave closed loop boost control enabled, you will have better results and you won't have to mess around with these tables. Is there any reason you don't want to run it?

if I set that table to 100 there is no wgdc at all, did you look at my file?

Share this post


Link to post
Share on other sites
23 minutes ago, Puffwagon said:

Haha I was just dropping the lad at school but had already written this 5 minutes ago.

 

Running in open loop is a bad idea if you want accurate boost control as a cold night will add a few psi over a warm day. If you are at a boost level on 98 octane that wont allow more timing then you will have issues with detonation.

 

From what you are saying it seems that you should run the factory boost control as it was intended with a mixture of open loop and closed loop.

 

 

I would like to dial in open loop before I even consider closed

Share this post


Link to post
Share on other sites
8 minutes ago, Roland@pcmtec said:

Your file has -100, try setting it to 100.

I have, it gives me no duty cycle then

Share this post


Link to post
Share on other sites
7 minutes ago, will15 said:

I would like to dial in open loop before I even consider closed

As you should. This can be done quite quickly by logging map, wg duty cycle and boost error. You can also wing it by watching your boost gauge if you're feeling deadly.

What turbo are you running?

 

Edit: I'm used to tuning a bf so you'll have to forgive me if I miss stuff ?

Edited by Puffwagon

Share this post


Link to post
Share on other sites

Set your overboost (auF0296) to -100 and your underboost to 100. You have a positive number in overboost currently, which means it is stuck in no mans land of simultaneously having over and underboost.

Share this post


Link to post
Share on other sites
2 minutes ago, Puffwagon said:

As you should. This can be done quite quickly by logging map, wg duty cycle and boost error. You can also wing it by watching your boost gauge if you're feeling deadly.

What turbo are you running?

im logging all that and on a dyno, it's a gtw3684r external gate

Share this post


Link to post
Share on other sites
1 minute ago, Roland@pcmtec said:

Set your overboost (auF0296) to -100 and your underboost to 100. You have a positive number in overboost currently, which means it is stuck in no mans land of simultaneously having over and underboost.

I tired it both ways after our convo yesterday, one way no duty cycle the other way under boost kicks in and 100% duty cycle

Share this post


Link to post
Share on other sites

 

44 minutes ago, will15 said:

I tired it both ways after our convo yesterday, one way no duty cycle the other way under boost kicks in and 100% duty cycle

Ok so lets confirm all of these are set and give it another go as lots of people have full open loop working on the FG.

P1227 MIL Lamp

auF1328 P1227 Fault Filter set it to 255

auF1193 P1227 Fault Filter set it to 255

 

Over/Under boost

auF1898 Open Loop duty cycle for underboost set it to something like 40%

auF1679/auF3184 Underboost Threshold - set entire table to something like 40-100

auF0296 Overboost required for open loop - set this to something like -40 to -100

 

PID Gain tables

auF0286 Boost Integral Gain - set entire table to 0

auF0287 Boost Proportional Gain - set entire table to 0

Zero all of these gains

auF16555, auF16567, auF16552, auF16519, auF16453, auF0289, auF0288

 

For good measure set auF16551 TPS vs RPM scaler to 1.0 everywhere other than idle.

edit: From your file it looks like you might be triggering P1227 causing your 0% duty cycle.

Share this post


Link to post
Share on other sites
Quote
11 minutes ago, Roland@pcmtec said:

 

Ok so lets confirm all of these are set and give it another go as lots of people have full open loop working on the FG.

P1227 MIL Lamp

auF1328 P1227 Fault Filter set it to 255

auF1193 P1227 Fault Filter set it to 255

 

Over/Under boost

auF1898 Open Loop duty cycle for underboost set it to something like 40%

auF1679 Underboost Threshold - set entire table to something like 40-100

auF0296 Overboost required for open loop - set this to something like -40 to -100

 

PID Gain tables

auF0286 Boost Integral Gain - set entire table to 0

auF0287 Boost Proportional Gain - set entire table to 0

Zero all of these gains

auF16555, auF16567, auF16552, auF16519, auF16453, auF0289, auF0288

 

For good measure set auF16551 TPS vs RPM scaler to 1.0 everywhere other than idle.

ok iv done all that but there a few tables I don't have auf1193, auf1679, auf16551

 

Share this post


Link to post
Share on other sites

They are scalars. Type them into the search bar and they will show up. Don't worry about auF16551 if it isn't in that calibration.

Your calibration has auF1328 and auF1193 for the P1227 DTC. Wind both of them out to 255 which is the max

Share this post


Link to post
Share on other sites

Maybe we need a "HOWTO: Boost Control (FG)" thread as anyone jumping in here from the title will be expecting to see BA/BF related info.

 

9 minutes ago, Roland@pcmtec said:

auF1679 is actually auF3184 in your calibration.

 

It will be especially confusing when this happens.^^

Share this post


Link to post
Share on other sites
2 minutes ago, Puffwagon said:

Maybe we need a "HOWTO: Boost Control (FG)" thread as anyone jumping in here from the title will be expecting to see BA/BF related info.

It will be especially confusing when this happens.^^

Volunteer? :D

We will have one eventually.

  • Haha 1

Share this post


Link to post
Share on other sites

I would have it sorted now if it stopped its silly under boost business I did what I told it to lol.

Share this post


Link to post
Share on other sites
2 minutes ago, Puffwagon said:

I would except I haven't done any fg tuning and from the brief look I had it is different from bf tuning in a few areas.

Correct, the BF model changed dramatically with the Territory as well. Have a look at HACH3CA where it introduces the P1227/8 configuration and a 3D throttle modifier. The FGs introduced VCT to help control the turbo boost as well as a lot more scalars. 

Share this post


Link to post
Share on other sites

Hello, I am trying to modify a HACCKGA strategy using the Enthusiast software and I can't see the auF2776, auF0296, auF1890, auF2577, or auF1898 parameters. I have tried searching. Is there any reason for this?

Share this post


Link to post
Share on other sites
4 hours ago, Jackson said:

Hello, I am trying to modify a HACCKGA strategy using the Enthusiast software and I can't see the auF2776, auF0296, auF1890, auF2577, or auF1898 parameters. I have tried searching. Is there any reason for this?

They are not available in the Enthusiast version of the software. You can upgrade to professional for the difference in price if you want to access the other parameters.

auF2776 = Workshop (you wouldn't normally change this anyway)

auF1890 = Workshop (once again you wouldn't normally change this)

auF0296 = Pro

auF2577 = Pro

auF1898 = Pro

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...