RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Thu Jul 31, 2014 3:35 pm

All times are UTC - 5 hours [ DST ]




Post new topic Reply to topic  [ 42 posts ]  Go to page 1, 2, 3  Next
Author Message
 Post subject: Turbo dynamics and boost control explained
PostPosted: Mon May 14, 2007 8:05 pm 
Offline
Administrator
User avatar

Joined: Wed Mar 29, 2006 10:38 pm
Posts: 5340
Please do not copy and post this information elsewhere. Instead, provide a link to this post.

This is another area which can be confusing to new tuners, so I figured I'd outline how it works. There are actually two different versions that are used and both have important differences. Make sure you download and install the latest ECU and logger definitions so that you will access to the tables and parameters discussed below.

First some basics for both versions:
The ecu determines your boost target based on the 'Target Boost' table. The 'Boost Compensation' tables can adjust this target value based on a number of factors (ex. atmospheric pressure, intake temp, etc). This final value (post-compensation) is the level of boost the ecu will attempt to target. 'Boost Error' is determined as follows:

Boost Error = Target Boost - Actual Boost

As you can see, if target boost is greater than actual boost, boost error will be positive (you are undershooting your target). If target boost is less than actual boost then boost error is negative (you are overshooting your target). Boost Error is used as input to the 'Turbo Dynamics' tables.

The 'Turbo Dynamics' tables make corrections to wastegate duty based on boost error in an attempt to hit target boost. The percentage correction shown in the tables is absolute. That is, if your wastegate duty was 10% and the turbo dynamics correction was 5%, then your wastegate duty would then be 15%. Between the two versions, there are noticeable differences between how these tables work and this will be outlined below.

'Initial Wastegate Duty' and 'Max Wastegate Duty' both have the same compensation tables associated with it. That is, the various 'Wastegate Compensation' tables you see in RomRaider for atmospheric pressure, IAT, etc are applied to both of these tables.

Version #1 (USDM 02-05 wrx and 01/02 non-USDM models)

This version can be identified by the names of the turbo dynamics tables (burst and continuous). It also has a 'Max Wastegate Duty' table but it does not have the traditional 'Initial Wastegate Duty' as other roms do. Instead, the 'Initial Off-Idle Wastegate Duty' may come into play, but this has a different purpose and limited impact with most tunes (explained in FAQ below).

The correction from the turbo dynamics (TD) tables in this version is simply added to wastegate duty and limited by 'Max Wastegate Duty'. However, the TD tables are not active unless certain thresholds of boost error are met as determined by the 'TD Burst Activation Thresholds (Boost Error)' & 'TD Continuous Activation Thresholds (Boost Error)' tables.

The 'Turbo Dynamics Burst' table is the least used of the two correction tables. It is only active when boost error swings extremely quickly from negative to positive or vice versa (outside the range determined by the activation thresholds). Otherwise, it does not come into play. The 'Turbo Dynamics Continuous' table is active a lot of time. Anytime there is negative boost error or boost error is positive (outside of the disable ranges determined by the activation thresholds) it will act to correct wastegate duty (as long as wastegate is not being cut by other factors such as the speed limiter or idle).

However, wastegate duty can never exceed the values determined by the 'Max Wastegate Duty' table (post-compensation). In addition, actual wastegate duty will never exceed 96% on these ecus, regardless of what value you are logging as 'Primary Wastegate Duty'.

You can log the current correction through the 'Turbo Dynamics Burst*' and 'Turbo Dynamics Continuous*' extended parameters. In addition, you can also log 'Boost Error*' and 'Target Boost*' (post-compensations).

