UAV Tailsitter : Modelling, Control and Simulation.

Mahmoud El Omar
5 min readOct 26, 2021

--

Tailsitters are fixed-wing planes that take take-off and land on their tails, hence the name. The motivation behind this design is the versatility it offers. Capable of both hovering, Vertical Take-Off and Landing (VTOL), and forward flight, this design allows for a wide range of applications, that would’ve been otherwise impossible for conventional quadcopters.

Cyclone Tailsitter. See https://arxiv.org/abs/1802.00714

1 — Modelling

As show in the picture above, this particular tailsitter design has 4 actuators. 2 actuators controlling the propellers, and 2 actuators to move the aileron. Given the complexity of the tailsitter, this means that it is underactuated. Controlling an underactuated system is a challenging task. But not at all impossible. We’ll get into later.

1.1 — SolidWorks Design

To allow for a robust simulation, a CAD design is a good way to start. Using SolidWorks 2020, the various parts were designed and assembled.

First, an airfoil section must be chosen. After browsing the NACA Database (NASA’s predecessor), we fell NACA64–210 as our choice of airfoil.

NACA64210 Airfoil section.

The shape of the airfoil majorly influences the aerodynamics, and by consequence, the control of the aircraft. Therefore it must be chosen with care.

After hours of work, the following CAD was made using SolidWorks. Complete SW project can be found here.

SolidWorks CAD of the tailsitter. I call it the Nessalit.

1.2 — Dynamics of the Nessalit

The dynamic model presented in the phoenix drone paper is both a simple and accurate-enough model. The dynamics equations presented in the paper are displayed below :

This model is fairly simple is to simulate and control, and it gives accurate results in the scope of our application. In general, it serves as a great starting point for such a project.

For more details, I encourage you to read their paper.

2 — Control

There are two major parts in our control strategy. Position Control, and Attitude Control. The first one is concerned with control the global position of the drone, while the second’s task is to control the orientation of the drone. In such a case, a cascaded controller is employed to ensure that position control is satisfied, and then the output of the position controller is forwarded to the attitude controller. The attitude control is quaternion-based, and detailed in the following paper. Said paper is dealing with the problem of controlling a quadrotor, but the concept itself can easily be adapted to any kind of vehicle.

Cascaded Position and Attitude Control.

2.1 — PD Control

Proportional-Derivative control is widely used in position control. Supposing that the variable q is the variable that I wish to control, i.e. make it follow a reference input q_ref. The control equation then becomes.

N.B. You must account for gravity, either in the control law, or in the dynamic model when calculation the actuation input.

PD control law. Kd and Kp are respectively and derivative and proportional gain.

In our case, q is the XYZ position of the drone in 3D-space, and its derivatives are respectively the velocity and acceleration.

2.2 — Quaternion-based attitude control

Full details, I encourage you to read this paper. First, let’s say some quick words about quaternions. They’re a way to represents 3D rotations using only 4 numbers, as opposed to rotation matrices for example that need to store 9 numbers.

In this picture, quaternion e represents a rotation of angle \theta around axis u.

Quaternion-based attitude control measures the current attitude-quaternion of the drone, and compares it to the reference quaternion (generally through the quaternion product) to generate an error-quaternion. The appropriate torque is proportional the last 3 elements of the error-quaternion through a constant gain that should be properly tuned.

3 — Results

After executing all the steps described above, and applying the control laws. The entire simulation environment was coded in Python.

Therefore, we get the following results.

Here we see how the vehicle is tracking the trajectory along x with respect to time.
The aircraft seems to performing well along the y component of the trajectory
Nessalit has reached the required altitude in less than 2.5 seconds
Angular Velocity of the drone. As you can, the z-component rests on a constant value of -2 rd/s. A.k.a. the drone is undergoing a circular clockwise motion of speed 2 rd/s, where the circular path lies in a plane parallel to the xy-plane.

From the following preliminary results, we safely say that the model of the drone is validated. More so, it is capable of following a spatial trajectory. Both in position and in attitude.

4 — Conclusion

Given that this project is still under development, possible next steps would be to test more robust control laws that shield from disturbances, incorportate nonlinearities such as rotor saturations, delay in their time response, and to simulate the vehicle in a more realistic environment, such as Gazebo with ROS for instance.

--

--

Mahmoud El Omar
Mahmoud El Omar

No responses yet