MCT and PCT models: block diagrams

[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.

[From Bruce Gregory 9970326.1640 EST)]

Bill Powers (970326.1006 MST)

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.

Thanks for the clarification. I think I finally understand
Hans' fondness for this offspring of MCT. It is something so
ugly that only a parent could love it...

Bruce Gregory

[Hans Blom, 970327b]

(Bill Powers (970326.1006 MST))

The exploration of the MCT model going on between Hans Blom and me
seems to be stuck.

Oh no. What we seem to need is an even simpler example. I propose the
simplest imaginable: a controller with a gain only, and a similar
gain-only environment, adding a reference signal that varies every
dt. I'll work it out.

What we need is a block diagram of what is going on.

I understand that that is the kind of "language" you understand. The
"bare bones" MCT controller's block diagram -- two gains only -- will
probably be identical with that of the PCT controller.

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.

I treated this in my previous post. The output of the world-model x'
is updated at every iteration USING THE OBSERVATION. In our case, it
is simply "copied" -- but only because observations are noiseless.

We have bypassed the question of how the MCT model's internal
world-model becomes perfect. In fact, it can never be perfect ...

Let's bypass that question for now. At a later time we can
investigate if and when a model can be "perfect" and/or "good
enough".

The method used for adjusting the world-model in the MCT model is
diagrammed below:

We had agreed to skip this step, I thought. In my program, there _is_
no adjusting of the world-model, because we presupposed that a
perfect model would be available. Thus, this step has been skipped in
the program, and only its "output" (the model structure and
parameters) is used. The only modeling that does take place is that
of the disturbance.

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.

Well, that's a good start. Although the paradigms differ, the
behavior is similar. Now invert this finding: given similarly good
"explanations" of behavior, which is the correct paradigm? No, that
is not a serious question ;-).

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.

Bill, please inspect _my_ program -- this cannot and does not happen
in a _closed loop_ system, i.e. a controller that is able to perceive
the real world in every iteration. This only happens when "control"
is open loop!

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.

You only think so...

Greetings,

Hans