| Aerospace Toolbox | ![]() |
| On this page… |
|---|
Example of a USAF Digital DATCOM File Importing Data from DATCOM Files Examining Imported DATCOM Data |
The Aerospace Toolbox product enables bringing United States Air Force (USAF) Digital DATCOM files into the MATLAB environment by using the datcomimport function. For more information, see the datcomimport function reference page. This section explains how to import data from a USAF Digital DATCOM file.
The example used in the following topics is available as an Aerospace Toolbox demo. You can run the demo either by entering astimportddatcom in the MATLAB Command Window or by finding the demo entry (Importing from USAF Digital DATCOM Files) in the Demos browser and clicking Run in the Command Window on its demo page.
The following is a sample input file for USAF Digital DATCOM for a wing-body-horizontal tail-vertical tail configuration running over five alphas, two Mach numbers, and two altitudes and calculating static and dynamic derivatives. You can also view this file by entering type astdatcom.in in the MATLAB Command Window.
$FLTCON NMACH=2.0,MACH(1)=0.1,0.2$ $FLTCON NALT=2.0,ALT(1)=5000.0,8000.0$ $FLTCON NALPHA=5.,ALSCHD(1)=-2.0,0.0,2.0, ALSCHD(4)=4.0,8.0,LOOP=2.0$ $OPTINS SREF=225.8,CBARR=5.75,BLREF=41.15$ $SYNTHS XCG=7.08,ZCG=0.0,XW=6.1,ZW=-1.4,ALIW=1.1,XH=20.2, ZH=0.4,ALIH=0.0,XV=21.3,ZV=0.0,VERTUP=.TRUE.$ $BODY NX=10.0, X(1)=-4.9,0.0,3.0,6.1,9.1,13.3,20.2,23.5,25.9, R(1)=0.0,1.0,1.75,2.6,2.6,2.6,2.0,1.0,0.0$ $WGPLNF CHRDTP=4.0,SSPNE=18.7,SSPN=20.6,CHRDR=7.2,SAVSI=0.0,CHSTAT=0.25, TWISTA=-1.1,SSPNDD=0.0,DHDADI=3.0,DHDADO=3.0,TYPE=1.0$ NACA-W-6-64A412 $HTPLNF CHRDTP=2.3,SSPNE=5.7,SSPN=6.625,CHRDR=0.25,SAVSI=11.0, CHSTAT=1.0,TWISTA=0.0,TYPE=1.0$ NACA-H-4-0012 $VTPLNF CHRDTP=2.7,SSPNE=5.0,SSPN=5.2,CHRDR=5.3,SAVSI=31.3, CHSTAT=0.25,TWISTA=0.0,TYPE=1.0$ NACA-V-4-0012 CASEID SKYHOGG BODY-WING-HORIZONTAL TAIL-VERTICAL TAIL CONFIG DAMP NEXT CASE
The output file generated by USAF Digital DATCOM for the same wing-body-horizontal tail-vertical tail configuration running over five alphas, two Mach numbers, and two altitudes can be viewed by entering type astdatcom.out in the MATLAB Command Window.
Use the datcomimport function to bring the Digital DATCOM data into the MATLAB environment.
alldata = datcomimport('astdatcom.out', true, 0);The datcomimport function creates a cell array of structures containing the data from the Digital DATCOM output file.
data = alldata{1}
data =
case: 'SKYHOGG BODY-WING-HORIZONTAL TAIL-VERTICAL TAIL CONFIG'
mach: [0.1000 0.2000]
alt: [5000 8000]
alpha: [-2 0 2 4 8]
nmach: 2
nalt: 2
nalpha: 5
rnnub: []
hypers: 0
loop: 2
sref: 225.8000
cbar: 5.7500
blref: 41.1500
dim: 'ft'
deriv: 'deg'
stmach: 0.6000
tsmach: 1.4000
save: 0
stype: []
trim: 0
damp: 1
build: 1
part: 0
highsym: 0
highasy: 0
highcon: 0
tjet: 0
hypeff: 0
lb: 0
pwr: 0
grnd: 0
wsspn: 18.7000
hsspn: 5.7000
ndelta: 0
delta: []
deltal: []
deltar: []
ngh: 0
grndht: []
config: [1x1 struct]
cd: [5x2x2 double]
cl: [5x2x2 double]
cm: [5x2x2 double]
cn: [5x2x2 double]
ca: [5x2x2 double]
xcp: [5x2x2 double]
cla: [5x2x2 double]
cma: [5x2x2 double]
cyb: [5x2x2 double]
cnb: [5x2x2 double]
clb: [5x2x2 double]
qqinf: [5x2x2 double]
eps: [5x2x2 double]
depsdalp: [5x2x2 double]
clq: [5x2x2 double]
cmq: [5x2x2 double]
clad: [5x2x2 double]
cmad: [5x2x2 double]
clp: [5x2x2 double]
cyp: [5x2x2 double]
cnp: [5x2x2 double]
cnr: [5x2x2 double]
clr: [5x2x2 double]By default, missing data points are set to 99999 and data points are set to NaN where no DATCOM methods exist or where the method is not applicable.
It can be seen in the Digital DATCOM output file and examining
the imported data that
,
,
, and
have data only in the first
alpha value. Here are the imported data values.
data.cyb
ans(:,:,1) =
1.0e+004 *
-0.0000 -0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
ans(:,:,2) =
1.0e+004 *
-0.0000 -0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
data.cnb
ans(:,:,1) =
1.0e+004 *
0.0000 0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
ans(:,:,2) =
1.0e+004 *
0.0000 0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
data.clq
ans(:,:,1) =
1.0e+004 *
0.0000 0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
ans(:,:,2) =
1.0e+004 *
0.0000 0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
data.cmq
ans(:,:,1) =
1.0e+004 *
-0.0000 -0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
ans(:,:,2) =
1.0e+004 *
-0.0000 -0.0000
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999
9.9999 9.9999The missing data points will be filled with the values for the first alpha, since these data points are meant to be used for all alpha values.
aerotab = {'cyb' 'cnb' 'clq' 'cmq'};
for k = 1:length(aerotab)
for m = 1:data.nmach
for h = 1:data.nalt
data.(aerotab{k})(:,m,h) = data.(aerotab{k})(1,m,h);
end
end
endHere are the updated imported data values.
data.cyb
ans(:,:,1) =
-0.0035 -0.0035
-0.0035 -0.0035
-0.0035 -0.0035
-0.0035 -0.0035
-0.0035 -0.0035
ans(:,:,2) =
-0.0035 -0.0035
-0.0035 -0.0035
-0.0035 -0.0035
-0.0035 -0.0035
-0.0035 -0.0035
data.cnb
ans(:,:,1) =
1.0e-003 *
0.9142 0.8781
0.9142 0.8781
0.9142 0.8781
0.9142 0.8781
0.9142 0.8781
ans(:,:,2) =
1.0e-003 *
0.9190 0.8829
0.9190 0.8829
0.9190 0.8829
0.9190 0.8829
0.9190 0.8829
data.clq
ans(:,:,1) =
0.0974 0.0984
0.0974 0.0984
0.0974 0.0984
0.0974 0.0984
0.0974 0.0984
ans(:,:,2) =
0.0974 0.0984
0.0974 0.0984
0.0974 0.0984
0.0974 0.0984
0.0974 0.0984
data.cmq
ans(:,:,1) =
-0.0892 -0.0899
-0.0892 -0.0899
-0.0892 -0.0899
-0.0892 -0.0899
-0.0892 -0.0899
ans(:,:,2) =
-0.0892 -0.0899
-0.0892 -0.0899
-0.0892 -0.0899
-0.0892 -0.0899
-0.0892 -0.0899You can now plot the aerodynamic coefficients:
h1 = figure;
figtitle = {'Lift Curve' ''};
for k=1:2
subplot(2,1,k)
plot(data.alpha,permute(data.cl(:,k,:),[1 3 2]))
grid
ylabel(['Lift Coefficient (Mach =' num2str(data.mach(k)) ')'])
title(figtitle{k});
end
xlabel('Angle of Attack (deg)')

h2 = figure;
figtitle = {'Drag Polar' ''};
for k=1:2
subplot(2,1,k)
plot(permute(data.cd(:,k,:),[1 3 2]),permute(data.cl(:,k,:),[1 3 2]))
grid
ylabel(['Lift Coefficient (Mach =' num2str(data.mach(k)) ')'])
title(figtitle{k})
end
xlabel('Drag Coefficient')

h3 = figure;
figtitle = {'Pitching Moment' ''};
for k=1:2
subplot(2,1,k)
plot(permute(data.cm(:,k,:),[1 3 2]),permute(data.cl(:,k,:),[1 3 2]))
grid
ylabel(['Lift Coefficient (Mach =' num2str(data.mach(k)) ')'])
title(figtitle{k})
end
xlabel('Pitching Moment Coefficient')

![]() | Defining Aerospace Units | 3-D Flight Data Playback | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |