We have already said that sequential least squares has conditioning problems for cruising flight, and in the simulations, it did not disappoint.
Each simulation starts out from a trimmed condition. With no noise, no control input, and using the known model, the airplane would fly straight and level forever. Every simulation initialized the parameters to their known values. Also, every simulation added Gaussian noise to the variables used in the controller and estimator.
The simulations could be run with different forgetting factors and sampling rates for the parameter identification. Some of the simulations modeled damage to the elevator occuring at . Its effectiveness was halved by adjusting the appropriate values in the known parameter vector. Some simulations modeled a pullup manuever at , followed by an opposite push-down maneuver 10 seconds later.
The first few simulations, however, were straight and level throughout. Figure 3 shows the simulation with and a least squares update rate of 100 times per second. It only took about 11 seconds for the parameters to blow up.
Knowing that increasing can improve conditioning, at the expense of transient performance, I tried . This time the parameters lasted almost 100 seconds before blowing up, as seen in Figure 4.It seems logical to just eliminate the forgetting factor altogether. Figure 5 shows the percent error for the six of the parameters, for a simulation run with . The change in values of all parameters remained well under one percent for the 20 minutes simulated.
Having found a configuration where the parameters do not blow up, let us look at its response to some damage sustained by the control. Figure 6 shows the known and estimated values of one parameter, . At , the damage occurs, resulting in the halving of the known parameter's value. The estimate stays near the known value until the damage occurs. But, curiously, after the damage, it moves away from the new known value.
When faced with the problem of poor conditioning in the estimator, we previously attempted to remedy it by increasing (and ultimately eliminating) the forgetting factor. Although the airplane performed its maneuver well, the parameter estimates were unacceptable. At some point, having accurate parameters will be crucial, and a forgetting factor will be necessary for that.
Therefore, we try another remedy for the conditioning problem: decreasing the least squares update rate. The rationale for this is that increasing the time between updates gives the airplane more time to change its state. Too many samples with the nearly the same input is what causes the conditioning problem, so increasing the sample time could reduce the number of similar inputs. (I also suspect there may have been some interactions between the simulation and the estimator due to discrete effects; changing the
In any case, in following simulations, the forgetting factor was set to 0.99, while the estimator was only updated once every ten time steps (ten times per second). Indeed, as Figure fig:case6-param show, the parameters (, at least) do not blow up. In fact, after damage occurs, they migrate to the new value. (That is, the estimator does what it's supposed to do.)
Figure 10 looks briefly at the control system performance under these conditions. The performance is mostly quite good.
One signifant fact about the previous simulation is that its the success depended on a certain amount of noise present. When the simulation was run with less noise, the parameters once again blew up.