Overview:

Designed and tuned a cascaded control system for drone pitch stabilization and longitudinal position tracking using Simulink. While the inner pitch rate and angle loops were provided, I was responsible for achieving strict performance targets through tuning, and independently developed a 2-DOF PID controller for the outer position loop. This enabled smooth, accurate tracking with robust performance under nonlinear dynamics.

Preview:

Animation of Drone
MATLAB UAV toolbox animation of the drone's flight path


Control Objectives:

Loop Requirement
Pitch Rate Tr < 0.25s
%OS < 10%
ess < 0.01 rad/s
Pitch Angle Tr < 0.5s
%OS < 2%
ess < 0 rad
Position Ts(2%) < 5s
ess < 0 m

Controller design:

Cascaded control loop diagram
Cascaded control loop diagram showing the three control loops

Provided (Pre-built in Simulink)
Designed (Independent work)


Tuning Strategy:

To meet the system's dynamic constraints under nonlinear conditions, a 2-DOF PID controller was selected for the outer position loop. This structure allowed separate weighting of the reference input in the proportional and derivative paths, improving setpoint tracking and reducing derivative kick.

Due to the system’s nonlinearity, linear tuning methods like Ziegler-Nichols were avoided. Instead, a linearized approximation was used to obtain initial gains, followed by iterative tuning based on simulated step responses.


Controller Performance:

Loop Controller Parameters Performance
Pitch Rate PI-Control Kp = 0.215
Ki = 0.15
Tr = 0.243s
%OS = 8.77%
ess < 8x10-3 rad/s
Pitch Angle PI-Control Kp = 3.25 Tr = 0.39s
%OS = 1.45%
ess = ~0 rad
Position PI-Control Kp = 0.1
Ki = 0.01
Ts(2%) = 3.1s
ess = ~0 m


Controller performance graph
Controller time domain step response for longitudinal position
Controller performance graph
Controller time domain Actuator Torque response