×

Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

Boost Control: Closed Loop Boost Control Tuning

Watch This Course

$79 USD

-OR-
Or 8 weekly payments of only $9.88 Instant access. Easy checkout. No fees. Learn more
Course Access for Life
60 day money back guarantee

Closed Loop Boost Control Tuning

23.35

00:00 - Now that we've got our basic setup using open loop boost control we can move on and look at how we can add a little bit more to this and turn it into a proper closed loop boost control system to deliver accurate and stable boost regardless of the engine's operating conditions.
00:17 So, we left our open loop boost tuning segment with a feedforward table that was relatively tuned to achieve our target of 60 kPa.
00:29 Now, before we move into this tuning, there's a few other things that we need to do to our setup and we're just going to do those now.
00:37 So, let's look back at our boost aim and at this point we had just set a single value of 60 kPa gauge which was being used just as an indicator in our time graph.
00:51 Now we're going to be using closed loop so that the ECU will be referencing this particular value.
00:57 So, now we want to actually set up this boost aim main table to be somewhat more realistic.
01:04 Now, before I do that I just want to touch, again, on this kPa gauge boost pressure target and explain exactly what this means.
01:13 So, what's going to happen if we've got an ambient or barometric air pressure sensor fitted to the engine.
01:20 The ECU will be constantly calculating the inlet manifold pressure relative to our current barometric pressure, so that will be representing a real time at gauge pressure.
01:32 If we don't have an atmospheric, or ambient pressure sensor fitted to the ECU, what will happen is the ECU will measure the current inlet manifold pressure sensor value at startup, before the engine starts running and it will hold that as our barometric air pressure value until the next time the ECU is reset and restarts.
01:55 So, just important to understand that interaction there, and the difference, if we're using an ambient pressure sensor or not.
02:02 OK, so, if we press the A key we have the ability to set up this table however we like and what I'm going to do is I'm going to enable both the engine speed and throttle position axis.
02:14 So, we'll set up an engine speed table with values of 2000 and 7000 rpm, and increments every 500 rpm.
02:28 We can use the throttle position table, so it's probably more valuable in a two wheel drive car.
02:34 We were looking at quite a vast range of boost targets, and what we can do is control the boost pressure relative to the throttle position.
02:44 With a turbo charged car the boost responds and hence the power the engine produces is very non linear relative to throttle position, so we can find that we may end up with as much as 80% of our maximum engine power, even with the throttle closed as much as perhaps 50%, and that makes the car quite hard for the driver to control, particularly in low traction conditions, so we could enable this axis here and we could generate a table, which I'll just do now, between zero and 100% with 20% increments, and we could use this table to reduce our boost pressure target as the throttle is closed.
03:27 Again, that's not going to be particularly valuable on this application here where our full range of boost control between wastegate pressure and our target of 60 kPa is only around about 10 to 12 kPa.
03:43 It's not a very wide range but in most situations where we're targeting a wider range of boost control values that will be valuable.
03:52 OK, so what we're going to do now is we're going to set up some values that are a little bit more realistic based on what our engine is actually able to produce.
04:03 So, at 2000 rpm there's no ability for this particular engine to make 60 kPa so let's choose a more realistic value of 20 kPa and at two and a half thousand rpm we'll enter 30 kPa.
04:19 At 3000 rpm we can enter 40 kPa and, finally, our target of 60 kPa, we should be able to achieve somewhere around about three and a half thousand rpm.
04:30 Now, again, just remembering back to main body of the course this is so that we're not trying to target an unrealistic value which is going to end up with the integral component particularly winding up and increasing and resulting in an overshoot in boost when we do get to a point where we can control boost.
04:49 OK, so that's a basic setup on our duty cycle table and if we wanted to make use of the throttle position axis, what we could do is just reduce the values, and our lower values here, so we could reduce our boost pressure targets at lower throttle positions like I've just done there.
05:14 As I said, this is just a demonstration of what we could achieve.
05:17 It's not really going to have much effect on this particular car.
05:21 Now, once we've done that, I'm just going to, for the rest of this particular demonstration, I'll just get rid of that throttle position table just so we're not confusing matters and we'll just set this back to our previous values.
05:37 OK, so we've got our boost aim table.
05:41 Now, we want to also adjust our boost control feedforward table so that we have a set point at each of our boost targets, so again, we can press the A key and we can enable the boost aim table and what we want to do is adjust this so we have a break point in our table at each of our boost targets so we've got 20, 30, 40 and 60.
06:06 I'll just pop back and we've got 20, 30, 40 and 60.
06:09 So, now we can directly control our duty cycle at each of those break points.
06:18 So, what we can do now, we've got a table already set up of feedforward values that we'll achieve reasonably close to our boost pressure target.
06:30 We've already done that in our open loop.
06:33 The other aspect of our boost aim values here on the load axis, the vertical axis, is that if we are targeting multiple boost pressures above the 60 kPa we're currently looking at, we can then adjust the wastegate duty cycle at each of the higher boost levels so that the ECU is already close when we target those higher boost pressures, and again, we're giving the closed loop control less work to do.
06:58 OK, so one other aspect I want to do is I want to add in some parameters to our time graph here so we can improve our ability to tune the system.
07:08 We can see exactly what's going on.
07:10 Now, if we press F5 you can see that the component's being locked.
07:16 We can't get at those properties, so a quick trick here, if go to our layout editor and we can click on our workbook here and unlock it.
07:25 That will then let us adjust the parameters being shown in this graph.
07:32 So, what I'm going to do is, fist of all, delete this group here, which is our turbo charger bypass state.
07:38 That's not relevant to what we're trying to do, and I'm going to add another group, and what I want to do is I'm going to add the proportional gains.
07:51 I'm going to add the derivative gain and I'm going to add the integral gain.
08:01 So, doing this will let us see, at any particular point in time, exactly what P,I and D components of our boost control system are doing.
08:13 OK, so now that we've done that, we're going to start by adding some values to our gain, so I start with the P and the D gains, so what I'm going to do is leave the integral alone.
08:26 I'm going to start with value of 0.5 for my proportional gain, and I'm going to start with a value of 0.2 for my derivative gain.
08:35 At this point, don't get too hung up on the particular values.
08:39 I'm really starting with some basic, small values for those P and D gains, and we're going to see how that affects our control.
08:48 Now that we've done that we can do a run on the dyno and we can see how the engine responds.
09:11 OK, so we've just completed our first run there and let's have a look on the time graph.
09:17 And what I'm going to do is just expand the range that we're looking at here, to give us a little bit better resolution as to what exactly is going on so the group I'm looking at here is our boost aim.
09:30 versus is our boost pressure and by default that's spanning to 200 kPa, so if I just double-click here I can enter manual scaling.
09:39 We're not running very much boost pressure here so we'll just span that up to 100 kPa.
09:44 So, you can see that, for the most part, we've got quite good control still.
09:50 We're always within around about 2 kPa of our boost target.
09:54 For the most part, if anything, we are slightly higher than our boost target.
09:59 Now, we can see, as well, I just wanted to explain what's going on with our boost control system.
10:06 So, if we look at this particular group here, it's showing the boost control feedforward value, which is taken straight from our feedforward table.
10:14 We also have this boost control percentage, so this tells us what the boost control system is doing.
10:19 You can see, at the moment, it's doing nothing and that's because, if we look at our boost pressure, this is our boost aim.
10:26 Remember, we had our boost activate point set at 10 kPa, so we're below that, so nothing's happening.
10:34 If we move up here we can see that as soon as we go past our boost pressure activate point the boost control's sitting at 100% duty cycle, 100%, and once we get within our margin of 20 kPa, so we're within 20 kPa of our boost target, that's when it drops down and starts actually working in our control.
10:56 Now, if we compare the yellow boost control percentage to our boost control feedforward table you can see what sort of percentage of change is being applied, based on the closed loop control at any point.
11:10 So, at this point, we're actually below our feedforward table value.
11:14 We're sitting at 40.9% and you can see the reason for that is our proportional gain and our derivative gain are both negative, pulling wastegate duty cycle out because we're above our target.
11:29 The other thing I'm going to add in here is another group and we will add boost error.
11:37 Now this is quite helpful to, again, just visualise exactly what's going on with our boost control system.
11:42 This will show a value of zero any time we're right on target, which we can see close to here but, for the most part, you can see that we're sitting somewhere around about one to two kPa above, so that's why the error is negative.
11:58 The boost pressure being measured is actually slightly higher than our target.
12:02 Because of the current situation we have, for the most part, right through the control system, we're actually slightly above our target.
12:10 Before I actually made any changes to the PID control, what I would do is go back, and I would make a small adjustment to our feedforward table, so I'm going to take two percent out of that and we're going to do one more run, now, and see how that affects our boost control.
12:33 So this is still with the same P,I and D values as our last run.
12:53 OK, so let's see what we got there.
12:58 And, you can see, we're actually a lot closer to our target.
13:03 We've got our boost control error sitting very close, within one kPa, for the most part, of our target, and, again, this also comes down to how accurate you really want to be with your boost control.
13:14 I generally gauge that anything within a couple of kPa of our target is doing pretty damn well.
13:20 So, again, you can see here what our P,I and D algorithm is doing to the duty cycle being applied to the wastegate solenoid.
13:30 What I'm going to do now is, we're going to make a change to our proportional gain and we're going to go into that and we're going to double it so we'll try for a reasonably large change here and do another run and see how that larger proportional gain affects our control.
13:49 I should point out, at this point, without any integral gain I'm already really happy with the level of control that we're getting, and simply by adding some integral gain into that, I'm already going to be happy with the result and that would be sufficient for the boost control setup on this particular car.
14:28 OK, so let's have a look at that time graph.
14:30 So, we've gone from, on that particular run, a proportional gain of 0.5 to a proportional gain of 1.0 and you can see, again, our target is now actually improved.
14:42 It's still within, for the most part, one kPa or better of our boost set point.
14:50 What I'm going to do now is I'm going to make a further change.
14:54 I'm going to make quite a dramatic change to the proportional gain to give you an idea of what happens when we go too far and the system becomes unstable.
15:04 So, let's enter a proportional gain value of 10.
15:07 That's a very dramatic gain.
15:09 What that means is that, for an error of one kPa the boost control system is going to add 10% duty cycle to the system, so it's going to have a lot of control over the wastegate duty cycle.
15:24 OK, so we'll do another run now.
15:25 I'll start our time graph running.
15:43 OK, so we'll pause our time graph, and that's a perfect example of what happens.
15:48 In this particular case we've gone from 1.0 as our proportional gain, which does, in fact give really good control in this example, to 10, so it's massive.
15:59 We'd never want to use a number like 10.
16:01 It was just an example of trying to show you what happens when we do go too far.
16:06 So, let's analyse that.
16:07 So, first of all we've got our proportional gain that's being calculated here in blue and you can see the oscillation and you can also see, in yellow here, the result of that being applied in duty cycle to the wastegate solenoid.
16:22 Now, I'll just expand this out a little bit.
16:26 The boost control in this particular car, it doesn't respond very aggressively to changes in boost duty cycle so you can see despite what is a large change, we're going between 57% duty cycle here and 29%.
16:43 It's a really large change.
16:45 We actually don't have a particularly dramatic change in our boost control or our boost pressure but you can see that we are oscillating between about 62 kPa and 58 kPa and it's just gently oscillating.
17:05 What's interesting, though, is that higher up in that oscillation actually gets worse, and you can see that, again, the P gain is chasing that error and it's over-correcting and the oscillation is getting worse and worse.
17:19 So, that's how you know when you've gone too far.
17:22 You're going to see this oscillation in your boost pressure and when we see that what we do is we'd reduce the proportional gain.
17:29 Again, in my example, I've gone way too far just to simply show that situation.
17:35 When we're making more realistic changes I'd have gone from my original target.
17:40 My original proportional gain was 1.0.
17:42 The next change I would've made was 2.0 and I'd probably start to see some of this oscillation creep in and then I can back it off.
17:50 Again, it is important to understand that every system is going to respond slightly differently which is why you can't hope to apply the same proportional integral and derivative values to every system.
18:04 OK, so, we're going to go back, though I know that at 1.0 I had a reasonably good control and what I'm going to do is I'm going to add a little bit of integral gain into the system and I'll set my integral gain at 0.1.
18:19 We'll start our time graph running now and we'll do another run on the dyno and see how that control works out for us.
18:47 OK, we'll just pause that time graph.
18:48 Now, again, you can see that our control is just about perfectly on target.
18:55 Our boost comes up quickly.
18:56 It doesn't overshoot and it sits right on our target of 60 kPa.
19:01 You can see that our boost error is sitting almost constantly within one kPa of zero so we're very, very close, and, depending on how fussy you want to be with the system, and what sort of tolerance you're happy to accept, for me, on this particular engine, I'm more than comfortable with the control we're getting now.
19:24 So, when we're looking at setting these values what we really want to do is use as little of these proportional, integral and derivative gains as we can.
19:34 It's important, when you're first learning about the system, to go too far and see the result of increasing the gains too far on our boost control, and we can do this for the proportional, which we looked at.
19:47 We can also do it for our derivative and our integral gains and you're quickly going to see the range of values over which we can get good control.
19:57 Once we're happy with the control under a ramp run I find it's really important to also test that control under transient conditions because just a ramp run doesn't really test the system as we would out on the road or the race track where we're constantly in and out of the throttle.
20:15 So, how I like to do this is, once I have set up the system under a ramp run condition like that, we'll go to steady state and I want to choose an rpm somewhere around about half of our rev limit.
20:30 Somewhere that we know that we can achieve full boost.
20:33 In this instance, what we're going to do is we're going to go to 4000 rpm and what we want to do is just move in and out of the throttle, and that's going to give us a boost that's going to be cycling in and out and we want to see how well the ECU can control the boost as it comes up and our set point changes so we're going to do that now.
20:56 I'll just increase the engine rpm up to 4000.
21:00 I'll just enlarge the time graph so we can see exactly what's going on.
21:10 OK, so we're at about 4000 rpm.
21:12 Now, what we want to be looking at is, really, this group in here, so we want to be watching our boost pressure versus our boost aim, so what I'm going to do is go to full throttle and we'll let the boost come up, see how well it controls, then I'll back out of the throttle and repeat it.
21:45 OK, so we'll pause that graph and we'll just have a look at it again, so you can see that, again, we've got reasonably accurate control within about one kPa where the maximum we achieved there was 61.1, 61.4, 61.3, so we're very, very slightly overshooting our target by only one kPa.
22:09 As I said, for this particular example I'm quite happy with a dead band of one kPa plus and minus my target.
22:16 I'm happy to accept that, so for me, in this case, I would call that job complete.
22:22 I'm happy with the boost control.
22:24 If you are having problems at this point this is where we can start applying some more changes to our P,I and D algorithms.
22:34 If we were having problems with the boost control over-boosting as it comes up on boost, which is very common, there's two changes I would make there.
22:44 The first is we can reduce the proportional gain value.
22:48 Now, that will also have the effect of slowing the response to boost, so it's not ideal.
22:54 We don't want to reduce that if we can avoid it.
22:57 The other thing we can do, though, is we can add some more derivative gain, and that's going to have the effect of dampening the response as it comes up on boost, so it still allows the very fast initial response that we get with the high proportional gain but, as we come up closer to our target that applies more breaking force, more dampening, to the boost control, and that can help reduce the chances of it over-boosting or oscillating.