WEBVTT

00:00:00.000 --> 00:00:01.952 align:middle line:90%
[SQUEAKING]

00:00:01.952 --> 00:00:04.392 align:middle line:90%
[RUSTLING]

00:00:04.392 --> 00:00:06.832 align:middle line:90%
[CLICKING]

00:00:06.832 --> 00:00:09.280 align:middle line:90%


00:00:09.280 --> 00:00:12.160 align:middle line:90%
DAVID PERREAULT: --control.

00:00:12.160 --> 00:00:18.620 align:middle line:84%
And we said that we
saw a few phenomena.

00:00:18.620 --> 00:00:23.620 align:middle line:84%
So if I took, for
example, a boost converter

00:00:23.620 --> 00:00:38.650 align:middle line:84%
as my canonical example, I
have V, the output voltage,

00:00:38.650 --> 00:00:42.880 align:middle line:84%
as one of my state variables
because the capacitor C and IL

00:00:42.880 --> 00:00:44.920 align:middle line:90%
is the other state variable.

00:00:44.920 --> 00:00:50.500 align:middle line:84%
And what we really
control here is q of t

00:00:50.500 --> 00:00:56.230 align:middle line:84%
or the local average of q of t,
which we call the duty ratio.

00:00:56.230 --> 00:01:02.200 align:middle line:84%
And we said we developed
linearized average models

00:01:02.200 --> 00:01:07.930 align:middle line:84%
for this thing with the notion
that if I had some reference

00:01:07.930 --> 00:01:13.510 align:middle line:84%
voltage, and I compare
it to the output voltage,

00:01:13.510 --> 00:01:18.400 align:middle line:84%
and I went into a
compensator GC of S,

00:01:18.400 --> 00:01:21.490 align:middle line:84%
and I use that to
generate duty ratio

00:01:21.490 --> 00:01:28.360 align:middle line:84%
and then I had my converter,
which might have some IL,

00:01:28.360 --> 00:01:31.720 align:middle line:84%
it might have some
V out, and I then

00:01:31.720 --> 00:01:34.850 align:middle line:84%
compare that output
to my reference,

00:01:34.850 --> 00:01:36.940 align:middle line:90%
I get an error voltage.

00:01:36.940 --> 00:01:39.670 align:middle line:84%
And then I use that
error voltage to generate

00:01:39.670 --> 00:01:40.628 align:middle line:90%
the duty ratio I want.

00:01:40.628 --> 00:01:41.920 align:middle line:90%
I stick that into my converter.

00:01:41.920 --> 00:01:47.000 align:middle line:84%
And we generated some linearized
average models for this thing.

00:01:47.000 --> 00:01:53.560 align:middle line:84%
So I might think about the
variations in all these things

00:01:53.560 --> 00:01:55.330 align:middle line:90%
to linearize it.

00:01:55.330 --> 00:01:59.050 align:middle line:84%
And we came up with a model
for our converter, H of S,

00:01:59.050 --> 00:02:03.310 align:middle line:84%
which basically converts
between variations in duty ratio

00:02:03.310 --> 00:02:07.000 align:middle line:84%
to variations in output voltage,
and we design a converter.

00:02:07.000 --> 00:02:11.030 align:middle line:84%
And when we did that, we
saw a couple of things.

00:02:11.030 --> 00:02:14.870 align:middle line:84%
First, we saw that the
dynamics were nonlinear.

00:02:14.870 --> 00:02:17.550 align:middle line:84%
That's why we had to do
this linearization thing.

00:02:17.550 --> 00:02:19.800 align:middle line:84%
Now, are they always
nonlinear in a converter?

00:02:19.800 --> 00:02:21.690 align:middle line:90%
No.

00:02:21.690 --> 00:02:23.460 align:middle line:90%
But many, many converters are.

00:02:23.460 --> 00:02:26.410 align:middle line:84%
And in this case, why is
that nonlinearity there?

00:02:26.410 --> 00:02:28.560 align:middle line:84%
The nonlinearity is there
because what we're seeing

00:02:28.560 --> 00:02:33.420 align:middle line:84%
is our second order responses
are some kind of oscillations

00:02:33.420 --> 00:02:35.520 align:middle line:84%
between the inductor
and the capacitor

00:02:35.520 --> 00:02:37.180 align:middle line:90%
and damped by the load resistor.

00:02:37.180 --> 00:02:40.500 align:middle line:84%
And those oscillations
are mediated

00:02:40.500 --> 00:02:43.620 align:middle line:84%
through the switching or the
modulation of the switches,

00:02:43.620 --> 00:02:45.600 align:middle line:90%
which varies with time.

00:02:45.600 --> 00:02:48.690 align:middle line:84%
And more to the point, the
steady state value of that

00:02:48.690 --> 00:02:51.840 align:middle line:84%
varies with DC input
to output voltage

00:02:51.840 --> 00:02:55.060 align:middle line:90%
and hence the dynamics vary.

00:02:55.060 --> 00:02:58.740 align:middle line:84%
Because the modulation is
mediated by the switching,

00:02:58.740 --> 00:03:00.520 align:middle line:90%
we get nonlinear behavior.

00:03:00.520 --> 00:03:03.900 align:middle line:84%
And what that means is that
the dynamics, the small signal

00:03:03.900 --> 00:03:07.350 align:middle line:84%
dynamics, physically vary with
different values of, say, input

00:03:07.350 --> 00:03:08.710 align:middle line:90%
voltage and output voltage.

00:03:08.710 --> 00:03:11.293 align:middle line:84%
So if I have a different value
of input voltage and same value

00:03:11.293 --> 00:03:14.470 align:middle line:84%
of output voltage, I should
expect my dynamics to vary.

00:03:14.470 --> 00:03:22.970 align:middle line:84%
So one, we saw
nonlinearity which arises.

00:03:22.970 --> 00:03:29.000 align:middle line:84%
The other thing we saw
was a pole-zero map.

00:03:29.000 --> 00:03:33.010 align:middle line:84%
If I looked at H of S,
what's going on in here,

00:03:33.010 --> 00:03:38.240 align:middle line:84%
the one thing we saw was
a right-half-plane zero

00:03:38.240 --> 00:03:40.670 align:middle line:90%
in our transfer function.

00:03:40.670 --> 00:03:43.760 align:middle line:84%
And we said that that
right-half-plane zero

00:03:43.760 --> 00:03:47.690 align:middle line:84%
comes from the underlying way
in which the converter processes

00:03:47.690 --> 00:03:48.320 align:middle line:90%
energy.

00:03:48.320 --> 00:03:50.040 align:middle line:90%
It's not a function of the math.

00:03:50.040 --> 00:03:53.240 align:middle line:84%
It's because when I
change what I'm doing,

00:03:53.240 --> 00:03:55.880 align:middle line:84%
the dynamics it goes through
is reflective of what

00:03:55.880 --> 00:03:57.830 align:middle line:90%
a right-half-plane zero does.

00:03:57.830 --> 00:04:00.980 align:middle line:84%
So I'm kind of stuck with
this right-half-plane zero.

00:04:00.980 --> 00:04:03.620 align:middle line:84%
And then the other
thing we saw was

00:04:03.620 --> 00:04:07.280 align:middle line:84%
that the pole locations,
which are due to the L and C

00:04:07.280 --> 00:04:09.200 align:middle line:84%
and how they interact
with the resistance,

00:04:09.200 --> 00:04:14.050 align:middle line:84%
so it's a second-order system,
tend to be very lightly damped,

00:04:14.050 --> 00:04:15.950 align:middle line:90%
like this, something like that.

00:04:15.950 --> 00:04:19.970 align:middle line:84%
And the amount of damping
depends upon the load resistance

00:04:19.970 --> 00:04:23.350 align:middle line:84%
R. So I'm really relying
on this load resistance

00:04:23.350 --> 00:04:27.160 align:middle line:84%
to damp the oscillations,
or that makes

00:04:27.160 --> 00:04:28.600 align:middle line:90%
it hard to design a controller.

00:04:28.600 --> 00:04:30.670 align:middle line:84%
Lightly damp poles and
a right-half-plane zero

00:04:30.670 --> 00:04:32.920 align:middle line:84%
mean I'm not a very
happy camper in terms

00:04:32.920 --> 00:04:34.720 align:middle line:90%
of designing a good controller.

00:04:34.720 --> 00:04:38.990 align:middle line:90%
So that's where we came to.

00:04:38.990 --> 00:04:41.140 align:middle line:84%
We said, well, what can I
do about this situation?

00:04:41.140 --> 00:04:42.890 align:middle line:84%
Because this is a hard
thing to deal with.

00:04:42.890 --> 00:04:44.200 align:middle line:90%
You can deal with it.

00:04:44.200 --> 00:04:46.840 align:middle line:84%
You can design a GC of
S, a compensator that

00:04:46.840 --> 00:04:49.570 align:middle line:84%
will deal with that, but
it's not very pretty.

00:04:49.570 --> 00:04:56.080 align:middle line:84%
One thing you can do is by
choosing L and C appropriately,

00:04:56.080 --> 00:05:00.520 align:middle line:84%
that helps you set dynamics
the way you'd like them.

00:05:00.520 --> 00:05:02.810 align:middle line:84%
The other thing you can
do is change the plant.

00:05:02.810 --> 00:05:04.450 align:middle line:84%
So we said, oh,
it's this resistor

00:05:04.450 --> 00:05:08.090 align:middle line:90%
that's damping the poles.

00:05:08.090 --> 00:05:15.440 align:middle line:84%
Maybe I could go
add RD and CD such

00:05:15.440 --> 00:05:18.790 align:middle line:84%
that CD is a short circuit
near the corner frequency

00:05:18.790 --> 00:05:20.240 align:middle line:84%
where the L and C
are oscillating,

00:05:20.240 --> 00:05:23.390 align:middle line:84%
so RD serves to damp
it, and RD doesn't vary.

00:05:23.390 --> 00:05:30.070 align:middle line:84%
So by picking additions to my
plant, by changing my converter,

00:05:30.070 --> 00:05:31.930 align:middle line:84%
I can help make
things better damped

00:05:31.930 --> 00:05:33.980 align:middle line:84%
and maybe get better
pole locations here.

00:05:33.980 --> 00:05:36.400 align:middle line:84%
I'd have another pole
location, but maybe it

00:05:36.400 --> 00:05:40.900 align:middle line:84%
would be a low-order
overdamped pole location.

00:05:40.900 --> 00:05:42.108 align:middle line:90%
So that's one thing I can do.

00:05:42.108 --> 00:05:44.567 align:middle line:84%
I don't like to do that because
then I got to buy hardware.

00:05:44.567 --> 00:05:46.820 align:middle line:84%
I got to buy a big capacitor
and that kind of thing.

00:05:46.820 --> 00:05:53.320 align:middle line:84%
The question is, what else can
I do to make a better power

00:05:53.320 --> 00:05:56.800 align:middle line:90%
converter controller?

00:05:56.800 --> 00:06:00.550 align:middle line:84%
And that's what we're
going to talk about today.

00:06:00.550 --> 00:06:03.910 align:middle line:90%
And the basic idea is this.

00:06:03.910 --> 00:06:12.670 align:middle line:84%
I have a converter that
has two state variables.

