Page 83 - Designing Autonomous Mobile Robots : Inside the Mindo f an Intellegent Machine
P. 83
Chapter 5
Asymmetric gains
One of the most common problems encountered is that many systems are asymmet-
ric in their response to a power command. For example, a heater may be adequately
powerful to quickly increase the temperature of a mass with say 30% power, but
when the same amount of power is removed, the temperature may not drop nearly as
fast as it had increased. This asymmetric response is obviously due to the fact that
cooling is not merely the result of removing power, but rather the result of air con-
vection.
The drive power requirement for a heavy robot is also very asymmetric. While a
good deal of forward power is usually required to accelerate the robot, only a small
amount of reverse power is required to decelerate it at the same rate. If a symmetric
PID is used to control such a motor, it may be impossible to obtain adequate forward
responsiveness without causing the robot to summersault when deceleration occurs.
Things get even more exciting when a robot goes over the top of a ramp and starts
down the back side.
For asymmetric loads, it is often useful to provide two gains for each term. One gain is used
for positive term inputs, while the other is used for negative inputs.
Error band limits
Another useful modification to reactive PID terms is to limit the error range over
which they respond proportionally. If the error is within this band, then the error is
multiplied by the gain, otherwise the appropriate error limit is used. This is particu-
larly useful with the integral term to prevent wind-up. The example below is coded
in Visual Basic, and utilizes many of the techniques discussed thus far.
In all these cases, you will be governed by the principal of enlightened instinct. To
become a Zen master of such techniques, you must understand the causes of prob-
lems, and the basics of physics and dynamics, but in the end the solution is often
half theory and half instinct. If the choice is made to be rigidly mathematical in the
solution, you may still end up guessing at a lot of parameters, and producing an
algorithm that sucks every available cycle out of your control computer.
My personal preference for creating such controls is to design the software so that
virtually every factor can be changed on the fly during operation. You can then run
the system and observe its response to changes in various parameters. For example,
the robot can be set to drive backward and forward between two points while vari-
ous gains are tried. In other words, let the system talk to you.
66

