jyamona posted this:

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, and Spool mode stuff, but you get the point

I made this simple "code" to understand the calculation, can someone help finish it?

Code:

```
val boost_setpoint = 2.52
val maf = 244
val wgdc_base = get_wgdc_base(x: maf, y: boost_setpoint) + get_wgdc_adder(x: maf)
val wgdc_to_wgdc_position = get_wgdc_to_wgdc_position(x: wgdc_base, y: maf)
val wgdc_pos_back = get_wgdc_pos_back(x: wgdc_to_wgdc_position)
val final_wgdc_base = wgdc_base + wgdc_pos_back
val wgdc_after_pid = get_wgdc_after_pid(base: final_wgdc_base)
val final_wgdc_after_pid = wgdc_limit(wgdc_after_pid)
val final_wgdc_bank_x = final_wgdc_after_pid + ?
?? val pre_control_a = get_pre_control_a(x: load, y: rpm) ??
?? val wgdc_correction_ect = get_wgdc_correction_ect(x: engine_coolant_temp) ??
```