# Quadrotor Formation Strategies Based on Distributed Consensus and Model Predictive Controls
## 3 Dynamic Model of a Quadrotor  
### EOM of the Quadrotor  
A quadrotor's dynamics considering a flat Earth with an atmosphere at rest can be described by Newton-Euler formalism. The reference frames of the quadrotor are defined before EOMs are derived. The configuration, forces, and reference frames of the quadrotor that is considered in this study are illustrated in Figure 2.  
Figure 2: Thrusts, torques, quadrotor’s parameter, and reference frames. In Figure 2, \(\mathbf{I}=\left(\hat{\mathbf{i}},\hat{\mathbf{j}},\hat{\mathbf{k}}\right)\) denotes the inertial frame and \(\mathbf{B}=\left(\hat{\mathbf{b}}_{1},\hat{\mathbf{b}}_{2},\hat{\mathbf{b}}_{3}\right)\) denotes the body-fixed frame of the quadrotor. The axes \(\left(\hat{\mathbf{i}},\hat{\mathbf{j}},\hat{\mathbf{k}}\right)\) of the frame \(\mathbf{I}\) point to North, East, and downward under the consideration of flat Earth, respectively. The origin of the body-fixed frame \(\mathbf{B}\) coincides with the center of gravity (CG) of the quadrotor at \(\mathbf{O}\). In addition, \(L\) represents the arm length of the rotor measured from \(\mathbf{O}\) to the rotation axis. The weight of the quadrotor is not shown in Figure 2, but it should be considered while deriving the EOMs. \(\mathbf{T}_{i}\) and \(\mathbf{\tau}_{i}\) are the thrust and torque of i-th rotor \((i=1,2,3,4)\) with respect to the frame \(\mathbf{B}\), respectively. \(\mathbf{T}_{i}\) and \(\mathbf{\tau}_{i}\) can be written as follows:  
\[\mathbf{T}_{i}=-\mathbf{T}_{i}\hat{\mathbf{b}}_{3}, \tag{1}\]  
\[\mathbf{\tau}_{i}=(-1)^{i}\mathbf{\tau}_{i}\hat{\mathbf{b}}_{3}. \tag{2}\]  
The Newton-Euler formalism with respect to frame \(\mathbf{B}\) is shown as follows:  
\[\left[ \begin{array}{cc}m\mathbf{I}_{3}&\mathbf{0}_{3\times 3}\\ \mathbf{0}_{3\times 3}&\mathbf{I}_{J}\end{array} \right]\left[ \begin{array}{c}\hat{\mathbf{V }}_{\mathbf{B}}\\ \hat{\mathbf{\omega}}_{\mathbf{B}}\end{array} \right]+\left[ \begin{array}{c}\mathbf{ \omega}_{\mathbf{B}}\times(m\mathbf{V}_{\mathbf{B}})\\ \mathbf{\omega}_{\mathbf{B}}\times(\mathbf{I}_{\mathbf{J}}\mathbf{\omega}_{\mathbf{B}})\end{array}  \right]=\left[ \begin{array}{c}\mathbf{F}_{\mathbf{B}}\\ \mathbf{\tau}_{\mathbf{B}}\end{array} \right], \tag{3}\]  
\[\mathbf{I}_{J}=\left[ \begin{array}{ccc}I_{xx}&I_{xy}&I_{xz}\\ I_{yx}&I_{yy}&I_{yz}\\ I_{zx}&I_{zy}&I_{zz}\end{array} \right]. \tag{4}\]  
In Equation (3), \(m\) is the mass of the quadrotor and \(\mathbf{I}_{3}\), \(\mathbf{0}_{3\times 3}\in\mathbb{R}^{3\times 3}\) denote the identity matrix and square zero matrix, respectively. \(\mathbf{I}_{J}\) is the inertial tensor of the quadrotor. The quadrotor is symmetric to the xz and yz planes. Therefore, \(I_{xy}=I_{yx}=I_{yz}=I_{zy}=0\). Furthermore, \(I_{zx}\) and \(I_{xz}\) are relatively small compared to \(I_{xx}\), \(I_{yy}\), and \(I_{zz}\). Hence, the inertial tensor of the quadrotor becomes \(\mathbf{I}_{J}=diag(I_{xx},I_{yy},I_{zz})\). \(\mathbf{V}_{\mathbf{B}}=(u,v,w)\) and \(\mathbf{\omega}_{\mathbf{B}}=(p,q,r)\) are the velocity and angular velocity of the quadrotor with respect to frame \(\mathbf{B}\). \(\mathbf{F}_{\mathbf{B}}\) are the forces acting on the quadrotor with respect to frame \(\mathbf{B}\), including the thrust of each rotor and the weight of the quadrotor. \(\mathbf{\tau}_{\mathbf{B}}\) includes the torque induced by each rotor and the moment induced by the thrust of each rotor. To obtain the overall EOMs, the transformation between the velocity in frame \(\mathbf{I}\) and frame \(\mathbf{B}\), and the transformation between the angular velocity and the rate change of the Euler angles must be included. The above transformations are commonly seen in the derivation of the EOMs of unmanned aerial vehicles (UAVs) and drones. More details can be found in [14; 15]. Here, rotation matrix \(R_{{}_{128}}\), which transforms the coordinate of a vector from frame \(\mathbf{I}\) to frame \(\mathbf{B}\), is introduced. Rotation matrix \(R_{{}_{128}}\) is defined as follows:  
\[R_{{}_{128}}=\left[