## 3 Disturbance Rejection Dynamic Inverse Control
### Disturbance Observer Enhancement  
In the case of the tailless aircraft model mounted on the 3-DOF rig in the wind tunnel, disturbances do exist as discussed in Equation (12), hence the baseline NDI control law is not necessary to result in a linear and time-invariant closed-loop system anymore. In particular, for the aforementioned inner loop, the closed-loop system of Equation (21) should be reformulated as Equation (31), when adding the mismatched disturbance \(d_{1}\) into Equation (16). \[\dot{x}_{1}=f(x_{1},x_{2})+g(x_{1},x_{2})u+d_{1} \tag{30}\]  
\[\dot{x}_{1}+B_{1}(x_{1}-x_{1}^{c})-d_{1}=0 \tag{31}\]  
where \(d_{1}\) is a lumped disturbance for the overall effect of modeling uncertainties and external disturbances as discussed in Section 2. From a practical point of view, the lumped disturbance is continuous and bounded, thus satisfying Assumption 1. Assumption 1. [47] The lumped disturbance and its derivative are bounded and satisfy \(\|d_{1}\|\leq K_{1}\), \(\|\dot{d}_{1}\|\leq K_{2}\), where \(K_{1}>0\) and \(K_{2}>0\) are specific constants. The disturbance rejection can be reached by adding integral terms to the bandwidth matrix \(B_{1}\) in Equation (22), however, this approach can remove the effect of the nearly constant disturbances in the steady-state but comes at the price of nominal performance degradation [48; 27; 49]. Instead, a nonlinear disturbance observer is designed and patched into the baseline NDI control law of the inner loop as shown in Figure 4. The NDI-DO controller is expected to reject the disturbance while preserving the nominal control performance. As reported in ref. [47,50], the nonlinear disturbance observer is given by  
\[\left\{ \begin{array}{c}\dot{z}_{d_{1}}=-l(x_{1})\big{[}\lambda(x_{1})+z_{d_{1}}+ f(x_{1},x_{2})+g(x_{1},x_{2})u\big{]}\\ \dot{d}_{1}=z_{d_{1}}+\lambda(x_{1})\end{array} \right. \tag{32}\]  
where \(\dot{d}_{1}\) is the estimation of \(d_{1}\), \(z_{d_{1}}\) is the internal state vector of the nonlinear observer, and \(\lambda(x_{1})\) is a nonlinear function to be designed to satisfy \(l(x_{1})=\partial\lambda(x_{1})/\partial x_{1}\). After the lumped disturbance is estimated by the observer of Equation (32), the disturbance rejection NDI controller yields  
\[u=g^{-1}\Big{[}B_{1}(x_{1}^{c}-x_{1})-f-\hat{d}_{1}\Big{]} \tag{33}\]  
It can be readily derived from Equations (30), (32), and (33) that  
\[\dot{e}_{d_{1}}=-l(x_{1})e_{d_{1}}+\dot{d}_{1} \tag{34}\]  
\[\dot{e}_{x_{1}}=-B_{1}e_{x_{1}}+e_{d_{1}} \tag{35}\]  
where the estimation error is defined as \(e_{d_{1}}=d_{1}-\hat{d}_{1}\), and the tracking error is defined as \(e_{x_{1}}=x_{1}-x_{1}^{c}\). Considering the stability of the estimation error and tracking error, the choice of \(\lambda(x_{1})\) or \(l(x_{1})\) is appropriate such that the unforced dynamics \(\dot{e}_{d_{1}}=-l(x_{1})e_{d_{1}}\) is asymptotically stable at \(e_{d_{1}}=0\)[27,47]. According to the ref. [25,30,32], a simple and practical choice of \(\lambda(x_{1})\) is  
\[\lambda(x_{1})=Lx_{1}=\left[ \begin{array}{ccc}l_{p}&0&0\\ 0&l_{q}&0\\ 0&0&l_{r}\end{array} \right]x_{1} \tag{36}\]  
where \(l_{p},l_{q},\text{ and }l_{r}\) are positive constants. In this case, the resulting gain matrix \(-l(x_{1})=-L\) is Hurwitz, and the estimation error dynamics can be expanded as  
\[e_{d_{1}}=e^{-(t-t_{0})L}e_{d_{10}}+\int_{t_{0}}^{t}e^{-(t-\tau)L}\dot{d}_{1}( \tau)d_{\tau} \tag{37}\]  
with \(e_{d_{1,\ 0}}=e_{d_{1}}(t_{0})\) as the initial estimation error. Figure 4: Disturbance observer-enhanced NDI controller. The solution of Equation (37) can be estimated using the bound of \(\|e^{-(t-t_{0})L}\|\leq\kappa_{1}e^{-\kappa_{2}(t-t_{0})}\) from the Theorem 4.11 of ref. [51].