This article describes using target boost modes in the Modular ECUs.
Firstly, let’s talk about the reason we do it this way. What we found with the Select ECUs was that the majority of people were happy to run an open loop duty cycle, but a few wanted to do closed loop functions also.
Also, people wanted different boost levels under different conditions. For example with different ethanol content, or an external input switch to select a different boost level, or in different gears. The vast majority of people wanted the switch to hold a certain boost level, which if you have a well configured mechanical system, will equate to a fairly constant duty cycle, but in other cases this doesn’t happen and you end up with boost creep or taper as RPM increases.
If you do want to do closed loop, then as well as having different base duty cycles under these different conditions, we need to have different boost targets as well, or run in open loop mode.
This means that if you want to change one of these settings, you need to change 2 values; one is the target boost and the second is the duty cycle, not to mention the creep or taper behaviour discussed earlier.
So with the Modular ECU we’ve decided to get away from that, and instead we have two modes of running the boost control. One is open loop duty cycle, which has already been described in the open loop duty cycle article. The second is target boost, which is the topic of this article.
In target boost mode, instead of working out a duty cycle from all the maps, we instead work out a target MAP. So the basic boost map, instead of being a duty cycle map, instead becomes the target MAP in kPa, or if you prefer PSI an inHg, it’s represented as gauge pressure but offset from 1 standard atmosphere so it still represents MAP. All the limits, for example the ethanol, the switch input and the current transmission gear all become MAP limits now rather than duty cycle limits, and push to pass is now a new (higher) MAP setting rather than duty cycle.
The ECU then calculates the target MAP, based on all these functions, using the same logic as the open loop boost control uses to calculate the duty cycle.
This target MAP then becomes the target for closed loop PID, but the ECU also needs a way to work out the duty cycle from this MAP target.
Currently there are 2 ways to do this.
The first is the more traditional way, and in it you have a 3D map of RPM on one axis, and target MAP on the other. The value of the cell in the map is the duty cycle required to achieve that target boost at the given RPM. This means it has to be tuned, which will be pretty fiddly. So it’s here for people that are used to this technique from other ECUs but we don’t recommend it.
The other way is to instead have an actual boost map, where the two axes are RPM across, and duty cycle going down. The map then contains the actual boost achieved (represented as MAP) with the given RPM / duty cycle combinations. You can use the “lock duty cycle” function in the boost control settings to force the ECU to use a particular duty cycle on the actuator, and then as you increase the RPM through the rev range, the ECU will record the actual boost achieved into this table. Therefore, to set the table, all you need to do is set the axis points and then go through each duty cycle in turn and allow the ECU to sample it as you do a power run.
When you then disable the “lock duty cycle” function, the ECU then works out the target MAP or boost as described earlier. The ECU goes through the current column based on the RPM to find out what the duty cycle would need to be to achieve the target MAP. This could be described as reverse-interpolation. The ECU then uses this for the base duty cycle.
After the ECU has the base duty cycle, it applies the air temperature correction map as described earlier, however the axis is now the target MAP rather than the measured MAP. Therefore you can’t use it to do a semi-closed loop function (but you have a PID controller with which to do that).
Now the ECU has a base duty cycle and a target. Let’s look at the other functions it can perform.
First of all, the other conditions for driving the solenoid output, such as minimum MAP and minimum TPS, still apply, so we need to bear that in mind.
Next, there is a quick spool function. If the mechanical setup is tight then this should have no effect but nothing is perfect, so here it is. When the MAP is less than the target MAP minus the quick spool offset, the output is held on at 100% duty cycle, to help the turbo spool up more quickly. The offset is there to allow you to switch over to the standard boost control duty cycle before the turbo over-speeds and causes a boost spike condition; so you’d normally set the offset to a value like 15 kPa or 2 PSI, more if your turbo comes on to boost very suddenly.
After that, there is a time allowed before the ECU will go into closed loop boost control. This is to avoid integrator wind-up effects; basically it allows the turbo to reach an equilibrium speed. A typical value would be 500 milliseconds.
Then you have the PID gains, for if you want to run closed loop. If you want to run open loop, just set these to zero. The gains are in percent-percent; so as an example, if your target is 210 kPa, and the actual MAP is 200 kPa, that means you’re 10 kPa too low. If you enter a proportional gain of 100%, then that will give you +10% duty cycle correction on the idle valve. So in practice you need numbers smaller than this unless you have a very small wastegate spring.
Finally, in terms of diagnostics, the best way is just like fuel tuning – it should be pretty much right in open loop before you try setting up closed loop. So set the PID gains to zero initially and work your way upwards. Remember any integrator term you have will possibly lead to integrator wind-up issues so try to get as much working as possible off the P term.
Thank you and happy learning!