WEBVTT

00:00:00.000 --> 00:00:05.324 align:middle line:84%
[SQUEAKING]
[RUSTLING] [CLICKING]

00:00:05.324 --> 00:00:09.745 align:middle line:90%


00:00:09.745 --> 00:00:11.120 align:middle line:84%
DAVID PERREAULT:
So what I wanted

00:00:11.120 --> 00:00:17.510 align:middle line:84%
to do for the next few lectures
is talk a bit about control

00:00:17.510 --> 00:00:20.948 align:middle line:90%
of power converters.

00:00:20.948 --> 00:00:24.650 align:middle line:84%
And actually, I'm more
going to talk about modeling

00:00:24.650 --> 00:00:27.290 align:middle line:84%
of power converters than
control of power converters

00:00:27.290 --> 00:00:32.840 align:middle line:84%
because I can't really teach
control theory in this class.

00:00:32.840 --> 00:00:35.777 align:middle line:84%
If you haven't had
a control class yet,

00:00:35.777 --> 00:00:38.360 align:middle line:84%
it's really time to go out and
take one because no matter what

00:00:38.360 --> 00:00:39.735 align:middle line:84%
you're going to
do, you're really

00:00:39.735 --> 00:00:43.970 align:middle line:84%
probably going to need to
understand feedback control.

00:00:43.970 --> 00:00:48.050 align:middle line:84%
But what we can do in
this class is show you

00:00:48.050 --> 00:00:52.520 align:middle line:84%
how one can model power
converters to put them--

00:00:52.520 --> 00:00:55.730 align:middle line:84%
to get a model in the format
that you can use it for feedback

00:00:55.730 --> 00:00:58.850 align:middle line:90%
control and do basic control.

00:00:58.850 --> 00:01:01.470 align:middle line:84%
So let's think about
a power converter.

00:01:01.470 --> 00:01:04.160 align:middle line:84%
Let's start off with our
friendly neighborhood boost

00:01:04.160 --> 00:01:05.300 align:middle line:90%
converter.

00:01:05.300 --> 00:01:08.030 align:middle line:84%
So maybe I have some
input voltage VIN.

00:01:08.030 --> 00:01:11.880 align:middle line:90%


00:01:11.880 --> 00:01:18.200 align:middle line:84%
I'll switch it with some
switching waveform q of t.

00:01:18.200 --> 00:01:19.950 align:middle line:84%
And then I'm going
to have a diode.

00:01:19.950 --> 00:01:22.310 align:middle line:90%
I will have a capacitor.

00:01:22.310 --> 00:01:23.940 align:middle line:90%
And the converter ends here.

00:01:23.940 --> 00:01:29.340 align:middle line:84%
And then somewhere,
we usually show RL.

00:01:29.340 --> 00:01:30.530 align:middle line:90%
And I have my input voltage.

00:01:30.530 --> 00:01:33.380 align:middle line:84%
And I have my output
voltage, VOUT.

00:01:33.380 --> 00:01:40.400 align:middle line:84%
Now, I usually in my examples,
just by way of an aside--

00:01:40.400 --> 00:01:42.570 align:middle line:90%
I usually show a resistive load.

00:01:42.570 --> 00:01:45.290 align:middle line:90%
A lot of loads are resistive.

00:01:45.290 --> 00:01:49.220 align:middle line:84%
But there's no guarantee that
in an actual application,

00:01:49.220 --> 00:01:51.050 align:middle line:90%
your load looks like a resistor.

00:01:51.050 --> 00:01:54.470 align:middle line:90%
It could look like whatever.

00:01:54.470 --> 00:02:02.720 align:middle line:84%
Maybe a lot of loads you might
represent as some maybe Norton

00:02:02.720 --> 00:02:06.260 align:middle line:84%
equivalent where there's some
constant current component

00:02:06.260 --> 00:02:09.120 align:middle line:84%
and some resistive
current component.

00:02:09.120 --> 00:02:11.700 align:middle line:84%
And I'm just doing
the simplified

00:02:11.700 --> 00:02:15.920 align:middle line:84%
case where the Norton source
is 0 and the resistance is RL.

00:02:15.920 --> 00:02:18.840 align:middle line:90%


00:02:18.840 --> 00:02:20.900 align:middle line:84%
This is just a way
of saying in general,

00:02:20.900 --> 00:02:23.160 align:middle line:84%
you would worry
about exactly what

00:02:23.160 --> 00:02:27.810 align:middle line:84%
the load looks like not just
in terms of how much current

00:02:27.810 --> 00:02:28.470 align:middle line:90%
does it draw.

00:02:28.470 --> 00:02:32.640 align:middle line:84%
But exactly what the load looked
like can affect the dynamics.

00:02:32.640 --> 00:02:35.490 align:middle line:84%
But for simplicity, let's just
talk about resistive loads,

00:02:35.490 --> 00:02:36.905 align:middle line:90%
which is a very common case.

00:02:36.905 --> 00:02:42.990 align:middle line:90%


00:02:42.990 --> 00:02:45.480 align:middle line:84%
What do we have to do in
a typical power converter

00:02:45.480 --> 00:02:48.055 align:middle line:90%
application?

00:02:48.055 --> 00:02:51.420 align:middle line:84%
We want to usually
regulate the output voltage

00:02:51.420 --> 00:02:53.490 align:middle line:90%
to be something we want.

00:02:53.490 --> 00:03:04.020 align:middle line:84%
So we want to make VOUT go
to some reference voltage

00:03:04.020 --> 00:03:06.420 align:middle line:90%
that I'll call VREF.

00:03:06.420 --> 00:03:08.140 align:middle line:90%
VREF might be fixed--

00:03:08.140 --> 00:03:12.190 align:middle line:84%
it might be I want 12
volts output all day long--

00:03:12.190 --> 00:03:14.760 align:middle line:84%
or it may be something
that you dynamically

00:03:14.760 --> 00:03:18.022 align:middle line:84%
vary based on some
other consideration

00:03:18.022 --> 00:03:19.480 align:middle line:84%
that we're not
going to talk about.

00:03:19.480 --> 00:03:21.600 align:middle line:84%
So it could be a fixed
or a variable reference.

00:03:21.600 --> 00:03:23.370 align:middle line:84%
But for the present
time, let's just

00:03:23.370 --> 00:03:25.320 align:middle line:84%
assume I want to get my
output on my converter

00:03:25.320 --> 00:03:27.930 align:middle line:84%
to be some fixed value
that I would like it to be.

00:03:27.930 --> 00:03:30.000 align:middle line:84%
If I'm creating a
12-volt power supply,

00:03:30.000 --> 00:03:32.550 align:middle line:90%
I want it to be 12 volts.

00:03:32.550 --> 00:03:35.820 align:middle line:84%
And we have to keep
the output voltage

00:03:35.820 --> 00:03:39.240 align:middle line:84%
closer at the reference
voltage under a wide variety

00:03:39.240 --> 00:03:39.875 align:middle line:90%
of conditions.

00:03:39.875 --> 00:03:42.000 align:middle line:84%
And this is where power
electronics is challenging.

00:03:42.000 --> 00:03:45.225 align:middle line:84%
Firstly, for
variations in load--

00:03:45.225 --> 00:03:50.280 align:middle line:90%


00:03:50.280 --> 00:03:59.700 align:middle line:84%
so maybe I would have RLmin less
than what RL is less than RLmax.

00:03:59.700 --> 00:04:07.980 align:middle line:84%
So this would be heavy load
because the lowest resistance

00:04:07.980 --> 00:04:09.450 align:middle line:90%
gives me the highest power.

00:04:09.450 --> 00:04:11.360 align:middle line:90%
And this might be light load.

00:04:11.360 --> 00:04:15.900 align:middle line:90%


00:04:15.900 --> 00:04:20.850 align:middle line:84%
I also need to keep VOUT
near Vreference in terms of--

00:04:20.850 --> 00:04:28.620 align:middle line:90%
for variations in VIN.

00:04:28.620 --> 00:04:38.040 align:middle line:84%
So maybe there's a VINmin
less than VIN less than VINmax

00:04:38.040 --> 00:04:39.370 align:middle line:90%
that I've got to deal with.

00:04:39.370 --> 00:04:41.410 align:middle line:84%
Why do I have to
worry about those?

00:04:41.410 --> 00:04:44.950 align:middle line:84%
Well, my load's not always
going to be the same.

00:04:44.950 --> 00:04:48.000 align:middle line:84%
Maybe this is controlling
a voltage which

00:04:48.000 --> 00:04:50.220 align:middle line:84%
goes to a bunch of
microprocessors or other things

00:04:50.220 --> 00:04:52.480 align:middle line:84%
or actuators and they're
turning on and off.

00:04:52.480 --> 00:04:55.410 align:middle line:84%
So the effective resistance,
the effective power,

00:04:55.410 --> 00:04:58.240 align:middle line:84%
I have to supply varies,
even at fixed voltage.

00:04:58.240 --> 00:05:01.170 align:middle line:84%
And here, maybe I'm powered
from a battery and the battery

00:05:01.170 --> 00:05:03.730 align:middle line:84%
discharges over time or
I'm charging or whatever.

00:05:03.730 --> 00:05:07.260 align:middle line:84%
So there's going to be some
input range, input voltage

00:05:07.260 --> 00:05:09.700 align:middle line:84%
range, over which this
converter is designed

00:05:09.700 --> 00:05:12.550 align:middle line:84%
to reject that as a disturbance
and just keep the output where

00:05:12.550 --> 00:05:15.660 align:middle line:90%
I want it.

00:05:15.660 --> 00:05:20.070 align:middle line:84%
Now, so far, we've
spent a lot of time

00:05:20.070 --> 00:05:23.550 align:middle line:84%
talking about the
steady-state operation.

00:05:23.550 --> 00:05:25.260 align:middle line:84%
And that's usually
always the first thing

00:05:25.260 --> 00:05:28.050 align:middle line:84%
I look at because it tells
me when things are sitting

00:05:28.050 --> 00:05:33.540 align:middle line:84%
at some place, know some load
resistance, some input voltage.

00:05:33.540 --> 00:05:36.780 align:middle line:84%
What's it going to Do
And we said for the boost

00:05:36.780 --> 00:05:45.910 align:middle line:84%
converter, what I get is VOUT
is equal to VIN over 1 minus D.

00:05:45.910 --> 00:05:48.460 align:middle line:84%
So this is the
steady-state relationship.

00:05:48.460 --> 00:05:52.090 align:middle line:84%
This is in PSS, in
periodic steady state.

00:05:52.090 --> 00:05:55.210 align:middle line:84%
Once we've settled down, this
converter ought to do this.

00:05:55.210 --> 00:06:00.046 align:middle line:84%
So if I control the duty
ratio of my switch, q of t,

00:06:00.046 --> 00:06:02.820 align:middle line:84%
to this value, this
is what I should

00:06:02.820 --> 00:06:03.905 align:middle line:90%
get for an output voltage.

00:06:03.905 --> 00:06:07.085 align:middle line:90%


00:06:07.085 --> 00:06:12.220 align:middle line:84%
So you might think,
maybe I could just

00:06:12.220 --> 00:06:16.810 align:middle line:84%
measure the input
voltage, set a duty ratio,

00:06:16.810 --> 00:06:18.620 align:middle line:84%
and get the output
voltage I want,

00:06:18.620 --> 00:06:20.440 align:middle line:90%
and that's the end of the day.

00:06:20.440 --> 00:06:22.230 align:middle line:84%
But there's two
problems with that.

00:06:22.230 --> 00:06:25.180 align:middle line:84%
One this is only in
periodic steady state.

00:06:25.180 --> 00:06:28.150 align:middle line:84%
And it doesn't say how things
will change transiently

00:06:28.150 --> 00:06:30.800 align:middle line:84%
in between periodic
steady-state conditions.

00:06:30.800 --> 00:06:34.900 align:middle line:84%
And I really care about that
because if the voltage goes--

