Boost Control

From B58 Wiki
Revision as of 22:00, 17 April 2024 by Jtownson (talk | contribs)

Here we talk generally about how the B58 controls the turbo and more specifically about the maps you might need to recalibrate when changing from the stock turbo.

Boost control is a four step process

  1. Convert the boost target and error into power at the turbine wheel (i.e. how hard and fast the turbo should be spinning).
  2. The turbine power is converted to a wastegate position, which will provide this turbine power
  3. The DME applies some corrections to this position
  4. It then applies the I component of the PID error and any adaptation offset to get the final wastegate position.

We note that we are controlling a single variable, the boost, but we have two variables, the turbine power and the wastegate position with which to affect it. This makes the problem underconstrained. We will gain an understanding of the turbo control then look at ways to pin this down.

Power calculation (TchCtr_Pwr)

The first job of the boost controller is to work out how fast and hard is should be spinning the turbo to meet the required boost pressure. As such, (required) boost pressure quantities are converted into (required) power at the turbine wheel (in kW). Likewise boost errors are converted into power errors.

We can understand turbine power in terms of torque x rpm just as we can for engine power. As the boost pressure goes up, the air resistance on the compressor wheel also goes up so it needs more torque to keep turning at the same speed. As the engine speed rises and the airflow picks up, we can picture the compressor chasing the air and so it will have to rotate faster to create the same boost. For this reason, the compressor characteristic (BMWtchctr_pwr_Pctl_M) will tend to rise with pressure and with RPM:

Note that the boost axis does not have any units because the boost pressure in the chargepipe is divided by the pressure before the turbo. This value is often called boost presure ratio.

The pressure before the turbo is ambient pressure minus any pressure drop across the air filter. The more air pulled through the filter, the more it gets in the way and hence this pressure drop becomes higher as airflow increases.

Feed-forward compressor map

Initially, the DME creates a good guess at the required turbine power through a feed-forward map, called the compressor characteristic (BMWtchctr_pwr_Pctl_M). This outputs a feed-forward compressor power.

This is fairly straightforward to understand: there is a map representing the turbo's power at various airflow and pressure-ratio values. The DME reads these off, corrects for temperature and we're done.

P error term

The DME then calculates a proportional error term:

This is a more subtle scenario. Firstly we have the P-Factor which is based on airflow and pressure-ratio (as for the feed-forward case). We can think of this P-Factor as being a feature of the turbo.

Then we have the P correction. Note that the inputs here are turbine massflow and boost error.

We note the following:

  • this is a multiplier applied to the P-factor that takes account of boost error and airflow required at the turbine. Because it's a multiplier, if it's zero, it will cancel the p term in the PID controller.
  • remember that boost is target - actual so underboost is +ve.
  • the correction provides a weighting to the boost error according to how far out of step it is with what's required in the exhaust.
  • If we need a lot of exhaust flow and we are underboosting, the correction table will increase the p factor to hurry the turbo into meeting the demand.
  • If we need not so much exhaust flow and are underboosting, the correction table will slow down the p factor.
D error term

Required turbine power


Important maps in this function are

  1. Compressor characteristic. This drives the feedforward component of the power calculation. It outputs a power value in kW. The inputs are
    1. The target pressure ratio (unitless)
    2. The target mass airflow (often kg/h but g/s in the XDFs)
  2. WGDC_P_correction.