00:06:12.670 --> 00:06:17.030 align:middle line:84%
Its state variables
are IL and VC.

00:06:17.030 --> 00:06:20.960 align:middle line:84%
And yes, it has as its
input the input voltage.

00:06:20.960 --> 00:06:25.000 align:middle line:84%
And so what I've been
doing is taking--

00:06:25.000 --> 00:06:30.470 align:middle line:84%
between these two, I've been
feeding back the output voltage.

00:06:30.470 --> 00:06:32.030 align:middle line:84%
What a control
person would tell you

00:06:32.030 --> 00:06:33.738 align:middle line:84%
is if you're not happy
with your dynamics

00:06:33.738 --> 00:06:36.200 align:middle line:84%
and you have a
controllable system,

00:06:36.200 --> 00:06:37.760 align:middle line:90%
feedback all of your states.

00:06:37.760 --> 00:06:39.840 align:middle line:90%
Do full-state feedback.

00:06:39.840 --> 00:06:41.300 align:middle line:84%
If you feedback
all of your states,

00:06:41.300 --> 00:06:44.720 align:middle line:84%
you can place your
dynamics much better.

00:06:44.720 --> 00:06:47.720 align:middle line:84%
And we're going to
do a version of that

00:06:47.720 --> 00:06:50.450 align:middle line:90%
called current mode control.

00:06:50.450 --> 00:06:57.077 align:middle line:84%
The general concept
originated in the 1960s.

00:06:57.077 --> 00:06:59.660 align:middle line:84%
The version I'm going to tell
you about came about in the late

00:06:59.660 --> 00:07:00.690 align:middle line:90%
1970s.

00:07:00.690 --> 00:07:02.918 align:middle line:84%
And there's lots of
versions of this idea.

00:07:02.918 --> 00:07:04.460 align:middle line:84%
I'm telling you
about what's probably

00:07:04.460 --> 00:07:07.730 align:middle line:84%
the most popular one
in DC-to-DC converters

00:07:07.730 --> 00:07:11.720 align:middle line:84%
if you go out to buy
one or to design one.

00:07:11.720 --> 00:07:14.180 align:middle line:84%
A lot of the control
chips use this technique.

00:07:14.180 --> 00:07:17.000 align:middle line:90%
And here's the idea.

00:07:17.000 --> 00:07:20.630 align:middle line:84%
For the converter, we
said the input was-- well,

00:07:20.630 --> 00:07:22.550 align:middle line:90%
ultimately the input is q of t.

00:07:22.550 --> 00:07:24.780 align:middle line:84%
It's what's modulating
the converter.

00:07:24.780 --> 00:07:34.200 align:middle line:84%
Maybe I can say, OK, let me
feed back the inductor current

00:07:34.200 --> 00:07:36.930 align:middle line:90%
and compare that to a reference.

00:07:36.930 --> 00:07:39.010 align:middle line:84%
And I'm going to call
this reference IP.

00:07:39.010 --> 00:07:41.376 align:middle line:90%
So this is a current reference.

00:07:41.376 --> 00:07:44.160 align:middle line:90%


00:07:44.160 --> 00:07:47.730 align:middle line:84%
And based on the
comparison of IL

00:07:47.730 --> 00:07:54.960 align:middle line:84%
with IP in a current
controller, I'm

00:07:54.960 --> 00:07:56.880 align:middle line:84%
going to generate the
switching function.

00:07:56.880 --> 00:07:58.380 align:middle line:84%
And then what I'm
going to do is I'm

00:07:58.380 --> 00:08:06.840 align:middle line:84%
going to feed back the voltage
and compare it to a reference

00:08:06.840 --> 00:08:11.940 align:middle line:84%
and put that into a
compensator GC of S.

00:08:11.940 --> 00:08:15.750 align:middle line:84%
And I'm going to use GC of S to
generate the current reference.

00:08:15.750 --> 00:08:18.920 align:middle line:84%
So this is something
called minor loop control.

00:08:18.920 --> 00:08:20.940 align:middle line:84%
We're going to have
a fast inner loop

00:08:20.940 --> 00:08:25.030 align:middle line:84%
to control the current
and then a slow outer loop

00:08:25.030 --> 00:08:26.010 align:middle line:90%
to control the voltage.

00:08:26.010 --> 00:08:28.560 align:middle line:90%


00:08:28.560 --> 00:08:30.900 align:middle line:84%
But we're going to feed back
both current and voltage

00:08:30.900 --> 00:08:32.740 align:middle line:90%
and thereby get better dynamics.

00:08:32.740 --> 00:08:34.890 align:middle line:90%
That's the basic idea.

00:08:34.890 --> 00:08:37.510 align:middle line:90%
Any questions about that?

00:08:37.510 --> 00:08:39.507 align:middle line:84%
AUDIENCE: What does
fast and slow mean?

00:08:39.507 --> 00:08:41.340 align:middle line:84%
DAVID PERREAULT: Let
me show you the scheme,

00:08:41.340 --> 00:08:43.382 align:middle line:84%
and then you'll see what
I mean by fast and slow.

00:08:43.382 --> 00:08:46.320 align:middle line:84%
Remember, when we were
talking about our models,

00:08:46.320 --> 00:08:50.070 align:middle line:84%
for our average models
up there, they're

00:08:50.070 --> 00:08:53.220 align:middle line:84%
kind of good on time periods
that are slow compared to half

00:08:53.220 --> 00:08:54.220 align:middle line:90%
the switching frequency.

00:08:54.220 --> 00:08:58.245 align:middle line:84%
So maybe you can go to 0.2
of the switching frequency.

00:08:58.245 --> 00:08:59.370 align:middle line:90%
There's games you can play.

00:08:59.370 --> 00:09:01.840 align:middle line:84%
But pretty much, you're
looking at the average value.

00:09:01.840 --> 00:09:03.720 align:middle line:84%
So you don't want
your controller,

00:09:03.720 --> 00:09:06.360 align:middle line:84%
GC of S in the
top example, to be

00:09:06.360 --> 00:09:09.720 align:middle line:84%
changing your command very
quickly, certainly not

00:09:09.720 --> 00:09:11.563 align:middle line:90%
within a cycle.

00:09:11.563 --> 00:09:13.230 align:middle line:84%
In this scheme, what
we're going to do--

00:09:13.230 --> 00:09:16.450 align:middle line:84%
that will still be true of
this outer loop control.

00:09:16.450 --> 00:09:18.090 align:middle line:84%
The inner loop
control is actually

00:09:18.090 --> 00:09:20.970 align:middle line:84%
going to run on a
cycle-by-cycle basis.

00:09:20.970 --> 00:09:25.770 align:middle line:84%
And that has a lot of
follow-on benefits.

00:09:25.770 --> 00:09:28.560 align:middle line:84%
So what we're going
to do is we're

00:09:28.560 --> 00:09:30.840 align:middle line:84%
going to come up with
a scheme where we

00:09:30.840 --> 00:09:32.820 align:middle line:90%
turn on the switch every cycle.

00:09:32.820 --> 00:09:34.680 align:middle line:84%
And then I'm going to
turn off the switch

00:09:34.680 --> 00:09:36.570 align:middle line:84%
based on what the
inductor current is

00:09:36.570 --> 00:09:38.137 align:middle line:90%
doing in a particular way.

00:09:38.137 --> 00:09:39.970 align:middle line:84%
And I'm going to show
you the particular way

00:09:39.970 --> 00:09:41.380 align:middle line:90%
we're going to examine.

00:09:41.380 --> 00:09:44.740 align:middle line:84%
And so that's going to give us
control over what the inductor

00:09:44.740 --> 00:09:46.220 align:middle line:90%
current is doing.

00:09:46.220 --> 00:09:48.230 align:middle line:84%
And then I'm going
to use my outer loop

00:09:48.230 --> 00:09:51.590 align:middle line:84%
to control that command
to the inductor current.

00:09:51.590 --> 00:09:54.170 align:middle line:84%
So the crudest way
people like to think

00:09:54.170 --> 00:09:57.090 align:middle line:84%
about this is I'm putting the
inductor current inside a loop.

00:09:57.090 --> 00:10:00.560 align:middle line:84%
So now I just get a
commandable current.

00:10:00.560 --> 00:10:02.830 align:middle line:84%
And then I sort of have
a first-order system.

00:10:02.830 --> 00:10:04.080 align:middle line:90%
Now, it's not quite that good.

00:10:04.080 --> 00:10:05.495 align:middle line:90%
That's an oversimplification.

00:10:05.495 --> 00:10:07.315 align:middle line:84%
I still have two
state variables.

00:10:07.315 --> 00:10:08.690 align:middle line:84%
It's still a
second-order system,

00:10:08.690 --> 00:10:12.930 align:middle line:84%
but it's not a bad
way to think about it.

00:10:12.930 --> 00:10:16.760 align:middle line:84%
All right, so how
does this scheme work?

00:10:16.760 --> 00:10:20.550 align:middle line:84%
Let me show you the
basis of the scheme.

00:10:20.550 --> 00:10:24.000 align:middle line:90%
It looks something like this.

00:10:24.000 --> 00:10:27.415 align:middle line:84%
What I'm going to do is
I'm going to create--

00:10:27.415 --> 00:10:32.557 align:middle line:90%


00:10:32.557 --> 00:10:34.140 align:middle line:84%
I'm going to have a
current reference.

00:10:34.140 --> 00:10:36.950 align:middle line:90%
Here's my current reference.

00:10:36.950 --> 00:10:39.800 align:middle line:90%
Let me call this I peak.

00:10:39.800 --> 00:10:43.890 align:middle line:84%
And this is-- within
a switching cycle,

00:10:43.890 --> 00:10:48.110 align:middle line:84%
this is more or less a constant
defined by this compensator,

00:10:48.110 --> 00:10:49.700 align:middle line:84%
but it's going to
move up and down

00:10:49.700 --> 00:10:51.860 align:middle line:90%
as my outer loop tells it to.

00:10:51.860 --> 00:10:55.820 align:middle line:84%
Then I'm going to create a
slight variation off that,

00:10:55.820 --> 00:10:59.805 align:middle line:84%
and we'll explain why
a little bit later.

00:10:59.805 --> 00:11:01.430 align:middle line:84%
But suppose this is
my switching period

00:11:01.430 --> 00:11:06.120 align:middle line:84%
T. I'm going to create
a slope with some slope.

00:11:06.120 --> 00:11:08.150 align:middle line:90%
I'm going to call this minus MC.

00:11:08.150 --> 00:11:09.450 align:middle line:90%
This is some slope--

00:11:09.450 --> 00:11:11.000 align:middle line:90%
MC is a positive number--

00:11:11.000 --> 00:11:15.470 align:middle line:84%
which is a ramp that I
subtract off of my command,

00:11:15.470 --> 00:11:17.020 align:middle line:84%
and I'm going to do
that every cycle.

00:11:17.020 --> 00:11:20.550 align:middle line:90%


00:11:20.550 --> 00:11:24.760 align:middle line:84%
So that's T. Here's
2T and so forth.

00:11:24.760 --> 00:11:27.970 align:middle line:84%
So I'm going to do
this every cycle.

00:11:27.970 --> 00:11:31.870 align:middle line:90%
Now, here's my inductor current.

