The Boost PID controller controls a PWM output with the aim of controlling the engine boost as accurately as possible. Within the boost control algorithm, several ways of
controlling the engine boost can be deployed. All algorithms can be used in open loop and closed loop, in closed loop a tunable PID controller will act on top of the reference
table values to get better spool up and compensate for any potential deviance from target value (when tuned properly).
Open loop boost control (reference lookup = rpm/gear/speed based, PID = 0)
In its simplest form the boost control algorithm can be used in open loop boost control mode (reference lookup = rpm/gear/speed based).
When active boost sensor value is below "boost valve off below this pressure", duty cycle is forced 0% effectively turning off boost valve. Otherwise output duty cycle is influenced by the refence table values only. The reference table can be configured with a few dependencies either none-
, gear- or speed based dependency and several modifiers can be applied anytrim, mat, egt and tps.
- No Dependent in this mode the boost control reference table value lookup is based solely on engine rpm in a single axis boost refdc table.
- Gear Dependent in this mode the boost control reference table value lookup is based on engine gear and engine rpm in the multi axis gear dependent refdc table.
- Speed Dependent in this mode the boost control refence table value lookup is based solely on wheel speed in a single axis boost refdc table,
this mode is mostly used on cars with automatic transmissions or in drag race "increase boost from start to end" applications.
Open loop boost control (reference lookup = target based, PID = 0)
Open loop boost control, but reference table value is indexed with boost target/rpm (reference lookup = target based).
When active boost sensor value is below "boost valve off below this pressure", duty cycle is forced 0% effectively turning off boost valve. Otherwise output duty cycle is influenced by the refence table values only.
The reference value is only dependent on boost target/rpm, however boost target look up itself can be configured with several dependencies. More about this in section Closed loop boost control (reference lookup = target based, PID != 0).
On top of the reference value multiple modifiers can be applied anytrim, mat, egt and tps.
Open loop boost control (reference based only) common modifiers and limiters
On top of the reference table value there are modifiers which can take action (listed in order of application):
- Anytrim Add when anytrim2 is active in mode "boost_ref_trim(add)" active value from anytrim table is added to current ref_dc. See: "Motorsports menu" / "Anytrim Control".
- Mat when "reducing refdc above egt or mat" is enabled and mat goes above "boost target reduction above mat value" then reference duty cycle is reduced with 1.5625 %/degree over threshold
See: "Base setup menu" / "Rev limit / Overrun / Safety".
- Egt when "reducing refdc above egt or mat" and egt goes above "boost target reduction above egt value" then reference duty cycle is reduced with 1.5625 %/4 degree over threshold
See: "Base setup menu" / "Rev limit / Overrun / Safety".
- Tps when "tps weight for refdc" is set to a non-zero value (normally recommended 100%, no up scaling supported, however rate (and amount of change is adjustable)) the ref_dc is scaled with "boost vs tps curve" looked up percentage times this value.
Tps scaling is applied on top of all previously applied scalers.
Finally the total reference value (table lookup and modifiers) is limited within the range set in "boost pwm minimum value" and "boost pwm maximum value" any value outside of range is railed.
Closed loop boost control (reference lookup = rpm/gear/speed based, PID != 0)
On top of the pure reference based open-loop boost control a target based PID feedback is applied. When active boost sensor value is
above "boost valve off below this pressure", PID control (and reference calculation) is active. The boost target table is either rpm or gear/rpm based both no- and speed dependent use rpm based,
gear dependent uses gear/rpm based boost target table. After target lookup from table several modifiers can be applied anytrim, mat, egt, launch control and tps
- No Dependent/Speed Dependent boost target table value lookup is based solely on engine rpm in a single axis boost target table.
- Gear Dependent boost control target table value lookup is based on engine gear and engine rpm in the multi axis gear dependent boost target table.
PID settings:
- Boost P: This is the proportional addition of duty cycle to the baseline and is instantly added.
- Boost I: This is the integral addition of duty cycle to the baseline and is constantly being updated based on the amount of error.
- Boost D: The output of the D will be based on the rate of change of the error each time. The higher the value the more the D will work against fast spooling, however lower D will not be able to counter overshooting the target.
- Boost control PID integral limit: This controls how much adding or removing the I can do to reach the target, if you have to high of a value the I could wind on until you have 100% or 0%.
PID controller needs to be tuned in a way that produces little to no overshoot from target, fast spool up and preferably no under shoot. Although attainable with this algorithm, usage of reference lookup = target based control is recommended
Closed loop boost control (reference lookup = target based, PID != 0)
Most advanced boost control system, simple and easy to tune, fast and steady response. On top of the target based reference open-loop
boost control a target based PID feedback is applied. When active boost sensor value is above "boost valve off below this pressure", PID control (and reference calculation) is active. The boost target table is either rpm or gear/rpm based both no- and speed dependent use rpm based,
gear dependent uses gear/rpm based boost target table. After target lookup from table several modifiers can be applied anytrim, mat, egt, launch control and tps
- No Dependent/Speed Dependent boost target table value lookup is based solely on engine rpm in a single axis boost target table.
- Gear Dependent boost control target table value lookup is based on engine gear and engine rpm in the multi axis gear dependent boost target table.
The advanced boost control system doesnt operate a simple PID loop on top of the baseline duty cycle table, it allows you to turn on and off individual aspects of the closed loop functions to better
maintain smooth operations and remove all erratic behavior.
PID settings:
- Apply max DC until: Force the output to "Boost pwm maximum value" when you are still this far away from the target, the closer you get the more likely you are to overshoot your target. So start off with a long range and shorten and test. Start with 90kpa in this case.
- PD control (far from target): When active boost sensor value is within this value of current boost target then the P value and D value become active in where the P value will increase the output duty cycle and the D will lower it if the rate of change of the MAP is high to avoid overshooting.
- PI control (close to target): When active boost sensor value is within this value of current boost target then P and I value are active and D is disabled. The P still maintains its function as before applying instant correction to the baseline duty cycle based on the amount of error. The I will accumulate duty cycle based on the amount of error at any given time. Simply put since the P doesnt get you to the target the I will increase and increase continuously, and since the error will lower each time the accumulation will also decrease.
- PID overlap range: When active boost sensor value is within this from current boost target value D is enabled again. "Forever" means always PID.
- Boost P: This is the proportional addition of duty cycle to the baseline and is instantly added.
- Boost I: This is the integral addition of duty cycle to the baseline and is constantly being updated based on the amount of error.
- Boost D: The output of the D will be based on the rate of change of the error each time. The higher the value the more the D will work against fast spooling, however lower D will not be able to counter overshooting the target.
- Boost control PID integral limit: This controls how much adding or removing the I can do to reach the target, if you have to high of a value the I could wind on until you have 100% or 0%.
Closed loop boost control common target sensor input selection, target modifiers and limiters
On top of the boost target table values there are modifiers which can take action (listed in order of application):
- Anytrim Add when anytrim2 is active in mode "boosttrim(add)" active value from anytrim table is added to current boost target (-256 to +254kpa). See: "Motorsports menu" / "Anytrim Control".
- Anytrim Mul when anytrim2 is active in mode "boosttrim(mul)" active value from anytrim table scales boost target (0-200%). See: "Motorsports menu" / "Anytrim Control".
- Mat when mat goes above "boost target reduction above mat value" then boost target is reduced with 4 kpa/degree over threshold
See: "Base setup menu" / "Rev limit / Overrun / Safety".
- Egt when egt goes above "boost target reduction above egt value" then boost target is reduced with 1 kpa/degree over threshold
See: "Base setup menu" / "Rev limit / Overrun / Safety".
- Launch control when launch control is active, active boost target is reduced to "Start boost decrease of Enrich+Retard at" + half of "Range for boost decrease " when it is lower
than active boost target (launch control function can only reduce target when needed), see: "Motorsports menu" / "Launch Control".
- Tps current boost target is scaled with "boost vs tps curve" looked up target scaler.
The active boost sensor value used in PID calculations and also enabler for valve actuation is selectable, it can be either engine Map (boost target = map target) or external Boost sensor (boost target = boost target).
- Map target engine map sensor is used as boost controller target.
- Boost target external boost sensor is used for boost control target, select sensor input channel and set calibration for accurate reading.
- Rpm/Pgas target special modes, do not use.