Technical Explaining WGDC values

fmorelli

Lieutenant General
Staff member
Aug 11, 2017
3,748
3,592
0
57
Virginia
Ride
E89 Z4 35i, F10 535d
Can someone define the WGDC values, and explain where they come from or how they are computed? I'm particularly curious about what values are inputs to the WGDC after PID calculation?
  • WGDC base value %
  • WGDC after pid %
  • WGDC bank 1 %
As a for instance, WGDC after pid % seems to be drawn to the WGDC base value, though other factors effect the value. WGDC bank 1 % also seems to run ~20 points above WGDC after pid %.

I'm just trying to understand what I see ... thanks! In my case I'm looking at this log:
https://datazap.me/u/fmorelli/july-1-2018-ff-v1-e80-dsc-dsc?log=1&data=3-22-26-29-30-31&hg=23-24

Thanks!

Filippo
 

JBacon335

Corporal
Nov 7, 2016
227
107
0
40
Toms River, NJ
Ride
07 335i Sedan, 1988 Mustang GT
base value is before any other tables are factored into the wgdc base table. you then have what PID adds to get the boost on target as close as possible. the extra percentage you are seeing at wgdc bank 1 is with the MAF adder and other tables factored in as well. you would think after PID would be after all of that but as far as I know that is not how the logic works on these
 

fmorelli

Lieutenant General
Staff member
Aug 11, 2017
3,748
3,592
0
57
Virginia
Ride
E89 Z4 35i, F10 535d
Thanks. I sort of guesses some of it. If PID means proportional integral derivative - then those are typically smoothing algorithms. If you look at the wgdc PID value in the graph below it is oscillating pretty wildly (at least it seem to be to me). That's making me scratch my head. I would have thought this to be a smoother graph line. Hence why I'm trying to understand what input is actually going into the PID output value to cause such movement.

Filippo

Screen Shot 2018-07-10 at 7.58.24 AM.png
 

NoQuarter

Major
Nov 24, 2017
1,662
1,066
0
Indiana, USA
Ride
Z4 35is, 535xi, X5 35i
PID isn't a smoothing algorithm per se. It is part of a feedback contol strategy where the output is trying to reach a certain point such as boost.

Now, if the output is spot on, then it looks smooth so you are correct in that regard.

Imagine you are trying to balance a basketball on your finger. You start off with some wild movements to get close to Target then you settle down and it looks perfect. Then something upsets the balance and you have to compensate again. PID.
 

Jake@MHD

Major
Platinum Vendor
Nov 7, 2016
1,593
2,058
0
Philly
You guys are all missing the addition of the WGDC to pos and wgdc pos back to wgdc. I posted about this full flow on one of the "other" forums awhile back, if anyone wants to do some google detective work and share here. I won't have time to dig it up until later.
 
  • Agree
  • Informative
Reactions: fmorelli and RSL

NoQuarter

Major
Nov 24, 2017
1,662
1,066
0
Indiana, USA
Ride
Z4 35is, 535xi, X5 35i
You guys are all missing the addition of the WGDC to pos and wgdc pos back to wgdc. I posted about this full flow on one of the "other" forums awhile back, if anyone wants to do some google detective work and share here. I won't have time to dig it up until later.

got some key phrases to help the search?
 

fmorelli

Lieutenant General
Staff member
Aug 11, 2017
3,748
3,592
0
57
Virginia
Ride
E89 Z4 35i, F10 535d
PID isn't a smoothing algorithm per se. It is part of a feedback contol strategy where the output is trying to reach a certain point such as boost.
By "smoothing" what I meant is ... prior control strategies (non-PID) were not as effective (greater swing on either side of the target). The reason I said smooth is - if one looks at the graph it doesn't look like what one would want to see as a PID output behavior - specifically the sharp up and downs. Am I wrong?

I use PID controllers to manage temperature for some of the operations I use in guitar building; I'm just unfamiliar in this context, hence looking for some guidance :grimacing: ... thanks guys ...

Filippo
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
Thanks. I sort of guesses some of it. If PID means proportional integral derivative - then those are typically smoothing algorithms. If you look at the wgdc PID value in the graph below it is oscillating pretty wildly (at least it seem to be to me). That's making me scratch my head. I would have thought this to be a smoother graph line. Hence why I'm trying to understand what input is actually going into the PID output value to cause such movement.

Filippo

View attachment 13285
Tha oscillation can be toned down easily with D-factor.

got some key phrases to help the search?
IIRC

WGDC base + adder passed to WGDC to WGDC Position, goes back out to WGDC back to WGDC Position, gets added to original base for a totally reworked base and then PID is added.
 

Jake@MHD

Major
Platinum Vendor
Nov 7, 2016
1,593
2,058
0
Philly
It goes like this: WGDC Base table val is looked up and loaded into memory. Adder Airflow is looked up, added to base. This val passed in as the X-axis lookup along w/ MAF as the Y to WGDC to WGDC Position table. This table lookup result is stored in mem. It is then passed into the WGDC Pos back to WGDC table as axis lookup. This lookup result is stored in mem. It is then added to the initial WGDC base value, to give your new WGDC Base. PID is now applied.

This is a bit over simplified, as I left out Pre Control A (used instead of wgdc base under a certain min load), and Spool mode (active instead of wgdc base during spool mode [fuel mode 20]) stuff, but you get the point
smile.gif
 
  • Love
  • Like
Reactions: jomo and mj6234

fmorelli

Lieutenant General
Staff member
Aug 11, 2017
3,748
3,592
0
57
Virginia
Ride
E89 Z4 35i, F10 535d
Thanks @jyamona and @RSL. Jake I just spent 15 minutes searching and found the above, along with some other comments from you.

I'm trying to understand how the PID value is arrived, since I understand the WDGC is principally derived from it. The above graph is from my car - it the jagged WGDC PID value is suspicious to me (I would imagine it more smooth). I'm trying to chase down a hesitating boost climb (momentary hesitation more evident in the first 3rd of the pull and becoming less evident to disappeared at the end (but seat of the pants that can be because of the car overcoming load). I'm not sure, 1) if the above graph is normal and this behavior is normal, 2) if the fluctuation in PID is the result of a hardware issues, or 3) if the fluctuation in PID is a tuning issue.

From reading I see D-factor and P-factor are used to manage how aggressive the algorithm shifts in response to being off-target. I just don't know if the above graph signature for WGDC PID is an attempt to manage a hardware issue versus a tuning issue. Oddly the car makes full boost and runs like a raped ape ... just this funny oscillation on the way up the RPM curve ...

Thanks,

Filippo
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
Thanks @jyamona and @RSL. Jake I just spent 15 minutes searching and found the above, along with some other comments from you.

I'm trying to understand how the PID value is arrived, since I understand the WDGC is principally derived from it. The above graph is from my car - it the jagged WGDC PID value is suspicious to me (I would imagine it more smooth). I'm trying to chase down a hesitating boost climb (momentary hesitation more evident in the first 3rd of the pull and becoming less evident to disappeared at the end (but seat of the pants that can be because of the car overcoming load). I'm not sure, 1) if the above graph is normal and this behavior is normal, 2) if the fluctuation in PID is the result of a hardware issues, or 3) if the fluctuation in PID is a tuning issue.

From reading I see D-factor and P-factor are used to manage how aggressive the algorithm shifts in response to being off-target. I just don't know if the above graph signature for WGDC PID is an attempt to manage a hardware issue versus a tuning issue. Oddly the car makes full boost and runs like a raped ape ... just this funny oscillation on the way up the RPM curve ...

Thanks,

Filippo
How the actual after PID % is determined, I'm not sure. I would assume it's a % of final base that's spit out. PID moves in relation to P and D errors, which you can log.

I think your PID just needs some fine tuning. I'm not seeing anything that screams dead spot other than a pretty large correction on cyl 4 in the first one. You'd probably feel that and though boost over target would generally also close throttle, I don't see it happening in any large capacity.

When it comes to a hesitation near spool end, for me, its usually been some combo VANOS, timing and making sure no safety is active for boost over target, which you can do a lot of ways, not just boost control tuning.
 

fmorelli

Lieutenant General
Staff member
Aug 11, 2017
3,748
3,592
0
57
Virginia
Ride
E89 Z4 35i, F10 535d
Thanks @Rob09msport ... that was what I was reading a few hours ago, after some Google searches.

@RSL thanks for the feedback. Mine oscillating hesistation is more from initial WOT and diminishing over say 3-4 seconds as RPM climb. I was just trying to go down the road of understanding what's going on, trying to isolate if I have a hardware gremlin, rather than throwing this on my tuner's lap #respectyourtuner.

:sunglasses: ... learning doesn't hurt, either ... thanks,

Filippo
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
Oh yeah, I'm constantly reading and testing things years into N54 ownership, I like technical discussions.

Not uncommon to make PID sensitive to react quickly on transient requests and then taper off as things stabilize. Relies solely on that outside of spool mode.

Your tuner could ease that up a bit quickly, but it doesn't look like it's causing any issues. Smooth is always good though.
 

Jeffman

Major
Jan 7, 2017
1,618
1
628
0
I’ve also been looking into the WGDC AFTER PID calculations this evening as I’ve been having a problem in the last few weeks with my WGDC AFTER PID value suddenly going to the WGDC BASE value during a WOT pull in the mid-5,000 rpm range so my total WGDC Bank values drop 15-20 points and I lose lots of boost (like going from 22psi to 13 psi at 5,000 rpm). It’s like there is no WGDC PID correction factor being added to the base value, hence I refer to this below as “WGDC PID zeroing”.

Strangely the WGDC AFTER PID stays at the WHDC BASE value for the next series of pulls. See logs below. This phenomena started to occur a few weeks okay after I walnut blasted my intake and installed my low side PCV catch can. I can’t imagine it’s hardware related. (Or could it be my original wastegate solenoids finally going bad at 65K miles?). It seems like some kind of error flag not resetting or something. I do get a 30FF shadow code sometimes. This phenomena is also replicated in both my 93 octane tune and my new custom Flex Fuel tune that’s based in this 93 octane tune.

Below are the logs. Each datazap link has three logs. The first log of each shows the WGDC AFTER PID value starting off higher than the WGDC BASE value, but then in the mid 5,000 rpm range it drops to the WGDC BASE value, like there is no additional PID amount being added to the base value. If you then look at each of the two other logs in these datazap links you’ll see WGDC AFTER PID staying the same as WGDC BASE for the entire runs.

Any ideas?

Stock Turbos
MHD Custom Tune / MBoost Option / N20 TMAP
93 octane:

https://datazap.me/u/jeffman/93-oct...data=2-16-29-30-31&solo=2&zoom=23-108&mark=82

Flex Fuel V1.0 on July 30, 2018
93 octane (10% Ethanol)

https://datazap.me/u/jeffman/flexfuel-v10-77f-flat-dtc-3rd-gear?log=0&data=2-16-29-30-31&zoom=20-97
 
  • Like
Reactions: GreyNBlueE92

RSL

Lieutenant
Aug 11, 2017
937
501
0
This is literally like the 4th or 5th occurrence of this I've seen in the last week or 2, though they were on OTS maps and one was high altitude, which is always a suspect. The others and yours are at normal ambient pressure though. Any recent ambient temp increases?

Starting to wonder if PID has a separate max and times out if it can't reach target after a certain time there. If it were me, I'd test increasing base and rely less on PID and also bring load/boost request down closer to what actual runs across the board. It looks like you're on setpoint x RPM though, so other factors may be in play. Not sure what (if any) options you have on that for adjusting between base and PID. At the very least, I'd get requests and actuals closer together.

Could certainly check for leaks, but making some changes to the tune first is free and less sweaty.
 

Jeffman

Major
Jan 7, 2017
1,618
1
628
0
Good suggestions to increase base and rely less on PID. But I am not using the commanded WGDC (setpoint x RPM) logic - I had tried setpoint x RPM in the past but turned it off as I was getting half engine light limp mode on the highway when underboosting too long in 4th or 5th gear.
Weird thing is the damn DME somehow remembers to keep the PID factor zero throughout the second and third logs a minute later.

@jyamona, Could there somehow be a glitch in the IJEOS XDF / logic where once someone uses setpoint x RPM logic an underboost error condition could give rise to this PID factor = zero phenomenon?
 

Jeffman

Major
Jan 7, 2017
1,618
1
628
0
It goes like this: WGDC Base table val is looked up and loaded into memory. Adder Airflow is looked up, added to base. This val passed in as the X-axis lookup along w/ MAF as the Y to WGDC to WGDC Position table. This table lookup result is stored in mem. It is then passed into the WGDC Pos back to WGDC table as axis lookup. This lookup result is stored in mem. It is then added to the initial WGDC base value, to give your new WGDC Base. PID is now applied.

This is a bit over simplified, as I left out Pre Control A (used instead of wgdc base under a certain min load), and Spool mode (active instead of wgdc base during spool mode [fuel mode 20]) stuff, but you get the point View attachment 13288

I'm trying to trace this logic to understand which tables, how and where to modify them to get my base WGDC values closer to where they need to be and rely less on PID. Just help me get started - How is the WGDC Base table val looked up? As far as I can tell the x-axis is MAF and the y-axis is the current boost pressure? A change to MAF is controlled by the pedal, corresponding to Load Requested. So we could trace our way through the tables using a Datazap'ed WOT run, for example:

Screenshot (12).png


And here are my relevant tables:
Screenshot (13).png


So at the indicated point in the Datazap run, the 18.1 boost pressure is converted to 2.23 absolute pressure ((18.1+14.7)/14.7), and with the 370 MAF Req value (off my table) should give a WGDC base value of about 16.00.
Plus the WGDC Adder @ 370 MAF is about 19.00 (off the chart) gives a value of 35.00, which goes to the X-axis of the WGDC to WGDC Position Table (again, off the chart), with the MAF (Y) value gives a new WGDC value of 73.27, which goes to the WGDC Position Back to WGDC Table, which gives a value between 3.29 and 13.32, let's call it 10. This is then added to the initial base value 16.00 to give new WGDC Base 26.0 But my Datazap chart says WGDC Base should be 47.3. Where did I go wrong in this calculation?
 

RSL

Lieutenant
Aug 11, 2017
937
501
0
"Base" is base + adder, so 16+19 = 35 + 10 = 45 offset base. If you want to cut to the chase though, just log boost setpoint if you don't want to do the math for every point and add 3-5 to the base table (or adder table for the MAFs alternatively, but make sure ceiling it raised as needed) until base is closer (but still below) the PID being used in the areas and see if the PID timeout stops. Slow and stop the increments as it gets closer. I'd also knock down the load targets and/or BLM to bring target more in line with actual, at least 4500+rpm.

Looks like setpoint logic to me, but I can't/don't run it and could definitely be wrong. Might try a full write with the flag off and table 0'd to go back to stock boost control if it's still active.
 
  • Like
Reactions: Jeffman

Jeffman

Major
Jan 7, 2017
1,618
1
628
0
Thanks. I stayed up way too late last night trying to figure out the calculations. It’s definitely not setpoint logic as my SetpointxRPM table is zeroe’d.
I’ll next try your suggestions to log boost setpoint and see how that stacks up.

How do you think my added table looks as is for my datazap log?