00:11:31.870 --> 00:11:35.500 align:middle line:90%
So I'm going to sense IL.

00:11:35.500 --> 00:11:39.982 align:middle line:84%
And what I'm going to do is at
the beginning of each cycle,

00:11:39.982 --> 00:11:41.440 align:middle line:84%
I'm going to turn
on-- this is IL--

00:11:41.440 --> 00:11:43.500 align:middle line:84%
I'm going to turn on
the inductor current.

00:11:43.500 --> 00:11:45.780 align:middle line:84%
I'm going to turn on
the switch, I'm sorry.

00:11:45.780 --> 00:11:47.190 align:middle line:84%
And the inductor
current is going

00:11:47.190 --> 00:11:49.630 align:middle line:90%
to rise with some slope M1.

00:11:49.630 --> 00:11:54.480 align:middle line:84%
So the beginning of
the cycle, I come--

00:11:54.480 --> 00:11:59.847 align:middle line:84%
q of t turns high,
inductor current ramps up.

00:11:59.847 --> 00:12:02.430 align:middle line:84%
And what I'm going to do is I'm
going to look at that inductor

00:12:02.430 --> 00:12:04.347 align:middle line:84%
current, and I'm going
to compare the inductor

00:12:04.347 --> 00:12:07.120 align:middle line:90%
current to Ip minus this slope.

00:12:07.120 --> 00:12:09.040 align:middle line:84%
I'm going to compare
it to this pink signal.

00:12:09.040 --> 00:12:16.815 align:middle line:84%
And when I hit here, when the
inductor current exceeds the I

00:12:16.815 --> 00:12:20.850 align:middle line:84%
peak minus this
compensating ramp slope,

00:12:20.850 --> 00:12:24.210 align:middle line:84%
I'm going to turn off the switch
and let the switch current fall

00:12:24.210 --> 00:12:26.130 align:middle line:90%
like this.

00:12:26.130 --> 00:12:30.450 align:middle line:90%
So this is, say, DT.

00:12:30.450 --> 00:12:32.580 align:middle line:84%
The switch turns on at the
beginning of the cycle.

00:12:32.580 --> 00:12:36.000 align:middle line:84%
But it turns off-- instead of me
setting a duty ratio explicitly,

00:12:36.000 --> 00:12:38.610 align:middle line:84%
I'm going to implicitly
determine the duty ratio based

00:12:38.610 --> 00:12:40.930 align:middle line:90%
on this peak current.

00:12:40.930 --> 00:12:44.590 align:middle line:84%
And then, beginning of the next
cycle, I do the same thing,

00:12:44.590 --> 00:12:49.400 align:middle line:84%
I turn the switch on,
it rises, it falls.

00:12:49.400 --> 00:12:52.340 align:middle line:84%
And I get the same kind
of general behavior.

00:12:52.340 --> 00:12:55.480 align:middle line:84%
It's just that
instead of saying turn

00:12:55.480 --> 00:12:58.450 align:middle line:84%
the do switch off
after some time, DT,

00:12:58.450 --> 00:13:00.640 align:middle line:84%
I'm going to say turn it
off implicitly when it hits

00:13:00.640 --> 00:13:03.750 align:middle line:90%
some current that I command.

00:13:03.750 --> 00:13:05.045 align:middle line:90%
Any questions about that?

00:13:05.045 --> 00:13:13.330 align:middle line:90%


00:13:13.330 --> 00:13:15.010 align:middle line:90%
Why do I like that?

00:13:15.010 --> 00:13:17.110 align:middle line:84%
Well, one thing
we're going to see

00:13:17.110 --> 00:13:19.760 align:middle line:84%
is that we're going to get
better control dynamics.

00:13:19.760 --> 00:13:23.020 align:middle line:84%
And I should say, by the
way, this one, this slope,

00:13:23.020 --> 00:13:24.700 align:middle line:90%
is minus M2.

00:13:24.700 --> 00:13:28.060 align:middle line:84%
And why am I talking
about M1, M2, minus MC?

00:13:28.060 --> 00:13:29.950 align:middle line:84%
That's because this
same picture applies

00:13:29.950 --> 00:13:31.010 align:middle line:90%
to any kind of converter.

00:13:31.010 --> 00:13:37.930 align:middle line:84%
For the boost, M1 is just equal
to the input voltage over L,

00:13:37.930 --> 00:13:42.790 align:middle line:84%
and M2 is equal to the output
voltage minus the input

00:13:42.790 --> 00:13:45.152 align:middle line:84%
voltage over L. But I could
have drawn the same picture

00:13:45.152 --> 00:13:47.110 align:middle line:84%
if it were a buck converter
or the same picture

00:13:47.110 --> 00:13:50.970 align:middle line:90%
if it were some other converter.

00:13:50.970 --> 00:13:52.477 align:middle line:90%
So why am I doing this?

00:13:52.477 --> 00:13:53.560 align:middle line:90%
Well, a couple of reasons.

00:13:53.560 --> 00:13:55.810 align:middle line:84%
One, we're going to see it
gives us much nicer dynamics.

00:13:55.810 --> 00:13:56.310 align:middle line:90%
Why?

00:13:56.310 --> 00:13:59.310 align:middle line:84%
Because I'm basically
explicitly controlling

00:13:59.310 --> 00:14:00.625 align:middle line:90%
the inductor current.

00:14:00.625 --> 00:14:02.250 align:middle line:84%
And then the other
thing that's kind of

00:14:02.250 --> 00:14:08.900 align:middle line:84%
nice is if I did duty
ratio control, what

00:14:08.900 --> 00:14:10.150 align:middle line:90%
is the inductor current doing?

00:14:10.150 --> 00:14:10.692 align:middle line:90%
I don't know.

00:14:10.692 --> 00:14:12.520 align:middle line:84%
If I put a small
resistance on it,

00:14:12.520 --> 00:14:14.040 align:middle line:84%
it's just going to keep
cranking up the current

00:14:14.040 --> 00:14:15.207 align:middle line:90%
until it does what it wants.

00:14:15.207 --> 00:14:18.530 align:middle line:84%
Here, I'm telling the
switch to turn off

00:14:18.530 --> 00:14:20.040 align:middle line:90%
if the current gets too big.

00:14:20.040 --> 00:14:25.530 align:middle line:84%
So this gives me
automatic current control.

00:14:25.530 --> 00:14:27.630 align:middle line:84%
My currents can't
get out of control.

00:14:27.630 --> 00:14:29.820 align:middle line:84%
Now, in a boost converter,
that's not quite true

00:14:29.820 --> 00:14:31.770 align:middle line:84%
because if I put a
short circuit on this,

00:14:31.770 --> 00:14:35.160 align:middle line:84%
there's nothing I'm going to do
because the switch won't control

00:14:35.160 --> 00:14:36.040 align:middle line:90%
the inductor current.

00:14:36.040 --> 00:14:38.457 align:middle line:84%
But as long as the output
voltage is bigger than the input

00:14:38.457 --> 00:14:43.650 align:middle line:84%
voltage, by having this
peak current reference,

00:14:43.650 --> 00:14:47.040 align:middle line:84%
I can always limit the amount
of current the converter

00:14:47.040 --> 00:14:48.810 align:middle line:84%
is processing and
hence prevent it

00:14:48.810 --> 00:14:50.120 align:middle line:90%
from overheating, for example.

00:14:50.120 --> 00:14:53.720 align:middle line:90%


00:14:53.720 --> 00:14:59.570 align:middle line:84%
All right, so essentially,
this technique gives me

00:14:59.570 --> 00:15:03.700 align:middle line:84%
cycle-by-cycle current
control over the switch--

00:15:03.700 --> 00:15:04.790 align:middle line:90%
over the inductor current.

00:15:04.790 --> 00:15:07.960 align:middle line:84%
Now, I have to sense the
inductor current because I'm

00:15:07.960 --> 00:15:10.510 align:middle line:90%
controlling IL here.

00:15:10.510 --> 00:15:13.730 align:middle line:84%
Sometimes I do literally
sense the inductor current.

00:15:13.730 --> 00:15:17.890 align:middle line:84%
Sometimes, keep in mind, you're
only looking at the current

00:15:17.890 --> 00:15:19.270 align:middle line:90%
when the switch is on.

00:15:19.270 --> 00:15:22.570 align:middle line:84%
So sometimes people will come
and put a little resistor

00:15:22.570 --> 00:15:24.580 align:middle line:84%
right here or use
the switch resistance

00:15:24.580 --> 00:15:27.490 align:middle line:84%
itself and sense the
current in the switch.

00:15:27.490 --> 00:15:30.340 align:middle line:84%
It gives you the same thing
as far as this comparison

00:15:30.340 --> 00:15:32.210 align:middle line:90%
is concerned.

00:15:32.210 --> 00:15:34.345 align:middle line:90%
Any questions about that?

00:15:34.345 --> 00:15:36.950 align:middle line:90%


00:15:36.950 --> 00:15:38.040 align:middle line:90%
Yeah.

00:15:38.040 --> 00:15:40.590 align:middle line:84%
AUDIENCE: How would you
adjust the peak current level

00:15:40.590 --> 00:15:41.947 align:middle line:90%
if your load changes?

00:15:41.947 --> 00:15:43.780 align:middle line:84%
DAVID PERREAULT: Ah,
that's a good question.

00:15:43.780 --> 00:15:45.030 align:middle line:90%
So what's going to happen?

00:15:45.030 --> 00:15:47.550 align:middle line:84%
I'm going to do the
same kind of deal.

00:15:47.550 --> 00:15:49.980 align:middle line:90%
If the load voltage--

00:15:49.980 --> 00:15:51.970 align:middle line:84%
well, let me go back to
the right controller.

00:15:51.970 --> 00:15:54.850 align:middle line:90%


00:15:54.850 --> 00:15:57.370 align:middle line:84%
If the load voltage
is too low, too

00:15:57.370 --> 00:16:00.130 align:middle line:84%
low means below the
reference, the error voltage

00:16:00.130 --> 00:16:05.320 align:middle line:84%
gets bigger, this compensator,
this outer loop compensator

00:16:05.320 --> 00:16:06.040 align:middle line:90%
amplifies it.

00:16:06.040 --> 00:16:07.360 align:middle line:90%
Maybe it integrates the error.

00:16:07.360 --> 00:16:10.590 align:middle line:84%
It will make the peak
command get bigger.

00:16:10.590 --> 00:16:15.265 align:middle line:84%
If this peak command moves up,
so will the switching time.

00:16:15.265 --> 00:16:17.140 align:middle line:84%
And then the inductor
will have more current,

00:16:17.140 --> 00:16:19.182 align:middle line:84%
and eventually the inductor
will feed the output,

00:16:19.182 --> 00:16:21.730 align:middle line:84%
and it will bring the
output voltage up.

00:16:21.730 --> 00:16:25.720 align:middle line:84%
So the ultimate output
voltage is really controlled

00:16:25.720 --> 00:16:28.360 align:middle line:84%
by this, looking at the error
between the output voltage what

00:16:28.360 --> 00:16:30.130 align:middle line:84%
I wanted, just
like I did before.

00:16:30.130 --> 00:16:31.960 align:middle line:84%
I just have an
intermediate value

00:16:31.960 --> 00:16:34.600 align:middle line:84%
where it controls the current
at which the inductor is

00:16:34.600 --> 00:16:36.960 align:middle line:90%
going to run to get there.

00:16:36.960 --> 00:16:40.260 align:middle line:84%
And if you think about it,
the inductor current times,

00:16:40.260 --> 00:16:43.140 align:middle line:84%
the input voltage is
the power I'm drawing.

00:16:43.140 --> 00:16:46.812 align:middle line:84%
So it's in some indirect way
controlling the amount of power

00:16:46.812 --> 00:16:48.395 align:middle line:84%
that I'm going to
draw from the input.

00:16:48.395 --> 00:16:51.840 align:middle line:90%


00:16:51.840 --> 00:16:56.340 align:middle line:84%
All right, so one thing it gives
us is a cycle-by-cycle current

00:16:56.340 --> 00:16:56.920 align:middle line:90%
limiting.

00:16:56.920 --> 00:16:59.820 align:middle line:84%
The other thing it's going to
give us is better dynamics.

00:16:59.820 --> 00:17:02.010 align:middle line:84%
The question is,
how do we analyze

00:17:02.010 --> 00:17:03.310 align:middle line:90%
the dynamics of this thing?

00:17:03.310 --> 00:17:04.510 align:middle line:90%
What did I do before?

00:17:04.510 --> 00:17:06.260 align:middle line:84%
The thing I did before
was we started--

00:17:06.260 --> 00:17:09.900 align:middle line:84%
we averaged the average circuit,
either the circuit or the state

00:17:09.900 --> 00:17:11.960 align:middle line:84%
space model, and
came up with a duty--

00:17:11.960 --> 00:17:14.069 align:middle line:84%
and then we linearized
it, and we came up

00:17:14.069 --> 00:17:17.040 align:middle line:84%
with a conversion
between the duty ratio

00:17:17.040 --> 00:17:20.130 align:middle line:84%
and the local average inductor
current and local average output

00:17:20.130 --> 00:17:21.440 align:middle line:90%
voltage.

00:17:21.440 --> 00:17:25.170 align:middle line:84%
And we could try to do
that for this scheme.

00:17:25.170 --> 00:17:27.630 align:middle line:84%
It's a little bit
complicated, and it turns out

00:17:27.630 --> 00:17:29.620 align:middle line:84%
it's mathematically
very difficult.

00:17:29.620 --> 00:17:31.950 align:middle line:84%
You kind of walk
into a wall of math

00:17:31.950 --> 00:17:34.500 align:middle line:84%
if you try to play
this game directly.

00:17:34.500 --> 00:17:38.360 align:middle line:84%
But there are clever
ways to get around it.

00:17:38.360 --> 00:17:44.360 align:middle line:84%
I've already got a model
for how duty ratio relates

00:17:44.360 --> 00:17:47.010 align:middle line:84%
to the local averages
of the output voltages

00:17:47.010 --> 00:17:49.890 align:middle line:84%
and the local average
of the inductor current.

00:17:49.890 --> 00:17:53.630 align:middle line:84%
If I can relate the peak
current to the duty ratio,

00:17:53.630 --> 00:17:55.280 align:middle line:90%
then I'm kind of in business.

00:17:55.280 --> 00:17:58.610 align:middle line:84%
I can just kind of swap it
out and create a new model.

00:17:58.610 --> 00:17:59.860 align:middle line:90%
And that's what people do.

00:17:59.860 --> 00:18:03.410 align:middle line:84%
It's much more simple, or
it's more or less the only way

00:18:03.410 --> 00:18:06.900 align:middle line:84%
to go about it that I know
of that works out nicely.

00:18:06.900 --> 00:18:09.080 align:middle line:90%
And so here's the idea.

00:18:09.080 --> 00:18:13.700 align:middle line:84%
This picture I drew is actually
a periodic steady state picture.

00:18:13.700 --> 00:18:15.710 align:middle line:90%
I used capital D here.

00:18:15.710 --> 00:18:21.050 align:middle line:84%
I'm assuming it does
something every cycle, DT.

00:18:21.050 --> 00:18:24.650 align:middle line:84%
Let's just draw a
slightly better picture

00:18:24.650 --> 00:18:27.380 align:middle line:90%
for purposes of analysis.

00:18:27.380 --> 00:18:29.040 align:middle line:90%
OK, so here we go.

00:18:29.040 --> 00:18:31.700 align:middle line:90%


00:18:31.700 --> 00:18:32.870 align:middle line:90%
Here's my waveform.

00:18:32.870 --> 00:18:38.510 align:middle line:90%
Here's my peak current, I peak.

00:18:38.510 --> 00:18:44.600 align:middle line:84%
And then I have my so-called
compensating ramp, which

00:18:44.600 --> 00:18:46.760 align:middle line:90%
falls with some slope minus Mc.

00:18:46.760 --> 00:18:52.080 align:middle line:90%


00:18:52.080 --> 00:18:54.760 align:middle line:84%
And now I have my
inductor current.

00:18:54.760 --> 00:18:57.070 align:middle line:84%
Let's suppose the inductor
current starts here.

00:18:57.070 --> 00:19:06.120 align:middle line:84%
It rises up with slope M1, hits
the intersection, that's DT.

00:19:06.120 --> 00:19:10.950 align:middle line:84%
And then it falls with
some slope M2 or minus M2.

00:19:10.950 --> 00:19:15.010 align:middle line:84%
But I'm actually treating
this thing dynamically.

00:19:15.010 --> 00:19:16.980 align:middle line:84%
I'm not necessarily
saying this end point is

00:19:16.980 --> 00:19:19.420 align:middle line:90%
the same as the starting point.

00:19:19.420 --> 00:19:25.005 align:middle line:84%
So this is a dynamic picture
of what happens over one cycle.

00:19:25.005 --> 00:19:27.670 align:middle line:90%


00:19:27.670 --> 00:19:31.630 align:middle line:84%
And what I want to do is
I want to relate somehow

00:19:31.630 --> 00:19:37.150 align:middle line:84%
this duty ratio in this cycle
to what the local average

00:19:37.150 --> 00:19:38.625 align:middle line:90%
of the inductor current is.

00:19:38.625 --> 00:19:42.510 align:middle line:90%


00:19:42.510 --> 00:19:44.522 align:middle line:84%
And I'm not going to do
that by local averaging.

00:19:44.522 --> 00:19:46.230 align:middle line:84%
What I'm going to do
is I'm going to make

00:19:46.230 --> 00:19:48.930 align:middle line:90%
a geometric approximation.

00:19:48.930 --> 00:19:53.340 align:middle line:84%
I'm going to say, OK, let
me look over this window

00:19:53.340 --> 00:19:57.270 align:middle line:84%
and say the average of this
waveform, which is basically

00:19:57.270 --> 00:20:03.600 align:middle line:84%
the average here, the
average of this current

00:20:03.600 --> 00:20:07.710 align:middle line:90%
is the local average.

00:20:07.710 --> 00:20:14.640 align:middle line:84%
So I'm saying IL of
t is approximately

00:20:14.640 --> 00:20:21.450 align:middle line:84%
equal to the average
of IL over this window.

00:20:21.450 --> 00:20:27.060 align:middle line:84%
Strictly speaking, this is
equal to IL of capital T,

00:20:27.060 --> 00:20:31.320 align:middle line:84%
if this is time T. And it's
not quite the same thing

00:20:31.320 --> 00:20:33.750 align:middle line:84%
anywhere else, but
it turns out it's

00:20:33.750 --> 00:20:37.600 align:middle line:84%
pretty-- it's not a bad
geometric approximation.

00:20:37.600 --> 00:20:44.820 align:middle line:84%
Now, if I wanted to be really
theoretically pure about this,

00:20:44.820 --> 00:20:48.030 align:middle line:84%
I might actually-- instead
of looking over this window,

00:20:48.030 --> 00:20:53.100 align:middle line:84%
which is centered at 0.5T, I
might look at a window centered

00:20:53.100 --> 00:20:56.850 align:middle line:84%
at dT and look around here and
it extend into the different

00:20:56.850 --> 00:20:57.880 align:middle line:90%
switching cycles.

00:20:57.880 --> 00:21:00.030 align:middle line:84%
But it turns out for
practical purposes,

00:21:00.030 --> 00:21:02.080 align:middle line:84%
you really more or
less get the same--

00:21:02.080 --> 00:21:04.360 align:middle line:84%
for most cases, you more
or less get the same thing.

00:21:04.360 --> 00:21:06.930 align:middle line:84%
So the approximation
I'm going to make

00:21:06.930 --> 00:21:10.650 align:middle line:84%
is good enough given all
the other approximations

00:21:10.650 --> 00:21:11.540 align:middle line:90%
in the system.

00:21:11.540 --> 00:21:14.460 align:middle line:84%
So I'm just going to
average it over this window.

00:21:14.460 --> 00:21:17.610 align:middle line:84%
But do people see what the
basic idea I'm going to use?

00:21:17.610 --> 00:21:23.610 align:middle line:84%
I'm going to approximate IL bar
as the average of this waveform.

00:21:23.610 --> 00:21:26.883 align:middle line:84%
And then that's a function of
the duty ratio in that cycle.

00:21:26.883 --> 00:21:29.550 align:middle line:84%
And then I'm going to swap that
into my local average duty ratio

00:21:29.550 --> 00:21:31.640 align:middle line:90%
equation.

00:21:31.640 --> 00:21:33.390 align:middle line:84%
Actually, I'm going
to linearize it first,

00:21:33.390 --> 00:21:34.807 align:middle line:84%
but that's neither
here nor there.

00:21:34.807 --> 00:21:35.800 align:middle line:90%
So let's do that.

00:21:35.800 --> 00:21:41.850 align:middle line:84%
What is my
approximation to IL bar?

00:21:41.850 --> 00:21:44.370 align:middle line:90%
Well, let's see.

00:21:44.370 --> 00:21:54.180 align:middle line:84%
The peak of this waveform
here is I peak minus Mc dT.

00:21:54.180 --> 00:21:58.650 align:middle line:90%
That would be, if I wanted--

00:21:58.650 --> 00:22:03.870 align:middle line:84%
if I just use this value,
that would be basically

00:22:03.870 --> 00:22:06.930 align:middle line:90%
if the local--

00:22:06.930 --> 00:22:08.808 align:middle line:84%
if the waveform-- if
the orange waveform

00:22:08.808 --> 00:22:10.350 align:middle line:84%
looked like this
green waveform, that

00:22:10.350 --> 00:22:12.610 align:middle line:84%
would be exactly the local
average in the cycle.

00:22:12.610 --> 00:22:15.480 align:middle line:84%
But what I really
need to do is kind

00:22:15.480 --> 00:22:18.810 align:middle line:84%
of subtract off the
average of this area

00:22:18.810 --> 00:22:20.290 align:middle line:90%
and the average of this area.

00:22:20.290 --> 00:22:24.060 align:middle line:84%
And then I'll have
the average underneath

00:22:24.060 --> 00:22:26.430 align:middle line:90%
the inductor current curve.

00:22:26.430 --> 00:22:28.740 align:middle line:84%
So if I do that, then
I'm going to get,

