File Exchange

image thumbnail


version (155 KB) by Giampiero Campa
The Aircraft Library


Updated 02 Jan 2019

View License

Airlib is a library of aircraft models to be used with Simulink 3.1 (MATLAB 5.3) or later (tested until 2018a).

It is based on two basic blocks that implement a continuous-time and a discrete-time nonlinear general aircraft model.
The initial version, dated Feb 2003, contains 13 different nonlinear aircraft models including, among others, a Boeing 747, an F4 Phantom, an F104 Starfighter, an X15, an IAI Pioneer (unmanned), a Convair 880 and four different Cessna models.

Each model is a link to one of the two library blocks, but of course with different parameters on the mask. Indeed, the type of aircraft is entirely specified by the inertial and aerodynamic parameters typed on the mask, which also includes a very detailed help that describes the meaning of inputs, states, outputs and mask parameters.

An example showing a Boeing 747 in a (closed loop) straight and level flight is also given.

In May 2003 a very effective MATLAB function (air3m.m) was added to allow the user to easily trim any given aircraft for any combination of desired speed, altitude, and flight path angle.

In March 04, a function that computes the aerodynamic derivatives from the linear model matrices was added, together with a Simulink model that compares two different ways of handling the wind in the equations of motions.

In July 2006 a full guidance and control system based on the feedback linearization of the aircraft kinematic and dynamics was added. The scheme includes a waypoint generation system, and can be easily adapted to any aircraft with known aerodynamics coefficients.

Please have a look to the readme.txt file for more detailed info.
Giampiero Campa, March 2004

Cite As

Giampiero Campa (2019). Airlib (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (19)


Thanks a lot for helping.

Those are earth fixed frame coordinates, (and the last 3 state variables, so their initial value is specified by the initial condition parameter in the mask). The last one (#12) actually should be called H instead of ze, it is the altitude and points up. I'm pretty sure xe points north and ye points east. You can download the PDF manual of the FDC toolbox (on which Airlib is based) here:


Thanks a lot for helping.
What should be
10 xe (m) =?
11 ye (m) =?
12 ze (m) = Altitude

If you double click on the green block called "Signals" (either in the B747 closed loop example or inside the General Aircraft Model) mask there is a list. I'll copy and paste it for your benefit:

01 v (m/s)
02 alpha (rad)
03 beta (rad)
04 p (rad/s)
05 q (rad/s)
06 r (rad/s)
07 psi (rad)
08 theta (rad)
09 phi (rad)
10 xe (m)
11 ye (m)
12 ze (m)
13 v dot (m/s2)
14 alpha dot (rad/s)
15 beta dot (rad/s)
16 p dot (rad/s2)
17 q dot (rad/s2)
18 r dot (rad/s2)
19 fi dot (rad/s)
20 theta dot (rad/s)
21 psi dot (rad/s)
22 xe dot (m/s)
23 ye dot (m/s)
24 ze dot (m/s)
25 u dot (m/s2)
26 v dot (m/s2)
27 w dot (m/s2)
28 pb/2v (rad)
29 qc/v (rad)
30 rb/v (rad)
31 Ax (g)
32 Ay (g)
33 Az (g)
34 ax (g)
35 ay (g)
36 az (g)
37 delta elevators (rad)
38 delta ailerons (rad)
39 delta rudder (rad)
40 delta stabs (rad)


Thank you for answering. I need to ask one more question. I just know 9 parameters with scope.
1-Airspeed, 2-Angle of Attack, 3-Sideslip Angle, 4-Roll Rate, 5- Pitch Rate, 6- Yaw Rate, 7-Yaw Angle, 8- Pitch Angle, 9- Roll Angle.
Could you tell me please? what rest of the 31 parameters are. Thank you.

Ugur, the model is nonlinear in nature so it can handle different conditions already (i.e. steep turns and maneuvers and even some climbs and descents). However, the aerodynamic forces are linearized around the operating condition, so if you want to handle full flight with climbs to a condition far from the original point you have to update the aerodynamic coefficients as you move along. You need to create a lookup table for each parameter and replace simple multiplications with a constant parameter inside the model with multiplication with something you get from the lookup table. It's doable but it requires some work.


Hello good work. How can I get full flight of 747 instead of level flight? I mean takeoff, climb, cruise, descend and landing.
Thank you for answersing.


You can fix 3D visualization in the general controller model for versions 2014b and later by deleting the sfunxyz.m file and installing 3Dscope:

zhao mask

Note that the general controller model features also a (non essential) 3D scope which does not work properly for 2014b and later versions. I will try to fix it at some point. If you need it sooner rather than later please let me know.

ying wong



Dear Giampiero Campa,

Do you have some documentation or something to help the understand your model?

Tiago Cariolano

hasan bafayad

i just need to solve the boing 747 for
control and stability i hope it's usefull for me

az bew

I look for aircraft Pilatus-9M !

aaa ddd

tariq abrass

very good

Nyan Tun


Fixed the trim condition in the B747 text box (thanks Nicola Capuzzi). Also fixed an uppercase letter in the call to open one example from the main library.

Updated the 3D Scope function.

Removed old license

Changed info.xml file to avoid annoying messages within the last matlab versions.

Removed all library links in the model airgk.mdl, so now it runs "out of the box".

A general fedback linearization tracking controller has been added.

Removed extra dir info from zip file

Renamed everything lowercase

Final clean-up of every file. No further updates are planned.

A function that computes the aerodynamic derivatives from the linear model matrices, and a simulink model that compares two different ways of handling the wind have been added.

Minor changes in the help file.

The file info.xml has been updated.

A very useful matlab function (air3m.m) to find the trim point of a general aircraft at a given speed, altitude, and gamma, has been included in the library.

Changed the file exchange category

Small error in Demos.m corrected.

Minor changes in the mask help.

MATLAB Release Compatibility
Created with R11.1
Compatible with R11.1 to any release
Platform Compatibility
Windows macOS Linux