00:06:34.900 --> 00:06:37.000 align:middle line:84%
if I decide to change
the load, the voltage

00:06:37.000 --> 00:06:39.370 align:middle line:90%
goes wild until it settles down.

00:06:39.370 --> 00:06:42.070 align:middle line:84%
I'm probably not
going to be happy.

00:06:42.070 --> 00:06:43.630 align:middle line:84%
The other thing
about this is this

00:06:43.630 --> 00:06:46.630 align:middle line:90%
is an idealized relationship.

00:06:46.630 --> 00:06:49.720 align:middle line:84%
When we derived this, we
did it by volt-seconds

00:06:49.720 --> 00:06:51.140 align:middle line:90%
balanced across this inductor.

00:06:51.140 --> 00:06:53.570 align:middle line:84%
I pretended the inductor
had no resistance.

00:06:53.570 --> 00:06:55.310 align:middle line:90%
I ignored the diode drop.

00:06:55.310 --> 00:06:57.190 align:middle line:84%
I ignored a whole
bunch of things

00:06:57.190 --> 00:07:01.670 align:middle line:84%
which don't matter for getting
an approximate relationship.

00:07:01.670 --> 00:07:04.190 align:middle line:84%
But they do matter if
I need to control this

00:07:04.190 --> 00:07:09.000 align:middle line:90%
to 12 volts plus or minus 2%.

00:07:09.000 --> 00:07:11.520 align:middle line:84%
The model's just
not good enough.

00:07:11.520 --> 00:07:14.310 align:middle line:84%
I need some better way
to get my converter

00:07:14.310 --> 00:07:18.480 align:middle line:84%
to get where I want it to
be and maintain it there

00:07:18.480 --> 00:07:22.050 align:middle line:90%
under variations like this.

00:07:22.050 --> 00:07:23.780 align:middle line:90%
Any questions about that?

00:07:23.780 --> 00:07:26.710 align:middle line:90%


00:07:26.710 --> 00:07:30.460 align:middle line:84%
Just to illustrate
that, what I've got here

00:07:30.460 --> 00:07:37.690 align:middle line:84%
is a SPICE simulation
of a boost converter

00:07:37.690 --> 00:07:41.050 align:middle line:84%
which is undergoing
a load transient.

00:07:41.050 --> 00:07:44.500 align:middle line:84%
So what's happening in
this is here at some time,

00:07:44.500 --> 00:07:48.460 align:middle line:84%
at actually at 1.4
milliseconds, we had a 5-ohm--

00:07:48.460 --> 00:07:50.830 align:middle line:84%
we originally had a 5-ohm
load on the converter.

00:07:50.830 --> 00:07:52.900 align:middle line:84%
And we put in
another 5-ohm load.

00:07:52.900 --> 00:07:57.640 align:middle line:84%
So it's like some
new load has come in.

00:07:57.640 --> 00:08:00.100 align:middle line:84%
In this example, we're
just holding the duty ratio

00:08:00.100 --> 00:08:01.280 align:middle line:90%
of the converter constant.

00:08:01.280 --> 00:08:05.470 align:middle line:84%
So we expect that, barring a
lot of second-order effects,

00:08:05.470 --> 00:08:07.180 align:middle line:84%
the output voltage
should go back

00:08:07.180 --> 00:08:09.850 align:middle line:84%
to the same thing in
periodic steady state.

00:08:09.850 --> 00:08:14.190 align:middle line:84%
But clearly, if the output
voltage is going to be the same

00:08:14.190 --> 00:08:16.980 align:middle line:84%
and I've got smaller
net resistance on it

00:08:16.980 --> 00:08:18.542 align:middle line:84%
because I have the
net resistance,

00:08:18.542 --> 00:08:19.500 align:middle line:90%
the power has to go up.

00:08:19.500 --> 00:08:21.150 align:middle line:90%
The current has to go up.

00:08:21.150 --> 00:08:22.330 align:middle line:90%
So things have to change.

00:08:22.330 --> 00:08:24.750 align:middle line:84%
And that's what
we see happening.

00:08:24.750 --> 00:08:28.330 align:middle line:84%
So this trace down here
is the input current.

00:08:28.330 --> 00:08:32.309 align:middle line:84%
So the input current was sitting
on average around 12 amps.

00:08:32.309 --> 00:08:35.289 align:middle line:90%
I go through some transient.

00:08:35.289 --> 00:08:38.380 align:middle line:90%
And I end up around 24 amps.

00:08:38.380 --> 00:08:41.020 align:middle line:84%
The output voltage had
been sitting at 22 volts,

00:08:41.020 --> 00:08:44.890 align:middle line:84%
goes through some transient,
and I get back to 22 volts

00:08:44.890 --> 00:08:48.770 align:middle line:84%
because it's running
at fixed duty ratio.

00:08:48.770 --> 00:08:54.240 align:middle line:84%
So what we see here is the
stuff we've skipped over so far.

00:08:54.240 --> 00:08:59.990 align:middle line:84%
We know we could calculate
based on periodic steady state--

00:08:59.990 --> 00:09:03.620 align:middle line:84%
say that the output capacitor
voltage and the average inductor

00:09:03.620 --> 00:09:05.880 align:middle line:90%
current in both conditions.

00:09:05.880 --> 00:09:09.290 align:middle line:84%
But we haven't accounted
for how does it transiently

00:09:09.290 --> 00:09:11.360 align:middle line:90%
go between those conditions.

00:09:11.360 --> 00:09:16.160 align:middle line:84%
And that's what we
have to know in order

00:09:16.160 --> 00:09:19.670 align:middle line:90%
to make our system happy.

00:09:19.670 --> 00:09:22.230 align:middle line:84%
And so that's what
we're going to focus on.

00:09:22.230 --> 00:09:31.040 align:middle line:84%
And I'd like you to notice
that this response looks

00:09:31.040 --> 00:09:34.480 align:middle line:90%
like a second-order system.

00:09:34.480 --> 00:09:39.470 align:middle line:84%
It has a-- looks like a damped
LC oscillation, sort of, which

00:09:39.470 --> 00:09:45.500 align:middle line:84%
is not surprising because
I've got one C and one L.

00:09:45.500 --> 00:09:48.000 align:middle line:90%
And there's load on it.

00:09:48.000 --> 00:09:49.780 align:middle line:84%
So energy has been
taken out of it.

00:09:49.780 --> 00:09:51.160 align:middle line:90%
So maybe that's not surprising.

00:09:51.160 --> 00:09:56.970 align:middle line:84%
The question is, what
does this thing look like?

00:09:56.970 --> 00:10:01.210 align:middle line:84%
So how would I control this
thing in the real world?

00:10:01.210 --> 00:10:02.600 align:middle line:90%
I'd use feedback control.

00:10:02.600 --> 00:10:05.400 align:middle line:90%


00:10:05.400 --> 00:10:07.470 align:middle line:90%
So what are we going to do?

00:10:07.470 --> 00:10:13.530 align:middle line:84%
We're going to say I have
some reference voltage, VREF,

00:10:13.530 --> 00:10:15.600 align:middle line:84%
that I want my
converter to go to.

00:10:15.600 --> 00:10:17.970 align:middle line:84%
And I provide that
voltage reference.

00:10:17.970 --> 00:10:21.570 align:middle line:84%
And I'm going to compare
that voltage reference

00:10:21.570 --> 00:10:24.530 align:middle line:90%
to the output voltage, VOUT.

00:10:24.530 --> 00:10:33.600 align:middle line:84%
And I'm going to generate
an error between those two.

00:10:33.600 --> 00:10:36.996 align:middle line:84%
I'll take that error and feed
it into a high-gain compensator.

00:10:36.996 --> 00:10:41.890 align:middle line:90%


00:10:41.890 --> 00:10:44.200 align:middle line:84%
Maybe I could represent
that with a transfer

00:10:44.200 --> 00:10:46.220 align:middle line:90%
function, GC of s.

00:10:46.220 --> 00:10:55.780 align:middle line:84%
This might be, for example,
a PID controller or something

00:10:55.780 --> 00:10:57.320 align:middle line:90%
fancier--

00:10:57.320 --> 00:10:58.850 align:middle line:90%
depends on the topology.

00:10:58.850 --> 00:11:01.530 align:middle line:84%
This is where having
a control class--

00:11:01.530 --> 00:11:03.140 align:middle line:84%
But you might think
what this does

00:11:03.140 --> 00:11:07.730 align:middle line:84%
is if I have error, I amplify
that error by some amount,

00:11:07.730 --> 00:11:11.270 align:middle line:84%
either proportionally or look
at the integral of the error

00:11:11.270 --> 00:11:14.240 align:middle line:84%
or something like that,
and generate an output,

00:11:14.240 --> 00:11:15.625 align:middle line:90%
which I'm going to call Vd.

00:11:15.625 --> 00:11:18.200 align:middle line:90%


00:11:18.200 --> 00:11:19.860 align:middle line:90%
What is this signal?

00:11:19.860 --> 00:11:22.760 align:middle line:84%
This is usually a voltage,
although I could represent it

00:11:22.760 --> 00:11:24.530 align:middle line:90%
with a current.

00:11:24.530 --> 00:11:31.675 align:middle line:84%
It's a voltage representing
the duty ratio I want.

00:11:31.675 --> 00:11:35.610 align:middle line:90%


00:11:35.610 --> 00:11:38.150 align:middle line:84%
Now I have a voltage
representing the duty ratio.

00:11:38.150 --> 00:11:42.230 align:middle line:84%
I have to put this into some PWM
circuit, pulse width modulation

00:11:42.230 --> 00:11:47.270 align:middle line:84%
circuit, that's going
to give me q of t

00:11:47.270 --> 00:11:49.760 align:middle line:84%
because if I look at
up there, I'm talking

00:11:49.760 --> 00:11:51.200 align:middle line:90%
about in terms of duty ratio.

00:11:51.200 --> 00:11:54.830 align:middle line:84%
But the actual signal going
to my switch is some q of t

00:11:54.830 --> 00:11:57.960 align:middle line:84%
or some amplified version
of q of t from a gate drive

00:11:57.960 --> 00:12:01.530 align:middle line:84%
that's turning the switch on
and off at the right duty ratio.

00:12:01.530 --> 00:12:05.700 align:middle line:84%
So the input of this is some
value of duty ratio I want.

00:12:05.700 --> 00:12:11.520 align:middle line:84%
The output of this is some PWM
waveform switching at period T

00:12:11.520 --> 00:12:17.180 align:middle line:90%
with an on time that's dT.

00:12:17.180 --> 00:12:25.230 align:middle line:84%
This then goes into
my actual converter,

00:12:25.230 --> 00:12:29.550 align:middle line:84%
which also, if you think
about it, has inputs of VIN.

00:12:29.550 --> 00:12:34.215 align:middle line:84%
And it's being affected
by what the RL is.

00:12:34.215 --> 00:12:38.490 align:middle line:84%
And then its state variables
are the inductor current

00:12:38.490 --> 00:12:41.490 align:middle line:84%
and the output voltage, which
is also the capacitor voltage,

00:12:41.490 --> 00:12:42.280 align:middle line:90%
VOUT.

00:12:42.280 --> 00:12:46.850 align:middle line:84%
And that's what I'm
feeding around back here.

00:12:46.850 --> 00:12:51.620 align:middle line:84%
So this is a typical
closed-loop control system.

00:12:51.620 --> 00:12:54.830 align:middle line:84%
If VOUT gets smaller than
the reference voltage,

00:12:54.830 --> 00:12:55.730 align:middle line:90%
Verror goes up.

00:12:55.730 --> 00:12:56.810 align:middle line:90%
I amplify that.

00:12:56.810 --> 00:12:58.790 align:middle line:90%
My duty ratio goes up.

00:12:58.790 --> 00:13:02.000 align:middle line:84%
And when my duty ratio goes
up, my output voltage goes up