Q: So if there is no initial wastegate table, how does the ecu know what wastegate duty to start with?
It doesn't, typically. Let's say you start at idle where wastegate duty is zero regardless. Then you take off and jump on the throttle. Boost error will be positive and large. The 'Turbo Dynamics Continous' table will use the largest positive correction value since the boost error likely exceeds the last row's value. It will keep adding this correction (ex. 3.14%) to wastegate duty over and over until either you are near the current target boost or you hit max wastegate duty. Correction will taper down as you approach target boost and boost error becomes less and finally no correction is added when boost error is within the disable activation range. This version does have the 'Initial Off-Idle Wastegate Duty' 2D table, but its impact is much different that the 'Initial Wastegate Duty' table in version 2. When leaving idle (as determined by the idle switch), the current wastegate duty will be set to the 'Initial Off-Idle Wastegate Duty'. However, this is still limited to by 'Max Wastegate Duty'. Because the idle switch is determined by a low throttle position (less than 2% to transition from idle), the 'Max Wastegate Duty' is typically low in this area of the map, limiting the effect of 'Initial Off-Idle Wastegate Duty', depending on how both tables are tuned. Note: unlike version 2, wastegate compensations are NOT applied to 'Initial Off-Idle Wastegate Duty'.

Version #2 (All 32bit ecus and 03+ non-usdm 16bit ecus)

This version adds an 'Initial Wastegate Duty' table. TD tables consist of Integral Positive, Integral Negative, and Proportional.

There are rpm and target boost thresholds that must be met before active TD correction as determined by the 'TD Activation Thresholds (RPM)' and 'TD Activation Thresholds (Target Boost)' tables. In addition, there is a minimum positive boost error (usually very small) before integral positive correction is allowed as specified by the 'TD Integral Positive Activation (Boost Error)' table. Integral negative correction is typically only used when there is negative boost error as determined by the 'TD Integral Negative Activation (Boost Error)' table. TD Proportional is active anytime the rpm and target boost thresholds are met, regardless of boost error.

Instead of adding TD corrections directly to the current wastegate duty, as in version 1, version 2 adds the correction to the Initial Wastegate Duty value (post-compensation). This final calculated value (with TD correction), however, is limited by the 'Max Wastegate Duty' table (post-compensation) and it will never exceed it. In addition, regardless of the 'Max Wastegate Duty' value, the final wastegate duty will never exceed the cap imposed by the 'Wastegate Duty Limit (Maximum)' table (32-bit ecu only). The final value then becomes your current wastegate duty (there are other differences in certain roms, but this is the normal behavior).

The TD Integral correction is different in that it can accumulate over a certain range. That is, the correction is accumulated until target boost OR rpm drops below the activation disable thresholds, at which both the TD integral cumulative and TD proportional values will be cleared. In addition, the TD integral cumulative value is limited to a specifc range as determined by the 'TD Integral Cumulative Range (WG Correction)' table. Also, if current wastegate duty is greater than or equal to max wastegate duty, the 'TD integral positive' table is disabled. That is, no additional positive correction is added to the TD integral cumulative value (although the cumulative value could still be positive).

There are some other minor differences between the 16bit and 32bit ecus for this version, but nothing worth elaborating on.

You can log the current correction through the 'Turbo Dynamics Proportional*' and 'Turbo Dynamics Integral Cumulative*' extended parameters. You can also log 'Boost Error*' and 'Target Boost*' (post-compensation).


Last edited by merchgod on Fri Oct 12, 2007 4:46 pm, edited 3 times in total.

Top
 Profile  
 
 Post subject:
PostPosted: Mon May 14, 2007 11:25 pm 
Offline
Senior Member

Joined: Fri Feb 10, 2006 7:04 pm
Posts: 1282
Location: Pittsburgh, PA
*golf clap*

Well said!


Top
 Profile  
 
 Post subject:
PostPosted: Mon May 14, 2007 11:30 pm 
Offline
Experienced
User avatar

Joined: Wed Mar 01, 2006 10:51 pm
Posts: 336
Great post, thanks merchgod! Please add it to the tuning FAQ too.

Justin


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 6:32 am 
Offline
Senior Member

Joined: Thu Aug 03, 2006 10:40 am
Posts: 1367
nice 'splainin. :)

bummer about 16bit usdm ecus not being able to actually lock the solenoid fully shut.