00:22:28.740 --> 00:22:35.310 align:middle line:84%
OK, I've got to subtract off
the area of this triangle here.

00:22:35.310 --> 00:22:39.510 align:middle line:84%
So that would be
minus 1/2 the base,

00:22:39.510 --> 00:22:45.833 align:middle line:84%
which is dT times the
height, which is dT times M1.

00:22:45.833 --> 00:22:51.220 align:middle line:90%


00:22:51.220 --> 00:22:54.420 align:middle line:84%
And likewise-- and by the
way, I better divide that by T

00:22:54.420 --> 00:22:55.710 align:middle line:90%
because I'm taking an average.

00:22:55.710 --> 00:22:56.760 align:middle line:90%
So this is 1 over 2T.

00:22:56.760 --> 00:23:00.030 align:middle line:90%


00:23:00.030 --> 00:23:04.740 align:middle line:84%
And I better subtract off the
area of this triangle divided

00:23:04.740 --> 00:23:10.131 align:middle line:84%
by capital T. So this
would be minus 1 over 2T,

00:23:10.131 --> 00:23:16.450 align:middle line:84%
1 minus d quantity
squared T squared M2.

00:23:16.450 --> 00:23:23.050 align:middle line:84%
So if I rewrite that, IL bar is
approximately equal to I peak

00:23:23.050 --> 00:23:37.120 align:middle line:84%
minus Mc dT minus 1/2 d squared
TM1 minus 1/2 1 minus d squared

00:23:37.120 --> 00:23:39.670 align:middle line:90%
TM2.

00:23:39.670 --> 00:23:42.655 align:middle line:84%
And this is the substitution
I'm going to make.

00:23:42.655 --> 00:23:46.190 align:middle line:90%


00:23:46.190 --> 00:23:49.390 align:middle line:84%
Or it's the basis of the
substitution I'm going to make.

00:23:49.390 --> 00:23:52.760 align:middle line:90%
Any questions about that?

00:23:52.760 --> 00:23:56.120 align:middle line:84%
So I've got a geometric
approximation relating

00:23:56.120 --> 00:24:00.260 align:middle line:84%
the duty ratio in the cycle,
the peak current in the cycle,

00:24:00.260 --> 00:24:03.250 align:middle line:84%
and the local
average in the cycle.

00:24:03.250 --> 00:24:05.410 align:middle line:90%
So let me linearize this.

00:24:05.410 --> 00:24:10.102 align:middle line:90%


00:24:10.102 --> 00:24:11.810 align:middle line:84%
I'm going to linearize
this because we're

00:24:11.810 --> 00:24:14.300 align:middle line:84%
going to substitute it into
our linearized equations,

00:24:14.300 --> 00:24:20.210 align:middle line:84%
and I'm going to
solve for d tilde.

00:24:20.210 --> 00:24:28.851 align:middle line:84%
And if I do that, the
result you get is--

00:24:28.851 --> 00:24:31.640 align:middle line:84%
oh, and then the last
thing I guess I should do

00:24:31.640 --> 00:24:37.790 align:middle line:84%
is let me substitute
in, in this case, u--

00:24:37.790 --> 00:24:41.750 align:middle line:84%
I'm sorry, M1 is
equal to u over L.

00:24:41.750 --> 00:24:46.640 align:middle line:84%
And M2 is equal to
V minus u over L.

00:24:46.640 --> 00:24:48.690 align:middle line:84%
And if I make that
substitution, I do it,

00:24:48.690 --> 00:24:52.620 align:middle line:84%
what I get for my boost
converter is d tilde is equal

00:24:52.620 --> 00:25:04.710 align:middle line:84%
to 1 over McT I peak tilde minus
IL tilde minus D squared minus D

00:25:04.710 --> 00:25:18.220 align:middle line:84%
prime squared over 2LMC, u tilde
minus d prime squared over 2LMC,

00:25:18.220 --> 00:25:20.410 align:middle line:90%
V tilde.

00:25:20.410 --> 00:25:26.530 align:middle line:84%
So this is a linearized version
of this guy for the boost

00:25:26.530 --> 00:25:27.550 align:middle line:90%
converter.

00:25:27.550 --> 00:25:30.070 align:middle line:84%
If you wanted to do a
buck boost converter,

00:25:30.070 --> 00:25:32.510 align:middle line:84%
you'd need different
expressions for M1 and M2,

00:25:32.510 --> 00:25:34.760 align:middle line:84%
and you'd do the same process,
and you'd linearize it.

00:25:34.760 --> 00:25:36.690 align:middle line:84%
You'd get a
different expression.

00:25:36.690 --> 00:25:38.570 align:middle line:90%
Any questions about that?

00:25:38.570 --> 00:25:41.870 align:middle line:90%


00:25:41.870 --> 00:25:44.990 align:middle line:84%
OK, so what's the
point of doing this?

00:25:44.990 --> 00:25:48.230 align:middle line:84%
The point of doing
this is I can now

00:25:48.230 --> 00:25:52.910 align:middle line:84%
substitute in for d tilde
in my existing equations.

00:25:52.910 --> 00:25:55.220 align:middle line:84%
And remember, d tilde
was my control variable

00:25:55.220 --> 00:25:58.590 align:middle line:84%
in all my existing state space
averaged linearized equations.

00:25:58.590 --> 00:26:03.940 align:middle line:84%
If I substituted for d
tilde, I get rid of d tilde.

00:26:03.940 --> 00:26:07.090 align:middle line:84%
And all this other
stuff is already

00:26:07.090 --> 00:26:09.855 align:middle line:84%
in the equations except
for I peak tilde.

00:26:09.855 --> 00:26:14.400 align:middle line:90%


00:26:14.400 --> 00:26:17.940 align:middle line:84%
Does that make
sense to everybody?

00:26:17.940 --> 00:26:23.010 align:middle line:84%
So I'm going to now get a new
set of linearized state space

00:26:23.010 --> 00:26:26.100 align:middle line:84%
equations, except instead of
detailed in the equations,

00:26:26.100 --> 00:26:28.510 align:middle line:84%
I'm going to have a
control variable Ip tilde.

00:26:28.510 --> 00:26:32.490 align:middle line:90%
That's what I needed here.

00:26:32.490 --> 00:26:37.700 align:middle line:84%
So basically, I can take
this out and swap it

00:26:37.700 --> 00:26:50.460 align:middle line:84%
for an H2 of S that's basically
equal to V tilde over I

00:26:50.460 --> 00:26:50.990 align:middle line:90%
peak tilde.

00:26:50.990 --> 00:26:55.950 align:middle line:90%


00:26:55.950 --> 00:27:00.040 align:middle line:84%
So I basically got my
whole inner loop going.

00:27:00.040 --> 00:27:03.460 align:middle line:84%
And now if I have Ip
tilde and V tilde,

00:27:03.460 --> 00:27:05.625 align:middle line:84%
I can now giant
design my outer loop.

00:27:05.625 --> 00:27:08.770 align:middle line:90%


00:27:08.770 --> 00:27:10.960 align:middle line:84%
What was the point of
doing this substitution

00:27:10.960 --> 00:27:12.770 align:middle line:90%
and getting my new H2 of S?

00:27:12.770 --> 00:27:17.540 align:middle line:84%
If I look at H2 of S, I look
at that transfer function,

00:27:17.540 --> 00:27:19.810 align:middle line:90%
what am I going to find?

00:27:19.810 --> 00:27:23.230 align:middle line:84%
I'm still going to find
the right-half-plane zero.

00:27:23.230 --> 00:27:24.470 align:middle line:90%
I can't get rid of that.

00:27:24.470 --> 00:27:28.420 align:middle line:84%
That's related to how
the converter behaves.

00:27:28.420 --> 00:27:33.730 align:middle line:84%
If I step I peak tilde,
I'm still going to see--

00:27:33.730 --> 00:27:36.970 align:middle line:84%
I'm still going to see funny
behavior in the output voltage

00:27:36.970 --> 00:27:38.460 align:middle line:84%
before the output
voltage response.

00:27:38.460 --> 00:27:40.640 align:middle line:84%
And my right-half-plane
zero doesn't go away.

00:27:40.640 --> 00:27:43.720 align:middle line:84%
The beautiful thing
is, however, what

00:27:43.720 --> 00:27:48.280 align:middle line:84%
I will tend to see is instead of
two really lightly damped poles,

00:27:48.280 --> 00:27:51.865 align:middle line:84%
I'll tend to see a dominant pole
and then a much higher frequency

00:27:51.865 --> 00:27:52.365 align:middle line:90%
pole.

00:27:52.365 --> 00:27:56.020 align:middle line:90%


00:27:56.020 --> 00:27:57.080 align:middle line:90%
Why?

00:27:57.080 --> 00:27:59.050 align:middle line:84%
Because essentially
the way people

00:27:59.050 --> 00:28:03.040 align:middle line:84%
like to think of it is this
inner loop is making the current

00:28:03.040 --> 00:28:04.830 align:middle line:90%
do what you want.

00:28:04.830 --> 00:28:08.040 align:middle line:84%
And hence, the dominant
pole is more or less

00:28:08.040 --> 00:28:10.920 align:middle line:84%
governed by how the
current from that inductor

00:28:10.920 --> 00:28:13.800 align:middle line:84%
feeds into the output capacitor
and charges up and down

00:28:13.800 --> 00:28:17.080 align:middle line:90%
the output capacitor.

00:28:17.080 --> 00:28:20.210 align:middle line:84%
So it's not that I have
a first-order system.

00:28:20.210 --> 00:28:21.440 align:middle line:90%
There is a second pole here.

00:28:21.440 --> 00:28:26.030 align:middle line:84%
It's just dominated by
this low frequency pole.

00:28:26.030 --> 00:28:29.510 align:middle line:84%
And that's a much
easier thing to control.

00:28:29.510 --> 00:28:31.815 align:middle line:90%
Any questions about that?

00:28:31.815 --> 00:28:34.330 align:middle line:90%


00:28:34.330 --> 00:28:37.708 align:middle line:84%
So right now we can
go design GC of S.

00:28:37.708 --> 00:28:39.250 align:middle line:84%
I still have a
right-half-plane zero,

00:28:39.250 --> 00:28:41.080 align:middle line:84%
but it's a much easier
plan to compensate,

00:28:41.080 --> 00:28:45.040 align:middle line:84%
and I can put my dynamics much
more nicely than I could before.

00:28:45.040 --> 00:28:48.580 align:middle line:84%
And I get free current
limiting in the process.

00:28:48.580 --> 00:28:54.760 align:middle line:84%
And in fact, if you're designing
most kinds of PWM-DC converters,

00:28:54.760 --> 00:28:56.560 align:middle line:84%
most of the control
chips on the market

00:28:56.560 --> 00:28:58.940 align:middle line:84%
are going to use
current mode control.

00:28:58.940 --> 00:29:01.000 align:middle line:84%
This version that
I'm showing you

00:29:01.000 --> 00:29:02.980 align:middle line:84%
is called peak
current mode control

00:29:02.980 --> 00:29:06.310 align:middle line:84%
because you're controlling the
peak of the inductor current.

00:29:06.310 --> 00:29:08.120 align:middle line:90%
And that's the most common kind.

00:29:08.120 --> 00:29:09.640 align:middle line:90%
There's also valley control.

00:29:09.640 --> 00:29:13.060 align:middle line:84%
And there's a few different
versions of this general idea,

00:29:13.060 --> 00:29:14.745 align:middle line:84%
but this is the
most popular one.

00:29:14.745 --> 00:29:21.082 align:middle line:90%


00:29:21.082 --> 00:29:22.710 align:middle line:90%
So that's one trick.

00:29:22.710 --> 00:29:23.980 align:middle line:90%
Any questions up to now?

00:29:23.980 --> 00:29:26.650 align:middle line:90%


00:29:26.650 --> 00:29:32.350 align:middle line:84%
AUDIENCE: Is there an easy way
to understand why [INAUDIBLE]?

00:29:32.350 --> 00:29:34.940 align:middle line:84%
DAVID PERREAULT:
Excellent question.

00:29:34.940 --> 00:29:36.740 align:middle line:90%
I'll cover that one next.

00:29:36.740 --> 00:29:38.280 align:middle line:90%
Any other questions?

00:29:38.280 --> 00:29:41.786 align:middle line:90%


00:29:41.786 --> 00:29:49.240 align:middle line:84%
OK, yeah, why did I even bother
with this ramping MC signal?

00:29:49.240 --> 00:29:51.250 align:middle line:90%
Why not just use I peak?

00:29:51.250 --> 00:29:55.030 align:middle line:90%
And in some cases, you can.

00:29:55.030 --> 00:29:58.005 align:middle line:84%
But here's the problem
with doing that.

00:29:58.005 --> 00:30:02.252 align:middle line:90%


00:30:02.252 --> 00:30:06.250 align:middle line:84%
In some cases, if I do
that, this is the situation

00:30:06.250 --> 00:30:08.080 align:middle line:90%
I can find myself in.

00:30:08.080 --> 00:30:11.890 align:middle line:84%
I'm going along, and
suppose I just have I peak,

00:30:11.890 --> 00:30:16.120 align:middle line:84%
and I get rid of the
compensating ramp.

00:30:16.120 --> 00:30:18.100 align:middle line:84%
So I'm at the
beginning of my cycle.

00:30:18.100 --> 00:30:19.640 align:middle line:90%
And here's my inductor current.

00:30:19.640 --> 00:30:23.650 align:middle line:84%
I turn on my switch, I
go up, and I hit the top.

00:30:23.650 --> 00:30:27.620 align:middle line:84%
And I trip, so this is my
duty ratio in this cycle.

00:30:27.620 --> 00:30:28.720 align:middle line:90%
And I turn off.

00:30:28.720 --> 00:30:32.290 align:middle line:84%
And then I turn off till
the end of the cycle.

00:30:32.290 --> 00:30:33.770 align:middle line:90%
And here's the end of the cycle.

00:30:33.770 --> 00:30:36.340 align:middle line:84%
Here's capital T. And now I
turn on my inductor current on,

00:30:36.340 --> 00:30:39.190 align:middle line:90%
and he ramps up.

00:30:39.190 --> 00:30:40.180 align:middle line:90%
He hits here.

00:30:40.180 --> 00:30:41.960 align:middle line:84%
Here's my duty
ratio in this cycle.

00:30:41.960 --> 00:30:46.310 align:middle line:84%
And then he turns off, and I
hit the end of the cycle, 2T.

00:30:46.310 --> 00:30:49.990 align:middle line:84%
And you can see that
I don't settle down

00:30:49.990 --> 00:30:52.510 align:middle line:84%
into periodic steady state
operation at the switching

00:30:52.510 --> 00:30:54.070 align:middle line:90%
period.

00:30:54.070 --> 00:30:57.930 align:middle line:84%
In this example, it
repeats every other cycle.

00:30:57.930 --> 00:31:00.661 align:middle line:90%


00:31:00.661 --> 00:31:03.470 align:middle line:84%
In some examples, it
won't settle down at all.

00:31:03.470 --> 00:31:05.530 align:middle line:84%
It'll just bungle
around chaotically.

00:31:05.530 --> 00:31:08.440 align:middle line:90%
I mean, literally chaotically.

00:31:08.440 --> 00:31:09.980 align:middle line:90%
Now, is that a problem?

00:31:09.980 --> 00:31:13.035 align:middle line:84%
Well, I mean, at the
highest order, it's not.

00:31:13.035 --> 00:31:14.660 align:middle line:84%
I'm still controlling
the peak current.

00:31:14.660 --> 00:31:17.440 align:middle line:84%
My output loop will still
regulate and everything,

00:31:17.440 --> 00:31:19.940 align:middle line:84%
but it is problematic
from other perspectives.

00:31:19.940 --> 00:31:25.060 align:middle line:84%
One perspective is my ripple
in this case is a heck of a lot

00:31:25.060 --> 00:31:30.040 align:middle line:84%
bigger than if I were at some
fixed intermediate duty ratio.

00:31:30.040 --> 00:31:33.030 align:middle line:90%
So I get much bigger ripple.

00:31:33.030 --> 00:31:35.790 align:middle line:84%
The control is jittery because
it's bouncing around depending

00:31:35.790 --> 00:31:38.940 align:middle line:90%
upon the operating condition.

00:31:38.940 --> 00:31:42.450 align:middle line:84%
I have lower frequency
content in my output.

00:31:42.450 --> 00:31:44.580 align:middle line:84%
It's bigger ripple, and
it's lower frequencies

00:31:44.580 --> 00:31:46.210 align:middle line:90%
that can make a mess of things.

00:31:46.210 --> 00:31:49.390 align:middle line:84%
So people don't
like this behavior.

00:31:49.390 --> 00:31:52.850 align:middle line:84%
This is sometimes called
subharmonic oscillation.

00:31:52.850 --> 00:31:59.580 align:middle line:84%
Well, this behavior where
it's rippling at a subharmonic

00:31:59.580 --> 00:32:01.210 align:middle line:84%
is called a subharmonic
oscillation.

00:32:01.210 --> 00:32:02.370 align:middle line:84%
But as I mentioned,
in some cases,

00:32:02.370 --> 00:32:03.495 align:middle line:90%
it can actually be chaotic.

00:32:03.495 --> 00:32:06.120 align:middle line:90%


00:32:06.120 --> 00:32:09.080 align:middle line:84%
Generally, this issue is
called the ripple instability.

00:32:09.080 --> 00:32:11.610 align:middle line:84%
This ripple doesn't settle
down into periodic steady state

00:32:11.610 --> 00:32:12.930 align:middle line:90%
behavior.

00:32:12.930 --> 00:32:17.790 align:middle line:84%
And what people figured out--
and the first paper I knew about

00:32:17.790 --> 00:32:21.360 align:middle line:84%
this was out of the
Caltech group in the late

00:32:21.360 --> 00:32:23.550 align:middle line:84%
'70s, but other people
thought of it too--

00:32:23.550 --> 00:32:27.330 align:middle line:84%
was to stick this compensating
ramp in, which if you put enough

00:32:27.330 --> 00:32:29.520 align:middle line:84%
compensating ramp in makes
that behavior go away,

00:32:29.520 --> 00:32:31.470 align:middle line:84%
and it'll settle down
just like this case,

00:32:31.470 --> 00:32:34.920 align:middle line:90%
to a kind of a fixed ripple.

00:32:34.920 --> 00:32:37.046 align:middle line:90%
OK.

00:32:37.046 --> 00:32:40.950 align:middle line:84%
AUDIENCE: Did we cover
how the MC is calculated?

00:32:40.950 --> 00:32:44.430 align:middle line:84%
DAVID PERREAULT: No, but I
will in about 30 seconds.

00:32:44.430 --> 00:32:47.640 align:middle line:90%
Excellent question.

00:32:47.640 --> 00:32:51.030 align:middle line:84%
By the way, you might say,
why did they think to do this?

00:32:51.030 --> 00:32:52.410 align:middle line:90%
Well, A, they were clever.

00:32:52.410 --> 00:32:55.620 align:middle line:84%
But B, think about it--
in most power converters,

00:32:55.620 --> 00:33:01.012 align:middle line:84%
you have a ramp generator
to set your clock frequency.

00:33:01.012 --> 00:33:02.470 align:middle line:84%
That's how you get
your oscillator.

00:33:02.470 --> 00:33:03.880 align:middle line:84%
I'm going to turn
on every cycle.

00:33:03.880 --> 00:33:05.440 align:middle line:90%
How do I know what that is?

00:33:05.440 --> 00:33:07.380 align:middle line:84%
I generate a ramp that
it hits the threshold,

00:33:07.380 --> 00:33:09.540 align:middle line:90%
and that sets my clock period.

00:33:09.540 --> 00:33:11.440 align:middle line:84%
So they had this ramp
signal sticking around.

00:33:11.440 --> 00:33:13.815 align:middle line:84%
So they just basically took
a little section of that ramp

00:33:13.815 --> 00:33:16.350 align:middle line:84%
signal and added or
subtracted it from I peak,

00:33:16.350 --> 00:33:19.290 align:middle line:84%
and they found that
fixed their problem.

00:33:19.290 --> 00:33:22.680 align:middle line:84%
So that's how they got
to the idea, I think.

00:33:22.680 --> 00:33:23.845 align:middle line:90%
Or that's why it's--

00:33:23.845 --> 00:33:25.720 align:middle line:84%
I shouldn't say that's
how they got the idea.

00:33:25.720 --> 00:33:27.780 align:middle line:84%
That's why it's a
natural trick to play

00:33:27.780 --> 00:33:32.040 align:middle line:84%
because you have the signal
around at your disposal.

00:33:32.040 --> 00:33:35.220 align:middle line:84%
But the question
is, how big do I

00:33:35.220 --> 00:33:37.890 align:middle line:84%
have to make this MC to
get this behavior instead

00:33:37.890 --> 00:33:39.360 align:middle line:90%
of this behavior?

00:33:39.360 --> 00:33:43.836 align:middle line:90%
And let's analyze that.

00:33:43.836 --> 00:33:45.195 align:middle line:90%
So let me take--

00:33:45.195 --> 00:33:48.420 align:middle line:90%


00:33:48.420 --> 00:33:52.080 align:middle line:84%
let me analyze-- let me
first start and say, OK,

00:33:52.080 --> 00:33:55.190 align:middle line:84%
what would my periodic
steady state behavior be?

00:33:55.190 --> 00:33:56.360 align:middle line:90%
Here is I peak.

00:33:56.360 --> 00:34:00.210 align:middle line:90%


00:34:00.210 --> 00:34:04.590 align:middle line:90%
Here is my compensating ramp.

00:34:04.590 --> 00:34:07.390 align:middle line:90%
Here's period T.

00:34:07.390 --> 00:34:09.724 align:middle line:84%
So if my compensating
ramp looks like this--

00:34:09.724 --> 00:34:12.290 align:middle line:90%


00:34:12.290 --> 00:34:15.590 align:middle line:90%
this is a slope minus MC--

00:34:15.590 --> 00:34:18.710 align:middle line:84%
maybe I could say my
periodic steady state

00:34:18.710 --> 00:34:20.670 align:middle line:90%
behavior looks like this.

00:34:20.670 --> 00:34:24.110 align:middle line:90%
I start off somewhere.

00:34:24.110 --> 00:34:29.739 align:middle line:90%
I ramp up with slope M1.

00:34:29.739 --> 00:34:34.000 align:middle line:84%
Then I ramp down
with slope minus M2.

00:34:34.000 --> 00:34:37.489 align:middle line:90%


00:34:37.489 --> 00:34:39.610 align:middle line:84%
And I end up exactly
where I started

00:34:39.610 --> 00:34:40.860 align:middle line:90%
at the beginning of the cycle.

00:34:40.860 --> 00:34:43.280 align:middle line:84%
This is periodic
steady state behavior.

00:34:43.280 --> 00:34:46.639 align:middle line:84%
So this is what I'm
going to call DT.

00:34:46.639 --> 00:34:48.889 align:middle line:84%
This is the behavior--
this yellow waveform is

00:34:48.889 --> 00:34:52.510 align:middle line:90%
the behavior I'm looking for.

00:34:52.510 --> 00:34:57.970 align:middle line:84%
Let's suppose my inductor at the
beginning of this cycle started

00:34:57.970 --> 00:34:59.300 align:middle line:90%
off a little bit high.

00:34:59.300 --> 00:35:02.200 align:middle line:90%
So suppose he started off here.

00:35:02.200 --> 00:35:04.540 align:middle line:84%
He has some error,
some deviation

00:35:04.540 --> 00:35:07.905 align:middle line:84%
from periodic steady state that
I'm going to call delta I sub n.

00:35:07.905 --> 00:35:09.280 align:middle line:84%
So at the beginning
of the cycle,

00:35:09.280 --> 00:35:12.490 align:middle line:90%
he starts off a little bit high.

00:35:12.490 --> 00:35:14.560 align:middle line:90%
What would happen?

00:35:14.560 --> 00:35:16.690 align:middle line:84%
Well, he would ramp
up at the same slope

00:35:16.690 --> 00:35:20.140 align:middle line:84%
because the output
voltage is the same.

00:35:20.140 --> 00:35:21.930 align:middle line:90%
So this would still be M1.

00:35:21.930 --> 00:35:27.150 align:middle line:84%
He would hit the trip
point here at something

00:35:27.150 --> 00:35:31.100 align:middle line:84%
I'll call d star T. It's
not the steady state value.

00:35:31.100 --> 00:35:41.800 align:middle line:84%
And then he would fall
at minus M2, like this.

00:35:41.800 --> 00:35:44.993 align:middle line:84%
And then he would end
up with some error

00:35:44.993 --> 00:35:47.410 align:middle line:84%
at the end of the cycle or the
beginning of the next cycle

00:35:47.410 --> 00:35:52.130 align:middle line:90%
that I'll call delta I n plus 1.

00:35:52.130 --> 00:35:54.720 align:middle line:84%
So if he starts off here,
he's going to end off here.

00:35:54.720 --> 00:35:57.380 align:middle line:84%
And I have a different error
from periodic steady state

00:35:57.380 --> 00:35:59.140 align:middle line:84%
at the beginning
of the next cycle.

00:35:59.140 --> 00:36:01.620 align:middle line:90%
Does that make sense?

00:36:01.620 --> 00:36:06.420 align:middle line:84%
So let's see if we can
quantify what that looks like.

00:36:06.420 --> 00:36:11.040 align:middle line:84%
And again, this was done by this
group, this Middlebrook group.

00:36:11.040 --> 00:36:13.080 align:middle line:84%
And by the way, it's
in a paper that we've

00:36:13.080 --> 00:36:15.330 align:middle line:90%
posted on Canvas for you.

00:36:15.330 --> 00:36:19.980 align:middle line:84%
And this behavior is also
described in a book chapter

00:36:19.980 --> 00:36:24.020 align:middle line:84%
that we've also posted
on Canvas for you.

00:36:24.020 --> 00:36:25.520 align:middle line:90%
Here's the idea.

00:36:25.520 --> 00:36:30.170 align:middle line:84%
Let's quantify what
delta I sub n is.

00:36:30.170 --> 00:36:36.830 align:middle line:84%
I could write delta I sub n in
terms of this time difference, D

00:36:36.830 --> 00:36:44.930 align:middle line:84%
minus d star T
times, let's see--

00:36:44.930 --> 00:36:50.660 align:middle line:84%
I go D minus d star
T. I go up slope M1

00:36:50.660 --> 00:36:54.170 align:middle line:84%
and then backwards,
so up slope MC.

00:36:54.170 --> 00:36:59.540 align:middle line:84%
So this is going to be D1
times d1 times is M1 plus MC.

00:36:59.540 --> 00:37:06.850 align:middle line:84%
So I could write this delta
In because these waveforms are

00:37:06.850 --> 00:37:13.900 align:middle line:84%
parallel in terms of M1 plus
MC times d minus d star T. Does

00:37:13.900 --> 00:37:17.160 align:middle line:90%
that make sense to everybody?

00:37:17.160 --> 00:37:23.970 align:middle line:84%
I could write this difference,
delta In plus 1 also

00:37:23.970 --> 00:37:28.030 align:middle line:90%
in terms of D minus d star t.

00:37:28.030 --> 00:37:28.530 align:middle line:90%
Why?

00:37:28.530 --> 00:37:31.870 align:middle line:84%
Because these two
lines are parallel.

00:37:31.870 --> 00:37:41.190 align:middle line:84%
And what I've really
got is this is M1--

00:37:41.190 --> 00:37:43.770 align:middle line:90%
oops, I'm sorry-- M1 plus MC.

00:37:43.770 --> 00:37:45.113 align:middle line:90%
I could write this--

00:37:45.113 --> 00:37:49.880 align:middle line:90%


00:37:49.880 --> 00:37:59.730 align:middle line:84%
I could write this in terms
of D minus d star T times MC

00:37:59.730 --> 00:38:00.600 align:middle line:90%
minus M2.

00:38:00.600 --> 00:38:08.060 align:middle line:90%


00:38:08.060 --> 00:38:10.590 align:middle line:84%
They're both related to
this time difference.

00:38:10.590 --> 00:38:15.340 align:middle line:84%
It's just I'm kind of running
up and down different slopes.

00:38:15.340 --> 00:38:18.410 align:middle line:84%
Does that make
sense to everybody?

00:38:18.410 --> 00:38:21.230 align:middle line:84%
So if I take the ratio
of these two things,

00:38:21.230 --> 00:38:26.490 align:middle line:84%
I could write this as delta
In plus 1 over delta In.

00:38:26.490 --> 00:38:29.180 align:middle line:84%
That's what I get
in one cycle is just

00:38:29.180 --> 00:38:30.770 align:middle line:84%
going to be this
ratio, which I can

00:38:30.770 --> 00:38:33.980 align:middle line:84%
write as the bottom
over the top here,

00:38:33.980 --> 00:38:41.120 align:middle line:90%
which is minus M2 minus MC.

00:38:41.120 --> 00:38:42.930 align:middle line:84%
Actually, I'll
write it this way.

00:38:42.930 --> 00:38:51.295 align:middle line:84%
It's MC minus M2
divided by MC plus M1.

00:38:51.295 --> 00:38:54.680 align:middle line:90%


00:38:54.680 --> 00:38:57.740 align:middle line:84%
OK, that make
sense to everybody?

00:38:57.740 --> 00:39:06.860 align:middle line:84%
That means that if I started
off with some error delta I0,

00:39:06.860 --> 00:39:15.110 align:middle line:84%
I could write delta In
as that ratio, which

00:39:15.110 --> 00:39:17.592 align:middle line:90%
I could write as minus--

00:39:17.592 --> 00:39:19.050 align:middle line:84%
and I'm going to
write this the way

00:39:19.050 --> 00:39:26.250 align:middle line:84%
they often write it in papers--
minus M2 minus MC over M1

00:39:26.250 --> 00:39:29.930 align:middle line:90%
plus MC to the n-th power.

00:39:29.930 --> 00:39:33.300 align:middle line:90%


00:39:33.300 --> 00:39:36.330 align:middle line:84%
Let me make sure I've
gotten that right.

00:39:36.330 --> 00:39:39.150 align:middle line:90%
Yeah, M1 plus MC.

00:39:39.150 --> 00:39:43.590 align:middle line:84%
So can anybody tell me what
the condition on this factor

00:39:43.590 --> 00:39:48.425 align:middle line:84%
is to make an initial
error delta I0 go to 0?

00:39:48.425 --> 00:39:52.360 align:middle line:90%


00:39:52.360 --> 00:39:55.190 align:middle line:84%
Yeah, this ratio--
what I require--

00:39:55.190 --> 00:40:00.640 align:middle line:84%
this suggests that I need
the magnitude of minus M2

00:40:00.640 --> 00:40:06.700 align:middle line:84%
minus MC over M1 plus
MC to be less than 1.

00:40:06.700 --> 00:40:09.550 align:middle line:90%
This is the--

00:40:09.550 --> 00:40:15.580 align:middle line:84%
I've got a discrete time model
for what's going to have--

00:40:15.580 --> 00:40:22.070 align:middle line:84%
and it's going to decay if
this term is less than 1.

00:40:22.070 --> 00:40:27.680 align:middle line:84%
So what that usually says
is that if I make MC bigger,

00:40:27.680 --> 00:40:29.780 align:middle line:90%
the numerator gets smaller.

00:40:29.780 --> 00:40:31.590 align:middle line:84%
And actually, the
denominator gets bigger.

00:40:31.590 --> 00:40:34.820 align:middle line:84%
So a bigger MC will make
this decay more quickly.

00:40:34.820 --> 00:40:37.730 align:middle line:84%
And in fact, if I made
MC exactly equal to M2,

00:40:37.730 --> 00:40:41.150 align:middle line:90%
it would be gone in one cycle.

00:40:41.150 --> 00:40:43.190 align:middle line:84%
Does that make
sense to everybody?

00:40:43.190 --> 00:40:46.730 align:middle line:84%
So what we'll do then,
and we can look this up.

00:40:46.730 --> 00:40:49.760 align:middle line:84%
It depends on the
converter, what

00:40:49.760 --> 00:40:51.350 align:middle line:90%
M1 and M2 are in the converter.

00:40:51.350 --> 00:40:54.110 align:middle line:84%
But we will pick this
compensating ramp slope

00:40:54.110 --> 00:40:55.440 align:middle line:90%
to be big enough--

00:40:55.440 --> 00:40:59.670 align:middle line:84%
MC is a positive
number to be big enough

00:40:59.670 --> 00:41:02.160 align:middle line:84%
that my ripple will decay
away in a reasonable number

00:41:02.160 --> 00:41:02.670 align:middle line:90%
of cycles.

00:41:02.670 --> 00:41:06.802 align:middle line:84%
Maybe I make this magnitude less
than 0.5 or 0.7 or something

00:41:06.802 --> 00:41:08.135 align:middle line:90%
like that, so it'll settle down.

00:41:08.135 --> 00:41:11.990 align:middle line:90%


00:41:11.990 --> 00:41:13.875 align:middle line:90%
Any questions about that?

00:41:13.875 --> 00:41:18.290 align:middle line:90%


00:41:18.290 --> 00:41:23.570 align:middle line:84%
Now, I should be a little bit
careful in what I'm saying.