00:13:02.000 --> 00:13:03.470 align:middle line:90%
and I close the loop.

00:13:03.470 --> 00:13:08.544 align:middle line:84%
And eventually, hopefully this
settles to VOUT close to VREF.

00:13:08.544 --> 00:13:10.685 align:middle line:84%
Any questions
about that picture?

00:13:10.685 --> 00:13:13.210 align:middle line:90%


00:13:13.210 --> 00:13:14.860 align:middle line:84%
Just out of curiosity,
how many people

00:13:14.860 --> 00:13:19.050 align:middle line:84%
here have had either a classical
or state space control class?

00:13:19.050 --> 00:13:21.580 align:middle line:90%


00:13:21.580 --> 00:13:22.730 align:middle line:90%
Good fraction.

00:13:22.730 --> 00:13:23.470 align:middle line:90%
Good.

00:13:23.470 --> 00:13:26.120 align:middle line:84%
Let's make that
fraction 100% next year

00:13:26.120 --> 00:13:28.620 align:middle line:84%
because you really want to know
this, no matter what you do.

00:13:28.620 --> 00:13:36.900 align:middle line:90%


00:13:36.900 --> 00:13:41.850 align:middle line:84%
This is a standard
feedback system.

00:13:41.850 --> 00:13:44.715 align:middle line:90%
What we need to do this--

00:13:44.715 --> 00:13:47.790 align:middle line:84%
if I put it in the wrong
compensator and I put feedback,

00:13:47.790 --> 00:13:51.290 align:middle line:84%
I could make this thing
oscillate and go unstable.

00:13:51.290 --> 00:13:56.968 align:middle line:84%
We've all seen the
effects of bad feedback,

00:13:56.968 --> 00:13:58.760 align:middle line:84%
like when you put your
microphone too close

00:13:58.760 --> 00:13:59.630 align:middle line:90%
to your speaker.

00:13:59.630 --> 00:14:01.170 align:middle line:84%
And suddenly, the
thing goes crazy.

00:14:01.170 --> 00:14:04.100 align:middle line:84%
And you can certainly make
a power converter go crazy

00:14:04.100 --> 00:14:07.008 align:middle line:90%
if you're not careful.

00:14:07.008 --> 00:14:10.010 align:middle line:84%
And what we need
to know in order

00:14:10.010 --> 00:14:16.490 align:middle line:84%
to make this work is some model
that basically says, as I'm

00:14:16.490 --> 00:14:19.100 align:middle line:84%
changing my duty ratio
or something else,

00:14:19.100 --> 00:14:24.955 align:middle line:84%
like the load resistor, how
does this dynamically vary?

00:14:24.955 --> 00:14:28.150 align:middle line:84%
If I know that, then I
can design a control loop

00:14:28.150 --> 00:14:30.530 align:middle line:90%
for the thing.

00:14:30.530 --> 00:14:32.740 align:middle line:84%
And so what I'd
like to talk about

00:14:32.740 --> 00:14:36.610 align:middle line:84%
is how do we build this
model, this dynamic model,

00:14:36.610 --> 00:14:38.620 align:middle line:84%
instead of a periodic
steady-state model.

00:14:38.620 --> 00:14:40.420 align:middle line:84%
What does the dynamic
model of this thing

00:14:40.420 --> 00:14:43.330 align:middle line:84%
look like from
variations in duty ratio,

00:14:43.330 --> 00:14:47.240 align:middle line:84%
for example, to the variations
in the output voltage?

00:14:47.240 --> 00:14:50.780 align:middle line:84%
And coming back to
this picture, we

00:14:50.780 --> 00:14:54.780 align:middle line:84%
can see that what we have
here is a bunch of switching.

00:14:54.780 --> 00:14:57.260 align:middle line:84%
Here's the switching ripple,
the triangular ripple current

00:14:57.260 --> 00:14:58.370 align:middle line:90%
in the inductor.

00:14:58.370 --> 00:15:00.227 align:middle line:84%
And it goes through
some oscillations.

00:15:00.227 --> 00:15:02.060 align:middle line:84%
And then it settles
down, and the same thing

00:15:02.060 --> 00:15:03.270 align:middle line:90%
with the capacitor voltage.

00:15:03.270 --> 00:15:07.160 align:middle line:84%
Well, I'm not particularly
interested in this switching

00:15:07.160 --> 00:15:09.270 align:middle line:90%
ripple.

00:15:09.270 --> 00:15:11.520 align:middle line:84%
Why am I not interested
in it is because notice

00:15:11.520 --> 00:15:15.780 align:middle line:84%
that the dynamical behavior is
at a very low frequency compared

00:15:15.780 --> 00:15:18.440 align:middle line:90%
to the switching ripple.

00:15:18.440 --> 00:15:21.440 align:middle line:84%
And I can't really do anything
about the switching ripple,

00:15:21.440 --> 00:15:22.160 align:middle line:90%
anyways.

00:15:22.160 --> 00:15:24.875 align:middle line:84%
In other words, that's
intrinsic to the converter.

00:15:24.875 --> 00:15:26.500 align:middle line:84%
I'm going to put some
energy in and I'm

00:15:26.500 --> 00:15:27.690 align:middle line:90%
going to process it through.

00:15:27.690 --> 00:15:28.732 align:middle line:90%
I'm going to take it out.

00:15:28.732 --> 00:15:32.810 align:middle line:84%
If I'm trying to, say, vary
my duty ratio on the time

00:15:32.810 --> 00:15:36.900 align:middle line:84%
scale of this switching,
I'm very, very fast,

00:15:36.900 --> 00:15:40.220 align:middle line:84%
I'm probably going to make the
converter do unhappy things.

00:15:40.220 --> 00:15:43.580 align:middle line:84%
My whole notion was that
at least within a cycle,

00:15:43.580 --> 00:15:48.920 align:middle line:84%
duty ratio is not something
that I'm swinging around wildly.

00:15:48.920 --> 00:15:50.900 align:middle line:84%
So I'm interested
in the behavior

00:15:50.900 --> 00:15:54.290 align:middle line:84%
of this circuit for
frequencies relatively low

00:15:54.290 --> 00:15:57.035 align:middle line:84%
compared to the
switching frequency.

00:15:57.035 --> 00:15:59.690 align:middle line:84%
So what I want to do
is generate models

00:15:59.690 --> 00:16:03.320 align:middle line:84%
that capture this
average behavior,

00:16:03.320 --> 00:16:06.110 align:middle line:84%
like these low-frequency
oscillations,

00:16:06.110 --> 00:16:09.040 align:middle line:90%
and ignore the switching ripple.

00:16:09.040 --> 00:16:10.405 align:middle line:90%
Everybody follow that?

00:16:10.405 --> 00:16:15.934 align:middle line:90%


00:16:15.934 --> 00:16:19.310 align:middle line:84%
So let me think about this
in a couple of pieces.

00:16:19.310 --> 00:16:22.840 align:middle line:84%
Well, first of all, let's just
talk about this PWM block.

00:16:22.840 --> 00:16:24.230 align:middle line:90%
We've talked about this before.

00:16:24.230 --> 00:16:26.030 align:middle line:84%
This isn't part of
the average model.

00:16:26.030 --> 00:16:29.700 align:middle line:84%
But essentially, what would
the PWM block look like?

00:16:29.700 --> 00:16:32.680 align:middle line:90%


00:16:32.680 --> 00:16:38.530 align:middle line:84%
Basically, what I
would have is maybe I

00:16:38.530 --> 00:16:41.720 align:middle line:84%
would generate
some triangle wave.

00:16:41.720 --> 00:16:49.820 align:middle line:84%
This could be a sawtooth,
for example, with a period T.

00:16:49.820 --> 00:16:51.130 align:middle line:90%
And I'll just generate this.

00:16:51.130 --> 00:16:54.070 align:middle line:84%
And maybe for simplicity,
I'll just say this is a 1-volt

00:16:54.070 --> 00:16:56.860 align:middle line:90%
signal.

00:16:56.860 --> 00:17:00.600 align:middle line:84%
And I will compare that
to this duty ratio signal.

00:17:00.600 --> 00:17:01.630 align:middle line:90%
So here's Vd.

00:17:01.630 --> 00:17:05.800 align:middle line:90%


00:17:05.800 --> 00:17:08.530 align:middle line:90%
And Vd is-- maybe it's changing.

00:17:08.530 --> 00:17:10.369 align:middle line:90%
But it's changing very slowly.

00:17:10.369 --> 00:17:12.940 align:middle line:90%
So here's Vd.

00:17:12.940 --> 00:17:15.560 align:middle line:84%
And I'm just going to run
this into a comparator.

00:17:15.560 --> 00:17:19.310 align:middle line:90%
I'm going to call this VTRI.

00:17:19.310 --> 00:17:28.820 align:middle line:84%
And I'll compare VTRI to
Vd and generate q of t.

00:17:28.820 --> 00:17:31.340 align:middle line:84%
So all I'm going to do is-- at
the beginning of each cycle,

00:17:31.340 --> 00:17:35.750 align:middle line:84%
what you can see
is if this is time,

00:17:35.750 --> 00:17:37.640 align:middle line:84%
at the beginning of
each cycle, q of t

00:17:37.640 --> 00:17:46.470 align:middle line:84%
is going to go high until the
triangle exceeds the V sub d,

00:17:46.470 --> 00:17:48.510 align:middle line:90%
in which case I'll go low.

00:17:48.510 --> 00:17:52.350 align:middle line:84%
And then I'll go high at the
beginning of the next cycle.

00:17:52.350 --> 00:17:57.540 align:middle line:84%
And I'll stay high until
I hit the end, until I hit

00:17:57.540 --> 00:18:00.720 align:middle line:90%
the comparison, and so forth--

00:18:00.720 --> 00:18:07.300 align:middle line:84%
same again in the next
cycle, and so forth.

00:18:07.300 --> 00:18:12.090 align:middle line:84%
So by comparing my V sub d
to a linearly rising element,

00:18:12.090 --> 00:18:14.490 align:middle line:84%
I can generate something
where this is--

00:18:14.490 --> 00:18:17.310 align:middle line:84%
whatever V sub d was here,
that's-- represents some duty

00:18:17.310 --> 00:18:18.030 align:middle line:90%
ratio.

00:18:18.030 --> 00:18:20.235 align:middle line:84%
That's going to be
dT at this point.

00:18:20.235 --> 00:18:22.110 align:middle line:84%
And I'm going to have
dT at this point, which

00:18:22.110 --> 00:18:23.970 align:middle line:90%
might be different, et cetera.

00:18:23.970 --> 00:18:27.570 align:middle line:84%
And each cycle, I
get a duty ratio

00:18:27.570 --> 00:18:31.560 align:middle line:84%
that's related to V sub d during
that cycle assuming V sub d

00:18:31.560 --> 00:18:34.980 align:middle line:90%
doesn't vary very quickly.

00:18:34.980 --> 00:18:38.280 align:middle line:84%
So this is how I build
the PWM generator.

00:18:38.280 --> 00:18:41.220 align:middle line:90%
That's this block here.

00:18:41.220 --> 00:18:42.490 align:middle line:90%
That's not how I model it.

00:18:42.490 --> 00:18:43.900 align:middle line:90%
That's just how I implement it.

00:18:43.900 --> 00:18:48.360 align:middle line:84%
So from a mental
perspective, we can

00:18:48.360 --> 00:18:51.090 align:middle line:84%
worry about going
from some desired duty

00:18:51.090 --> 00:18:54.210 align:middle line:84%
ratio to some response or
the local average duty ratio

00:18:54.210 --> 00:18:56.670 align:middle line:84%
to some response
where I'm assuming

00:18:56.670 --> 00:18:59.880 align:middle line:84%
that Vd is only varying
very slowly within any given

00:18:59.880 --> 00:19:01.950 align:middle line:90%
switching cycle.

00:19:01.950 --> 00:19:05.272 align:middle line:84%
And if your compensator
lets it very,

