View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from
NACA 5 digit Airfoil Generator

Join the 15-year community celebration.

Play games and win prizes!

» Learn more

Be the first to rate this file! 18 Downloads (last 30 days) File Size: 2.11 KB File ID: #23241 Version: 1.0
image thumbnail

NACA 5 digit Airfoil Generator



Generates the NACA 5 digit airfoil coordinates

| Watch this File

File Information

"naca5gen.m" Generates the NACA 5 digit airfoil coordinates with desired no. of panels (line elements) on it.
 *Accurate coordinate generation with the required precision
 *Option to generate closed or open Trailing Edge
 *Additional separate outputs for camber line, upper surface and lower surface
 *A tst (test) file included
[1] NACA 5 digit designation (eg. '23012')
[2] No of panels (line elements) PER SIDE (upper/lower)
[3] Type of chord station spacing (Half cosine spacing / Uniform spacing)
[1] One can plot the generated airfoil, camber line and the leading edge circle by setting an option input wantPlot=1
[2] A data file can be generated by setting the option input wantFile=1
Being a function, the airfoil generator can be called several times from a loop to generate any number of airfoil data files.


This file inspired Rafael Aero/Xfoi Linterface.

MATLAB release MATLAB 7.4 (R2007a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (3)
11 Oct 2016 Nicholas

For anyone finding errors in the airfoil generation, here are the code modifications to apply in order to generate correct airfoils (using definitions):

Instead of
[48] p=0.5*str2num(iaf.designation(2:3))/100;
[49] t=str2num(iaf.designation(4:5))/100;

Instead of
[74] P=[0.05 0.1 0.15 0.2 0.25];
[75] M=[0.0580 0.1260 0.2025 0.2900 0.3910];
[76] K=[361.4 51.64 15.957 6.643 3.230];
if r
P=[ 0.1 0.15 0.2 0.25 ];
M=[ 0.13 0.2170 0.318 0.441 ];
K=[ 51.99 15.793 6.520 3.191 ];
P=[0.05 0.1 0.15 0.2 0.25];
M=[0.0580 0.1260 0.2025 0.2900 0.3910];
K=[361.4 51.64 15.957 6.643 3.230];

Instead of
[81] xc1=x(find(x<=p));
[82] xc2=x(find(x>p));

Instead of
[99] dyc2_dx=repmat((1/6)*k1*m^3,size(xc2));

I know that I'm 7 years late but I see people are still downloading this file nowadays.

Comment only
23 Jun 2011 Dirk

Dirk (view profile)

FYI python port here:

Comment only
16 Oct 2009 Austin Bond

This program works well for the example given but when I plot a NACA 65016 their is an obvious discontinuity at the point of max camber. I believe the equations used are correct, but I'm not exactly sure how the k1 constant is obtained. Either way I believe the z-values at the point of max camber are wrong.

Comment only

Contact us