[From Bill Powers (950912.0945 MDT)]
Hans Blom (950912) --
RE: predicting disturbance (MAINDIST) --
_How_ good is the prediction? If you consider the prediction error
(the residual, the part that cannot be predicted) to be noise, and
the original "noise" to be the signal, you get a signal-to-noise
power ratio of 1369.136/0.544 = 2516.794. Not quite hi-fi quality,
but close...
Excellent. Given the form of the disturbing waveform up to time t, you
can predict its value at time t+1 with very high precision.
In my challenge, however, the control system being modeled is NOT given
the waveform of the disturbance. The only information the controlling
system has is the state of the controlled variable. This state is
influenced both by the disturbance waveform and by the output of the
system.
I agree that the prediction you made is easy. But the fact that you went
ahead and did it shows that I have not clearly explained the problem.
And my point was that "accurate control" by the classical PCT type
of controller is possible only if it is designed for the
environment it is to operate in. Not exactly, maybe, because a PI-
controller is rather robust, but approximately. Can we finally
agree on this now?
Yes, we are in agreement on this. We have never been in disagreement.
There are constraints on the design of any successful control system,
and it is because of the environment that these constraints exist. As I
will show shortly, this does NOT imply that the design of the successful
controller must in some sense have the same form as the environment or
must take into account the forms of possible disturbances.
There is something deeply troubling in your proposed "world":
>>x(t) = k*u(t) + d(t),
where
>> x = output of plant (input to control system)
>> k = constant (for example, 1)
>> d = disturbance waveform.
>> u = output of control system
The point is that you have already specified what this system can
learn: exactly nothing. Its k is known (I suppose you mean this
when you say it is constant), and its d is fully unknown. How come
you know so much about this world on the one hand (k) and so little
about it on the other hand (d)? A model-based controller cannot
make this a priori distinction. It has to discover it.
That was the equation of the real-world "plant." The control system, if
adaptive, has to adjust its own parameters to function in that world --
to keep x(t) matching the reference signal. In this case all it can
learn is how to function when k in the real system is set to some
constant value, for which I suggested 1. By the terms of my challenge,
however, you are permitted to design the control system by hand to work
with a known value of k in the real system. You don't even have to make
the control system adaptive. You can just give it whatever world-model
you think is appropriate.
It is easy to know that k is constant without being able to predict d.
Suppose x is the angle relative to the vertical of the plane of a movie
projector screen on a tripod, and u is the horizontal force you apply to
the center of the screen with your hand. Then, to a first approximation,
x = k*u: angular deviation of the screen from the vertical is
proportional to the force you apply. Let d be the velocity of a wind
blowing on the screen (you're doing this outdoors). To hold the screen
upright (reference angle = 0), you will have to exert a force on the
screen equal and opposite to the force exerted by the wind. To make this
easy we'll assume that the screen is effectively hinged so it can move
in only one vertical plane normal to the plane of the screen. Thus you
need to push only at right angles to the surface of the screen.
As the wind rises and falls in speed and changes direction, the normal
force on the screen varies. To predict how much force you need to apply,
therefore, you have to predict the wind velocity. To predict the wind
velocity, however, you would have to be able to predict the weather many
orders of magnitude more accurately than anyone can now do, as well as
on a much finer time and space scale.
Using your method for predicting MAINDIST you could, given an accurate
reading of wind speed and direction at all times, predict the wind
velocity in the next increment of time, and thus (given the right
aerodynamical equations) predict how much force you would need to apply
to keep the screen upright. But we are not talking about a control
system that can directly sense the _cause_ of the disturbance. In the
system I described, the ONLY information that is available to the
control system comes from sensing the variable that is to be controlled,
in this case the angle of the screen relative to the vertical. It is
from THAT information, not direct sensing of wind velocity, that your
prediction of the disturbance has to come.
If d is not pure white noise, a model-based
controller would (if it could, i.e. if it had a sufficiently
large number of degrees of freedom) model d in such a way that
(see my recent post on how to predict an "arbitrary" waveform)
e.g.
d (t) = a * x (t-1) + b * x (t-2) + e (t)
hoping to be able to find an a and a b such that e (t) will be
small enough so as to essentially eliminate "noise" from the
problem. This will result in
x (t) = a * x (t-1) + b * x (t-2) + k * u (t) + e (t)
which creates no problems at all for a controller and results in
almost deterministic (predictable, and therefore high quality)
behavior if e (t) is small enough.
I suspected that you would take this approach. You are assuming that
direct data about d is available. However, what you have to work with to
meet my challenge is not d, but x. The adaptive model, if it is to
derive the form of d as above, must somehow get this information from
observing x. What you have not yet realized is that there is a
difference between predicting d from its known behavior up to the
present, and predicting it when it is not directly visible. You could
imagine just letting d affect the controlled variable x without acting
to oppose it, and from those observations building a predictor of d. But
when control begins, x no longer directly represents d, so you must
construct a _long-term_ prediction of d, not just a prediction in the
next increment of time. And I think you will agree that for MAINDIST,
that is impossible.
A conceptual problem: disturbances. In my vision, disturbances do
not exist in the real world. The world has its properties, some
known, some unknown. We focus on some and disregard others.
You're just trying to make the problem fit the method, as per
Procrustes. I have given you a perfectly reasonable scenario with the
movie screen, above, in which you don't have a choice about
"disregarding" the unpredictable disturbance. I could give you as many
more as you like, for example driving a car in a crosswind with a tire
going soft and bumps in the road, or rowing a boat toward a target
across a river with rocks beneath the surface that are creating
turbulence in the flow, or many, many other examples. Or we could use
our simple tracking task as the example, where there is no question of
the controller getting any direct information about the form of
MAINDIST.
So when you make disturbances explicit, you have already specified
(i.e. learned, through lots of experience) what is important and
what not. That is far beyond the capabilities of something as
primitive as the adaptive control systems that I talk about.
I, the analyst, understand the disturbance, but the control system
doesn't know anything about it. Nor does it need to. I am pleased that
you admit that the adaptive control system can't handle this situation.
The simple PCT model can, which has been my whole point all along and is
the point of the challenge. To end the suspense, here is a PCT model
that can control x when any disturbance table from MAINDIST is used as a
disturbance and the environment is x = k*u + MAINDIST:
u := u + b*(r - x)
where
r = reference signal, fixed or varying.
The value of b is adjusted to the highest value that doesn't create
computational oscillations. This can be done by starting with a very
small value of b and increasing it until the RMS fluctutations in (r -
x) show a steep rise with b, then backing off the value of b by a factor
of 2. In other words, it can be done using only information already
available inside the control system.
Note that this control system contains no provision at all for deducing
the waveform of the disturbance. If it works for one waveform, it will
work for all waveforms with the same amplitude and frequency limits
(even constant values or zero). When you use a different disturbance
table, the model does not change, but it continues to control very
accurately.
Everything you say, Hans, leads me to think that you don't believe that
this kind of control is possible. Perhaps I am totally misunderstanding
you, and if that is so I really hope you will explain where I have gone
astray.
···
-----------------------------------------------------------------------
Best,
Bill P.