00:19:05.272 --> 00:19:07.355 align:middle line:84%
very quickly, you're
probably going to be unhappy.

00:19:07.355 --> 00:19:12.570 align:middle line:90%


00:19:12.570 --> 00:19:15.160 align:middle line:84%
So that gives me a
way to implement this.

00:19:15.160 --> 00:19:18.300 align:middle line:84%
And I should say, by the
way, that if I go buy a PWM

00:19:18.300 --> 00:19:22.020 align:middle line:84%
chip for a typical DC-to-DC
converter or controller chip,

00:19:22.020 --> 00:19:27.570 align:middle line:84%
I'll usually get a reference,
some kind of error amplifier,

00:19:27.570 --> 00:19:31.830 align:middle line:84%
op-amp, and other things to
generate the compensator.

00:19:31.830 --> 00:19:33.790 align:middle line:90%
I'll get the PWM chip.

00:19:33.790 --> 00:19:36.480 align:middle line:84%
And in fact, this triangle
also serves as my clock.

00:19:36.480 --> 00:19:38.100 align:middle line:84%
So I can set the
clock frequency.

00:19:38.100 --> 00:19:41.830 align:middle line:84%
I can set T. And then maybe
it gives me a gate driver.

00:19:41.830 --> 00:19:45.180 align:middle line:84%
So I'll get all this
stuff in one chip

00:19:45.180 --> 00:19:48.430 align:middle line:90%
very often for a simple design.

00:19:48.430 --> 00:19:50.960 align:middle line:84%
Of course, you can also do a
lot of this stuff digitally

00:19:50.960 --> 00:19:56.160 align:middle line:84%
these days, depending upon
what kind of processor you use.

00:19:56.160 --> 00:19:58.920 align:middle line:90%
But this doesn't tell me--

00:19:58.920 --> 00:20:02.280 align:middle line:84%
this tells me how did I get
from duty ratio to the q of t.

00:20:02.280 --> 00:20:07.116 align:middle line:84%
But it doesn't tell me how
I model this whole block.

00:20:07.116 --> 00:20:10.830 align:middle line:84%
And that's what I'd
like to talk about now.

00:20:10.830 --> 00:20:13.860 align:middle line:84%
And we said we
are not interested

00:20:13.860 --> 00:20:15.750 align:middle line:84%
in this high-frequency
ripple, but only

00:20:15.750 --> 00:20:19.240 align:middle line:90%
the low-frequency behavior.

00:20:19.240 --> 00:20:22.200 align:middle line:84%
And towards that end, I'd
like to introduce what's

00:20:22.200 --> 00:20:24.350 align:middle line:90%
known as a local average.

00:20:24.350 --> 00:20:33.065 align:middle line:84%
So the local average
operator is this.

00:20:33.065 --> 00:20:37.710 align:middle line:84%
If I had some signal
for any signal x of t,

00:20:37.710 --> 00:20:40.080 align:middle line:84%
some time-varying waveform
x of t-- could be a voltage,

00:20:40.080 --> 00:20:42.580 align:middle line:84%
could be a current,
whatever I wanted--

00:20:42.580 --> 00:20:46.990 align:middle line:84%
I can define a local
average x bar of t

00:20:46.990 --> 00:20:53.590 align:middle line:84%
is defined as being equal to
1 over T integral between t

00:20:53.590 --> 00:20:59.060 align:middle line:84%
minus capital T and
t of x of tau d tau.

00:20:59.060 --> 00:21:02.470 align:middle line:84%
This is the local
average of a signal.

00:21:02.470 --> 00:21:04.310 align:middle line:90%
And what is this local average?

00:21:04.310 --> 00:21:06.790 align:middle line:90%
It's just a moving average.

00:21:06.790 --> 00:21:10.510 align:middle line:84%
So if I'm at my signal
time right now at time T,

00:21:10.510 --> 00:21:11.890 align:middle line:84%
what I'm going to
do is I'm going

00:21:11.890 --> 00:21:17.350 align:middle line:84%
to look back over 1
capital T and take

00:21:17.350 --> 00:21:20.170 align:middle line:84%
the average of the waveform
just over that time.

00:21:20.170 --> 00:21:22.420 align:middle line:84%
And then if I'm at another
time, I'll look back

00:21:22.420 --> 00:21:25.030 align:middle line:84%
and I'll take the average
over at that time.

00:21:25.030 --> 00:21:33.520 align:middle line:84%
So if I had some time-varying
waveform x of t and I said,

00:21:33.520 --> 00:21:42.100 align:middle line:90%
here's t1, maybe I'd go back.

00:21:42.100 --> 00:21:45.400 align:middle line:84%
And here's t1 minus
capital T. Maybe

00:21:45.400 --> 00:21:48.650 align:middle line:84%
I would take the average of
this waveform over that time.

00:21:48.650 --> 00:21:56.590 align:middle line:84%
And then if I'm at some other
time t2, I'd go back one cycle.

00:21:56.590 --> 00:21:59.836 align:middle line:90%
And this is t minus T2--

00:21:59.836 --> 00:22:03.670 align:middle line:84%
t2 minus capital T. And I'd look
at the average over this time

00:22:03.670 --> 00:22:04.790 align:middle line:90%
period, et cetera.

00:22:04.790 --> 00:22:06.490 align:middle line:84%
So at any given point,
I'm going to look

00:22:06.490 --> 00:22:11.740 align:middle line:84%
at what I've been doing
over the last capital T

00:22:11.740 --> 00:22:13.630 align:middle line:90%
and take that average.

00:22:13.630 --> 00:22:15.330 align:middle line:90%
Why am I doing that?

00:22:15.330 --> 00:22:19.210 align:middle line:84%
Well, because if I set capital
T to be my switching period,

00:22:19.210 --> 00:22:22.600 align:middle line:84%
I can look at what the
average of this variable

00:22:22.600 --> 00:22:28.930 align:middle line:84%
is over one switching
cycle at any point in time.

00:22:28.930 --> 00:22:32.180 align:middle line:90%


00:22:32.180 --> 00:22:35.840 align:middle line:84%
And we can think of this
as basically tracking

00:22:35.840 --> 00:22:41.000 align:middle line:84%
the low-frequency variations and
rejecting the switching ripple.

00:22:41.000 --> 00:22:43.040 align:middle line:84%
And we can think about
it qualitatively.

00:22:43.040 --> 00:22:45.150 align:middle line:84%
And we can think about
it quantitatively.

00:22:45.150 --> 00:22:47.750 align:middle line:84%
Any questions about
the idea of what we

00:22:47.750 --> 00:22:49.320 align:middle line:90%
want to do with this operator?

00:22:49.320 --> 00:22:54.650 align:middle line:90%


00:22:54.650 --> 00:22:58.250 align:middle line:84%
So what are the properties
of this operator?

00:22:58.250 --> 00:23:01.030 align:middle line:90%


00:23:01.030 --> 00:23:07.880 align:middle line:84%
The first is that it's LTI,
linear and time-invariant

00:23:07.880 --> 00:23:12.940 align:middle line:84%
So when I say it's linear,
I mean the following--

00:23:12.940 --> 00:23:20.850 align:middle line:84%
that if I took a times x
of t plus b times y of t

00:23:20.850 --> 00:23:26.860 align:middle line:84%
and then I took the local
average of this whole signal,

00:23:26.860 --> 00:23:32.470 align:middle line:84%
what I would get is
a times x bar of t

00:23:32.470 --> 00:23:34.960 align:middle line:90%
plus b times y bar of t.

00:23:34.960 --> 00:23:38.440 align:middle line:90%


00:23:38.440 --> 00:23:39.310 align:middle line:90%
That's nice.

00:23:39.310 --> 00:23:45.550 align:middle line:84%
It's also
time-invariant, by which

00:23:45.550 --> 00:23:52.930 align:middle line:84%
I mean if I took a signal x
and shifted it by some time t0

00:23:52.930 --> 00:23:58.020 align:middle line:84%
and then I took the local
average of that shifted signal,

00:23:58.020 --> 00:24:03.660 align:middle line:90%
it's equal to x bar shifted.

00:24:03.660 --> 00:24:06.690 align:middle line:84%
It's equal to x bar
of t shifted by t0.

00:24:06.690 --> 00:24:08.340 align:middle line:84%
So the local
average of the shift

00:24:08.340 --> 00:24:11.130 align:middle line:84%
is the shift of
the local average.

00:24:11.130 --> 00:24:13.750 align:middle line:90%
That make sense to everybody?

00:24:13.750 --> 00:24:15.670 align:middle line:84%
So now why am I
worrying that it's

00:24:15.670 --> 00:24:18.313 align:middle line:84%
a linear time-invariant
operator?

00:24:18.313 --> 00:24:20.230 align:middle line:84%
That means I can actually
represent this thing

00:24:20.230 --> 00:24:23.726 align:middle line:90%
with a transfer function.

00:24:23.726 --> 00:24:25.820 align:middle line:84%
As an operator, it's
basically a filter

00:24:25.820 --> 00:24:27.710 align:middle line:90%
that I can put on my circuit.

00:24:27.710 --> 00:24:33.480 align:middle line:84%
So this is just a way
of describing a filter.

00:24:33.480 --> 00:24:36.070 align:middle line:84%
Here's what the filter
transfer function looks like.

00:24:36.070 --> 00:24:38.590 align:middle line:84%
Here's the operator
definition and time domain.

00:24:38.590 --> 00:24:41.380 align:middle line:84%
Here's what it looks like
in the frequency domain.

00:24:41.380 --> 00:24:44.610 align:middle line:84%
What we can see is that at
low frequencies, near DC,

00:24:44.610 --> 00:24:45.970 align:middle line:90%
it has a gain of 1.

00:24:45.970 --> 00:24:49.050 align:middle line:84%
It passes through the
low-frequency content.

00:24:49.050 --> 00:24:51.540 align:middle line:84%
But this particular
filter just happens

00:24:51.540 --> 00:24:55.290 align:middle line:84%
to have zero amplitudes at
the switching frequency, twice

00:24:55.290 --> 00:24:57.580 align:middle line:84%
the switching frequency,
three times, et cetera.

00:24:57.580 --> 00:25:00.420 align:middle line:84%
So it very precisely keeps
the low-frequency stuff

00:25:00.420 --> 00:25:02.510 align:middle line:84%
and murders all the
switching ripple.

00:25:02.510 --> 00:25:05.160 align:middle line:90%


00:25:05.160 --> 00:25:08.440 align:middle line:84%
Now, could I pick some other
filter that captures this idea?

00:25:08.440 --> 00:25:09.880 align:middle line:90%
Sure.

00:25:09.880 --> 00:25:12.120 align:middle line:84%
But we just happened
to pick this one

00:25:12.120 --> 00:25:14.580 align:middle line:84%
because it's a good one
for our purpose, which

00:25:14.580 --> 00:25:16.200 align:middle line:84%
is to keep the
low-frequency content

00:25:16.200 --> 00:25:18.670 align:middle line:84%
and get rid of the switching
ripple and its harmonics.

00:25:18.670 --> 00:25:21.360 align:middle line:90%


00:25:21.360 --> 00:25:24.990 align:middle line:84%
You'll also notice that
the phase of this thing

00:25:24.990 --> 00:25:26.792 align:middle line:90%
is basically representing--

00:25:26.792 --> 00:25:28.500 align:middle line:84%
it's a linear phase
response-- basically,

00:25:28.500 --> 00:25:29.800 align:middle line:90%
a delay of half a cycle.

00:25:29.800 --> 00:25:30.420 align:middle line:90%
Why?

00:25:30.420 --> 00:25:35.640 align:middle line:84%
Because if I'm looking
now, I'm really asking,

00:25:35.640 --> 00:25:38.100 align:middle line:84%
what's my signal over
the last capital T?

00:25:38.100 --> 00:25:43.020 align:middle line:84%
So I'm, on average, looking
back half a t in duration.

