[Avery Andrews (920805)]
Bill Powers, <timestamp losgt> --
Most of what you suggest is already present and working. a run-thru:
Diagram one: velocity control system, there and working (I thought it
was kind of neat that you can use thrusters to control velocity without
knowing anything about second derivatives).
Diagram two: astro currently has an `implicit control system' for
proximity to mother, with reference level 0 (whence my remark about
the perceptual system setting a reference level for velocity: if
xrel* is fixed at 0, the xrel perceptual signal determines the
reference for velocity. But I think I will set up an explicit
position-control system, and explicity drive reorganization with its
average error (this what is happening implicitly at the moment).
What then of the gain adjustment k1? Here
things get a bit tricky. The first version of astro used a linear
gain function, so that vrel* = -xk. But this works rather badly,
because the accelerations it calls for are too high when x is large,
too small when x is small (if you move at the controlled-for velocity,
the resulting accelerations will be a linear function of distance from
mother). Reviving a bit of my (seriously rusty & dormant) calculus
seemed to reveal that making the reference velocity
proportional to the square root of the distance would give constant
accelerations, which is what you want with thrusters.
The actual gain function involves a bit of sign-sillybuggery to deal with
square-roots of negatives; technically it's:
f(x) = 0 if x=0
f(x) = c*x^(1/2) if x > 0
f(x) = -f(-x) if x < 0
A bit messy and hoc, but maybe it would look better if I set up distinct
control systems for the fore and aft thrusters.
Reorganization:
randomly choosing a new delta when the average error increases is
possible, but maybe not very effective in this one-dimensional system:
what really matters about delta is its size-range and its sign.
If things are getting worse, you don't want another delta in the same
direction, and there is only one other direction to go on (unlike the
e-coli case, where there are an infinite number of different
directions to go in, with nice theorems relating the direction of
travel and the consequent rate-of-change-of-concentration of nice
and nasty substances). So I think that sign-flipping is probably better
than random choice. Scaling the size of delta to the average error
looks like a good idea too, tho the whole thing runs so slowly that
it takes a while to figure out if it works.
With fixed delta & sign-flipping, c seems to slowly drift downward to a
sensible rate, but at an agonizingly slow rate; with delta proportional
to absolute error, things seem a bit quicker. But I think a really
need a statistical method for evaluating the thing, given it's current
level of performance ...
Avery.Andrews@anu.edu.au