# Event-Triggered Fault-Tolerant ADRC for Variable-Load Quadrotor with Prescribed Performance
## 2 Modeling of Variable-Load Quadrotor
### Design of an Event-Triggered Cascade Active Disturbance Rejection Controller  
The dual-loop control architecture comprises three sub-controllers in each loop: \(x\)-, \(y\)-, and \(z\)-axis controllers in the position loop and roll (\(\phi\)), pitch (\(\theta\)), and yaw (\(\psi\)) controllers in the attitude loop. Due to the dynamic characteristics of the quadrotor, the sub-controllers are hierarchically organized into position and velocity controllers to construct a cascaded ADRC system. Taking the altitude \(z\) channel as an example, the altitude channel dynamics described in model (11) can be rewritten as  
\[ \begin{cases}\dot{z}_{1}=z_{2}\\ \dot{z}_{2}=\zeta z_{2}+\eta U_{z}+f+d_{z}\end{cases} , \tag{21}\]  
where \([z_{1}\quad z_{2}]^{T}=[z\quad\dot{z}]^{T}\), \(\zeta=-\frac{k_{z}}{M+m}\), \(\beta=\frac{1}{M+m}\), \(f\) represents the other parts in the modeling of the system, and \(d_{z}\) stands for the unmodeled parts of the system and disturbances outside the system. Defining a new virtual control variable \(h_{z}=z_{2}\), the dynamics expressed in Equation (21) can be rewritten as  
Position subsystem \(S_{z1}\): \(\dot{\chi}_{z1}=h_{z}+\omega_{z1}\)  
Velocity subsystem \(S_{z2}\): \(\dot{\chi}_{z2}=U_{z}+\omega_{z2}\)  
where \(\omega_{z1}\) and \(\omega_{z2}\) represent the effects of disturbances and system nonlinearities in the two subsystems, respectively. The variable \(h_{z}\) is obtained from the position subsystem \(S_{z1}\). This variable serves as the reference input for the velocity subsystem \(S_{z2}\). The cascade ADRC controller design consists of two steps:  
**Step 1**: For subsystem \(S_{z1}\), the extended state can be written as  
\[ \begin{cases}\dot{a}_{z1}=\dot{a}_{z2}+h_{z}\\ \dot{a}_{z2}=\dot{\omega}_{z1}\end{cases} . \tag{22}\]  
The ESO is designed as  
\[ \begin{cases}\dot{\hat{a}}_{z1}=\hat{\hat{a}}_{z2}+h_{z}+l_{z1}(\rho_{z1}-\hat {a}_{z1})\\ \dot{\hat{a}}_{z2}=l_{z2}(\rho_{z1}-\hat{a}_{z1})\end{cases} , \tag{23}\]  
where \(\hat{a}_{zi}(i=1,2)\) are estimates of the state variable \(\alpha_{zi}(i=1,2)\); the observer gains \(l_{zi}(i=1,2)\) are designed to ensure that matrix \(A_{z1}= \begin{bmatrix}-l_{z1}&1\\ -l_{z2}&0\end{bmatrix} \) is Hurwitz. The variable \(\rho_{z1}\) represents the sampled value of system state \(z_{1}(t)\) at the event-triggered instant \(t_{p}^{z_{1}}\)which serves as the state value for the current cycle. The event-triggered mechanism for this observer is designed as follows:  
\[ \begin{cases}\rho_{z1}(t)=z_{1}(t_{p}^{z_{1}}),\quad t\in[t_{p}^{z_{1}},t_{p+1}^{ z_{1}})\\ t_{p+1}^{z_{1}}=inf\bigg{\{}t>t_{p}^{z_{1}}\bigg{|}|z_{1}(t)-\rho_{z1}(t)|>\gamma _{z1}\bigg{\}}\end{cases} . \tag{24}\]  
The observer trigger threshold \(\gamma_{z1}\) is designed as a fixed value. Based on the desired trajectory \(z_{d}\), the virtual control variable \(h_{z}\) is designed as follows:  
\[h_{z}=k_{z1}(z_{d}-\hat{\alpha}_{z1})-\hat{\alpha}_{z2}, \tag{25}\]  
where \(k_{z1}\) is the controller parameter to be tuned. **Step 2**: For subsystem \(S_{z2}\), the extended state can be written as  
\[ \begin{cases}\hat{\beta}_{z1}=\beta_{z2}+\sigma_{z}\\ \hat{\beta}_{z2}=\hat{\omega}_{z2}\end{cases} . \tag{26}\]  
The ESO is designed as  
\[ \begin{cases}\hat{\beta}_{z1}=\hat{\beta}_{z2}+\sigma_{z}+l_{z3}(\rho_{z2}- \hat{\beta}_{z1})\\ \hat{\beta}_{z2}=l_{z4}(\rho_{z2}-\hat{\beta}_{z1})\end{cases} , \tag{27}\]  
where \(\hat{\beta}_{zi}(i=1,2)\) is an estimate of the state variable \(\beta_{zi}(i=1,2)\), and the observer gains \(l_{zi}(i=3,4)\) are required to satisfy the matrix \(A_{z2}= \begin{bmatrix}-l_{z3}&1\\ -l_{z4}&0\end{bmatrix} \), which is Hurwitz. The variable \(\rho_{z2}\) represents the sampled value of system state \(z_{2}(t)\) at the event-triggered instant \(t_{p}^{z_{2}}\). The event-triggered mechanism for this observer is designed as follows:  
\[ \begin{cases}\rho_{z2}(t)=z_{2}(t_{p}^{z_{2}}),\quad t\in[t_{p}^{z_{2}},t_{p+1 }^{z_{2}})\\ t_{p+1}^{z_{2}}=inf\bigg{\{}t>t_{p}^{z_{2}}\bigg{|}|z_{2}(t)-\rho_{z2}(t)|> \gamma_{z2}\bigg{\}}\end{cases}