00:25:43.020 --> 00:25:46.350 align:middle line:84%
If I didn't like that, I
could make my local average

00:25:46.350 --> 00:25:51.120 align:middle line:84%
between t minus T over 2 and t
plus T over 2, capital T over 2.

00:25:51.120 --> 00:25:52.830 align:middle line:84%
And then I wouldn't
have any delay in it.

00:25:52.830 --> 00:25:55.723 align:middle line:90%
But I also wouldn't be causal.

00:25:55.723 --> 00:25:57.390 align:middle line:84%
Now, I'm not saying
we're actually going

00:25:57.390 --> 00:25:59.970 align:middle line:90%
to physically build a filter.

00:25:59.970 --> 00:26:03.570 align:middle line:84%
But this is an
operator that lets

00:26:03.570 --> 00:26:07.440 align:middle line:84%
me think about how I'd process
my signals so that I could

00:26:07.440 --> 00:26:10.590 align:middle line:84%
keep the low-frequency content
and get rid of the switching

00:26:10.590 --> 00:26:12.560 align:middle line:90%
ripple.

00:26:12.560 --> 00:26:13.765 align:middle line:90%
Any questions about that?

00:26:13.765 --> 00:26:21.300 align:middle line:90%


00:26:21.300 --> 00:26:27.030 align:middle line:84%
So we're going to see how
to use this kind of filter

00:26:27.030 --> 00:26:28.325 align:middle line:90%
to do interesting things.

00:26:28.325 --> 00:26:31.620 align:middle line:90%


00:26:31.620 --> 00:26:36.385 align:middle line:84%
There's a few ways
we can use it.

00:26:36.385 --> 00:26:38.850 align:middle line:90%
And they give similar results.

00:26:38.850 --> 00:26:42.010 align:middle line:90%
But they're useful.

00:26:42.010 --> 00:26:45.310 align:middle line:84%
But let me just, lastly,
talk about a couple

00:26:45.310 --> 00:26:50.050 align:middle line:84%
of other properties
of this operator.

00:26:50.050 --> 00:26:53.140 align:middle line:84%
And the first that's
a very useful property

00:26:53.140 --> 00:26:54.985 align:middle line:90%
is the differentiation property.

00:26:54.985 --> 00:27:00.970 align:middle line:90%


00:27:00.970 --> 00:27:02.980 align:middle line:84%
And this is one of
the reasons why we

00:27:02.980 --> 00:27:04.450 align:middle line:90%
picked this particular filter.

00:27:04.450 --> 00:27:09.700 align:middle line:90%
If I took some signal dx dt--

00:27:09.700 --> 00:27:11.020 align:middle line:90%
so some time-varying signal--

00:27:11.020 --> 00:27:12.820 align:middle line:84%
I looked at its
derivative, and I

00:27:12.820 --> 00:27:15.880 align:middle line:84%
said, give me the local
average of the derivative

00:27:15.880 --> 00:27:19.720 align:middle line:84%
of this signal, It's
pretty easy to show

00:27:19.720 --> 00:27:25.900 align:middle line:84%
that this is the same as the
derivative of x bar of t.

00:27:25.900 --> 00:27:27.970 align:middle line:84%
That is, the derivative
of the local average

00:27:27.970 --> 00:27:31.627 align:middle line:84%
is the local average
of the derivative,

00:27:31.627 --> 00:27:33.210 align:middle line:84%
or the local average
of the derivative

00:27:33.210 --> 00:27:34.570 align:middle line:84%
is the derivative of
the local average.

00:27:34.570 --> 00:27:35.440 align:middle line:90%
Why is that true?

00:27:35.440 --> 00:27:37.990 align:middle line:84%
Because basically, I'm taking
the derivative of this thing.

00:27:37.990 --> 00:27:40.960 align:middle line:84%
I can interchange the order of
differentiation and integration.

00:27:40.960 --> 00:27:43.490 align:middle line:90%
I get back the same thing.

00:27:43.490 --> 00:27:45.690 align:middle line:84%
And this property
turns out to be

00:27:45.690 --> 00:27:48.335 align:middle line:84%
a very useful one for modeling,
as we'll see in a minute.

00:27:48.335 --> 00:27:52.720 align:middle line:90%


00:27:52.720 --> 00:28:04.640 align:middle line:84%
So how might I use this average
model or average operator?

00:28:04.640 --> 00:28:06.860 align:middle line:84%
And the way I'd like
to show you to use it

00:28:06.860 --> 00:28:09.670 align:middle line:90%
today is on a circuit itself.

00:28:09.670 --> 00:28:12.620 align:middle line:84%
So suppose I came up and I
gave you a boost converter

00:28:12.620 --> 00:28:16.910 align:middle line:84%
and I said, well, gee, could
I apply that average model

00:28:16.910 --> 00:28:21.360 align:middle line:84%
to the boost converter
itself, to the circuit?

00:28:21.360 --> 00:28:24.780 align:middle line:84%
And let's think about
what that means.

00:28:24.780 --> 00:28:29.580 align:middle line:84%
If I thought about any circuit,
what defines its topology?

00:28:29.580 --> 00:28:31.110 align:middle line:90%
What defines its topology?

00:28:31.110 --> 00:28:32.250 align:middle line:90%
What's connected to what?

00:28:32.250 --> 00:28:37.560 align:middle line:84%
The structure of it is really
the set of KVL and KCL equations

00:28:37.560 --> 00:28:40.620 align:middle line:90%
that exist for that circuit.

00:28:40.620 --> 00:28:49.020 align:middle line:84%
So any circuit has some set of
KVL equations, which essentially

00:28:49.020 --> 00:28:54.613 align:middle line:84%
are the sum of Vij is equal
to 0 around a bunch of loops.

00:28:54.613 --> 00:28:57.030 align:middle line:84%
So there's a whole bunch of
equations that have this form.

00:28:57.030 --> 00:29:00.680 align:middle line:90%


00:29:00.680 --> 00:29:06.320 align:middle line:84%
And likewise, there's a set
of KCL equations, the sum of i

00:29:06.320 --> 00:29:10.330 align:middle line:90%
sub k's, that are equal to 0.

00:29:10.330 --> 00:29:15.690 align:middle line:84%
So I could take any circuit and
write down a list of KVL and KCL

00:29:15.690 --> 00:29:20.130 align:middle line:84%
equations that pertain
to that circuit, one

00:29:20.130 --> 00:29:22.862 align:middle line:84%
for every voltage loop,
one for every node.

00:29:22.862 --> 00:29:25.320 align:middle line:84%
And we can go back and say--
figure out which ones of those

00:29:25.320 --> 00:29:28.410 align:middle line:90%
are independent, and so forth.

00:29:28.410 --> 00:29:31.470 align:middle line:84%
Well, what happens if
I came up and said,

00:29:31.470 --> 00:29:35.970 align:middle line:84%
let me take a KVL or KCL
equation or, more generally,

00:29:35.970 --> 00:29:38.220 align:middle line:84%
the ones that
represent my circuit

00:29:38.220 --> 00:29:42.300 align:middle line:90%
and average those things?

00:29:42.300 --> 00:29:48.090 align:middle line:84%
Well, all I would do is if I
took this and I averaged it--

00:29:48.090 --> 00:29:53.730 align:middle line:84%
when I say average, I
mean apply this operator--

00:29:53.730 --> 00:29:54.660 align:middle line:90%
what would I do?

00:29:54.660 --> 00:29:56.400 align:middle line:84%
I'd take the local
average of each side.

00:29:56.400 --> 00:29:58.470 align:middle line:90%
The local average of 0 is 0.

00:29:58.470 --> 00:30:03.110 align:middle line:84%
This is just the local average
of the sum, which I already

00:30:03.110 --> 00:30:06.545 align:middle line:84%
said, because of linearity, is
the sum of the local averages.

00:30:06.545 --> 00:30:13.640 align:middle line:84%
So this gives me, if I average
it, the sum of Vij local average

00:30:13.640 --> 00:30:15.050 align:middle line:90%
is equal to 0.

00:30:15.050 --> 00:30:19.330 align:middle line:84%
And this gives me the sum of i
sub k local average, which is 0.

00:30:19.330 --> 00:30:22.008 align:middle line:90%


00:30:22.008 --> 00:30:24.400 align:middle line:84%
So what I'm really
saying here is

00:30:24.400 --> 00:30:28.210 align:middle line:84%
if I have some circuit like
my boost converter up there,

00:30:28.210 --> 00:30:34.930 align:middle line:84%
I could apply averaging to that
circuit or all the KVL and KCL

00:30:34.930 --> 00:30:35.680 align:middle line:90%
equations.

00:30:35.680 --> 00:30:38.110 align:middle line:84%
And I could get
another circuit that's

00:30:38.110 --> 00:30:42.560 align:middle line:84%
average that has the
same connections in it.

00:30:42.560 --> 00:30:43.300 align:middle line:90%
Why?

00:30:43.300 --> 00:30:45.880 align:middle line:84%
Because for every KVL
equation in this circuit,

00:30:45.880 --> 00:30:48.050 align:middle line:84%
there's an identical KVL
equation in this circuit.

00:30:48.050 --> 00:30:50.020 align:middle line:84%
And it just has
averaged voltages.

00:30:50.020 --> 00:30:52.960 align:middle line:84%
And likewise, every
KCL in this circuit

00:30:52.960 --> 00:30:56.500 align:middle line:84%
generates a new KCL circuit
just with averaged currents.

00:30:56.500 --> 00:30:59.770 align:middle line:84%
So I can get a new circuit
with the same topology

00:30:59.770 --> 00:31:01.305 align:middle line:90%
for which averages pertain.

00:31:01.305 --> 00:31:03.920 align:middle line:90%


00:31:03.920 --> 00:31:05.090 align:middle line:90%
Why does this work?

00:31:05.090 --> 00:31:07.710 align:middle line:84%
This is the-- similar
to what we were saying.

00:31:07.710 --> 00:31:10.140 align:middle line:84%
Remember, we talked
about, well, there's

00:31:10.140 --> 00:31:14.200 align:middle line:84%
average KVL and average
KCL over all time

00:31:14.200 --> 00:31:15.900 align:middle line:90%
from periodic steady state.

00:31:15.900 --> 00:31:18.250 align:middle line:84%
Well, I can also talk
about it over a cycle.

00:31:18.250 --> 00:31:21.040 align:middle line:84%
If KVL holds
instantaneously, then it

00:31:21.040 --> 00:31:22.970 align:middle line:84%
ought to hold for
the local averages.

00:31:22.970 --> 00:31:24.970 align:middle line:84%
And likewise, if KCL
into a circuit node

00:31:24.970 --> 00:31:27.670 align:middle line:84%
holds instantaneously,
it ought to hold

00:31:27.670 --> 00:31:29.060 align:middle line:90%
averaged over the last cycle.

00:31:29.060 --> 00:31:32.570 align:middle line:84%
So it makes sense that you
should be able to do this.

00:31:32.570 --> 00:31:35.740 align:middle line:84%
And the key point here is
because these equations

00:31:35.740 --> 00:31:38.140 align:middle line:84%
have the same form
as these equations,

00:31:38.140 --> 00:31:41.410 align:middle line:84%
you get the same exact circuit
back, the same exact circuit

00:31:41.410 --> 00:31:43.100 align:middle line:90%
topology back.

00:31:43.100 --> 00:31:45.370 align:middle line:84%
What the elements in
that circuit topology do

00:31:45.370 --> 00:31:47.140 align:middle line:90%
is another question.

00:31:47.140 --> 00:31:49.990 align:middle line:84%
We haven't said how are
voltages and currents

00:31:49.990 --> 00:31:52.120 align:middle line:90%
of the elements related.

00:31:52.120 --> 00:31:56.770 align:middle line:84%
All we've said is that the
circuit topology stays the same.

