Files
senior-design/tradestudies/tradestudyS.m
2010-04-17 12:00:00 -05:00

124 lines
2.8 KiB
Matlab
Executable File

%Master 441 Code
%all alfas in DEGREES!
%by ascorrea
function master441()
diary
datafile=input('Input data file: \nNote: You must delete the header before using \n:','s');
[variablenames, variablevalues]=textread(datafile, '%s %f');
for k = 1:length(variablenames)
eval([variablenames{k} '= variablevalues(k);']);
end
i=1;
for sref=100:100:6000
AR=wingspan^2/sref;
%CRUISE------------------------------------------------------------------]
cd0_cruise=findcd0(c_f, M_cruise, sref, swet);
cLreq_cruise=findcLrequired(alt_cruise, sref, M_cruise, weight_cruise);
alphareq_cruise=findalpharequired(cLalpha_cruise, cL0, cLreq_cruise);
cD_cruise=findcD(AR, efficiency, cd0_cruise, cLreq_cruise, cd_correction);
eloverdee_cruise=cLreq_cruise/cD_cruise;
cM_cruise=cMalpha_cruise*alphareq_cruise+cM0;
plotS(i)=sref;
plotLD(i)=eloverdee_cruise;
i=i+1;
end
plot(plotS, plotLD)
fprintf('Max L/D: %f at AR: %f\n', max(plotLD), plotS(max(plotLD)==plotLD));
end
function q=findcd0(c_f, M, sref, swet)
if M>.7
c_f=c_f*(1-.09*M^2);
end
q=c_f*(swet/sref);
end
function q=findcLalpha(AR, M, clalpha, sweep, sex, sref, doverb)
%ascorrea
betasquared=1-M^2;
beta=sqrt(betasquared);
eta=clalpha/(2*pi/beta);
numer=2*pi*AR;
denom1=(AR^2*beta^2)/eta^2;
denom2=(tand(sweep)^2/betasquared);
denom=2+sqrt(4+denom1*(1+denom2));
F=1.07*(1+doverb)^2;
cLalpha=(numer/denom)*(sex/sref)*F;
q=cLalpha;
end
function finddragpolar(cd0, cl_alfa, cL0, sweep_LE, ar, cd_correction, filename)
alphadeg=[-12:2];
% alpha=(pi/180)*(alphadeg);
alpha=alphadeg;
cL_alfa=cl_alfa*(ar/(ar+(2*(ar+4)/(ar+2))));
for i=1:length(alpha)
C_L(i)=cL_alfa*(alpha(i))+cL0;
e=4.61*(1-.045*ar^.68)*cosd(sweep_LE)^.15-3.1;
cd_i(i)=C_L(i)^2/(pi*ar*e);
C_d(i)=cd0+cd_i(i)+cd_correction;
end
graphname='Drag Polar';
hold on
axisX0=linspace(0,max(cd));
axisY0=zeros(1,length(axisX0));
plot(axisX0, axisY0,'k--');
plot(C_d, C_L);
plot(C_d, C_L, '.');
title(graphname);
xlabel('C_d');
ylabel('C_L');
axis([0, .04, -1, 1.5]);
% for i=1:length(alphadeg)
% alphalabel=num2str(alphadeg(i));
% label=[' \alpha =' alphalabel];
% text(C_d(i), C_L(i), label)
% end
print ('-dtiff', filename)
close(1)
end
function q=findcLrequired(alt, s, v_mach, lift)
if alt < 36152
temp=59-.00356*alt;
press=2116*((temp+459.7)/518.6)^5.256;
elseif alt < 82345
temp=-70;
press=473.1*exp(1.73-.000048*alt);
else
print('Program Not Valid for given altitude')
end
density=press/(1718*(temp+459.7));
v_fps=v_mach*sqrt(1.4*1718*(temp+459.7));
q=.5*density*v_fps^2;
q=lift/(q*s);
end
function q=findalpharequired(cLalpha, cL0, cLrequired)
q=(cLrequired-cL0)/cLalpha;
end
function q=findcD(ar, e, cd0, C_L, cd_correction)
% e=4.61*(1-.045*ar^.68)*cosd(sweep_LE)^.15-3.1;
cd_i=C_L^2/(pi*ar*e);
cd_i=C_L^2/(pi*ar*e);
q=cd0+cd_i+cd_correction;
end