00:41:23.570 --> 00:41:27.710 align:middle line:84%
And by the way, what this means
is if I had MC equal to 0,

00:41:27.710 --> 00:41:30.900 align:middle line:84%
this would be minus M2 or
M1 for the boost converter.

00:41:30.900 --> 00:41:32.840 align:middle line:84%
What that means
is this magnitude

00:41:32.840 --> 00:41:36.230 align:middle line:84%
would be greater than 1 if
it was d greater than 0.5.

00:41:36.230 --> 00:41:40.370 align:middle line:84%
So if you took a boost converter
and you didn't put any slope

00:41:40.370 --> 00:41:43.838 align:middle line:84%
compensation-- if you're only
running at 25% duty ratio, fine,

00:41:43.838 --> 00:41:45.380 align:middle line:84%
you won't have any
ripple instability

00:41:45.380 --> 00:41:46.560 align:middle line:90%
because it'll settle down.

00:41:46.560 --> 00:41:48.920 align:middle line:84%
If you get near 50%
duty ratio or above,

00:41:48.920 --> 00:41:51.500 align:middle line:84%
it'll start doing this
subharmonic oscillation

00:41:51.500 --> 00:41:54.040 align:middle line:90%
or ripple instability stuff.

00:41:54.040 --> 00:41:57.580 align:middle line:84%
This is sometimes called
the compensating ramp

00:41:57.580 --> 00:41:59.580 align:middle line:84%
or the stabilizing
ramp for that reason.

00:41:59.580 --> 00:42:02.600 align:middle line:90%


00:42:02.600 --> 00:42:07.430 align:middle line:84%
Now, why don't I want
to make MC really big?

00:42:07.430 --> 00:42:10.640 align:middle line:84%
Well, keep in mind,
if we came back

00:42:10.640 --> 00:42:22.340 align:middle line:84%
to this original
model, notice that MC

00:42:22.340 --> 00:42:26.360 align:middle line:90%
appears in this substitution.

00:42:26.360 --> 00:42:31.940 align:middle line:84%
My local average linearized
dynamics of my converter

00:42:31.940 --> 00:42:35.180 align:middle line:90%
are not independent of MC.

00:42:35.180 --> 00:42:41.090 align:middle line:84%
And when I told you, oh,
by the way, I get nicely--

00:42:41.090 --> 00:42:43.880 align:middle line:84%
I get a really low frequency
pole and then a high frequency

00:42:43.880 --> 00:42:48.530 align:middle line:84%
pole both on the real axis,
that's when MC is small.

00:42:48.530 --> 00:42:55.850 align:middle line:84%
As I make MC bigger and
bigger, what happens

00:42:55.850 --> 00:42:59.490 align:middle line:84%
is these closed-- these
open loop poles move.

00:42:59.490 --> 00:43:04.670 align:middle line:84%
And if I make MC too big,
I get undamped poles again.

00:43:04.670 --> 00:43:08.600 align:middle line:84%
So basically, the
higher this value of MC,

00:43:08.600 --> 00:43:12.080 align:middle line:84%
the closer the converter
transfer functions

00:43:12.080 --> 00:43:14.360 align:middle line:84%
and current mode
control look like they

00:43:14.360 --> 00:43:16.855 align:middle line:84%
do for duty ratio control
or voltage mode control.

00:43:16.855 --> 00:43:20.274 align:middle line:90%


00:43:20.274 --> 00:43:22.220 align:middle line:90%
So what do we do?

00:43:22.220 --> 00:43:27.560 align:middle line:84%
We would usually do this kind
of ripple instability analysis

00:43:27.560 --> 00:43:29.720 align:middle line:84%
and pick an MC
that was big enough

00:43:29.720 --> 00:43:32.900 align:middle line:84%
to make this settle down
and make me happy but not

00:43:32.900 --> 00:43:34.340 align:middle line:90%
much bigger.

00:43:34.340 --> 00:43:36.077 align:middle line:90%
And then I'd use that value--

00:43:36.077 --> 00:43:37.910 align:middle line:84%
I'd plunk it into here
in this average model

00:43:37.910 --> 00:43:40.280 align:middle line:84%
and find out where
my pole locations are

00:43:40.280 --> 00:43:43.350 align:middle line:90%
and go on from there.

00:43:43.350 --> 00:43:45.150 align:middle line:90%
I could also make--

00:43:45.150 --> 00:43:49.860 align:middle line:84%
obviously, I could make my
compensating ramp slope depend

00:43:49.860 --> 00:43:52.720 align:middle line:90%
upon M1 or M2 in some way.

00:43:52.720 --> 00:43:54.780 align:middle line:84%
People don't usually
go to that range.

00:43:54.780 --> 00:43:56.280 align:middle line:84%
If you've got to
have your converter

00:43:56.280 --> 00:43:57.750 align:middle line:84%
operating in a
really wide range,

00:43:57.750 --> 00:43:59.250 align:middle line:84%
maybe you start to
play those games.

00:43:59.250 --> 00:44:02.400 align:middle line:84%
But generally, you're
just picking some slope

00:44:02.400 --> 00:44:07.200 align:middle line:84%
and setting it with a
resistor or something.

00:44:07.200 --> 00:44:08.070 align:middle line:90%
Questions?

00:44:08.070 --> 00:44:14.670 align:middle line:90%


00:44:14.670 --> 00:44:16.076 align:middle line:90%
Let me summarize.

00:44:16.076 --> 00:44:18.610 align:middle line:90%


00:44:18.610 --> 00:44:21.640 align:middle line:84%
We didn't like the fact that we
had these very lightly damped

00:44:21.640 --> 00:44:23.610 align:middle line:90%
polls.

00:44:23.610 --> 00:44:29.830 align:middle line:84%
So we did full state
feedback, and we feed back

00:44:29.830 --> 00:44:31.400 align:middle line:90%
current on this inner loop.

00:44:31.400 --> 00:44:33.880 align:middle line:84%
And then we use the outer loop
to set the current reference

00:44:33.880 --> 00:44:35.120 align:middle line:90%
and do the outer loop.

00:44:35.120 --> 00:44:37.965 align:middle line:84%
And that's the most common
way people do things.

00:44:37.965 --> 00:44:44.550 align:middle line:90%


00:44:44.550 --> 00:44:48.150 align:middle line:84%
I'll show you a demonstration
of doing this that Mansi was

00:44:48.150 --> 00:44:49.990 align:middle line:90%
kind enough to set up for us.

00:44:49.990 --> 00:44:55.050 align:middle line:84%
And all I'm doing is this is
again our demo boost converter

00:44:55.050 --> 00:44:56.040 align:middle line:90%
here.

00:44:56.040 --> 00:44:59.760 align:middle line:84%
And it's actually using
current mode control.

00:44:59.760 --> 00:45:03.000 align:middle line:84%
And the notion is
what we have it set up

00:45:03.000 --> 00:45:09.550 align:middle line:84%
is that we can turn on and
off this compensating ramp.

00:45:09.550 --> 00:45:13.030 align:middle line:90%
So here we go.

00:45:13.030 --> 00:45:14.840 align:middle line:90%
Let me power up the converter.

00:45:14.840 --> 00:45:19.070 align:middle line:90%


00:45:19.070 --> 00:45:21.560 align:middle line:90%
And that's pretty nice.

00:45:21.560 --> 00:45:24.090 align:middle line:84%
I got more or less periodic
steady state operation.

00:45:24.090 --> 00:45:26.720 align:middle line:84%
There's actually a tiny bit of
jitter in the duty ratio here,

00:45:26.720 --> 00:45:29.750 align:middle line:84%
but it's basically
switching once per cycle

00:45:29.750 --> 00:45:31.730 align:middle line:90%
and nicely settled down.

00:45:31.730 --> 00:45:36.550 align:middle line:84%
What happens if I turn
off the compensating ramp?

00:45:36.550 --> 00:45:38.830 align:middle line:84%
Every cycle is doing
something different,

00:45:38.830 --> 00:45:43.600 align:middle line:84%
and I can single sequence
this so you can see one shot.

00:45:43.600 --> 00:45:46.270 align:middle line:84%
What you can see is sometimes
it has a long duty ratio.

00:45:46.270 --> 00:45:48.140 align:middle line:84%
Sometimes it has a
short duty ratio.

00:45:48.140 --> 00:45:49.880 align:middle line:84%
It kind of pips
around like this.

00:45:49.880 --> 00:45:52.630 align:middle line:84%
It's not unstable in the
sense that my converter

00:45:52.630 --> 00:45:53.843 align:middle line:90%
is going to blow up.

00:45:53.843 --> 00:45:55.510 align:middle line:84%
But what it does mean
is that the ripple

00:45:55.510 --> 00:45:57.050 align:middle line:90%
is all over the place.

00:45:57.050 --> 00:46:00.340 align:middle line:84%
And I should say that
this is a function--

00:46:00.340 --> 00:46:04.240 align:middle line:84%
if I change the
voltage, this tends to--

00:46:04.240 --> 00:46:07.450 align:middle line:84%
if I have low-- if I have
a low boosting ratio,

00:46:07.450 --> 00:46:09.680 align:middle line:84%
it goes away, even without
a compensating ramp.

00:46:09.680 --> 00:46:12.400 align:middle line:84%
But the higher I go, because
of that ripple instability,

00:46:12.400 --> 00:46:15.250 align:middle line:84%
I get some really kind
of funky behavior.

00:46:15.250 --> 00:46:17.385 align:middle line:84%
If I throw in my
compensating ramp--

00:46:17.385 --> 00:46:24.990 align:middle line:90%


00:46:24.990 --> 00:46:27.040 align:middle line:84%
I've just done something
bad to my converter.

00:46:27.040 --> 00:46:31.600 align:middle line:90%


00:46:31.600 --> 00:46:39.144 align:middle line:84%
There, I get nice
steady state operation.

00:46:39.144 --> 00:46:42.040 align:middle line:84%
So that is current
mode control for you.

00:46:42.040 --> 00:46:44.970 align:middle line:84%
I wanted to tell you about
it because in the context

00:46:44.970 --> 00:46:47.460 align:middle line:84%
of DC-to-DC converters, it's
probably the most widely

00:46:47.460 --> 00:46:48.910 align:middle line:90%
used control technique.

00:46:48.910 --> 00:46:51.120 align:middle line:84%
And to analyze it, you do
everything we talked about

00:46:51.120 --> 00:46:53.910 align:middle line:84%
so far, and you take
one more step further

00:46:53.910 --> 00:46:56.100 align:middle line:90%
to get a current mode model.

00:46:56.100 --> 00:46:58.360 align:middle line:84%
Any final questions
before we wrap up?

00:46:58.360 --> 00:47:01.150 align:middle line:90%


00:47:01.150 --> 00:47:05.320 align:middle line:84%
So that was our very brief
sequence on modeling and control

00:47:05.320 --> 00:47:06.500 align:middle line:90%
of power converters.

00:47:06.500 --> 00:47:08.890 align:middle line:84%
We will take up a
new topic next class.

00:47:08.890 --> 00:47:10.800 align:middle line:90%
Have a great day.

00:47:10.800 --> 00:47:15.000 align:middle line:90%