00:31:56.770 --> 00:31:58.200 align:middle line:90%
Any questions about that?

00:31:58.200 --> 00:32:01.800 align:middle line:90%


00:32:01.800 --> 00:32:04.450 align:middle line:84%
Let's start talking
about circuit elements.

00:32:04.450 --> 00:32:08.163 align:middle line:90%
What do I have in this circuit?

00:32:08.163 --> 00:32:10.080 align:middle line:84%
If I come back and look
at my boost converter,

00:32:10.080 --> 00:32:12.960 align:middle line:84%
I have inductors, capacitors,
resistors, and then switches

00:32:12.960 --> 00:32:16.610 align:middle line:90%
and sources and switches.

00:32:16.610 --> 00:32:19.930 align:middle line:84%
Well, the local
average of a source

00:32:19.930 --> 00:32:21.680 align:middle line:84%
is just the local
average of a source.

00:32:21.680 --> 00:32:25.160 align:middle line:90%
So VIN would become VIN bar.

00:32:25.160 --> 00:32:26.900 align:middle line:90%
But what about a resistor?

00:32:26.900 --> 00:32:28.670 align:middle line:90%
What about my load resistor?

00:32:28.670 --> 00:32:31.010 align:middle line:84%
Well, if I took
my load resistor,

00:32:31.010 --> 00:32:35.270 align:middle line:90%
what I really have is V--

00:32:35.270 --> 00:32:43.130 align:middle line:84%
I have i sub R and V sub R.
And what I get is V sub R

00:32:43.130 --> 00:32:46.550 align:middle line:90%
is equal to i sub R times R.

00:32:46.550 --> 00:32:52.350 align:middle line:84%
Well, what happens if I take
the local average of that guy?

00:32:52.350 --> 00:32:55.562 align:middle line:84%
I'm just going to take the
local average of this equation.

00:32:55.562 --> 00:32:56.520 align:middle line:90%
So I'll come over here.

00:32:56.520 --> 00:32:58.050 align:middle line:90%
And I'll average the left.

00:32:58.050 --> 00:32:59.280 align:middle line:90%
And I'll average the right.

00:32:59.280 --> 00:33:02.130 align:middle line:84%
And I can pull R
out of the equation.

00:33:02.130 --> 00:33:06.630 align:middle line:84%
So then my average element
ought to just be this.

00:33:06.630 --> 00:33:12.870 align:middle line:84%
I have V sub R bar,
i sub R bar, and R

00:33:12.870 --> 00:33:14.940 align:middle line:84%
because my
relationship is simply

00:33:14.940 --> 00:33:20.790 align:middle line:84%
V sub R bar is equal to i
sub R bar R, which is exactly

00:33:20.790 --> 00:33:23.810 align:middle line:90%
the relation of a resistor.

00:33:23.810 --> 00:33:27.260 align:middle line:84%
So that just says if I had a
resistor in my original circuit

00:33:27.260 --> 00:33:30.110 align:middle line:84%
and I look at the local average
of the constitutive relation

00:33:30.110 --> 00:33:34.220 align:middle line:84%
of the two things connecting
the nodes, if it's a resistor,

00:33:34.220 --> 00:33:36.850 align:middle line:90%
it just stays being a resistor.

00:33:36.850 --> 00:33:39.540 align:middle line:90%
That make sense?

00:33:39.540 --> 00:33:41.535 align:middle line:84%
Well, what happens if
I have an inductor?

00:33:41.535 --> 00:33:44.250 align:middle line:90%


00:33:44.250 --> 00:33:49.320 align:middle line:84%
I have V sub L, i sub
L. And the relationship

00:33:49.320 --> 00:33:54.240 align:middle line:84%
is V sub L is equal
to L di sub L dt.

00:33:54.240 --> 00:33:58.740 align:middle line:84%
Well, if I average
this guy, I'm going

00:33:58.740 --> 00:34:02.160 align:middle line:84%
to take the local average here
and the local average here.

00:34:02.160 --> 00:34:04.370 align:middle line:84%
This shouldn't have
been a local average.

00:34:04.370 --> 00:34:05.800 align:middle line:90%
And this would give me what?

00:34:05.800 --> 00:34:10.320 align:middle line:84%
Well, the relationship
is V sub L bar.

00:34:10.320 --> 00:34:14.010 align:middle line:84%
Now, I can pull the L
out because of linearity.

00:34:14.010 --> 00:34:15.900 align:middle line:84%
And the local average
of the derivative

00:34:15.900 --> 00:34:17.733 align:middle line:84%
becomes the derivative
of the local average.

00:34:17.733 --> 00:34:19.570 align:middle line:84%
I said that was my
property over here.

00:34:19.570 --> 00:34:26.310 align:middle line:84%
And what I get is then-- is
equal to L d dt of iL bar, which

00:34:26.310 --> 00:34:36.020 align:middle line:84%
is just an inductor of value
L. Does that make sense?

00:34:36.020 --> 00:34:39.840 align:middle line:84%
I could do the same
thing with a capacitor.

00:34:39.840 --> 00:34:42.780 align:middle line:84%
So the beautiful
thing here is if I

00:34:42.780 --> 00:34:46.469 align:middle line:84%
go to average my circuit,
the resistors, inductors,

00:34:46.469 --> 00:34:51.340 align:middle line:84%
capacitors, sources just
become the local averages

00:34:51.340 --> 00:34:52.370 align:middle line:90%
of themselves.

00:34:52.370 --> 00:34:55.805 align:middle line:90%


00:34:55.805 --> 00:34:59.420 align:middle line:84%
Well, that's nice because
what I'm suggesting

00:34:59.420 --> 00:35:02.840 align:middle line:84%
is I can come to this circuit
and take its local average

00:35:02.840 --> 00:35:05.180 align:middle line:84%
and come up with a new circuit
that does the same thing,

00:35:05.180 --> 00:35:08.230 align:middle line:90%
but without switching ripple.

00:35:08.230 --> 00:35:11.680 align:middle line:90%
That make sense to everybody?

00:35:11.680 --> 00:35:15.705 align:middle line:84%
Let me see how I
would do this here.

00:35:15.705 --> 00:35:19.980 align:middle line:90%


00:35:19.980 --> 00:35:22.410 align:middle line:84%
But in order to do it,
what I haven't said

00:35:22.410 --> 00:35:25.720 align:middle line:90%
is what happens to the switches.

00:35:25.720 --> 00:35:27.925 align:middle line:84%
And that's a little
trickier to think about.

00:35:27.925 --> 00:35:34.130 align:middle line:90%


00:35:34.130 --> 00:35:36.800 align:middle line:84%
To do that, let me make
something that's a little bit

00:35:36.800 --> 00:35:39.910 align:middle line:90%
circuit model-friendly.

00:35:39.910 --> 00:35:42.320 align:middle line:84%
So let me come up with a
different model for my boost

00:35:42.320 --> 00:35:43.150 align:middle line:90%
converter.

00:35:43.150 --> 00:35:50.510 align:middle line:84%
My boost converter had an
input voltage, an inductor,

00:35:50.510 --> 00:35:53.760 align:middle line:90%
L of that with a current iL.

00:35:53.760 --> 00:36:01.050 align:middle line:84%
And then it had a capacitor,
C, and a resistor, R,

00:36:01.050 --> 00:36:05.605 align:middle line:84%
with an output
voltage VOUT on it.

00:36:05.605 --> 00:36:08.825 align:middle line:84%
And then it had the
switch in the diode.

00:36:08.825 --> 00:36:11.496 align:middle line:90%


00:36:11.496 --> 00:36:14.520 align:middle line:84%
And I could represent everything
with the switch in the diode.

00:36:14.520 --> 00:36:17.490 align:middle line:84%
But maybe it would be easier
from a modeling perspective

00:36:17.490 --> 00:36:20.580 align:middle line:84%
if I just came back and
modeled the switch in diode

00:36:20.580 --> 00:36:23.220 align:middle line:84%
with equivalent
dependent sources.

00:36:23.220 --> 00:36:25.535 align:middle line:84%
And here's how I'm
going to argue--

00:36:25.535 --> 00:36:27.785 align:middle line:84%
and let me-- there's a couple
of ways I could do this.

00:36:27.785 --> 00:36:30.830 align:middle line:90%


00:36:30.830 --> 00:36:32.990 align:middle line:90%
Maybe the switch--

00:36:32.990 --> 00:36:37.280 align:middle line:84%
I have to worry about
what's the voltage, Vx, here

00:36:37.280 --> 00:36:40.260 align:middle line:84%
and the current,
ix, at this node.

00:36:40.260 --> 00:36:42.790 align:middle line:90%
Maybe this is Vx and this is ix.

00:36:42.790 --> 00:36:45.530 align:middle line:90%


00:36:45.530 --> 00:36:52.400 align:middle line:84%
Maybe I would model this as
a dependent voltage source.

00:36:52.400 --> 00:36:56.540 align:middle line:84%
So what would this
voltage source be?

00:36:56.540 --> 00:36:59.840 align:middle line:84%
I could write this voltage
source, dependent source,

00:36:59.840 --> 00:37:08.950 align:middle line:84%
as being 1 minus q times
VOUT because notice

00:37:08.950 --> 00:37:11.610 align:middle line:90%
this voltage, Vx, pulsates.

00:37:11.610 --> 00:37:14.320 align:middle line:84%
When the switch is on,
when q is high, it's 0.

00:37:14.320 --> 00:37:16.600 align:middle line:84%
And when switch is off,
it's equal to VOUT.

00:37:16.600 --> 00:37:18.780 align:middle line:84%
So in continuous
conduction mode,

00:37:18.780 --> 00:37:21.900 align:middle line:84%
this is a perfectly
legitimate representation

00:37:21.900 --> 00:37:23.730 align:middle line:84%
of what the voltage
is doing there.

00:37:23.730 --> 00:37:26.700 align:middle line:84%
So I'm replacing the
switch with something

00:37:26.700 --> 00:37:31.740 align:middle line:84%
that generates the same
voltage, Vx, as the switch does.

00:37:31.740 --> 00:37:35.250 align:middle line:84%
I'm going to replace
the current diode

00:37:35.250 --> 00:37:39.960 align:middle line:84%
with a dependent current
source that equals id.

00:37:39.960 --> 00:37:45.330 align:middle line:84%
And that would be
1 minus q times iL.

00:37:45.330 --> 00:37:47.850 align:middle line:84%
When the switch is
on, this current

00:37:47.850 --> 00:37:49.650 align:middle line:90%
is 0 because the diode is off.

00:37:49.650 --> 00:37:52.500 align:middle line:84%
When the switch is off, this
dependent current source

00:37:52.500 --> 00:37:55.120 align:middle line:90%
is equal to iL.

00:37:55.120 --> 00:37:57.480 align:middle line:84%
So I've got one
dependent voltage source

00:37:57.480 --> 00:37:59.340 align:middle line:84%
and one dependent
current source, which

00:37:59.340 --> 00:38:01.650 align:middle line:84%
impose the same
constraints as what's

00:38:01.650 --> 00:38:07.080 align:middle line:84%
happening at this node as
the original switch in diode.

00:38:07.080 --> 00:38:08.405 align:middle line:90%
Any questions about that?

00:38:08.405 --> 00:38:11.290 align:middle line:90%


00:38:11.290 --> 00:38:13.096 align:middle line:90%
Yeah, Laurie?

00:38:13.096 --> 00:38:19.010 align:middle line:84%
STUDENT: So [INAUDIBLE] is
your choice [INAUDIBLE]?

00:38:19.010 --> 00:38:21.100 align:middle line:90%
DAVID PERREAULT: No.

00:38:21.100 --> 00:38:22.840 align:middle line:84%
In fact, I could
have modeled this

00:38:22.840 --> 00:38:24.100 align:middle line:84%
with a dependent
current source and that

00:38:24.100 --> 00:38:25.150 align:middle line:90%
with a dependent voltage source.

00:38:25.150 --> 00:38:26.483 align:middle line:90%
It would have been totally fine.

00:38:26.483 --> 00:38:28.830 align:middle line:84%
It would have done
the same thing.

00:38:28.830 --> 00:38:31.390 align:middle line:84%
There's a lot of
ways I could do this.

00:38:31.390 --> 00:38:33.910 align:middle line:84%
And in fact, I don't
even have to do it.

00:38:33.910 --> 00:38:38.000 align:middle line:84%
I could operate everything I was
going to say with the switches.

00:38:38.000 --> 00:38:39.580 align:middle line:84%
But really, what
I'm interested in

00:38:39.580 --> 00:38:41.530 align:middle line:84%
is, how does the
switch in the diode

00:38:41.530 --> 00:38:44.050 align:middle line:84%
control the waveforms
in the circuit

00:38:44.050 --> 00:38:48.100 align:middle line:84%
and cause currents to be fed
to the capacitor and voltages

00:38:48.100 --> 00:38:49.400 align:middle line:90%
to be fed to the inductor?

00:38:49.400 --> 00:38:52.850 align:middle line:84%
And this is just a
simpler way to get it.

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

00:38:56.095 --> 00:39:00.250 align:middle line:84%
So this is still a
switching circuit.

00:39:00.250 --> 00:39:03.250 align:middle line:84%
In fact, if I simulated this
circuit and I knew q of t

00:39:03.250 --> 00:39:03.970 align:middle line:90%
from some--

00:39:03.970 --> 00:39:07.120 align:middle line:84%
I ran a controller
and I had some q of t,

00:39:07.120 --> 00:39:08.530 align:middle line:90%
I could simulate this.

00:39:08.530 --> 00:39:13.340 align:middle line:84%
And it would generate exactly
this switching waveform.

00:39:13.340 --> 00:39:16.180 align:middle line:84%
If I told you q of
t and then q of t

00:39:16.180 --> 00:39:18.940 align:middle line:84%
is the constant duty
ratio here and I simulated

00:39:18.940 --> 00:39:23.560 align:middle line:84%
this circuit with that q of t,
I would-- and I changed the load

00:39:23.560 --> 00:39:26.970 align:middle line:84%
resistance, I would get
exactly that response.

00:39:26.970 --> 00:39:30.070 align:middle line:84%
So as long as I'm in
continuous conduction mode,

00:39:30.070 --> 00:39:33.800 align:middle line:84%
this model represents
that circuit.

00:39:33.800 --> 00:39:37.510 align:middle line:84%
But I want to get
rid of the switching.

00:39:37.510 --> 00:39:40.830 align:middle line:84%
So let me just go
average this circuit.

00:39:40.830 --> 00:39:43.470 align:middle line:84%
I'm going to apply that
operator to that circuit.

00:39:43.470 --> 00:39:44.700 align:middle line:90%
And what do I know?

00:39:44.700 --> 00:39:47.760 align:middle line:84%
Well, I know that if I apply
the operator to the circuit,

00:39:47.760 --> 00:39:51.790 align:middle line:84%
the topology of the new
circuit doesn't change.

00:39:51.790 --> 00:39:54.240 align:middle line:90%
Why?

00:39:54.240 --> 00:39:55.920 align:middle line:84%
Because when I
apply averaging, I

00:39:55.920 --> 00:39:58.200 align:middle line:84%
get the same set of
KVL and KCL equations.

00:39:58.200 --> 00:40:01.390 align:middle line:84%
So the topology
ought to be the same.

00:40:01.390 --> 00:40:04.530 align:middle line:84%
And what that means is I
can take the same circuit.

00:40:04.530 --> 00:40:11.070 align:middle line:84%
And I can just replace VIN
by VIN bar, iL by iL bar,

00:40:11.070 --> 00:40:12.990 align:middle line:90%
VOUT by VOUT bar.

00:40:12.990 --> 00:40:16.050 align:middle line:84%
And L, C, and R
all stay the same

00:40:16.050 --> 00:40:17.580 align:middle line:84%
because I've told
you what happens

00:40:17.580 --> 00:40:23.720 align:middle line:84%
to the I-V characteristics
of my linear time-invariant

00:40:23.720 --> 00:40:25.332 align:middle line:90%
components.

00:40:25.332 --> 00:40:27.740 align:middle line:84%
The only thing I haven't
said what happens

00:40:27.740 --> 00:40:31.920 align:middle line:84%
is to these two components
I've drawn in pink.

00:40:31.920 --> 00:40:35.210 align:middle line:84%
And so what I really have to
do is take the local average

00:40:35.210 --> 00:40:41.240 align:middle line:84%
of the product of VOUT and
the switching waveform and iL

00:40:41.240 --> 00:40:44.270 align:middle line:90%
and the switching waveform.

00:40:44.270 --> 00:40:46.580 align:middle line:84%
And that's ugly
because now I have

00:40:46.580 --> 00:40:49.130 align:middle line:90%
the local average of a product.

00:40:49.130 --> 00:40:53.000 align:middle line:84%
And I've got to go think
about that a little bit.

00:40:53.000 --> 00:40:56.090 align:middle line:84%
Now, let me tell you something
about the local average

00:40:56.090 --> 00:40:58.640 align:middle line:90%
of products.

00:40:58.640 --> 00:41:03.230 align:middle line:84%
One property that this operator
doesn't have, in general,

00:41:03.230 --> 00:41:11.600 align:middle line:84%
is that typically, if
I have x of t y of t

00:41:11.600 --> 00:41:20.840 align:middle line:84%
and I take the local average
of that, in general, it's not

00:41:20.840 --> 00:41:25.850 align:middle line:90%
equal to x bar of t y bar of t.

00:41:25.850 --> 00:41:30.490 align:middle line:84%
You can't just
arbitrarily do that.

00:41:30.490 --> 00:41:32.240 align:middle line:90%
How can I prove it to you?

00:41:32.240 --> 00:41:38.400 align:middle line:84%
Suppose I had two signals
that were like this.

00:41:38.400 --> 00:41:39.825 align:middle line:90%
Here's x of t.

00:41:39.825 --> 00:41:45.840 align:middle line:90%


00:41:45.840 --> 00:41:49.500 align:middle line:84%
Suppose x of t is just a
50% duty ratio square wave

00:41:49.500 --> 00:41:50.130 align:middle line:90%
like this.

00:41:50.130 --> 00:41:51.690 align:middle line:90%
Here's 0.5t.

00:41:51.690 --> 00:41:52.980 align:middle line:90%
Here's t.

00:41:52.980 --> 00:41:56.650 align:middle line:90%
This is x of t.

00:41:56.650 --> 00:42:00.810 align:middle line:84%
What is x bar of
t for that signal?

00:42:00.810 --> 00:42:05.907 align:middle line:84%
And suppose this goes on
forever and this is of height 1.

00:42:05.907 --> 00:42:06.990 align:middle line:90%
It's just going to be 1/2.

00:42:06.990 --> 00:42:09.870 align:middle line:84%
At any given time, if I
slide a window over this

00:42:09.870 --> 00:42:11.580 align:middle line:84%
and I take the
average, I've always

00:42:11.580 --> 00:42:13.930 align:middle line:90%
got it high half the time.

00:42:13.930 --> 00:42:20.470 align:middle line:84%
So x bar of t is
just equal to 0.5.

00:42:20.470 --> 00:42:23.970 align:middle line:84%
Well, what happens if I made
its complement, y bar of t?

00:42:23.970 --> 00:42:30.120 align:middle line:90%


00:42:30.120 --> 00:42:32.800 align:middle line:90%
I'm sorry, here's y of t.

00:42:32.800 --> 00:42:35.920 align:middle line:84%
y of t is exactly the
complement of x of t.

00:42:35.920 --> 00:42:44.375 align:middle line:84%
So what I would argue is that y
bar of t is also equal to 0.5.

00:42:44.375 --> 00:42:46.000 align:middle line:84%
It's just-- happens
to be out of phase.

00:42:46.000 --> 00:42:48.730 align:middle line:90%


00:42:48.730 --> 00:42:50.730 align:middle line:90%
Well, what's x of t y of t?

00:42:50.730 --> 00:42:56.440 align:middle line:90%


00:42:56.440 --> 00:42:59.050 align:middle line:84%
I think I heard somebody
say that it's 0.

00:42:59.050 --> 00:43:01.250 align:middle line:90%
One of them is 0 all the time.

00:43:01.250 --> 00:43:03.160 align:middle line:90%
And that's "zip."

00:43:03.160 --> 00:43:07.120 align:middle line:84%
So if I took the local
average of x bar--

00:43:07.120 --> 00:43:10.120 align:middle line:84%
if I took the local
average of x times y,

00:43:10.120 --> 00:43:12.430 align:middle line:84%
that would have
to be equal to 0.

00:43:12.430 --> 00:43:20.420 align:middle line:84%
But if I took x bar y bar, that
would actually be equal to 0.25.

00:43:20.420 --> 00:43:23.560 align:middle line:84%
So that's proof that in
general, I can't just

00:43:23.560 --> 00:43:26.110 align:middle line:84%
take the local
average of the product

00:43:26.110 --> 00:43:28.360 align:middle line:84%
and expect it to be the
product of the local averages.

00:43:28.360 --> 00:43:32.280 align:middle line:84%
That just doesn't
work, generally.

00:43:32.280 --> 00:43:35.520 align:middle line:84%
And I care because I
have this local average

00:43:35.520 --> 00:43:36.760 align:middle line:90%
of a product over here.

00:43:36.760 --> 00:43:42.240 align:middle line:84%
But imagine the
reason this failed

00:43:42.240 --> 00:43:45.810 align:middle line:84%
was because when y was high,
x was low, and vice versa.

00:43:45.810 --> 00:43:49.750 align:middle line:84%
They were both
doing crazy stuff.

00:43:49.750 --> 00:43:54.310 align:middle line:84%
What happens if, perhaps,
one of x of t and y of t

00:43:54.310 --> 00:43:57.760 align:middle line:84%
look like a constant,
roughly speaking?

00:43:57.760 --> 00:43:59.720 align:middle line:90%
And what do I mean by constant?

00:43:59.720 --> 00:44:01.720 align:middle line:84%
I mean that it has
two properties.

00:44:01.720 --> 00:44:09.690 align:middle line:84%
If x or y has, one,
a small ripple--

00:44:09.690 --> 00:44:13.060 align:middle line:90%


00:44:13.060 --> 00:44:18.310 align:middle line:84%
in other words, it's not varying
full-scale within the cycle--

00:44:18.310 --> 00:44:26.140 align:middle line:84%
and, two, slow variation,
meaning it's not one thing

00:44:26.140 --> 00:44:29.078 align:middle line:84%
in one cycle and jumping to some
massive thing in another cycle,

00:44:29.078 --> 00:44:31.120 align:middle line:84%
massively different in
another cycle, it's just--

00:44:31.120 --> 00:44:33.850 align:middle line:90%
the two waveforms just--

00:44:33.850 --> 00:44:36.220 align:middle line:84%
one of the two
just-- it may move,

00:44:36.220 --> 00:44:37.590 align:middle line:90%
but it only moves a little bit--

00:44:37.590 --> 00:44:40.312 align:middle line:90%


00:44:40.312 --> 00:44:46.870 align:middle line:84%
then I can think within any
given interval, one of those two

00:44:46.870 --> 00:44:50.210 align:middle line:84%
is constant and
then like linearity.

00:44:50.210 --> 00:44:53.860 align:middle line:84%
Then I can just take the
product of the local averages.

00:44:53.860 --> 00:44:58.090 align:middle line:84%
So in this case,
I can have xy bar

00:44:58.090 --> 00:45:00.590 align:middle line:84%
is approximately
equal to x bar y bar.

00:45:00.590 --> 00:45:02.800 align:middle line:84%
So the only reason
this failed is

00:45:02.800 --> 00:45:05.900 align:middle line:84%
because they're both flapping
up and down in counterpoint.

