Professional Documents
Culture Documents
Team V; 2
q_cruise=.5*.001869*(Speed*1.6878)^2; % Cruise Dynamic Pressure (8000ft
150kts)
climb_time=Alt./climb_rate./60;
% time to climb [hr]
rho_to=0.0024;
% air density at takeoff [slug/ft^3]
rho_sl=0.0024;
% air density at takeoff [slug/ft^3]
rho_climb=0.0024;
% air density at climb [slug/ft^3]
rho_cruise=.001869; % air density at cruise [slug/ft^3]
% For loop indicies
j=1;
% For loops
for AR=12:-1:6;
% aspect ratio
i=1;
e=0.0286*AR+0.4359; % Oswald's efficiency factor
for WS=23:-.2:14;
% wing loading
Team V; 3
w1w0=1-idle_SFC.*(14./60).*(idle_thrust);
% Taxi to runway
(Raymer 19.7)
w2w1=1-takeoff_SFC.*(1./60).*(takeoff_thrust);
% Takeoff
(Raymer 19.7)
w3w2=exp(-SFC./3600.*((Alt+1./(2*32.2).*(Speed.*1.687).^2)(50+1./(2*32.2).*(Stall_speed.*1.1.*1.687).^2))...
./((Speed-Stall_speed*1.1)./2.*1.687.*(1(1./(LD_climb.*TW))))); % Climb (Raymer 19.8)
w4w3=exp(-(Range-climb_time.*Speed).*SFC./(Speed.*LD_cruise));
% Cruise Climb (range equation) (Raymer 19.10)
w5w4=.9989; % Descend
w6w5=exp(SFC./3600.*((divert_alt+1./(2*32.2).*(Speed.*1.687).^2)(50+1./(2*32.2).*(Stall_speed.*1.1.*1.687).^2))...
./((Speed-Stall_speed*1.1)./2.*1.687.*(1(1./(LD_climb.*TW))))); % Missed Approach (climb again) (Raymer 19.8)
w7w6=exp(-(AA_Range.*SFC)./(Speed.*LD_cruise));
% Cruise to
alternate airport **NOT USED** (range equation)
w8w7=exp(-(Endur.*SFC)./LD_cruise);
% 45 minute
loiter (endurance equation) (Raymer 19.11)
w9w8=w5w4;
% Descend again
w10w9=.995; % Landing (Raymer 6.23)
% Empty Weight
Wwing =
0.036.*Swing.^0.758.*Wfw.^0.0035.*(AR./cos(WingSweep).^2).^0.6.*...
q_cruise.^.006.*taper.^.04.*(100.*t_c./cos(WingSweep)).^.3.*(Nz*Wdg).^.49;
% Wing Raymer (15.46)
Whtail = 0.016.*(Nz.*Wdg).^.414.*q_cruise.*.168.*Sht.^.896*...
(100.*t_c./cos(WingSweep)).^.12.*(AR./cos(Sweepht).^2).^.043.*taperht.^-.02;
% Horizontal Tail
Raymer (15.47)
Wvtail =
0.073.*(1+.2.*Ht_Hv).*(Nz.*Wdg).^.376.*q_cruise.^.122.*Svt.^.873.*...
(100.*t_c./cos(Sweepvt)).^.49.*(AR./cos(Sweepvt).^2).^.357.*tapervt.^.039;
% Vertical Tail
Raymer (15.48)
Wfuselage = .052.*Sf.^1.086.*(Nz.*Wdg).^.177.*Lt.^.051.*(L./D).^-.072.*q_cruise.^.241; % Fuselage Raymer (15.49)
Wmaingear = .095.*(NumMainGear.*Nl.*Wl).^.768.*(Lm./12).^.409;
% Main Landing gear (15.50)
Wnosegear = .125.*(Nl.*Wl).^.566.*(Ln./12).^.845;
% Nose Gear Weight (15.51)
Winstalled_engine = 390+51;
% Weight of Installed Engine (15.52)
Wfuel_system =
2.49.*Vt.^.726.*(1./(1+Vi./Vt)).^.363.*Nt.^.242.*Nen.^.157; % Fuel System
(15.53)
Wflight_controls = .053.*L.^1.536.*Bw.^.371.*(Nz.*Wdg.*10.^4).^.80;
% Flight Controls (15.54)
Whydraulics = .001.*Wdg;
% Hydraulics
(15.55)
Wavionics = 2.117.*Wuav.^.933;
% Avionics
(15.57)
Welectrical = 12.57.*(Wfuel_system+Wavionics).^.51; % Electrical
system (15.56)
% A/C and Anti-Ice not included (15.58)
Team V; 4
Wfurnishings = .0582.*Wdg -65;
% Furnishings
Team V; 5
LD_climb=CL_climb/CD_climb;
% lift-to-drag
ratio at climb
CL_cruise= W0/(.5*rho_cruise*(Speed*1.6878)^2*Swing); % lift
coefficeient at cruise
prop_eff_climb=.76;
% climb prop
efficency
Best_range=550*Prop_Eff*LD_minthrust*log(1/w4w3)/bhpSFC; % best range
cruise distance (Raymer 17.28)
V_minthrust=sqrt(2*WS/rho_cruise*sqrt(k_factor/CD0))/1.6878; % Speed
for minimum thrust (best range) [fps]
% Constraint Calculations
% Takeoff Distance
Tav=5.75.*200.*((rho_to/rho_sl).*prop_diam^2./200)^(1/3); % average
thrust
G_factor=asin(TW-(q_to.*Swing.*CD0+q_to.*Swing.*((CL_toCL_mindrag)^2.*k_factor))./W0);
BFL(i)=(0.863/(1+2.3*G_factor)).*((WS./(rho_to.*32.2*CL_climb))+50)...
.*(1./(Tav-(.01.*CL_max+.02))+2.7)+(655./(sqrt(rho_to/rho_sl)));
% Balenced Field Length (Raymer 17.112,17.114)
% Turn n value
CD0_K_turn = CD0/k_factor-2*CL_cruise*CL_mindrag+CL_mindrag^2;
Turn_n(i)=q_cruise.*Swing./W0.*sqrt(CD0_K_turn); % Turn Load factor
(Raymer 17.54)
% Climb Rate
Climb_rate(i)=((550.*200.*prop_eff_climb./W0)-D_climb*V_climb/W0)*60;
% Climb rate (Raymer 17.19, 17.44)
% Cruise Speed
options=optimset('Display','off');
V_fps=fsolve('cruiseconst2',200,options,CD0,W0,rho_cruise,Swing,Prop_Eff,k_fa
ctor,CL_mindrag);
V_cruiseconst(i)=V_fps/1.6878;
% Landing Distance (not a constraint, calculated for completeness)
approach_angle=abs(asin((idle_thrust*TW)-1/(LD_full_flaps)));
R=.205*(Stall_speed*1.6878)^2;
Htr=R*(1-cos(approach_angle));
approach_distance=(50-Htr)/tan(approach_angle);
flare_distance=abs(R*((idle_thrust*TW)-1/(LD_full_flaps)));
Kt=idle_thrust*TW-.4;
Ka=rho_to/(2*WS)*(.4*CL_max-CD0-k_factor*CL_max^2);
ground_roll=(1/(2*32.2*Ka))*log((Kt)/(Kt+Ka*(Stall_speed*1.6878)^2));
landing_distance=approach_distance+flare_distance+ground_roll+(Stall_speed*1.
6878)*2;
% Plotting Preparation
toplot_a(i)=WS;
toplot_b(i)=W0;
W0_vector(i)=W0;
WS_vector(i)=WS;
HP_vector(i)=PW.*W0;
i=i+1;
Team V; 6
Team V; 7
if Turn_n_outside(ii,jj)<=Turn_n_target &
Turn_n_outside(ii,jj+1)>Turn_n_target
WS_turnconst(ii)=WS_outside(ii,jj)+(Turn_n_targetTurn_n_outside(ii,jj))/(Turn_n_outside(ii,jj+1)Turn_n_outside(ii,jj))*(WS_outside(ii,jj+1)-WS_outside(ii,jj));
W0_turnconst(ii)=W0_outside(ii,jj)+(Turn_n_targetTurn_n_outside(ii,jj))/(Turn_n_outside(ii,jj+1)Turn_n_outside(ii,jj))*(W0_outside(ii,jj+1)-W0_outside(ii,jj));
elseif Turn_n_outside(ii,jj)>=Turn_n_target &
Turn_n_outside(ii,jj+1)<Turn_n_target
WS_turnconst(ii)=WS_outside(ii,jj)+(Turn_n_targetTurn_n_outside(ii,jj))/(Turn_n_outside(ii,jj+1)Turn_n_outside(ii,jj))*(WS_outside(ii,jj+1)-WS_outside(ii,jj));
W0_turnconst(ii)=W0_outside(ii,jj)+(Turn_n_targetTurn_n_outside(ii,jj))/(Turn_n_outside(ii,jj+1)Turn_n_outside(ii,jj))*(W0_outside(ii,jj+1)-W0_outside(ii,jj));
end
end
end
% Climb rat constraint
for ii=1:1:matrix_size(1)
for jj=1:1:(matrix_size(2)-1)
if Climb_outside(ii,jj)<=climb_target &
Climb_outside(ii,jj+1)>climb_target
WS_climbconst(ii)=WS_outside(ii,jj)+(climb_targetClimb_outside(ii,jj))/(Climb_outside(ii,jj+1)Climb_outside(ii,jj))*(WS_outside(ii,jj+1)-WS_outside(ii,jj));
W0_climbconst(ii)=W0_outside(ii,jj)+(climb_targetClimb_outside(ii,jj))/(Climb_outside(ii,jj+1)Climb_outside(ii,jj))*(W0_outside(ii,jj+1)-W0_outside(ii,jj));
elseif Climb_outside(ii,jj)>=climb_target &
Climb_outside(ii,jj+1)<climb_target
WS_climbconst(ii)=WS_outside(ii,jj)+(climb_targetClimb_outside(ii,jj))/(Climb_outside(ii,jj+1)Climb_outside(ii,jj))*(WS_outside(ii,jj+1)-WS_outside(ii,jj));
W0_climbconst(ii)=W0_outside(ii,jj)+(climb_targetClimb_outside(ii,jj))/(Climb_outside(ii,jj+1)Climb_outside(ii,jj))*(W0_outside(ii,jj+1)-W0_outside(ii,jj));
end
end
end
% Cruise speed constraint
for ii=1:1:matrix_size(1)
for jj=1:1:(matrix_size(2)-1)
if V_cruise_outside(ii,jj)<=cruise_target &
V_cruise_outside(ii,jj+1)>cruise_target
WS_cruiseconst(ii)=WS_outside(ii,jj)+(cruise_targetV_cruise_outside(ii,jj))/(V_cruise_outside(ii,jj+1)V_cruise_outside(ii,jj))*(WS_outside(ii,jj+1)-WS_outside(ii,jj));
W0_cruiseconst(ii)=W0_outside(ii,jj)+(cruise_targetV_cruise_outside(ii,jj))/(V_cruise_outside(ii,jj+1)V_cruise_outside(ii,jj))*(W0_outside(ii,jj+1)-W0_outside(ii,jj));
elseif V_cruise_outside(ii,jj)>=cruise_target &
V_cruise_outside(ii,jj+1)<cruise_target
Team V; 8
WS_cruiseconst(ii)=WS_outside(ii,jj)+(cruise_targetV_cruise_outside(ii,jj))/(V_cruise_outside(ii,jj+1)V_cruise_outside(ii,jj))*(WS_outside(ii,jj+1)-WS_outside(ii,jj));
W0_cruiseconst(ii)=W0_outside(ii,jj)+(cruise_targetV_cruise_outside(ii,jj))/(V_cruise_outside(ii,jj+1)V_cruise_outside(ii,jj))*(W0_outside(ii,jj+1)-W0_outside(ii,jj));
end
end
end
% plotting constraints
plot(WS_toconst,W0_toconst,'m','LineWidth',2)
plot(WS_turnconst,W0_turnconst,'g','LineWidth',2)
plot(WS_cruiseconst,W0_cruiseconst,'k','LineWidth',2)
plot(WS_climbconst,W0_climbconst,'c','LineWidth',2)
% Stall Constraint
W_Sstall = .5*CL_max*rho_to*(Stall_speed*1.6878)^2;
plot([W_Sstall W_Sstall],[2500 3100],'r','LineWidth',2);
% Setting the axes for a good plot
axis([14 20 2500 3100])
Team V; 9