File Exchange

image thumbnail

PD Control Quadrotor - Simulink

version (2.71 MB) by Abdel-Razzak
This file contains the simulink simulation of the PD control of a Quadrotor. Quadrotor model is take


Updated 10 Apr 2014

View License

This file contains the simulink simulation of the PD control of a Quadrotor. Quadrotor model is taken from Dr. Bouabdallah's PhD thesis found also in the file. The PD control is enough to control the quadrotor in disturbance free situations.
The “big” Omega I used in my model is actually “Gamma” found in the quadrotor dynamics. The controls can be calculated from the rotors’ speeds, so using the same equations reversely we can find the rotors’ speeds out of the controls (solve for the rotors’ speeds using the upper equations, 4 equations with 4 unknowns).
γ is the effect of rotor speeds on the system. In general there are no sensors put on the quadrotor to measure its rotors’ speeds, so we can’t calculate gamma in practical and it is assumed as disturbance. Gamma is calculated using the four rotors’ speeds as:
Gamma = omega1 - omega2 + omega3 - omega4 : The resultant effect of all the rotors.
What I did is calculating omegasquare of each rotor, used omegasquares to calculate gamma, then recalculate the controls.

Cite As

Abdel-Razzak (2019). PD Control Quadrotor - Simulink (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (16)

why I cant run my code?It has some error

surya kiran


mr central

Hi, thanks for sharing the model.
May I know how you could form x,y position control for this model?

su feng

Hi, thanks for sharing the model,may I know how you form the equation for omegasqr calculator?

mira ismail

may I know how you form the equation for Omegasqr 1,2,3,4? I already reverse the equation of the rotor speed, but I cant get exactly as yours. How did you include the constant of the lever? or I may get the wrong idea. please help me.. TQ :)


Theo kemo

I dont get how you came up with the equation used in the PD controller subsystem for U1,U2,U3,U4..can you please ellaborate?




I would like to thank for your contribution, but i would like to make a remark, the model you used for the Quadrotor, is the model for to be used for controllers, thus you needed a more complete model to test the real effect of the PD controller (taking into account hence, hub forces and rolling moments that were neglected and thrust and drag coefficients that were supposed constant).


Firstly thanks for the model. my name is Kamil, and i'm Phd student. I have a few questions for you. D2R conversion is necessary in the control of z-axis? there is great omega calculation but I didn't understand why such calculation is made? the calculations in this way are performed for the initial value(U1,U2,U3,U4=omega)?
my email , can you send me a example model for linear x and y motion control.


asslamoalequm Mr. Razzak. my name is Mohammad Shahid, and i am a Phd student. sir my request is please can u provide me the equation used to model omegas or just provide me the reference for the same. my email id is please sir help me. i am in the middle of something and stuck because of this.

Allah hafiz


Hi, I have one question regarding the model, can you please tell which equation you used to calculate OMEGA from the thesis you have attached with this model. I dnt understand how did to find OMEGA Quadrotor model subsystem,


Great Code

thanks for sharing the model. works


I received many questions about "big" Omega, so I add clarifying ideas about it.

MATLAB Release Compatibility
Created with R2009a
Compatible with any release
Platform Compatibility
Windows macOS Linux