00:45:05.900 --> 00:45:07.700 align:middle line:84%
If only one of them is
flapping up and down

00:45:07.700 --> 00:45:10.900 align:middle line:84%
and the other is constant,
at least constant--

00:45:10.900 --> 00:45:15.430 align:middle line:84%
not changing that much in
a given capital T interval,

00:45:15.430 --> 00:45:18.910 align:middle line:90%
I could make that approximation.

00:45:18.910 --> 00:45:21.855 align:middle line:84%
Does that make
sense to everybody?

00:45:21.855 --> 00:45:28.470 align:middle line:84%
So this might be true of
if x or y is an inductor

00:45:28.470 --> 00:45:31.650 align:middle line:90%
current or a capacitor voltage.

00:45:31.650 --> 00:45:35.437 align:middle line:84%
We know that even in that
example I was showing you, yeah,

00:45:35.437 --> 00:45:36.270 align:middle line:90%
there's some ripple.

00:45:36.270 --> 00:45:41.040 align:middle line:84%
But it's on top of
a big DC offset.

00:45:41.040 --> 00:45:44.710 align:middle line:84%
It's not really violating
that approximation very much.

00:45:44.710 --> 00:45:52.530 align:middle line:84%
So here, maybe I could
say that 1 minus q--

00:45:52.530 --> 00:45:57.060 align:middle line:84%
the product of 1
minus q times VOUT

00:45:57.060 --> 00:46:02.790 align:middle line:84%
is approximately equal to
1 minus q times VOUT bar

00:46:02.790 --> 00:46:08.910 align:middle line:84%
and 1 minus q times iL is
approximately equal to 1

00:46:08.910 --> 00:46:11.255 align:middle line:90%
minus q bar times iL bar.

00:46:11.255 --> 00:46:15.330 align:middle line:90%


00:46:15.330 --> 00:46:21.765 align:middle line:84%
Let me define d as being
equal to q bar of t.

00:46:21.765 --> 00:46:26.020 align:middle line:90%


00:46:26.020 --> 00:46:27.900 align:middle line:84%
In any given cycle,
if I'm assuming

00:46:27.900 --> 00:46:30.030 align:middle line:84%
my duty ratio is
changing slowly,

00:46:30.030 --> 00:46:32.640 align:middle line:84%
it's about equal to the
local average of q of t

00:46:32.640 --> 00:46:35.580 align:middle line:84%
because that's what my PWM
modulator over there was doing.

00:46:35.580 --> 00:46:38.120 align:middle line:90%
It was giving me a duty ratio.

00:46:38.120 --> 00:46:42.480 align:middle line:84%
Now, this is precisely only true
when I'm looking at capital T.

00:46:42.480 --> 00:46:43.590 align:middle line:90%
And I look back.

00:46:43.590 --> 00:46:46.500 align:middle line:84%
And I get d for that
cycle is exactly here

00:46:46.500 --> 00:46:48.100 align:middle line:84%
if I did my local
average right here.

00:46:48.100 --> 00:46:50.610 align:middle line:84%
But if d of t is
changing only slowly,

00:46:50.610 --> 00:46:55.740 align:middle line:84%
that's a pretty good model
to within half a cycle.

00:46:55.740 --> 00:46:59.200 align:middle line:90%
So then I could replace this.

00:46:59.200 --> 00:47:07.710 align:middle line:84%
I could say 1 minus q is equal
to 1 minus d times VOUT bar.

00:47:07.710 --> 00:47:11.920 align:middle line:84%
And this is equal to 1
minus d times iL bar.

00:47:11.920 --> 00:47:14.260 align:middle line:90%
And I can average this circuit.

00:47:14.260 --> 00:47:17.310 align:middle line:84%
And what I'm going
to get is this.

00:47:17.310 --> 00:47:23.760 align:middle line:90%
VIN bar iL bar--

00:47:23.760 --> 00:47:31.500 align:middle line:84%
this becomes a source 1
minus d times VOUT bar.

00:47:31.500 --> 00:47:44.310 align:middle line:84%
And this becomes 1 minus d
times iL bar CR VOUT bar.

00:47:44.310 --> 00:47:49.230 align:middle line:90%
This circuit has no switching.

00:47:49.230 --> 00:47:51.660 align:middle line:84%
d is a continuously
varying variable

00:47:51.660 --> 00:47:54.090 align:middle line:84%
that my controller
might generate.

00:47:54.090 --> 00:47:56.970 align:middle line:84%
There's no switching
left in this circuit.

00:47:56.970 --> 00:47:58.622 align:middle line:90%
It does vary in time.

00:47:58.622 --> 00:47:59.580 align:middle line:90%
It's a dynamic circuit.

00:47:59.580 --> 00:48:02.293 align:middle line:84%
It has an L and a C. And
if d changes over time,

00:48:02.293 --> 00:48:04.210 align:middle line:84%
the voltages and currents
in this will change.

00:48:04.210 --> 00:48:06.090 align:middle line:84%
But I've killed the
switching ripple,

00:48:06.090 --> 00:48:11.090 align:middle line:84%
essentially applying my local
average operator to the circuit.

00:48:11.090 --> 00:48:16.110 align:middle line:90%


00:48:16.110 --> 00:48:18.320 align:middle line:90%
That make sense to everybody?

00:48:18.320 --> 00:48:21.840 align:middle line:84%
Let's take a look at what
happens if I do that.

00:48:21.840 --> 00:48:29.480 align:middle line:84%
This is a simulation
of this exact circuit

00:48:29.480 --> 00:48:33.030 align:middle line:84%
for the same transient, except
that I'm simulating this thing.

00:48:33.030 --> 00:48:38.390 align:middle line:84%
It's in that little box
that says "average model."

00:48:38.390 --> 00:48:39.960 align:middle line:90%
There is a diode there.

00:48:39.960 --> 00:48:42.210 align:middle line:84%
That diode is just
providing a constant drop

00:48:42.210 --> 00:48:45.080 align:middle line:84%
because keep in mind my
approximate models didn't really

00:48:45.080 --> 00:48:48.030 align:middle line:84%
include constant diode
drops or anything like that.

00:48:48.030 --> 00:48:50.310 align:middle line:84%
So that diode there is
not doing any switching.

00:48:50.310 --> 00:48:52.230 align:middle line:84%
It's providing a
constant DC offset.

00:48:52.230 --> 00:48:54.530 align:middle line:84%
But this is the transient
you get when you change

00:48:54.530 --> 00:48:57.500 align:middle line:90%
the resistance in that circuit.

00:48:57.500 --> 00:48:59.390 align:middle line:90%
Here's the voltage.

00:48:59.390 --> 00:49:00.750 align:middle line:90%
And here's the current.

00:49:00.750 --> 00:49:03.380 align:middle line:90%
It's right up the middle.

00:49:03.380 --> 00:49:07.070 align:middle line:84%
So basically, I've got a circuit
that has second-order response.

00:49:07.070 --> 00:49:12.500 align:middle line:84%
And it tracks the average
values of my waveforms--

00:49:12.500 --> 00:49:14.630 align:middle line:90%
gotten rid of the switching.

00:49:14.630 --> 00:49:21.420 align:middle line:90%
So this circuit could be--

00:49:21.420 --> 00:49:23.730 align:middle line:90%
it's not in a controller form.

00:49:23.730 --> 00:49:26.910 align:middle line:84%
But it's a circuit that
tracks this whole thing

00:49:26.910 --> 00:49:28.150 align:middle line:90%
without any switching.

00:49:28.150 --> 00:49:30.740 align:middle line:90%


00:49:30.740 --> 00:49:31.690 align:middle line:90%
Questions about that?

00:49:31.690 --> 00:49:36.940 align:middle line:90%


00:49:36.940 --> 00:49:41.670 align:middle line:84%
Now, we're going to
take this up next class.

00:49:41.670 --> 00:49:49.670 align:middle line:84%
But I wanted to show you
the basis for doing this.

00:49:49.670 --> 00:49:52.840 align:middle line:84%
I want to say this is
really useful for building

00:49:52.840 --> 00:49:54.725 align:middle line:84%
control models for
converters because now I

00:49:54.725 --> 00:49:55.600 align:middle line:90%
have something that--

00:49:55.600 --> 00:49:58.780 align:middle line:84%
I've gotten rid of all the
complicated switching stuff.

00:49:58.780 --> 00:50:01.750 align:middle line:84%
But it still gives me the
low-frequency dynamics

00:50:01.750 --> 00:50:04.660 align:middle line:84%
that I want to deal
with my controller.

00:50:04.660 --> 00:50:09.430 align:middle line:84%
I will warn you that
this system is nonlinear.

00:50:09.430 --> 00:50:10.370 align:middle line:90%
Why?

00:50:10.370 --> 00:50:13.930 align:middle line:84%
Because you notice d is
my control variable here.

00:50:13.930 --> 00:50:16.900 align:middle line:84%
And it multiplies
the output voltage.

00:50:16.900 --> 00:50:18.770 align:middle line:84%
And it multiplies
the inductor current.

00:50:18.770 --> 00:50:21.160 align:middle line:84%
So I have a product of my
control input and my state

00:50:21.160 --> 00:50:21.830 align:middle line:90%
variables.

00:50:21.830 --> 00:50:24.100 align:middle line:84%
This is not a linear
system from-- in terms

00:50:24.100 --> 00:50:27.020 align:middle line:84%
of going from duty
ratio to output.

00:50:27.020 --> 00:50:29.660 align:middle line:84%
So I still have nonlinearity
I have to deal with.

00:50:29.660 --> 00:50:31.880 align:middle line:90%
And that's just life.

00:50:31.880 --> 00:50:34.820 align:middle line:84%
We'll talk about how
to deal with that.

00:50:34.820 --> 00:50:37.940 align:middle line:84%
It's very good for doing
low-frequency controller

00:50:37.940 --> 00:50:40.110 align:middle line:90%
modeling.

00:50:40.110 --> 00:50:41.940 align:middle line:84%
It's not useful
for other things.

00:50:41.940 --> 00:50:46.790 align:middle line:84%
So for example, if I asked you
to calculate power dissipation

00:50:46.790 --> 00:50:49.650 align:middle line:84%
of components, you
cannot use this model.

00:50:49.650 --> 00:50:50.550 align:middle line:90%
Why?

00:50:50.550 --> 00:50:53.260 align:middle line:84%
Because what would the power
dissipation in the switch be?

00:50:53.260 --> 00:50:54.718 align:middle line:84%
The power dissipation
of the switch

00:50:54.718 --> 00:50:56.730 align:middle line:84%
would be the switch
voltage times the switch

00:50:56.730 --> 00:50:59.950 align:middle line:84%
current, both of which are
pulsing up and down together.

00:50:59.950 --> 00:51:03.640 align:middle line:84%
It violates this assumption
I was talking about.

00:51:03.640 --> 00:51:05.790 align:middle line:84%
In fact, the voltage and
current on the switch

00:51:05.790 --> 00:51:07.970 align:middle line:90%
actually look a lot like that.

00:51:07.970 --> 00:51:10.250 align:middle line:84%
So I can use this average
model to do things

00:51:10.250 --> 00:51:11.640 align:middle line:90%
like control dynamics.

00:51:11.640 --> 00:51:13.040 align:middle line:90%
That's perfect for it.

00:51:13.040 --> 00:51:15.140 align:middle line:84%
I can't use it to
answer questions

00:51:15.140 --> 00:51:18.930 align:middle line:84%
like dissipation or
other kinds of things.

00:51:18.930 --> 00:51:22.140 align:middle line:90%
So I am well out of time today.

00:51:22.140 --> 00:51:25.440 align:middle line:84%
But we will take up the notion
of control modeling next class.

00:51:25.440 --> 00:51:27.350 align:middle line:90%
Have a great day.

00:51:27.350 --> 00:51:32.000 align:middle line:90%