then again, that's why i have a utec and an MBC. :lol:


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 8:38 am 
Offline
Administrator

Joined: Mon Feb 13, 2006 6:27 pm
Posts: 226
Thanks!

I've never seen such a clear and articulate explanation of these tables before this.


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 9:57 am 
Offline
Newbie

Joined: Sat Jan 27, 2007 8:12 pm
Posts: 84
Excellent explanation!

Ride, using the UTEC doesn't work if you are using it to control water injection. Otherwise, i'd say that is the way to go!


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 10:24 am 
Offline
Senior Member

Joined: Thu Aug 03, 2006 10:40 am
Posts: 1367
eqtrian wrote:
Excellent explanation!

Ride, using the UTEC doesn't work if you are using it to control water injection. Otherwise, i'd say that is the way to go!


why wouldn't it?

the boost control and the WI control are separate systems.

WI control is based off of the spare solenoid output driver, not the boost control solenoid output driver.

boost map 5 becomes load based instead of tps based, and desired spare solenoid duty cycles are directly input. the "rest" of map position 5 becomes useless.

utec manual wrote:
special constants menu: Boost map 5- > spare Sol. This allows the use of Boost Map 5 to control the spare solenoid in a duty cycle mode (0 to 100%). The load indicator used is MAP and not TPS. The selection of this option will cause a change in the edit map menu.


the other spare solenoid logic must also be satisfied for the solenoid to become active:

Quote:
Spare Solenoid lets you program the conditions at which you want to switch on the spare solenoid. You can set values for RPM, Throttle Position, Intake Air Temperature, Coolant Temperature, or Manifold Absolute Pressure. The spare solenoid uses “AND” logic. That is, all values must be above the setpoints for the spare solenoid to switch ON. For example, if you want to turn the Spare Solenoid when RPM is greater than 3000 rpm and TPS is greater than 50% then set RPM to 65, TPS % to 50. Set the other parameters to a low value such as Intake Air Temperature to 0, Coolant Temperature to 0 and Manifold Absolute Pressure to 50.


maybe you are thinking of older firmware which did not have this capability and thus you had to sacrifice your boost control driver (which was capable of PWM) for an ADI solenoid? i believe hippy did it that way...

ken


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 10:26 am 
Offline
Administrator
User avatar

Joined: Wed Mar 29, 2006 10:38 pm
Posts: 5340
I'm going to see if I can change the version 1 logic on my usdm 02 wrx to version 2. There's about 300 more bytes of code that are necessary, but if I eliminate the speed limiting code altogether I can cut that down a bit.

Per gear wastegate compensation in the roms that come with it from the factory apply the compensation to both initial and max wg tables. I have my custom per gear applying it to max wg duty (since I have no initial table). The problem is, this doesn't help initial response as the TD continuous table has to ramp up wastegate duty first. In 1st gear, the per gear comp helps for part-throttle granny driving, but not much at WOT because 1st is so short, which is why I want to attempt to run version 2.


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 12:39 pm 
Offline
RomRaider Donator
User avatar

Joined: Sun Apr 09, 2006 12:05 pm
Posts: 866
Location: Indianapolis, IN
Additional helpful links with some the actual equations on how the compensations apply to the above as well. These links apply to Ver#2, but some of it may still be true for Ver#1.

http://www.romraider.com/forum/viewtopic.php? ... ght=#10885

http://www.romraider.com/forum/viewtopic.php? ... ght=#16841

http://www.romraider.com/forum/viewtopic.php? ... ght=#10581

http://en.wikipedia.org/wiki/PID_controller

http://en.wikipedia.org/wiki/Integral_windup


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 1:07 pm 
Offline
Administrator
User avatar

Joined: Wed Mar 29, 2006 10:38 pm
Posts: 5340
Freon wrote:
Additional helpful links with some the actual equations on how the compensations apply to the above as well. These links apply to Ver#2, but some of it may still be true for Ver#1.

