## 3 Controller Design
### Cascade ADRC Design  
According to the NMV model (6), the velocity channel can be described as  
\[\left\{\begin{array}{l}\dot{x}_{V_{1}}=x_{V_{2}}+g_{V_{1}}\\ \dot{x}_{V_{2}}=x_{V_{3}}+g_{V_{2}}\\ \dot{x}_{V_{3}}=F_{V}+g_{V_{3}}+u_{V}\\ y=x_{V_{1}}\end{array}\right. \tag{14}\]  
where \(x_{V_{1}},x_{V_{2}},x_{V_{3}}\) are states of the velocity subsystem; \(g_{V_{i}}=\varphi_{V_{i}}+d_{V_{i}}(i=1,2,3)\) represents the mismatched uncertain terms, including the parameters uncertain terms \(\varphi_{V_{i}}\); and the mismatching external disturbance terms \(d_{V_{i}}\), \(u_{V}=b_{11}\eta_{c}+b_{12}\delta_{e}\) represent the control input of the velocity channel. System (14) is a third-order system with uncertain parameters and mismatching external disturbance. The control objective is to enable variable \(x_{V_{1}}\) to quickly track reference signal \(V_{ref}\). The design idea of cascade ADRC is to convert system (14) into three first-order systems and design three ADRCs, respectively. The specific steps can be described as follows.  
Step 1: Regard \(x_{V_{2}}\) as a virtual control quantity. Then, the auto disturbance rejection algorithm for the \(x_{V_{1}}\) tracking reference signal \(V_{ref}\) can be described as  
\[\left\{\begin{array}{l}e_{V}=V_{1}-V_{ref}\\ \dot{V}_{1}=-r_{V_{0}}\text{fall}(e_{V},\alpha_{V_{0}},\delta_{V_{0}})\\ e_{V_{1},1}=z_{V_{1},1}-x_{V_{1}}\\ \dot{z}_{V_{1},1}=z_{V_{1},2}-\beta_{V_{1},1}e_{V_{1},1}+u_{V_{1}}\\ \dot{z}_{V_{1},2}=-\beta_{V_{1},2}\text{fall}(e_{V_{1},1},\alpha_{V_{1}}, \delta_{V_{1}})\\ e_{V_{1},2}=V_{1}-z_{V_{1},1}\\ u_{V_{1}}=\beta_{V_{1},\mu}\text{fall}(e_{V_{1},2},\alpha_{V_{1},\mu},\delta_ {V_{1},\mu})-z_{V_{1},2}\end{array}\right. \tag{15}\]  
Step 2: Regard \(x_{V_{3}}\) as a virtual control quantity. Then, the auto disturbance rejection algorithm for the \(x_{V_{2}}\) tracking reference signal \(u_{V_{1}}\) can be described as  
\[\left\{\begin{array}{l}e_{V_{2},1}=z_{V_{2},1}-x_{V_{2}}\\ \dot{z}_{V_{2},1}=z_{V_{2},2}-\beta_{V_{2},1}e_{V_{2},1}+u_{V_{2}}\\ \dot{z}_{V_{2},2}=-\beta_{V_{2},2}\text{fall}(e_{V_{2},1},\alpha_{V_{2}}, \delta_{V_{2}})\\ e_{V_{2},2}=u_{V_{1}}-z_{V_{2},1}\\ u_{V_{2}}=\beta_{V_{2},\mu}\text{fall}(e_{V_{2},2},\alpha_{V_{2},\mu},\delta_ {V_{2},\mu})-z_{V_{2},2}\end{array}\right. \tag{16}\]  
Step 3: Let actual control law \(u_{V}\) control the state variable \(x_{V_{3}}\). Then, the auto disturbance rejection algorithm for \(x_{V_{3}}\) tracking reference signal \(u_{V_{2}}\) can be described as  
\[\left\{\begin{array}{l}e_{V_{3},1}=z_{V_{3},1}-x_{V_{3}}\\ \dot{z}_{V_{3},1}=z_{V_{3},2}-\beta_{V_{3},1}e_{V_{3},1}+u_{V}\\ \dot{z}_{V_{3},2}=-\beta_{V_{3},2}\text{fall}(e_{V_{3},1},\alpha_{V_{3}}, \delta_{V_{3}})\\ e_{V_{3},2}=u_{V_{2}}-z_{V_{3},1}\\ u_{V}=\beta_{V_{3},\mu}\text{fall}(e_{V_{3},2},\alpha_{V_{3},\mu},\delta_{V_{3}, \mu})-z_{V_{3},2}\end{array}\right. \tag{17}\]  
Equations (15)-(17) express cascade NLADRC for system (14), and the \(\text{fall}(\cdot)\) is set as Equation (12). When \(\text{fall}(\cdot)\) is replaced by linear function of errors, Equations (15)-(17) express cascade LADRC for system (14). The altitude channel can be designed in the same way, which will not be repeated here. It is worth noting that in order to enable the ADRC to achieve better results, the transition process is designed in the first stage of ADRC of the velocity and altitude channels. The purpose is to achieve the output of the first stage as slowly as possible. However, when designing the following ADRC, the purpose is tolet the state variables of the next stage track the virtual control quantity of the previous stage as quickly as possible, so the transition process is canceled in the ADRC of the next several stages.