[From Bill Powers (950505.0810 MDT)]
Hans Blom (950504) --
.. an adaptive control system cannot resist two types of
disturbances: 1) completely unpredictable ones such as high-
frequency noise (ft * normal in the demo) -- these CANNOT be
modelled -- and 2) disturbances that ARE not modelled (your ft *
sin), for whatever reason -- because the model is not sufficiently
complex. Note that in the model-based control literature, the
preferred jargon is not "disturbance" but "unmodeled dynamics".
This has deep philosophical implications...
... if things happen in the world that you cannot (mentally or
intuitively) grasp, you will be blind to those things and unable to
control them. Do not blame the demo for something that it cannot
do; attempt to see it as a demonstration of a real-world
phenomenon. Yes, I know, this takes some getting used to ...
A control system (of a design somewhat different from yours) can control
an external variable even if that variable is being disturbed by a cause
that is not perceivable by the control system. I will demonstrate
shortly. You are drawing general conclusions from a specific design for
a method of control. There are other designs.
Speaking of real-world demonstrations, are you set up so you could run a
tracking experiment using a mouse as the "control"? If so, it is very
easy to demonstrate that a human being can control a variable despite an
invisible "unmodeled dynamic."
Let there be a target object that moves from side to side on the screen,
and just below it, a cursor object. The mouse, moving in the horizontal
direction, moves the cursor object in a path just below the path of the
target object. Cursor position c thus equals (with suitable scaling)
mouse position m. The target object in position t moves in any pattern
you like; a sine-wave pattern with a frequency of around 0.1 Hz would be
easy to implement and easy for a person to track. The task is for the
subject to use the mouse to keep the cursor object exactly under the
target object.
I believe you would be able to use your model to simulate this behavior,
given that the positions of the target and the mouse can be seen. The
system variable xt would simply be t - m (target minus mouse), and the
reference condition xopt is simply 0. The mouse position m is your
"control variable" u.
Now, inside the computer, generate an arbitrary continuous disturbance d
that doesn't vary too fast, and add its effect to the mouse's effects on
cursor position: c = m + d, cursor equals mouse plus disturbance. An
easy way to generate the arbitrary disturbance is to generate a series
of random numbers and smooth them with a two or three pole filter to a
bandwidth of 0.1 Hz or so, then scale the resulting table to a specific
amplitude. This gives you a disturbance table d[k] to be applied one
element at a time during an experimental run. The amplitude of the
disturbance should be relatively large, say half the amplitude of the
target movements. This will make the result obvious.
You will find that a human subject is able to keep the cursor under the
target quite accurately, with or without the added disturbance. However,
I believe that your model will be able to do this only without the
disturbance. Of course the disturbance variations cannot be known to
your model, because they are not known to the human subject, either,
being generated and applied inside the computer.
This demonstration will directly refute your belief that control depends
on knowledge of "unmodeled dynamics." It does not. This, too, may take
some getting used to...
Once you're used to this idea, we can do something constructive by
examining the problem of control with the idea of trying to merge these
two kinds of models. An adaptive model is definitely required to explain
behavior under changing environmental parameters (and to explain how
control is initially learned), but closed-loop control of the kind we
model in PCT is required to explain how control can be maintained in the
presence of unmodeled dynamics. Ideally, we would want a model capable
of both modes of operation, with some kind of natural and graceful
transition between them. So far I have not been able to find such a
combined model that doesn't just say "Use the one that works."
I will see if I can come up with a modification of your program that
illustrates closed-loop control using the "plant" in your model.
···
----------------------------------------------------------------------
Best,
Bill P.