UAV Tailsitter : Modelling, Control and Simulation.
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.
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.
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.
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.
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.
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.
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.