[From Bill Powers (950503.1130 MDT)]
Hans Blom (950503) --
Got your program and it runs fine. It will take me some study to
understand how it all works, but I've tried a few things so far and come
up with one major problem. This control system doesn't seem to be able
to resist disturbances of its controlled variable, xt.
In the procedure step_system, I used an external disturbance that just
adds a sine wave to the value of xt, as shown below with the original
disturbance term commented out:
procedure step_system; {execute one step of system}
{instead of normal (ft) try also ft * sin (run/5)}
begin
xt := ct + at * xt + bt * u + 2.0*sin(run/5); {normal(ft);}
end;
This seems to frustrate the system completely. The value of xt shows the
sine-wave disturbance undiminished. From my very brief examination of
the code, it seems that the disturbance you are using, normal(ft), is
both very small and very rapidly changing, so even though it does appear
undiminished in the controlled variable, it is not noticeable. When a
more normal disturbance is used, there appears to be no resistance to it
at all.
This would seem to be expected from the organization of the controlling
system. The internal model it is using is built up from experience with
the behavior of the controlled variable (as perceived), with certain
parameters being adjusted for the best average performance. That's all
very well, but this approach would make it impossible for the control
system to protect the controlled variable -- the real one -- from
arbitrary disturbances. The arbitrary disturbances alter the real
"controlled" variable but not the internal model; hence the system as a
whole is unable to cope with the disturbances.
The most important advantage of your approach is that it permits control
to continue for brief periods of loss of the input information, when the
external variable is not being disturbed. It is also quite good at
adjusting the model parameters to cope with changes in the external
system parameters. So I would say that you are definitely on the track
of some useful adaptive features of the control system. However, these
advantages come at the expense of losing one of the most important
properties of a good control system, the ability to maintain the
controlled variable at any specified reference setting in the presence
of unpredictable external disturbances.
I had suspected that the concept of a disturbance was treated
differently from the PCT way in the readings about adaptive control that
I have done; your model, plus some remarks you have made, confirms that
suspicion. You are thinking of disturbances as small added amounts of
zero-centered noise, not as large unsystematic perturbations. The amount
of noise you have put into the system is so small as to be negligible --
when I multiplied normal(ft) by 2000, it made no visible difference in
the behavior of xt. However, my addition of a disturbance with an
amplitude of 2 units completely disrupted the system, and there was no
sign of resistance to the disturbance.
The adaptive processes you use (which I will study) are probably worth
learning about. But the net result is not what I think of as a control
system, because it can't work in a real environment where significant
disturbances are always present.
···
----------------------------------------------------------------------
Best,
Bill P.