[From Bill Powers (960904.0700 MDT)]

Hans Blom, 960904--

I ... set.. variables d1a and d2a to zero rather than a random

number, in the section of code where you compute the reference

trajectory. Maybe you can do the same and check what I found. I

started by switching control off and zeroing the tables. This forces

the controller to start with a blank slate. Then I switched control

on. Behavior was erratic, to say the least. If the program did not

terminate prematurely with a "division by zero" or an "invalid

floating point operation" error message, convergence (getting to the

reference and staying there) usually took a very long time with very

oscillatory behavior. Can you tell me why this should be so?

I think so, but not in detail. For one thing, I'm using fixed-point

arithmetic, so rounding errors and loss of precision (and even wrap-around

of overflowing integers) are significant. Each entry of the f(tau) function

has a built-in decay rate, but when the values get close to zero the integer

arithmetic is no longer able to subtract a small fraction of the value from

the previous value -- entries that should decay to zero retain nonzero

values. This may account for some of the anomalous behavior you saw. I

haven't tried that yet myself; I'll have a look. Another problem may be the

same sort of thing you run into with the Extended Kalman Filter -- how much

correction to apply to the function on each iteration. I have that cranked

up pretty high, just to get the thing to converge in a reasonable time. But

to lower the rate, I'd really have to go to floating-point arithmetic.

Another thing to keep in mind is that the physical model of the arm contains

no damping at all, and the elbow joint can swing both ways. If we added some

spinal reflexes to the arm, or even just some viscous damping, I'm sure the

picture would change considerably.

I have never tried to optimized this method or really figure out what the

critical factors are. I know that my cut-and-try methods are a very

inefficient way to approach things like this, and have always hoped that a

real mathematician would take over the project. Perhaps a real mathematician

would find some fatal flaw in the method. Or perhaps some of the problems

are just due to the method of computation.

Except for the arithmetic problems (which are mostly due to the limitations

of integer arithmetic), the behavior you saw may be realistic in terms of

modeling human behavior at the point where motor coordinations are just

being learned. Human beings learn slowly, too, and during the months it

takes for motor coordination to develop, there are lots of random-looking

actions. Actually, as a model of basic motor learning, the artificial

cerbellum adapts much too fast -- it does in ten minutes or so what takes a

baby months to learn.

By the way, only one of the disturbances, I think d1, is actually used; it

varies the reference signal. The other can be used to disturb the controlled

variable if you want to try that, too.

As to the "overall goal" of this system, it is simply to adjust the output

function's form until the error signal remains at zero. As you can see from

armftau.pas, one such system is simply a module in a larger system.

Backtracking in your post --

So the fact that PCT-type control systems are not ideal is, in fact,

an argument in favor of the PCT model and against models that assume

unlimited accuracy of computations.

This is not due to PCT, but to the fact that ANY closed loop

controller is robust in the face of certain types of inaccuracies.

It's due to the properties of control systems. PCT is derived mostly from

the properties of control systems, so naturally it says the same things.

Remember that I learned about artificial control systems before I thought of

applying their properties as a model of organisms.

The difference between "regulation" and "stabilization" is mostly in

the eye of the beholder.

Does this mean that you don't recognize a difference? Or that the

difference is only theoretical and has no practical implications?

I recognize the difference. In the HPCT model, "precompensation" of the

reference signal is part of the properties of the output functions of higher

systems, which supply the reference signals to lower systems. The lower

systems may also have dynamic compensation in their input functions, as you

describe. I think that both methods are used in the human hierarchy. Since

one higher system contributes to reference signals for many lower systems,

that sort of precompensation is global, the same compensation applying to

all lower reference signals. The perceptual dynamic compensation is local to

each lower control system.

In the spinal reflexes, we have both dynamic feedback compensation (the

phasic component of the stretch reflex) and a type you didn't mention,

compensation by a loop around the comparator (internuncial time-integrating

neurons that feed back from the output of the motor neurone to its input

dentrites). Both of these compensations, as I interpret them, introduce a

phase lead into the system, which compensates for the viscous lags in the

muscles.

It was interesting to me in developing the Little Man model how little

compensation is really required. I basically just copied what was known

about the components of the spinal reflexes, and didn't have to add anything

else.

As you point out, these compensators don't affect the steady-state

relationships; their main effect is dynamic stabilization that permits high

loop gains without causing spontaneous oscillations. I don't speak much

about dynamics; the organization of a control system is best seen in

steady-state or quasi-static relationships where dynamic effects are

negligible. This gets confusing enough when we get to systems in which the

controlled variable itself is a dynamic condition -- a velocity, for

example, or a rate of spin, or the repetition rate of a repeated action.

Then the "steady state" is a constant state of change, and the "dynamics"

are transient departures from the constant state of change. The same

principles of stabilization apply, of course, but the variable being

stabilized is itself a time variation.