[From Bill Powers (970326.1006 MST)]
The exploration of the MCT model going on between Hans Blom and me seems to
be stuck. What we need is a block diagram of what is going on. Without a
block diagram, a purely mathematical treatment is open to all kinds of
shifting interpretations of the variables, and confusion easily arises.
Those trying to follow this discussion probably get lost in the details --
if they try to follow them at all. Perhaps drawing out what we're talking
about will make matters a little clearer.
First, the basic MCT model:
r
>
----------->[COMP] -->- (error = r - x)
> >
> [output computation]
> >
x'<--[World-Model]<-----u (output)
···
CONTROLLER
=====================================================
> ENVIRONMENT
x <--[Real Object]<-----u
Note that there is no feedback from x, the real controlled variable, to the
comparator. Instead, the output of the world-model, x', is compared with the
reference signal r, with the error entering an output computation that
produces the output u. This output enters the world-model and the
environment. The only control loop is the one that exists entirely inside
the controller (above the double line).
If the world-model were an exact representation of the Real Object's
response to the output, then controlling x' would result in making x behave
the same way -- in effect, making x match the reference signal r when x'
matches r. That's the basic principle of MCT.
For comparison, here is the PCT model for controlling x:
r
>
----------->[COMP] -->-
> >
> [output computation]
> >
> > CONTROLLER
=====================================================
> > ENVIRONMENT
x <--[Real Object]<-----u (output)
Note that the real controlled variable x is now compared with the reference
signal r (sensors and input functions are omitted from all these diagrams).
There is no internal world-model. If the output computation in the PCT model
is identical to the output computation in the MCT model, and if the internal
world-model in the MCT model is perfect, the two models will behave identically.
We have bypassed the question of how the MCT model's internal world-model
becomes perfect. In fact, it can never be perfect, because it is only a
simulation of the properties of the "Real Object". The PCT model uses only
the Real Object in its feedback loop, so does not have this problem. The
method used for adjusting the world-model in the MCT model is diagrammed below:
r
>
----------->[COMP] -->-
> >
> [output computation]
> >
x'<--[World-Model]<-----u (output)
> ^ |
\ | (adjust) |
[Kalman Filter] |
/ |
/ |
> > CONTROLLER
================================================================
> > ENVIRONMENT
x <--[Real Object]<------u
The Kalman Filter routine receives both x and x', and uses them as the basis
for adjusting the parameters of the world-model until x' matches x as
closely as possible at all times. The adjusted parameters are also used in
the output computation. How well this can be done depends on (1) how well
the general form of the world-model represents the physical properties of
the Real Object, (2) how accurately the parameter adjustments can be carried
out,(3) how rapidly the properties of the Real Object change over time in
comparison with the speed with which parameter adjustments can be made, and
(4) how accurately the output computation's parameters reflect the
parameters in the world-model.
So far we have not considered disturbances. Disturbances can be added to the
MCT model as follows:
r
>
----------->[COMP] -->-
> >
> [output computation]
> >
x'<--[World-Model]<-----u (output)
> ^ |
\ | (adjust) |
[Kalman Filter] |
/ |
/ |
> > CONTROLLER
================================================================
> > ENVIRONMENT
> <------u
x <--[Real Object]
<----- d (disturbance)
The Kalman Filter adjustments can insert a disturbance term into the
world-model, which is deduced from the behavior of x, x', and u. Of course
the position of this disturbance in the world-model must be the same as in
the environment, or have an equivalent effect on x'.
In the PCT model, the disturbance does not have to be modelled because there
is no world-model:
r
>
----------->[COMP] -->-
> >
> [output computation]
> >
> > CONTROLLER
================================================================
> > ENVIRONMENT
> <-----u
x <--[Real Object]
<---- d
Now, however, the output computation in the PCT model is not the same as
that in the MCT model, for in the MCT model it must include a disturbance
term which is not present in the PCT model.
----------------------------------------------------------------------
I have shown to my own satisfaction that the PCT model and the MCT model for
the example of the theodolite behave identically with respect to changes in
the reference signal, given that the MCT world-model has exactly the right
form and parameters. I show this in the program theo6mct.pas, which I have
distributed. However, the method Hans has used to provide the MCT model with
a simulated disturbance does not lead to canceling the effect of the
disturbance. There is an uncorrected error that causes x and x' to depart
from the reference value r, the departure becoming larger with time, without
limit.
In checking out my representation of the MCT model with Hans, I find that
Hans is now proposing a model that departs from the basic MCT architecture.
I can show the departure using the MCT model diagram -- there are actually
two variables involved, x and v, but the mistake Hans makes is the same for
both so I need only to show x. Hans is using this arrangement:
r
>
--------------->[COMP] -->-
> >
> [output computation]
> >
> x'<--[World-Model]<-----u (output)
> > CONTROLLER
=====|==========================================================
> > ENVIRONMENT
> <----u
--<-x <--[Real Object]
<--- d
The world-model's output x', now called "p" in Hans' proposed program, is
now used only in calculating a simulated disturbance. The control loop
itself uses the actual value of x instead of the simulated value x' (and the
same for v, which is used in place of the simulated velocity v'). So the
actual control loop is the PCT loop involving the Real Object, leaving the
world-model orphaned except for its use in calculating the disturbance. Even
worse, the _real_ values of x and v are used in the world-model computations
of the disturbance, instead of the modeled values x' and v'. So Hans'
proposed organization is neither the MCT model nor the PCT model; it is
something that uses parts of each, while claiming still to be the MCT model.
When a real disturbance suddenly occurs, it causes x to depart from x' by a
large amount, but this departure is not reflected in Hans' new model because
he uses the real x in place of the world-model's x'. The modeled
disturbance, of course, can't be corrected until after x has been found
different from x', so if the world-model's x' were used to calculate it, the
disturbance would not be corrected until the following iteration. However,
by using x in place of x', Hans is able to calculate the new disturbance one
iteration ahead of the time when the effect of the disturbance could
actually be detected, and so his model spuriously corrects the disturbance
when in fact it cannot do so under the original MCT architecture. It is only
this artificially advanced detection of the effect of the disturbance that
enables his model to respond correctly to the disturbance.
This is the error that seems to make the MCT model work, when in fact it
does not handle the disturbance correctly, and cannot. And this is the error
that so far Hans has refused to see as an error.
Hans says that he does not use block diagrams. But block diagrams show you
something that consideration of masses of calculations can't show: the
organization of the model. The block diagram imposes a discipline on the
images that float through your head while you shuffle symbols around, and it
keeps you from changing definitions and linkages without knowing it. Block
diagrams are essential to clear thinking about systems of any degree of
complexity beyond one cause and one effect.
Best,
Bill P.