Definitely some great info there as well - thanks to Freon.

You would think the commercial tuners would have already described the logic behind some of these control systems in the factory ecu. Suprisingly, I've only come across snipets of info in the past and some that were incorrectly described. Maybe this is disconnect between the engineer working on reversing the roms and the public relations dude posting on the forum. Anyhow, hopefully I and guys like Freon who are actively working on these roms can provide some insight on how things actually work. I find it a lot easier to tune if you know what is going on behind the curtain. :D


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 1:40 pm 
Offline
RomRaider Developer
User avatar

Joined: Tue Jan 23, 2007 5:11 pm
Posts: 964
Location: Austin, Texas
It sure helped me to understand how to tune boost with these controllers. Thanks to both of you, Merch and Freon. Good work guys. ;)


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 2:06 pm 
Offline
Senior Member

Joined: Thu Aug 03, 2006 10:40 am
Posts: 1367
merchgod wrote:
You would think the commercial tuners would have already described the logic behind some of these control systems in the factory ecu.


maybe they don't actually know what they're doing?

;)

in any event, let me add an "attaboy" to you guys doing the disassembly. without your efforts these projects would still be taxiing on the runway just waiting to take off.


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 15, 2007 2:22 pm 
Offline
Administrator
User avatar

Joined: Wed Mar 29, 2006 10:38 pm
Posts: 5340
ride5000 wrote:
merchgod wrote:
You would think the commercial tuners would have already described the logic behind some of these control systems in the factory ecu.


maybe they don't actually know what they're doing?

;)

in any event, let me add an "attaboy" to you guys doing the disassembly. without your efforts these projects would still be taxiing on the runway just waiting to take off.

No problem. :D

I think sometimes the help/support lags behind or is insufficient with the commercial offerings. But it seems they are far ahead of us as far as analysis is concerned. I wonder how Cobb's ST advanced is going to handle it. If it really is going to have the same capability as ProTuner as far as access to tables, there would need to be a lot better documentation. Last time I looked at ST (about a year ago), the help text was lacking quite a bit. That would be a bad thing when you add more obscure tables and users start experimenting with stuff without knowing what they are doing.


Top
 Profile  
 
 Post subject:
PostPosted: Thu May 17, 2007 3:06 pm 
Offline
RomRaider Developer
User avatar

Joined: Thu Mar 23, 2006 5:21 am
Posts: 454
Location: San Diego, CA
Justin 05 STi wrote:
Great post, thanks merchgod! Please add it to the tuning FAQ too.

+1!, great writeup!

_________________
http://www.enginuity.org/Profiles/drees


Top
 Profile  
 
 Post subject: How does max wgdc influence turbodynamics
PostPosted: Wed Oct 03, 2007 1:06 pm 
Offline
Administrator
User avatar

Joined: Wed Oct 25, 2006 12:32 am
Posts: 3040
Does the global WGDC maximum cap the maximum TD integral and TD proportional? It looks like it on the LGT. For example, if max WGDC is 90% and WGDC init is 75% then the maximum that TD can be is 15%.

In addition, TD Proportional has priority over TD Integral. So, in this case, if the boost error was 10 psi and the TD proportional was 14% then the maximum the the TD Integral can be is 1%. TD Integral won't increase until the TD proportional drops or WGDC Init drops.

If the above is true, it can be a useful tool to control the WGDC integral from summing until boost error is within a set target.

The above only seems to apply to the global WGDC maximum. The WGDC Max Table values doesn't appear to limit the TD values. The WGDC Max Table seems to clip the total WGDC. For example, if the WGDC init = 60% and total TD = 20% but if WGDC Max Table is 70% then the resultant WGDC would be 70%. The TD values would still be in the ecu and the TD Integral would sum as normal.

Also, does anyone know what the update time is for TD integral? How fast is TD integral summed? On the LGT, it looks like every 150 ms but I'm not sure.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 42 posts ]  Go to page 1, 2, 3  Next

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl