------------------- ASCII.ASC follows --------------------
[Hans Blom, 970219]
(Bill Powers (970215.1911 PST))
Rick Marken and I decided to try to write a Pascal model of Hans' MCT
system to demonstrate the drift that would occur because of a small
error in the model. Imagine our surprise: it didn't happen. In fact, the
system behaved exactly as it should, the plant output x following
changes in the reference signal r. Maybe a little offset occurred
because of the assumed computational error, but nothing important.
Egads!
Good to hear. Now we can maybe start to discuss the important things ;-).
Rick said, when he first looked at Hans' equations, "Why, this is just a
closed-loop system!" But I didn't see it right away. We talked it over
for a hour while my brain twisted slowly in the wind. And then I, too,
saw it.
Great. Rick wasn't too far off the mark when he said that he recognized a
"simple proportional control system". It is that, too, but it is
different from a standard proportional controller in that it is "tuned"
or "adapted": its gain is exactly right.
Nice to see what a vacation can do. Let's discuss some remaining
misunderstandings.
u(k) = [r(k+1)-x(k)] / (a*dt)
Look at the argument in brackets: r(k+1)-x(k). Where did that x(k) come
from? The variable x(k) is the state of the output of the plant, the
controlled variable. This value is being used by the control system. So
how does the control system know the value of x? There's only one
possible answer: x is being SENSED by the control system.
Not too hasty! We're not finished yet! We've only started! You are right
in so far as this is the situation I described in my post: I assumed that
x is sensed at all times. But must that necessarily be so? No. Warning:
I'm adding a new twist; we're entering the terrain of "walking in the
dark". Let me explain.
Remember that we have a model, and that we can use it. In our example it
was
x(k+1) = x(k) + a*dt*u(k)
and, as I said in my earlier post, it has the character of a prediction.
At time instant k and given x(k) and u(k), we already "know" the value of
x(k+1); that makes it prediction. Now assume that we are at time instant
k, but somehow the observation x(k) is missing, e.g. because we weren't
looking. What can we do? Well, we can use the above formula to "recreate"
(an estimate of) x(k) given our knowledge of x(k-1) and u(k-1):
x(k) = x(k-1) + a*dt*u(k-1)
If the model is good, i.e. the modeling error is small, this
reconstruction will be good as well. We can similarly reconstruct even
_sequences_ of missing observations, but in this case errors due to what
you call "error integration" will start to play a role.
So I need to amend your statement to: There are two possible answers: (1)
x is being SENSED by the control system, and (2) x is being GENERATED by
the internal model. But even that is still far too black-and-white. In
psychological reality -- and in standard MCT control schemes -- there is
probably always a mix of the two: some perceptions are actively sensed by
the controller, whereas others are provided/generated/predicted by the
internal model.
Try such reconstructions out: discard, say, every second "perception" and
replace it by a reconstruction using the above formula. Such a scheme
will continue to work well. To see how rapidly the reconstruction method
degenerates, discard a sequence of N perceptions and then process some
perceptions again. As N increases, you will discover ever greater errors
(in the example the error increases indefinitely, but this often isn't
the case -- perhaps surprisingly: often the "prediction error" reaches an
upper bound). This is, essentially, "walking in the dark".
The lack of drift due to computational errors is thus explained: this is
the closed-loop PCT model!
In its "optimal" form: the controlled variable goes to the specified
reference value (1) in one step and (2) without error and (3) even if the
reference value changes over time in whichever way (assuming no
limitations on u).
In looking for a simple plant, I ended up with an unrealistic model.
No, the model was fine. You just forgot how little can be done (in terms
of achieving one's goal) in a very short time given limited means.
Now the big question comes to mind: has this use of x been present in
ALL the "MCT" models we've talked about?
No. Remember that we discussed an EXAMPLE. In that example I presupposed
a perfect, i.e. noise-free model. In the more general case where the
perception is contaminated by "observation" noise, x will not be equal to
the perception itself but to an internally model-generated, filtered
version of it, in order to cancel the noise.
I'm not in a position to search through past posts just now, but my
memory says yes: in every case, the current perceived value of x has
entered into the computation of u.
You incorrectly equate x with the current perceived value. It is not, in
general, and I've also discussed such a more general case. The equality
between x and p holds only if the perception is not noisy; also, it does
not hold when a perception is missing, of course. In every case, x refers
to a variable that is "simulated" by the internal model, NOT to a
perception of the "world out there". It is only when we also and
independently know that we can perceive the "world out there" without
error (observation noise), that we know that the prediction by the
internal model must necessarily coincide with the perception -- in the
sense that if it is not, the model must be further adjusted.
Basically, the MCT system uses closed-loop feedback control _of the
simulated plant_.
That's a good way of thinking of it. Remember that in real-life control
the "true" characteristics of the plant are unavailable and that we
necessarily have to work with a modeled or "simulated" plant.
I emphasize that this will not give us a _practical_ control system,
because this solution results in correcting an error in a single
instantaneous jump, which is not possible in any physical system.
Have you checked what happens if you specify an unrealistic goal? In the
theodolite example, specify r(k+1) to be equal to the final desired
position for all k. Even if the output is limited, control will be fine
(in this case, not necessarily in _all_ cases!) -- in the sense that the
goal will be realized as rapidly as is physically possible. It is fine to
specify unrealistic goals, but only if one has patience ;-).
If the magnitude of u is given realistic limits, and if the internal
simulation duplicates the physical dynamics of the plant, however, it
would be possible to arrive at SOME calculation of u that would result
in good control without violating physics.
In many cases of saturation of u, u will just be given the maximum or
minimum physically realizable value. Rather intuitive, not?
At long last, the MCT model is beginning to make sense in terms of the
PCT model. The basic control loop is exactly the same in both models,
and the problem of converting an error signal into an appropriate output
is also exactly the same.
Beware of hasty generalizations! Remember that my example treated a
special case. In particular, things get a bit more complicated if there
are modeling errors ("system noise") or perceptual errors ("observation
noise").
There are two primary differences. One is that the MCT model actually
controls a simulated perception generated by a simulation of the plant
function, rather than the plant's actual output.
Such a "filtered" perception is very useful if the plant's perception is
noise-corrupted.
The other is that any unmodeled disturbances acting on the real plant
can't be opposed by the MCT control system because it can't oppose
disturbances that aren't included in the simulation.
That is right. Informally said: the quality of control depends on how
accurately we can predict the future -- as a function of our actions. But
also note that what PCT considers "disturbances" can often themselves be
modeled successfully, as I have demonstrated in the past. That is
possible because the disturbances that you normally consider are not
fully random ("white noise").
Under what circumstances would the MCT model work better than the PCT
model?
I have answered that question as follows, in the context of the example:
The MCT model works better because the controlled variable goes to the
specified reference value (1) in one step and (2) without error and (3)
even if the reference value changes over time in whichever way (assuming
no limitations on u). Neither (1) and (3) are true for PCT models, and
(2) generally takes more time in PCT controllers.
The MCT system controls a simplified and noise-free simulation of the
environment, so its control of the simulation can be very good.
Beware: When is a PCT "environmental function" NOT "a simplified and
noise-free simulation of the environment"? Does a PCT controller have
access to the "true" characteristics of the environment? It is only in
_simulations_ that the "real" thing is available; this point gets easily
lost when all one does are simulations.
The key (philosophical) distinction between MCT and PCT seems to be that
MCT explicitly recognizes that the characteristics of the environment
itself are inaccessible and that they have to be somehow "constructed",
i.e. modeled, by or for the controller or organism.
However, when there is a lot of random variation in the real
environment, and when the real environment is being perceived only
intermittently, the environment is going to deviate from the simulation,
and nothing can be done about those deviations. They are simply ignored.
Now you suddenly talk psychology ;-).
A final question. You said:
Rick said, when he first looked at Hans' equations, "Why, this is just a
closed-loop system!" But I didn't see it right away. We talked it over
for a hour while my brain twisted slowly in the wind. And then I, too,
saw it.
Do you have a -- retrospective -- explanation why it is sometimes so
utterly difficult to understand the "meaning" of a few extremely simple
formulas?
Greetings,
Hans