After the addition of the PD gain modification strategy from
subsection 5.2.1, and the noise reduction strategy from subsection
5.2.2, the adaptive nonlinear controller was tested in simulation to
ensure that the modifications did not impair its performance. The
nominal nonlinear gains ( =18,
were used. Figure 5-26 shows the results of the simulated adaptive
test. The test started with the hardware in the loop simulation run
with the PD controller tracking single axis sinusoidal yaw
trajectory. The magnitude of the specified trajectory was 51.2°
peak to peak with a period of 20.6 seconds. This specified trajectory
commands the vehicle to rotate at a maximum angular rate of
7.8°/sec. Sensor noise was included in the simulation. After a
few cycles, the adaptive controller was activated. The controller
started with no initial knowledge of the simulated system
Figure 5-26 Sinusoidal yaw trajectory simulated tracking results for PD and PD+Adaptive NL using G to reduce noise sensitivity (after 1152 sec). Adaptation gain ([Gamma]=100).
The error is quickly reduced, and the desired thrust only briefly
saturates during the first few seconds of operation. This test helps
to confirm that the controller modifications introduced in the
previous two sections have not prevented the adaptive controller from
reducing tracking errors.
Adaptation gain [Gamma] specifies the rate at which the errors in s will cause the estimates of the vehicle to change. If [Gamma] is too large, errors due to effects such as noise, thruster saturation, or sensed vehicle acceleration will cause the parameters to rapidly diverge. If [Gamma] is too small, the parameters respond very slowly, and the tracking errors will likewise be reduced very slowly. By first working through simulation, and then through actual vehicle testing, it was determined that adaptation gain values between [Gamma]=50 and [Gamma]=200 produce reasonable results.
Saturation has an degrading effect on the adaptive controller. The adaptive controller refines the system parameters by observing the vehicle motion as described by the error metric s. The desired torque is calculated as a function of s. If for example the vehicle is told to rotate faster than it is physically capable, then the error metric s will as the vehicle falls behind. The controller will assume that the reason that it is falling behind is that its estimate of the vehicle's rotational drag or inertia is too low. It will then increase its estimates. This in turn will increase the desired torque. Since in this state, thrusters are already running at saturation, this new increased thrust command will produce no change, so the vehicle continues to fall behind. Clearly, this is a positive feedback situation and the estimated parameters (and hence the desired torque) can increase without bound. The effect of saturation is that the parameters tend to get "wound up" to unrealistically large values during saturation, after which they take a long time to return to reasonable values once the desired trajectory has slowed down.
Two methods are employed to prevent parameter "wind up" in the event of thruster saturation. The first method simply implements an upper and lower bound on the parameter estimates. This prevents the parameters from increasing or decreasing arbitrarily. The upper bound was simply chosen by multiplying the initial estimates used in the nonlinear controller by 1.5. The lower bound is zero. The second method for preventing parameter "wind up" works by detecting saturation. If the controller tries to adapt during saturation, it will be learning based on inaccurate information because it assumes incorrectly that the vehicle can supply the desired moment. During thruster saturation, the adaptation gain [Gamma] is set to zero. Saturation is detected by comparing the magnitudes of the desired and commanded moments.