The main objective of this project is to propose a stabilization control algorithm for a quadrotor, based on the " Nested Saturations Approach " .
- Clone our repo:
git clone https://github.com/HusseinLezzaik/Nonlinear-Control-Quadcopter.git - Install MATLAB.
-
The MATLAB script
"main.m"simulates the behaviour of a quadcopter controlled by nested saturation functions. The other two scripts are helper functions for quadcopter animation. -
Simulation parameters that can be changed: The first few blocks of the script contain all adjustable parameters:
- Reference Trajectory: can be
"spiral","cylinder","reference", or"custom". Noise factoron each input and on each state. Can be set to zero.Animation: can be set on or off.Physical parametersof the drone.Simulation timeandsampling time.Gainsof the control law proposed.Initial positionsandvelocitiesof the quadcopter.- Custom
trajectoryand its derivetive, if trajectory was chosed to be custom.
- Reference Trajectory: can be
-
After adjusting the parameters, simply run the script (
"main.m").
You can find more details about our approach and results in ARS5_Final_Project_Report.pdf
- if animation enabled, the drone and its desired trajectory are plotted
as animation.
- Plots of the errors on x,y,z, and yaw angle.
- Plots of the applied main thrust and the three torques.
- 3D Plots of the trajectory followed, and the desired one.
If you have any question, or if anything of the above is not working, don't hestitate to contact us! We are more than happy to help!