Download as pdf or txt
Download as pdf or txt
You are on page 1of 29

%% This part of the code mainly calculates the fuel consumed by the vehicle for each

of the segments of %the flight mission.


% The mission data are in “read inputs”
%NOTES: Aircraft ID=1 for tiltrotor and Mission ID=1 is for the mission profile of
2023 RFP
%%% 2023 RFP: Mission Profile

% Segment 1: 10 min Flight idle 2000 ft MSL 85 deg F


% Segment 2: 2 min HIGE Takeoff, HOGE at mid-mission 2000 ft MSL 85 deg F 90% Engine
MRP, 100%
% Contingency XMSN torque
% Segment 3: Cruise-climb at best climb speed (V_BOC) where range credit may be taken
for the total
% radius of action (ROA)for segments 4 and 6
% Segment 4: Cruise 450 nm (833 km) at no less than 20000 ft (6096 m) ISA, or best
cruise altitude
% at V_BR or no less than 450 KTAS (833 km/hr)
% Segment 5: Descend to 2000 ft MSL 85 deg F (no range credit)
% Segment 6: 50 nm (92.6 km) of low-altitude, high-speed penetration
% Segment 7: 2-min mid-mission Landing Zone (LZ) HOGE at Mid-Mission Gross Weight
(MMGW)
% Segment 8: Cruise-climb at best climb speed (V_BOC) where range credit may be taken
for the total radius of action (ROA)for segments 4 and 6 [Same as Segment 3]
% Segment 9: Cruise 450 nm (833 km) at no less than 20000 ft (6096 m) ISA, or best
cruise altitude
% at V_BR or no less than 450 KTAS (833 km/hr) [Same as Segment 4]
% Segment 10: Descend to 2000 ft MSL 85 deg F (no range credit) [Same as Segment 5]
% Segment 11: 50 nm (92.6 km) of low-altitude, high-speed penetration [Same as
Segment 6]
% Segment 12: 2-min HOGE landing [Same as Segment 7]
%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%

% Save values from before


mass0_to = mass_to;
% ==============================================================

% Segment 1: 10 min Flight idle 2000 ft MSL 85 deg F


% Note: Idle power is approximately = 4-5% of Take-off power.
% Therefore, set frac_power_idle = 0.05

if(itercount==1)
mass_fuel1 = 0.0125*mass_to; % SI (kg)
end
if(itercount~=1)
% ----------------- FUEL CONSIDERATIONS ------------------------
power_idle = frac_power_idle*power_installed;
if config_ID == 3 % when idling, were only using hover/props
power_idle = frac_power_idle*power_installed_2;
end

[sfc_seg1] = engine_model(engine_ID,3,nengine,power_idle,...
power_installed,theta_HOGE,delta_HOGE);
mass_fuel1 = sfc_seg1*(power_idle/1000)*time_idle;
end % SI (kg), power in kW and
time in hrs
% Mass at the end of this segment
mass_seg1 = mass_to - mass_fuel1;

%Power required fro segment 1; idle


if(itercount==1)
power_seg1=0;sfc_seg1=0;
power_installed = 10e6;
else
power_idle_seg1 = power_idle*(1-KT_mcp*(theta_HOGE-1))*...

(1+KD_mcp*(delta_HOGE-1));

power_seg1 = power_idle_seg1;
end
power_installed_1 = power_seg1;

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 2: 2 min HIGE Takeoff, HOGE at mid-mission 2000 ft MSL 85 deg F
% 90% Engine MRP, 100% Contingency XMSN torque
% ----------------------- MAIN ROTOR ---------------------------

% aircraftID
% Should account for the rotor downwash on the wing if present
if(itercount==1)
hover_dwld_factor = 0.05;
else
hover_dwld_factor = 0.02+0.9*wing_area/rotor_disk_area;
% Note this is true even if we have two rotors as the
% eqn is 0.02+0.9*(Sw/2)/A+0.9*(Sw/2)/A = 0.02+0.9*Sw/A
end

% Forcing the hover_dwld_factor to 0.1


hover_dwld_factor = 0.15;

% Compute the diameters of the main rotor, SI (m)


dia_MR = sqrt(4*mass_seg1*grav*(1+hover_dwld_factor)/...
num_MR(nmr)/(pi*DL_MR(dl)));

% init guess for sigma, NB, AR, try to keep AR~13


sigma_MR(armr,nb) = (DL_MR(dl)*(1+hover_dwld_factor))...
/(ct_sigma_MR*rho_alt_HOGE*(tip_speed_MR(vtip))^2);
nblade_single_rotor = round(sigma_MR(armr,nb)*pi*AR_MRdesired(armr,nb)); %recalc
nblade based on tip speed
if nblade_single_rotor>6
nblade_single_rotor=6;
end
nblade_MR = num_MR*nblade_single_rotor;
AR_MR(armr,nb) = nblade_single_rotor/pi/sigma_MR(armr,nb);
%[ct_sigma_MR sigma_MR AR_MR nblade_single_rotor]
%% BEMT .mat gneeration

if bemt == 1 && abs(errortol) > .0001 && abs(errtol2) > .0001


af2end = af1end(af)+.15;
af3end = af2end+.15;
Trotorcruise_prev = Trotor_cruise;
if(itercount==1)
thrust_share = .2;
drag = 5000; %lbs
Pshaft_alt = 3000*550 * 1.36; % hp to watts
else
thrust_share = power_cruise_ts4/ power_cruise_seg4_total;
drag = ((power_cruise_seg4_total/1000 * kw2hp)*550) /(v_cruise_onward(1)*m2f);
Pshaft_alt = power_shaft_altitude_seg4;
end

% mode is 1
DATA_RESULT = run_BEMT4(hover_dwld_factor, DL_MR/(lb2kg*grav/(f2m)^2),
rho_alt_HOGE*0.00194032,...
tip_speed_MR(vtip)*m2f,1,Mcr, Mtip_cr(tscr), Mtip_hover(vtip),nblade_MR/num_MR,
twist(tw),af1end(af),af2end,af3end, rho_alt_BEMT,...
Vtip_cr(tscr),Pshaft_alt, ((dia_MR/2)*m2f)^2 * pi, Msweepstart, sweepstrength);

% DATA_RESULT = [sldty, af1end, af2end, af3end,


sweepstrength,Msweepstart,inflow_cr,CTs_out,CQs_out,Mtip_cr,FM,CTs_hover,theta75_hove
r,eta,Nb,Mtip_hover];

sigma_MR(armr,nb) = DATA_RESULT(1);
FM_MR(fm) = DATA_RESULT(11);
eff_propeller(np) = DATA_RESULT(14);
ct_sig_cruise = DATA_RESULT(8); % segment 4 used
Trotor_cruise = 2 * ct_sig_cruise * sigma_MR(armr,nb) *
rho_alt_cruise*((dia_MR/2)^2*pi)*(Vtip_cr(tscr)*f2m)^2;% Newtons - both rotors
Trotor_climb = 2 * ct_sig_cruise * sigma_MR(armr,nb) *
1/2*(rho_alt_cruise+rho_alt_HOGE)*((dia_MR/2)^2*pi)*(Vtip_cr(tscr)*f2m)^2;% Newtons -
both rotors

errtol2 = (Trotor_cruise - Trotorcruise_prev)/Trotor_cruise;


if isnan(errtol2); errtol2=10; end
% Trotor = Trotor * 0.224809; % lbf - both rotors

% Compute the disk loading for the main rotor, SI (N/m2)


%DL_MR = 0.5*sigma_MR(armr,nb)*ct_sigma_MR(k)*rho_alt_HOGE*...
% ( (vtip)_MR)^2*(1+hover_dwld_factor);
ct_sigma_MR = (DL_MR(dl)*(1+hover_dwld_factor))/(sigma_MR(armr,nb)*rho_alt_HOGE*...
(tip_speed_MR(vtip))^2); %% /num_MR is in there because ct of the rotor is
% half of the system, 2 rotors

AR_MR(armr) = nblade_single_rotor/(pi*sigma_MR(armr,nb));

else
%%

% Compute the disk loading for the main rotor, SI (N/m2)


%DL_MR = 0.5*sigma_MR(armr,nb)*ct_sigma_MR(k)*rho_alt_HOGE*...
% ( (vtip)_MR)^2*(1+hover_dwld_factor);
ct_sigma_MR = (DL_MR(dl)*(1+hover_dwld_factor))/(sigma_MR(armr,nb)*rho_alt_HOGE*...
(tip_speed_MR(vtip))^2); %% /num_MR is in there because ct of the rotor is
% half of the system, 2 rotors

end

% Main rotor chord, SI (m)


chord_MR = dia_MR/(2*AR_MR(armr));

% Main rotor radius, SI (m)


rad_MR = 0.5*dia_MR;
rotor_disk_area = pi*rad_MR^2;

% Estimation of wing area. mass_seg3 = weight at start of cruise phase


% COMMENT OUT
%if(itercount==1); wing_area = mass_seg1/wing_loading;end % SI (m2)
%if(itercount~=1); wing_area = mass_seg3/wing_loading;end % SI (m2)

% Estimate wing properties


wing_horiz_length = fuselage_width + 2*rad_MR + 2*clearance; % no sweep
wing_span = wing_horiz_length*cos(wing_sweep(wsweep));
wing_chord = wing_span/AR0_wing(arw);
wing_area = wing_span*wing_chord;

% add the wing area and compute new aspect ratio due to
% outboard wing extensions
wing_chord_owe = 0.6*wing_chord;
wing_area_owe = 0.15*wing_area;
wing_span_owe = wing_area_owe/wing_chord_owe;

% fractional increase in wing area


frac_area_owe = wing_area_owe/wing_area;

% NEGATE SIZING DUE TO ADDITION OF WINGLETS


frac_area_owe=0;wing_span_owe=0; %DO WE NEED THIS

% newly estimated wing area and aspect ratio


wing_area = (1+frac_area_owe)*wing_area;% + wing_area_owe;
AR_wing(arw) = (wing_span+wing_span_owe)^2/wing_area;

wing_loading = mass_to/wing_area;

% Compute the power required in hover. It is assumed that the power


% supplied to the propellers is negligible. Engine power required
% to the MGB is the sum of MR, props and accessory drives, SI (W)
%power_hover_MR = (mass_seg1*grav*(1+hover_dwld_factor)/num_MR)^1.5/...
% (1388.3*FM_MR*dia_MR*sqrt(sigma_HOGE))*1000;

% VARIATION ASSUMING FIGURE OF MERIT --> FORMULA??


ct_single_rotor = (mass_seg1*grav*(1+hover_dwld_factor)/num_MR(nmr))/...
(rho_alt_HOGE*pi*rad_MR^2*tip_speed_MR(vtip)^2);

cp_single_rotor_ideal = ct_single_rotor^1.5/sqrt(2);
%cp_single_rotor_act = 1.15*(ct_single_rotor^1.5/sqrt(2)) +
((1/8)*cd0*sigma_MR(armr,nb));
cp_single_rotor_act = 1/(FM_MR(fm))*cp_single_rotor_ideal;

power_hover_MR = cp_single_rotor_act*(rho_alt_HOGE*pi*rad_MR^2*tip_speed_MR(vtip)^3);

% Main rotor torque, SI (Nm) --> FORMULA??


torque_MR = power_hover_MR/(1-loss_filter)*rad_MR/tip_speed_MR(vtip);

% ---------------------- ACCESSORIES ---------------------------

power_hover_accs = 0.01*power_hover_MR; % SI (W)

% Total power in hover due to MR and accs. -->


power_hover_total = num_MR(nmr)*(power_hover_MR)/...
eff_power_MR_hover+power_hover_accs;

% Assume 5% losses for installation and account for pressure change


% Obtain shaft horse power required based on temp and pres corrections
power_top = power_hover_total/((1-KT_irp*(theta_HOGE-1))*...
(1+KD_irp*(delta_HOGE-1)));

% compute installed power based on RFP 2007


power_installed_2 = frac_install*frac_inst_irp*power_top; % total power rating for
hover
%%%%%%%% in config ID 3 and 2 -> power installed 2 is our Turboshaft sizing

%%%%% Instead of irp


if(itercount==1);power_idle = frac_power_idle*power_installed_2;end

% ----------------- FUEL CONSIDERATIONS ------------------------

% engine model
power_seg2 = power_hover_total;

%[sfc_seg2] = engine_model(2,theta_HOGE,delta_HOGE);

[sfc_seg2] = engine_model(engine_ID,2,nengine,power_seg2,...
power_installed,theta_HOGE,delta_HOGE);

mass_fuel2 = (power_seg2/1000)*sfc_seg2*time_hover; %Kg, power converted to KW, time


is hr, sfc is kg/kwhr

% Mass at the end of this segment


mass_seg2 = mass_seg1 - mass_fuel2; % SI (kg)

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 3: Cruise-climb at best climb speed (V_BOC) where range credit may be taken
for the total % radius of action (ROA)for segments 4 and 6
% Notes: Assumed that the wing and wing mounted props carry
% the helicopter in climb. The main rotor is
% completely offloaded and tip is adjusted so that
% tip mach number <= 0.9.
% Notes: For a tiltrotor. Climb takes place in airplane mode.
% The propeller_effeciency is reduced for a tiltrotor.
%
% ==============================================================

if(itercount==1);v_climb_cl1 = v_climb;end

rho_in = 0.5*(rho_alt_HOGE+rho_alt_cruise);
sigma_in = 0.5*(sigma_HOGE+sigma_cruise);

%%%%% ORIGINAL POWER CLIMB FUNCTION


% [power_climb, mass_fuel3,mass_seg3,v_climb_cl1,dist_climb,CL_climb,...
% CD_climb,CL32_CD,CGRP,f_hub_MR_cl1,f_profile_cl1,f_airplane_cl1...
% ,f_wing_cl1,f_0_cl1,f_helicopter_cl1,f_prop_cl1,sfc_cl3] = ...
% climb_segment(mass_seg2, wing_loading,v_climb_cl1,DL_MR(dl),...
% a,b,c,d,kg2lb,f2m,tip_speed_MR(vtip),cd0,grav,rho_in,wing_area,...
% AR_wing(arw),oswald,climb_rate,m2f,sigma_in,eff_propeller(np),...
% hp2kw,altitude_HOGE,altitude_cruise(alt),rotor_disk_area,...
% sigma_MR(armr,nb),aircraft_ID,dia_prop,sigma_prop,num_prop,num_MR(nmr),...
% theta_HOGE,delta_HOGE,speed_sound_HOGE);

[thrust_max_seg3,power_climb_ts3,power_climb_tf3,power_climb,mass_fuel3,mass_out,v_cl
imb,dist_climb,CL_climb,...

f_helicopter,sfc_cl3,mass_fuel_tf3,mass_fuel_ts3,time_seg3,power_shaft_altitude_seg3,
p_engine_alt_seg3]...
=
climb_segment(mach_climb,frac_power_mcp,delta_HOGE,delta_cruise,theta_HOGE,...
theta_cruise,power_installed_2,config_ID,...
config_mil,config_civ,mass_to, wing_loading,v_climb_cl1,DL_MR(dl),...
a,b,c,d,kg2lb,f2m,tip_speed_MR(vtip),cd0,grav,rho_in,wing_area,...
AR_wing(arw),oswald,climb_rate,m2f,sigma_in,eff_propeller(np),...
hp2kw,altitude_HOGE,altitude_cruise(alt),rotor_disk_area,...

sigma_MR(armr,nb),aircraft_ID,dia_prop,sigma_prop,num_prop,num_MR(nmr),power_share_pe
rc(PS_perc),Trotor_climb);

power_seg3 = power_climb;

%%%%% Turboshaft power provided


% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_climb_top_ts = power_climb_ts3/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1)));
power_installed_3ts = frac_install*frac_inst_mcp*power_climb_top_ts;

% Compute corresponding TOP, ASSUME CRUISE EQUATIONS


power_climb_top = power_climb;
power_top = power_climb_top/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1)));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 5% efficency boost to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots. This is an initial
%%%% estimation. ONLY FOR CRUISE AND CLIMB SEGMENTS - idk properties at dash altitude
%%%%%%%
if config_ID == 2 % folding TR, turbofan only
power_top = power_climb_top/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1))*.95);

power_installed_3tf = frac_install*frac_inst_mcp*power_top;
end

if config_ID == 3
power_top_3tf = power_climb_tf3/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1))*.95);

power_installed_3tf = frac_install*frac_inst_mcp*power_top_3tf;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg3 = sfc_cl3; % SI (kg/kW-hr) %%% tbh not used, so the effort to reflect ts sfc
and tf tsfc not used rn

%power_installed_3 =1.25*power_top;
power_installed_3 = frac_install*frac_inst_mcp*power_top; %how to get eqn

% Mass at the end of this segment


mass_seg3 = mass_seg2- mass_fuel3; % SI (kg)

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 4: Cruise 450 nm (833 km) at no less than 20000 ft (6096 m) ISA, or best
cruise altitude
% at V_BR or no less than 450 KTAS (833 km/hr)
cruise_range = range_onward-dist_climb;

%%%% ORIGINAL CRUISE FUNCTION CALL OUT


% [power_cruise,mass_fuel4,mass_seg4,CL_cruise1,f_hub_MR_cr1,f_profile_cr1,...
% f_airplane_cr1,f_wing_cr1,f_0_cr1,f_helicopter_cr1,f_prop_cr1,...
% fuel_flow_rate_cr1,LD_heli_cr1,sfc_cr4,drag_total_lb_seg4]...
% = cruise_segment(mass_seg3,v_cruise_onward(mission_ID),...
% speed_sound_cruise,...
% tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_area,...
%
sigma_MR(armr,nb),rho_alt_cruise,AR_wing(arw),eff_propeller(np),cruise_range,.
..
% a,b,c,d,f2m,kg2lb,cd0,grav,aircraft_ID,tip_speed_MR(vtip)...
% ,dia_prop,sigma_prop,num_prop,num_MR(nmr),flat_plate_factor,oswald,...
% theta_cruise,delta_cruise,speed_sound_cruise);
[thrust_max_seg4,power_cruise_ts4,power_cruise_tf4,power_cruise,mass_fuel4,mass_seg4,
CL_cruise1,f_helicopter_cr1,...
fuel_flow_rate_cr1,LD_heli_cr1,sfc_cr4,tsfc_cr4,drag_total_lb_seg4,mass_fuel_t
f4,mass_fuel_ts4,time_seg4,power_shaft_altitude_seg4,p_engine_alt_seg4]...
= cruise_segment(mach_cruise,frac_power_mcp,delta_cruise,theta_cruise,...

power_installed_2,config_ID,config_mil,config_civ,mass_to,v_cruise_onward(mission_ID)
,...

speed_sound_cruise,tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_area,...
sigma_MR(armr,nb),rho_alt_cruise,AR_wing(arw),eff_propeller(np),cruise_range,.
..
a,b,c,d,f2m,kg2lb,cd0,grav,aircraft_ID,tip_speed_MR(vtip)...
,dia_prop,sigma_prop,num_prop,num_MR(nmr),flat_plate_factor,oswald,power_share
_perc(PS_perc),Trotor_cruise);

power_cruise_seg4_total = power_cruise;

% Account for reserve fuel, very crude. Refine it later. --> Where does
% this come from. Doesnt seem important as it gets over written later
if config_ID == 1
% TR, sfc based on turboshaft engine
mass_fuel_reserve = (power_cruise/1000)*sfc_cr4* (reserve_fuel_time); % SI (kg).
reserve fuel time in hrs.
elseif config_ID == 2
%FTR, tsfc for turbofan engine
mass_fuel_reserve =
(power_cruise/v_cruise_onward(mission_ID))*tsfc_cr4*(reserve_fuel_time*3600); % SI
(kg). reserve fuel time in hrs.
elseif config_ID == 3
mass_fuel_reserve_ts = (p_engine_alt_seg4/1000)*sfc_cr4*(reserve_fuel_time);
mass_fuel_reserve_tf =
(power_cruise_tf4/v_cruise_onward(mission_ID))*tsfc_cr4*(reserve_fuel_time*3600);% SI
(kg). reserve fuel time in hrs.
mass_fuel_reserve = mass_fuel_reserve_ts + mass_fuel_reserve_tf;
end

power_seg4 = power_cruise;

%%%%% Turboshaft power provided


% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_cruise_top_ts = p_engine_alt_seg4/...
((1-KT_mcp*(theta_cruise-1))*...
(1+KD_mcp*(delta_cruise-1)));
power_installed_4ts = frac_install*frac_inst_mcp*power_cruise_top_ts;

% Compute corresponding TOP


power_cruise_top = power_cruise;

power_top = power_cruise_top/((1-KT_mcp*(theta_cruise-1))*...
(1+KD_mcp*(delta_cruise-1)));
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 10% efficency decrease to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots. This is an initial
%%%% estimation. ONLY FOR CRUISE AND CLIMB SEGMENTS - idk properties at dash altitude
%%%%%%%
if config_ID == 2
power_top_4tf = power_cruise_top/((1-KT_mcp*(theta_cruise-1))*...
(1+KD_mcp*(delta_cruise-1))*.9);

power_installed_4tf = frac_install*frac_inst_mcp*power_top_4tf;
end

if config_ID == 3
power_top_4tf = power_cruise_tf4/((1-KT_mcp*((theta_cruise)-1))*...
(1+KD_mcp*((delta_cruise)-1))*.9);

power_installed_4tf = frac_install*frac_inst_mcp*power_top_4tf;

power_top_4ts = p_engine_alt_seg4/((1-KT_mcp*((theta_cruise)-1))*...
(1+KD_mcp*((delta_cruise)-1)));
power_top = power_top_4ts + power_top_4tf;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg4 = sfc_cr4; % SI (kg/kW-hr)
tsfc_seg4 = tsfc_cr4;

%power_installed_4 =1.25*power_top;
power_installed_4 = frac_install*frac_inst_mcp*power_top; %how to get eqn

%%%%% L/D in cruise


LD_cruise_NOBedit =
(((mass_seg3+mass_seg4)/2*grav)*(v_cruise_onward(mission_ID)))/power_cruise;

%%%%% Using L/D = WV/P. P in SI units, averaging weight from


%%%%% beginning and end of the cruise segment. mass*gravity for weight.

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 5: Descend to 2000 ft MSL 85 deg F (no range credit)
% compute the time taken in descent. Assumed that the power
% setting is flight idle. SI (s)
time_descent = (altitude_cruise(alt)-altitude_loiter)/descent_rate;

% idle power for seg5 --> why KT_mrp, not Irp, not OEI, etc..
% NOB says becasue
power_idle_seg5 = power_idle*(1-KT_mrp*(0.5*(theta_loiter+...
theta_cruise)-1))*(1+KD_mrp*(0.5*(delta_loiter+delta_cruise)-1));

[sfc_seg5] = engine_model(engine_ID,3,nengine,power_idle_seg5,...
power_installed,0.5*(theta_loiter+theta_cruise),...
0.5*(delta_loiter+delta_cruise));

mass_fuel5 = sfc_seg5*(power_idle_seg5/1000)*(time_descent/3600);

% Mass of the vehicle at the end of this segment


mass_seg5 = mass_seg4-mass_fuel5;

% Assume power in descent is done in idle conditions


%power_seg5 = 0.6*power_hover_total;
power_seg5 = power_idle_seg5;

power_installed_5 = power_seg5;

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 6: 50 nm (92.6 km) of low-altitude, high-speed penetration
% Assumed that this segment is in helicopter mode at loiter speed
% Considerations for Mission 1. Treated as low speed cruise flight.
if(mission_ID==1 || mission_ID==2)

% Specify the mode which we will be using for high speed penetration
% 1- Helicopter Mode - SAR
% 2 - Airplane Mode - Military high speed
HSP_type_ID = 2;

% High speed penetration in HELICOPTER mode


if HSP_type_ID == 1

% induced power factor


ipf = 1.15;
% advance ratio
advance_ratio = v_cruise_loiter(mission_ID)/tip_speed_MR(vtip);

% Ct on a single rotor at the beginning of this segment


ct_single_seg6 = (mass_seg5*grav*(1+hover_dwld_factor)/num_MR(nmr))/...
(rho_alt_loiter*pi*rad_MR^2*tip_speed_MR(vtip)^2);

% total induced power for BOTH rotors


cp_induced = num_MR(nmr)*(ipf*ct_single_seg6^2/(2*advance_ratio));

% profile power losses of the rotor


cp_profile = num_MR(nmr)*(sigma_MR(armr,nb)*cd0/8)*(1+4.65*advance_ratio^2);

% parasitic power of the fuselage using a flat plate area


cp_parasitic = 0.5*(1.1*f_helicopter_cr1/(pi*rad_MR^2))*advance_ratio^3;

% total power, SI (W)


power_seg6 = (cp_induced+cp_profile+cp_parasitic)*...
(rho_alt_loiter*pi*rad_MR^2*tip_speed_MR(vtip)^3);

% ----------------------- FUEL CONSIDERATIONS -----------------------------

% compute the sfc for loiter


[sfc_seg6] = engine_model(engine_ID,1,nengine,power_seg6,...
power_installed,theta_loiter,delta_loiter);

% Time spent in loiter, SI (s)


time_loiter6 = (1000*range_loiter(mission_ID))/v_cruise_loiter(mission_ID);

% Fuel consumed in loiter, SI (kg). power in kW and time in hrs.


mass_fuel6 = (power_seg6/1000)*sfc_seg6*(time_loiter6/3600);

% Fuel flow rate


fuel_flow_rate = (power_seg6/1000)*sfc_seg6; % SI (kg/hr)

% Mass of the vehicle at the end of this segments


mass_seg6= mass_seg5-mass_fuel6;

%------------------------------------------------------------------------%

end

%################################################################
% High speed penetration in AIRPLANE mode

if HSP_type_ID == 2
[thrust_max_seg6,power_loiter_ts6,power_loiter_tf6,power_loiter,mass_fuel6,mass_seg6,
CL_loiter,f_helicopter_lo,...
fuel_flow_rate_lo,LD_heli_lo,sfc_lo,tsfc_lo,drag_total_lb_seg6,mass_fuel_tf6,m
ass_fuel_ts6,time_seg6,power_shaft_altitude_seg6,p_engine_alt_seg6]...
= cruise_segment(mach_loiter,frac_power_mcp,delta_HOGE,theta_HOGE,...

power_installed_2,config_ID,config_mil,config_civ,mass_to,v_cruise_loiter(mission_ID)
,...
speed_sound_loiter,tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_ar
ea,...
sigma_MR(armr,nb),rho_alt_loiter,AR_wing(arw),eff_propeller(np),...
range_loiter(mission_ID),a,b,c,d,f2m,kg2lb,cd0,grav,...
aircraft_ID,tip_speed_MR(vtip),dia_prop,sigma_prop,num_prop,num_MR,...
flat_plate_factor,oswald,power_share_perc(PS_perc),Trotor_cruise);

power_seg6 = power_loiter;

%%%%% Turboshaft power provided


% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_loiter_top_ts = p_engine_alt_seg6/...
((1-KT_mcp*((theta_HOGE)-1))*...
(1+KD_mcp*((delta_HOGE)-1)));
power_installed_6ts = frac_install*frac_inst_mcp*power_loiter_top_ts;

power_loiter_top = power_loiter;
power_top = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 10% efficency decrease to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots
if config_ID == 2
power_top_6tf = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

power_installed_6tf = frac_install*frac_inst_mcp*power_top_6tf;
end

if config_ID == 3
power_installed_6tf = power_loiter_tf6/((1-KT_mcp*((theta_loiter)-1))*...
(1+KD_mcp*((delta_loiter)-1))*.9);

power_installed_6tf = frac_install*frac_inst_mcp*power_installed_6tf;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg6 = sfc_lo; % SI (kg/kW-hr)
tsfc_seg6 = tsfc_lo; % SI (kg/kW-hr)

%power_installed_4 =1.25*power_top;
power_installed_6 = frac_install*frac_inst_mcp*power_top;

LD_loiter_NOBedit =
(((mass_seg5+mass_seg6)/2*grav)*(v_cruise_loiter(mission_ID)))/power_loiter;

end
% ############################################################

end % Mission_ID 1 or 2
% % --------------------------------------------------------------
% % --------------------------------------------------------------

if(mission_ID==3)

% Specify the mode which we will be using for high speed penetration
% 1- Helicopter Mode - SAR
% 2 - Airplane Mode - Miliatry high speed
HSP_type_ID = 1;

if HSP_type_ID == 1

% Idling on the ground while loading/unloading


% Scalable engine data
%[sfc_seg6] = engine_model(3,theta_loiter,delta_loiter);

% idle power seg 6


power_idle_seg6 = power_idle*(1-KT_mrp*(theta_loiter-1))*...
(1+KD_mrp*(delta_loiter-1));

[sfc_seg6] = engine_model(engine_ID,3,nengine,power_idle_seg6,...
power_installed,theta_loiter,delta_loiter);

mass_fuel6_1 = sfc_seg6*(power_idle_seg6/1000)*(0.5);

% Mass at the end of this segment


mass_seg6_1 = mass_to - mass_fuel6_1;

% ----------------------- MAIN ROTOR ---------------------------


% Compute the power required in hover. It is assumed that the power
% supplied to the propellers is negligible. Engine power required
% to the MGB is the sum of MR, TR, props and accessory drives.
% SI (W)
power_hover_MR1 = (mass_seg6_1*grav*(1+hover_dwld_factor)/num_MR)^1.5/...
(1388.3*FM_MR(fm)*dia_MR*sqrt(sigma_loiter))*1000;

% Main rotor torque, SI (Nm)


torque_MR1 = power_hover_MR1*(1-loss_filter)*rad_MR/tip_speed_MR(vtip);

% ---------------------- ACCESSORIES ---------------------------

power_hover_accs = 0.01*power_hover_MR1; % SI (W)

% Total power in hover due to MR and accs.


power_hover_total6 = num_MR*(power_hover_MR1)/...
eff_power_MR_hover+power_hover_accs;

% Scalable engine data


%[sfc_to] = engine_model(2,theta_loiter,delta_loiter);

% Compute corresponding TOP


power_top = power_hover_total6/((1-KT_irp*(theta_loiter-1))*...
(1+KD_irp*(delta_loiter-1)));

[sfc_to] = engine_model(engine_ID,2,nengine,power_top,...
power_installed,theta_loiter,delta_loiter);

power_installed_6 = frac_install*frac_inst_irp*power_top;

% ----------------- FUEL CONSIDERATIONS ------------------------

mass_fuel6_2 = (power_hover_total6/1000)*sfc_to*time_hover;

mass_fuel6 = mass_fuel6_1+mass_fuel6_2;

% Mass at the end of this segment


mass_seg6 = mass_seg5 - mass_fuel6; % SI (kg)

power_seg6 = power_hover_total6;
% sfc of the segment
sfc_seg6 = sfc_lo; % SI (kg/kW-hr)

% compute the installed power required


power_loiter_top = power_seg6;
power_top = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

% Net power to be installed


power_installed_6 = frac_install*frac_inst_mcp*power_top;

end

%################################################################
% High speed penetration in AIRPLANE mode

if HSP_type_ID == 2

[thrust_max_seg6,power_loiter_ts6,power_loiter_tf6,power_loiter,mass_fuel6,mass_seg6,
CL_loiter,f_helicopter_lo,...
fuel_flow_rate_lo,LD_heli_lo,sfc_lo,tsfc_lo,drag_total_lb_seg6,mass_fuel_tf6,m
ass_fuel_ts6,time_seg6,power_shaft_altitude_seg6,p_engine_alt_seg6]...
= cruise_segment(mach_loiter,frac_power_mcp,delta_HOGE,theta_HOGE,...

power_installed_2,config_ID,config_mil,config_civ,mass_to,v_cruise_loiter(mission_ID)
,...
speed_sound_loiter,tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_ar
ea,...
sigma_MR(armr,nb),rho_alt_loiter,AR_wing(arw),eff_propeller(np),...
range_loiter(mission_ID),a,b,c,d,f2m,kg2lb,cd0,grav,...
aircraft_ID,tip_speed_MR(vtip),dia_prop,sigma_prop,num_prop,num_MR,...
flat_plate_factor,oswald,power_share_perc(PS_perc),Trotor_cruise);

% ############################################################

power_seg6 = power_loiter;

%%%%% Turboshaft power provided


% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_loiter_top_ts = p_engine_alt_seg6/...
((1-KT_mcp*((theta_HOGE)-1))*...
(1+KD_mcp*((delta_HOGE)-1)));
power_installed_6ts = frac_install*frac_inst_mcp*power_loiter_top_ts;

power_loiter_top = power_loiter;
power_top = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 10% efficency decrease to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots
if config_ID == 2
power_top_6tf = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

power_installed_6tf = frac_install*frac_inst_mcp*power_top_6tf;
end

if config_ID == 3
power_installed_6tf = power_loiter_tf6/((1-KT_mcp*((theta_loiter)-1))*...
(1+KD_mcp*((delta_loiter)-1))*.9);

power_installed_6tf = frac_install*frac_inst_mcp*power_installed_6tf;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg6 = sfc_lo; % SI (kg/kW-hr)
tsfc_seg6 = tsfc_lo; % SI (kg/kW-hr)

%power_installed_4 =1.25*power_top;
power_installed_6 = frac_install*frac_inst_mcp*power_top;

LD_loiter_NOBedit =
(((mass_seg5+mass_seg6)/2*grav)*(v_cruise_loiter(mission_ID)))/power_loiter;

end

end % Mission 3

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 7: 2-min mid-mission Landing Zone (LZ) HOGE at Mid-Mission Gross Weight
(MMGW)
% (Similar to Segment 2)

% VARIATION MADE BY BHARATH --> same formula as segment 2


ct_single_rotor = (mass_seg6*grav*(1+hover_dwld_factor)/num_MR(nmr))/...
(rho_alt_HOGE*pi*rad_MR^2*tip_speed_MR(vtip)^2);

cp_single_rotor_ideal = ct_single_rotor^1.5/sqrt(2);
% cp_single_rotor_act = 1.15*(ct_single_rotor^1.5/sqrt(2)) +
((1/8)*cd0*sigma_MR(armr,nb));
cp_single_rotor_act = 1/(FM_MR(fm))*cp_single_rotor_ideal;

power_hover_MR = cp_single_rotor_act*(rho_alt_HOGE*pi*rad_MR^2*tip_speed_MR(vtip)^3);
% FM_MR_seg7 = cp_single_rotor_ideal/cp_single_rotor_act;

% Main rotor torque, SI (Nm)


torque_MR = power_hover_MR/(1-loss_filter)*rad_MR/tip_speed_MR(vtip);
% ---------------------- ACCESSORIES ---------------------------

power_hover_accs = 0.01*power_hover_MR; % SI (W)

% Total power in hover due to MR and accs.


power_hover_seg7 = num_MR(nmr)*(power_hover_MR)/...
eff_power_MR_hover+power_hover_accs;

% Assume 5% losses for installation and account for pressure change


% Obtain shaft horse power required based on temp and pres corrections
power_top = power_hover_seg7/((1-KT_irp*(theta_HOGE-1))*...
(1+KD_irp*(delta_HOGE-1)));

%compute installed power based on RFP 2007


%power_installed_7 = 1.00*power_top;
power_installed_7 = frac_install*frac_inst_irp*power_top;

%if(itercount==1);power_idle = frac_power_idle*power_installed_7;end

% ----------------- FUEL CONSIDERATIONS ------------------------

% engine model
power_seg7 = power_hover_seg7;

%[sfc_seg2] = engine_model(2,theta_HOGE,delta_HOGE);

[sfc_seg7] = engine_model(engine_ID,2,nengine, power_seg7,...


power_installed,theta_HOGE,delta_HOGE);

mass_fuel7 = (power_seg7 /1000)*sfc_seg7*time_hover;

% Mass at the end of this segment


mass_seg7 = mass_seg6 - mass_fuel7; % SI (kg)

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 8: Cruise-climb at best climb speed (V_BOC) where range credit may be taken
for the total radius of action (ROA)for segments 4 and 6 [Similar to Segment 3]
% Notes: Assumed that the wing and wing mounted props carry
% the helicopter in climb. The main rotor is
% completely offloaded and tip is adjusted so that
% tip mach number <= 0.9.
% Notes: For a tiltrotor. Climb takes place in airplane mode.
% The propeller_effeciency is reduced for a tiltrotor.
%
% ==============================================================

rho_in = 0.5*(rho_alt_HOGE+rho_alt_cruise);
sigma_in = 0.5*(sigma_HOGE+sigma_cruise);

%%%%% Original Call Out for CLIMB function


% [power_climb,mass_fuel8, mass_seg8, v_climb_cl1,dist_climb,CL_climb,...
% CD_climb,CL32_CD,CGRP,f_hub_MR_cl1,f_profile_cl1,f_airplane_cl1...
% ,f_wing_cl1,f_0_cl1,f_helicopter_cl1,f_prop_cl1,sfc_cl8] = ...
% climb_segment(mass_seg7, wing_loading,v_climb_cl1,DL_MR(dl),...
% a,b,c,d,kg2lb,f2m,tip_speed_MR(vtip),cd0,grav,rho_in,wing_area,...
% AR_wing(arw),oswald,climb_rate,m2f,sigma_in,eff_propeller(np),...
% hp2kw,altitude_HOGE,altitude_cruise(alt),rotor_disk_area,...
% sigma_MR(armr,nb),aircraft_ID,dia_prop,sigma_prop,num_prop,num_MR,...
% theta_HOGE,delta_HOGE,speed_sound_HOGE);

[thrust_max_seg8,power_climb_ts8,power_climb_tf8,power_climb,
mass_fuel8,mass_seg8,v_climb_cl1,dist_climb,CL_climb,...

f_helicopter_cl1,sfc_cl8,mass_fuel_tf8,mass_fuel_ts8,time_seg8,power_shaft_altitude_s
eg8,p_engine_alt_seg8] = ...
climb_segment(mach_climb,frac_power_mcp,delta_HOGE,delta_cruise, ...
theta_HOGE, theta_cruise,power_installed_2,config_ID,...
config_mil,config_civ,mass_to, wing_loading,v_climb_cl1,DL_MR(dl),...
a,b,c,d,kg2lb,f2m,tip_speed_MR(vtip),cd0,grav,rho_in,wing_area,...
AR_wing(arw),oswald,climb_rate,m2f,sigma_in,eff_propeller(np),...
hp2kw,altitude_HOGE,altitude_cruise(alt),rotor_disk_area,...

sigma_MR(armr,nb),aircraft_ID,dia_prop,sigma_prop,num_prop,num_MR(nmr),power_share_pe
rc(PS_perc),Trotor_climb);

power_seg8 = power_climb;

%%%%% Turboshaft power provided


% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_climb_top_ts = p_engine_alt_seg8/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1)));
power_installed_8ts = frac_install*frac_inst_mcp*power_climb_top_ts;

% Compute corresponding TOP, ASSUME CLIMB EQUATIONS


power_climb_top = power_climb;
power_top = power_climb_top/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1)));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 5% efficency boost to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots. This is an initial
%%%% estimation. ONLY FOR CRUISE AND CLIMB SEGMENTS - idk properties at dash altitude
%%%%%%%
if config_ID == 2
power_top_8tf = power_climb_top/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1))*.95);

power_installed_8tf = frac_install*frac_inst_mcp*power_top_8tf;

end
if config_ID == 3
power_installed_8tf = power_climb_tf8/...
((1-KT_mcp*(0.5*(theta_cruise+theta_HOGE)-1))*...
(1+KD_mcp*(0.5*(delta_cruise+delta_HOGE)-1))*.95);

power_installed_8tf = frac_install*frac_inst_mcp*power_installed_8tf;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg8 = sfc_cl8; % SI (kg/kW-hr)

%power_installed_8 =1.25*power_top;
power_installed_8 = frac_install*frac_inst_mcp*power_top;

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 9: Cruise 450 nm (833 km) at no less than 20000 ft (6096 m) ISA, or best
cruise altitude
% at V_BR or no less than 450 KTAS (833 km/hr) [Same as Segment 4]
cruise_range = range_onward-dist_climb;

%%%%% Original Call Out for CRUISE function


% [power_cruise, mass_fuel9, mass_seg9, CL_cruise1,f_hub_MR_cr1,f_profile_cr1,...
% f_airplane_cr1,f_wing_cr1,f_0_cr1,f_helicopter_cr1,f_prop_cr1,...
% fuel_flow_rate_cr1,LD_heli_cr1,sfc_cr9, drag_total_lb_seg9]...
% = cruise_segment(mass_seg8, v_cruise_onward(mission_ID),...
% speed_sound_cruise,...
% tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_area,...
%
sigma_MR(armr,nb),rho_alt_cruise,AR_wing(arw),eff_propeller(np),cruise_range,.
..
% a,b,c,d,f2m,kg2lb,cd0,grav,aircraft_ID,tip_speed_MR(vtip)...
% ,dia_prop,sigma_prop,num_prop,num_MR,flat_plate_factor,oswald,...
% theta_cruise,delta_cruise,speed_sound_cruise); %#ok<ASGLU>

[thrust_max_seg9,power_cruise_ts9,power_cruise_tf9,power_cruise,mass_fuel9,mass_seg9,
CL_cruise1,f_helicopter_cr1,...
fuel_flow_rate_cr2,LD_heli_cr2,sfc_cr9,tsfc_cr9,drag_total_lb_seg9,mass_fuel_t
f9,mass_fuel_ts9,time_seg9,power_shaft_altitude_seg9,p_engine_alt_seg9]...
= cruise_segment(mach_cruise,frac_power_mcp,delta_cruise,theta_cruise,...

power_installed_2,config_ID,config_mil,config_civ,mass_to,v_cruise_onward(mission_ID)
,...

speed_sound_cruise,tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_area,...
sigma_MR(armr,nb),rho_alt_cruise,AR_wing(arw),eff_propeller(np),cruise_range,.
..
a,b,c,d,f2m,kg2lb,cd0,grav,aircraft_ID,tip_speed_MR(vtip)...
,dia_prop,sigma_prop,num_prop,num_MR(nmr),flat_plate_factor,oswald,power_share
_perc(PS_perc),Trotor_cruise);
% Account for reserve fuel, very crude. Refine it later. --> Where does
% this come from
if config_ID == 1
% TR, sfc based on turboshaft engine
mass_fuel_reserve = (power_cruise/1000)*sfc_cr9* (reserve_fuel_time); % SI (kg).
reserve fuel time in hrs.
elseif config_ID == 2
%FTR, tsfc for turbofan engine
mass_fuel_reserve =
(power_cruise/v_cruise_onward(mission_ID))*tsfc_cr9*(reserve_fuel_time*3600); % SI
(kg). reserve fuel time in hrs.
elseif config_ID == 3
mass_fuel_reserve_ts = (p_engine_alt_seg9/1000)*sfc_cr9*(reserve_fuel_time);
mass_fuel_reserve_tf =
(power_cruise_tf9/v_cruise_onward(mission_ID))*tsfc_cr9*(reserve_fuel_time*3600);% SI
(kg). reserve fuel time in hrs.
mass_fuel_reserve = mass_fuel_reserve_ts + mass_fuel_reserve_tf;
end

power_seg9 = power_cruise;

%%%%% Turboshaft power provided


% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_cruise_top_ts = power_cruise_ts9/...
((1-KT_mcp*(theta_cruise-1))*...
(1+KD_mcp*(delta_cruise-1)));
power_installed_9ts = frac_install*frac_inst_mcp*power_cruise_top_ts;

% Compute corresponding TOP


power_cruise_top = power_cruise;
power_top = power_cruise_top/((1-KT_mcp*(theta_cruise-1))*...
(1+KD_mcp*(delta_cruise-1)));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 10% efficency decrease to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots. This is an initial
%%%% estimation. ONLY FOR CRUISE AND CLIMB SEGMENTS - idk properties at dash altitude
%%%%%%%
if config_ID == 2 %tf only
power_top_9tf = power_cruise_top/((1-KT_mcp*(theta_cruise-1))*...
(1+KD_mcp*(delta_cruise-1))*.9);

power_installed_9tf = frac_install*frac_inst_mcp*power_top_9tf;
end

if config_ID == 3
power_top_9tf = power_cruise_tf9/((1-KT_mcp*((theta_cruise)-1))*...
(1+KD_mcp*((delta_cruise)-1))*.9);

power_installed_9tf = frac_install*frac_inst_mcp*power_top_9tf;

power_top_9ts = p_engine_alt_seg9/((1-KT_mcp*((theta_cruise)-1))*...
(1+KD_mcp*((delta_cruise)-1)));
power_top = power_top_9tf + power_top_9ts;

end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg9 = sfc_cr9; % SI (kg/kW-hr)
tsfc_seg9 = tsfc_cr9;

%power_installed_4 =1.25*power_top;
power_installed_9 = frac_install*frac_inst_mcp*power_top; %how to get eqn

%%%%% L/D in cruise


LD_cruise_NOBedit =
(((mass_seg3+mass_seg4)/2*grav)*(v_cruise_onward(mission_ID)))/power_cruise;

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 10: Descend to 2000 ft MSL 85 deg F (no range credit) [Same as Segment 5]
% compute the time taken in descent. Assumed that the power
% setting is flight idle. SI (s)
time_descent = (altitude_cruise(alt)-altitude_loiter)/descent_rate;

% idle power for seg10


power_idle_seg10 = power_idle*(1-KT_mrp*(0.5*(theta_loiter+...
theta_cruise)-1))*(1+KD_mrp*(0.5*(delta_loiter+delta_cruise)-1));

[sfc_seg10] = engine_model(engine_ID,3,nengine,power_idle_seg10,...
power_installed,0.5*(theta_loiter+theta_cruise),...
0.5*(delta_loiter+delta_cruise));

mass_fuel10 = sfc_seg10*(power_idle_seg10/1000)*(time_descent/3600);

% Mass of the vehicle at the end of this segment


mass_seg10 = mass_seg9-mass_fuel10;

% Assume power in descent is done in idle conditions


%power_seg5 = 0.6*power_hover_total;
power_seg10 = power_idle_seg10;

power_installed_10 = power_seg10;

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 11: 50 nm (92.6 km) of low-altitude, high-speed penetration [Same as
Segment 6]
% Considerations for Mission 1. Treated as low speed cruise flight.
if(mission_ID==1 || mission_ID==2)

% Specify the mode which we will be using for high speed penetration
% 1- Helicopter Mode - SAR
% 2 - Airplane Mode - Military high speed
HSP_type_ID = 2;
% High speed penetration in HELICOPTER mode
if HSP_type_ID == 1

% induced power factor


ipf = 1.15;

% advance ratio
advance_ratio = v_cruise_loiter(mission_ID)/tip_speed_MR(vtip);

% Ct on a single rotor at the beginning of this segment


ct_single_seg11 = (mass_seg10*grav*(1+hover_dwld_factor)/num_MR(nmr))/...
(rho_alt_loiter*pi*rad_MR^2*tip_speed_MR(vtip)^2);

% total induced power for BOTH rotors


cp_induced = num_MR*(ipf*ct_single_seg6^2/(2*advance_ratio));

% profile power losses of the rotor


cp_profile = num_MR*(sigma_MR(armr,nb)*cd0/8)*(1+4.65*advance_ratio^2);

% parasitic power of the fuselage using a flat plate area


cp_parasitic = 0.5*(1.1*f_helicopter_cr1/(pi*rad_MR^2))*advance_ratio^3;

% total power, SI (W)


power_seg11 = (cp_induced+cp_profile+cp_parasitic)*...
(rho_alt_loiter*pi*rad_MR^2*tip_speed_MR(vtip)^3);

% compute the sfc for loiter


[sfc_seg11] = engine_model(engine_ID,1,nengine,power_seg6,...
power_installed,theta_loiter,delta_loiter);

% Time spent in loiter, SI (s)


time_loiter = (1000*range_loiter(mission_ID))/v_cruise_loiter(mission_ID);

% Fuel consumed in loiter, SI (kg). power in kW and time in hrs.


mass_fuel11 = (power_seg11/1000)*sfc_seg11*(time_loiter/3600);

% Fuel flow rate


fuel_flow_rate = (power_seg11/1000)*sfc_seg11; % SI (kg/hr)

% Mass of the vehicle at the end of this segments


mass_seg11= mass_seg10-mass_fuel11;

% compute the installed power required


power_loiter_top = power_seg11;
power_top = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

% Net power to be installed


power_installed_11 = frac_install*frac_inst_mcp*power_top;

end

% #########################################################
% High speed penetration in AIRPLANE mode
if HSP_type_ID == 2
[thrust_max_seg11,power_loiter_ts11,power_loiter_tf11,power_loiter,mass_fuel11,mass_s
eg11,CL_loiter,f_helicopter_lo,...
fuel_flow_rate_lo,LD_heli_lo,sfc_lo, tsfc_lo,
drag_total_lb_seg11,mass_fuel_tf11,mass_fuel_ts11,time_seg11,power_shaft_altitude_seg
11,p_engine_alt_seg11]...
= cruise_segment(mach_loiter,frac_power_mcp,delta_HOGE,theta_HOGE,...

power_installed_2,config_ID,config_mil,config_civ,mass_to,v_cruise_loiter(mission_ID)
,...
speed_sound_loiter,tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_ar
ea,...
sigma_MR(armr,nb),rho_alt_loiter,AR_wing(arw),eff_propeller(np),...
range_loiter(mission_ID),a,b,c,d,f2m,kg2lb,cd0,grav,...
aircraft_ID,tip_speed_MR(vtip),dia_prop,sigma_prop,num_prop,num_MR(nmr),...
flat_plate_factor,oswald,power_share_perc(PS_perc),Trotor_cruise);

power_seg11 = power_loiter;

%%%%% Turboshaft power provided


% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_loiter_top_ts = p_engine_alt_seg11/...
((1-KT_mcp*((theta_HOGE)-1))*...
(1+KD_mcp*((delta_HOGE)-1)));
power_installed_11ts = frac_install*frac_inst_mcp*power_loiter_top_ts;

power_loiter_top = power_loiter;
power_top = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 10% efficency decrease to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots
if config_ID == 2
power_top_11tf = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

power_installed_11tf = power_top_11tf*frac_install*frac_inst_mcp;
end

if config_ID == 3
power_top_11tf = power_loiter_tf11/((1-KT_mcp*((theta_loiter)-1))*...
(1+KD_mcp*((delta_loiter)-1)));

power_installed_11tf = frac_install*frac_inst_mcp*power_top_11tf;

power_top_11ts = p_engine_alt_seg11/((1-KT_mcp*((theta_loiter)-1))*...
(1+KD_mcp*((delta_loiter)-1)));

power_top = power_top_11ts + power_top_11tf;


end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg11 = sfc_lo; % SI (kg/kW-hr)
tsfc_seg11 = tsfc_lo; % SI (kg/kW-hr)

%power_installed_4 =1.25*power_top;
power_installed_11 = frac_install*frac_inst_mcp*power_top;

LD_NOBedit_lo11 =
(((mass_seg10+mass_seg11)/2*grav)*(v_cruise_loiter(mission_ID)))/power_loiter;

end
% #########################################################
end % Mission_ID 1 or 2

% % --------------------------------------------------------------
% % --------------------------------------------------------------

if(mission_ID==3)

% Specify the mode which we will be using for high speed penetration
% 1- Helicopter Mode - SAR
% 2 - Airplane Mode - Military high speed
HSP_type_ID = 1;

% High speed penetration in HELICOPTER mode


if HSP_type_ID == 1

% idle power seg 11


power_idle_seg11 = power_idle*(1-KT_mrp*(theta_loiter-1))*...
(1+KD_mrp*(delta_loiter-1));

[sfc_seg11] = engine_model(engine_ID,3,nengine,power_idle_seg6,...
power_installed,theta_loiter,delta_loiter);

mass_fuel11_1 = sfc_seg11*(power_idle_seg6/1000)*(0.5);

% Mass at the end of this segment


mass_seg11_1 = mass_seg10 - mass_fuel11_1;

% ----------------------- MAIN ROTOR ---------------------------


% Compute the power required in hover. It is assumed that the power
% supplied to the propellers is negligible. Engine power required
% to the MGB is the sum of MR, TR, props and accessory drives.
% SI (W)
power_hover_MR1 = (mass_seg11_1*grav*(1+hover_dwld_factor)/num_MR(nmr))^1.5/...
(1388.3*FM_MR(fm)*dia_MR*sqrt(sigma_loiter))*1000;
% Main rotor torque, SI (Nm)
torque_MR1 = power_hover_MR1*(1-loss_filter)*rad_MR/tip_speed_MR(vtip);

% ---------------------- ACCESSORIES ---------------------------

power_hover_accs = 0.01*power_hover_MR1; % SI (W)

% Total power in hover due to MR and accs.


power_hover_total11 = num_MR(nmr)*(power_hover_MR1)/...
eff_power_MR_hover+power_hover_accs;

% Compute corresponding TOP


power_top = power_hover_total11/((1-KT_irp*(theta_loiter-1))*...
(1+KD_irp*(delta_loiter-1)));

[sfc_to] = engine_model(engine_ID,2,nengine,power_top,...
power_installed,theta_loiter,delta_loiter);

power_installed_11 = frac_install*frac_inst_irp*power_top;

% ----------------- FUEL CONSIDERATIONS ------------------------

mass_fuel11_2 = (power_hover_total11/1000)*sfc_to*time_hover;

mass_fuel11 = mass_fue11_1+mass_fuel11_2;

% Mass at the end of this segment


mass_seg11 = mass_seg10 - mass_fuel11; % SI (kg)

power_seg11= power_hover_total11;

end

% High speed penetration in AIRPLANE mode


if HSP_type_ID == 2

[thrust_max_seg11,power_loiter_ts11,power_loiter_tf11,power_loiter,mass_fuel11,mass_s
eg11,CL_loiter,f_helicopter_lo,...
fuel_flow_rate_lo,LD_heli_lo,sfc_lo, tsfc_lo,
drag_total_lb_seg11,mass_fuel_tf11,mass_fuel_ts11,time_seg11,power_shaft_altitude_seg
11,p_engine_alt_seg11]...
= cruise_segment(mach_loiter,frac_power_mcp,delta_HOGE,theta_HOGE,...

power_installed_2,config_ID,config_mil,config_civ,mass_to,v_cruise_loiter(mission_ID)
,...
speed_sound_loiter,tip_mach_max,wing_loading,wing_area,DL_MR(dl),rotor_disk_ar
ea,...
sigma_MR(armr,nb),rho_alt_loiter,AR_wing(arw),eff_propeller(np),...
range_loiter(mission_ID),a,b,c,d,f2m,kg2lb,cd0,grav,...
aircraft_ID,tip_speed_MR(vtip),dia_prop,sigma_prop,num_prop,num_MR(nmr),...
flat_plate_factor,oswald,power_share_perc(PS_perc),Trotor_cruise);

power_seg11 = power_loiter;
%%%%% Turboshaft power provided
% TR --> this is the total power from climb
% FTR --> no power by turboshaft
% TR with Jet assist --> partial power by turboshaft
power_loiter_top_ts = power_loiter_ts11/...
((1-KT_mcp*((theta_HOGE)-1))*...
(1+KD_mcp*((delta_HOGE)-1)));
power_installed_11ts = frac_install*frac_inst_mcp*power_loiter_top_ts;

power_loiter_top = power_loiter;
power_top = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% NEW 3/14/2023 - 10% efficency decrease to turbofan engines at altitude.
%%%% Basing off of Xavier's lapse rate code/plots
if config_ID == 2
power_top_11tf = power_loiter_top/((1-KT_mcp*(theta_loiter-1))*...
(1+KD_mcp*(delta_loiter-1)));

power_installed_11tf = frac_install*frac_inst_mcp*power_top_11tf;
end

if config_ID == 3
power_top_11tf = power_loiter_tf11/((1-KT_mcp*((theta_loiter)-1))*...
(1+KD_mcp*((delta_loiter)-1)));

power_installed_11tf = frac_install*frac_inst_mcp*power_top_11tf;

power_top_11ts = p_engine_alt_seg11/((1-KT_mcp*((theta_loiter)-1))*...
(1+KD_mcp*((delta_loiter)-1)));

power_top = power_top_11ts + power_top_11tf;

end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% sfc of the segment


sfc_seg11 = sfc_lo; % SI (kg/kW-hr)
tsfc_seg11 = tsfc_lo; % SI (kg/kW-hr)

%power_installed_4 =1.25*power_top;
power_installed_11 = frac_install*frac_inst_mcp*power_top;

LD_NOBedit_lo11 =
(((mass_seg10+mass_seg11)/2*grav)*(v_cruise_loiter(mission_ID)))/power_loiter;

end % if HSP 2

end % Mission ID 3

% % --------------------------------------------------------------
% % --------------------------------------------------------------

%%%%%%%%%%%%%%%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&%%%%%%%%%%%%%%%%%%%%%%%%%%
% Segment 12: 2-min HOGE landing [Same as Segment 7]
% VARIATION MADE BY BHARATH
ct_single_rotor = (mass_seg11*grav*(1+hover_dwld_factor)/num_MR(nmr))/...
(rho_alt_HOGE*pi*rad_MR^2*tip_speed_MR(vtip)^2);

cp_single_rotor_ideal = ct_single_rotor^1.5/sqrt(2);
%cp_single_rotor_act = 1.15*(ct_single_rotor^1.5/sqrt(2)) +
((1/8)*cd0*sigma_MR(armr,nb));
cp_single_rotor_act = 1/(FM_MR(fm))*cp_single_rotor_ideal;

power_hover_MR = cp_single_rotor_act*(rho_alt_HOGE*pi*rad_MR^2*tip_speed_MR(vtip)^3);

% Main rotor torque, SI (Nm)


torque_MR = power_hover_MR/(1-loss_filter)*rad_MR/tip_speed_MR(vtip);

% ---------------------- ACCESSORIES ---------------------------

power_hover_accs = 0.01*power_hover_MR; % SI (W)

% Total power in hover due to MR and accs.


power_hover_seg12 = num_MR(nmr)*(power_hover_MR)/...
eff_power_MR_hover+power_hover_accs;
%Assume 5% losses for installation and account for pressure change
%Obtain shaft horse power required based on temp and pres corrections
power_top = power_hover_seg12/((1-KT_irp*(theta_HOGE-1))*...
(1+KD_irp*(delta_HOGE-1)));

%compute installed power based on RFP 2007


%power_installed_12 = 1.00*power_top;
power_installed_12 = frac_install*frac_inst_irp*power_top;

%if(itercount==1);power_idle = frac_power_idle*power_installed_12;end

% ----------------- FUEL CONSIDERATIONS ------------------------

% engine model
power_seg12 = power_hover_seg12;

[sfc_seg12] = engine_model(engine_ID,2,nengine, power_hover_seg12,...


power_installed,theta_HOGE,delta_HOGE);

mass_fuel12 = (power_hover_seg12 /1000)*sfc_seg12*time_hover;

% Mass at the end of this segment


mass_seg12 = mass_seg11 - mass_fuel12; % SI (kg)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% FINAL CALCULATIONS:
% %Compiling each segments properties

% mass at each segment, SI (kg)


mass_seg = [mass_seg1 mass_seg2 mass_seg3 mass_seg4 ...
mass_seg5 mass_seg6 mass_seg7 mass_seg8 mass_seg9 ...
mass_seg10 mass_seg11 mass_seg12 ];

% SFC at eacg segment, SI (kg/kW-hr)


sfc_seg = [sfc_seg1 sfc_seg2 sfc_seg3 sfc_seg4 ...
sfc_seg5 sfc_seg6 sfc_seg7 sfc_seg8 sfc_seg9 ...
sfc_seg10 sfc_seg11 sfc_seg12];

% Fuel consumed in each segment, SI (kg)


mass_fuel = [mass_fuel1 mass_fuel2 mass_fuel3 mass_fuel4 ...
mass_fuel5 mass_fuel6 mass_fuel7 mass_fuel8 mass_fuel9 ...
mass_fuel10 mass_fuel11 mass_fuel12];

% Fuel consumed per propulsion device, SI (kg)


mass_fuel_ts_total =
[mass_fuel_ts3,mass_fuel_ts4,mass_fuel_ts6,mass_fuel_ts8,mass_fuel_ts9,mass_fuel_ts11
]; %Newtons (SI)
mass_fuel_tf_total =
[mass_fuel_tf3,mass_fuel_tf4,mass_fuel_tf6,mass_fuel_tf8,mass_fuel_tf9,mass_fuel_tf11
]; %Newtons (SI)

% power consumed in each segment, SI (kW)s


power_seg = [power_seg1 power_seg2 power_seg3 power_seg4 ...
power_seg5 power_seg6 power_seg7 power_seg8 power_seg9 ...
power_seg10 power_seg11 power_seg12]./1000;

% Total fuel weight for the mission


mass_fuel_total = sum(mass_fuel) + mass_fuel_reserve;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% ==============================================================
%
% Other rotorcraft calculations
%
% ==============================================================

% Compute the maximum needed installed power


power_installed = max([power_installed_1,power_installed_2,power_installed_3,...
power_installed_4,power_installed_5,power_installed_6, power_installed_7, ...
power_installed_8, power_installed_9, power_installed_10,power_installed_11, ...
power_installed_12]);

%%%%%% Power required by turboshafts


power_installed_ts =
max([power_installed_3ts,power_installed_4ts,power_installed_6ts,...
power_installed_8ts,power_installed_9ts,power_installed_11ts]);
%%%%%% Power required by turboshafts
power_installed_tf =
max([power_installed_3tf,power_installed_4tf,power_installed_6tf,...
power_installed_8tf,power_installed_9tf,power_installed_11tf]);

%%%%% Power shaft at altitude


power_shaft_segments_altitdue =
[power_shaft_altitude_seg3,power_shaft_altitude_seg4,power_shaft_altitude_seg6,power_
shaft_altitude_seg8,power_shaft_altitude_seg9,power_shaft_altitude_seg11];
power_shaft_altitude = max([power_shaft_altitude_seg4,power_shaft_altitude_seg9]);
%%%%%% Power used at the stage, aka output/needed during the condition,
%%%%%% turboshaft -> with prop efficincy knockdown
power_output_ts =
[power_seg1,power_seg2,power_climb_ts3,power_cruise_ts4,power_seg5,power_loiter_ts6,p
ower_seg7,power_climb_ts8,power_cruise_ts9,power_seg10,power_loiter_ts11,power_seg12]
;
power_output_ts_fwd =
max([power_climb_ts3,power_cruise_ts4,power_loiter_ts6,power_climb_ts8,power_cruise_t
s9,power_loiter_ts11]);
power_output_ts_cruise = max([power_cruise_ts4,power_cruise_ts9]);

%%%%%% Power used at the stage, aka output/needed during the condition,
%%%%%% turbofan
power_output_tf =
[0,0,power_climb_tf3,power_cruise_tf4,0,power_loiter_tf6,0,power_climb_tf8,power_crui
se_tf9,0,power_loiter_tf11,0];
%%%%%% time of segments
times =
[time_idle,time_hover,time_seg3/3600,time_seg4/3600,time_descent/3600,time_seg6/3600,
time_hover,time_seg8/3600,time_seg9/3600,time_descent/3600,time_seg11/3600,time_hover
];

%%%%%% Thrust on turbo fans


thrust_max =
([thrust_max_seg3,thrust_max_seg4,thrust_max_seg6,thrust_max_seg8,thrust_max_seg9,thr
ust_max_seg11]); %Newtons (SI)

installed_thrust_cruise = ([thrust_max_seg4,thrust_max_seg9])./(0.93*sigma_cruise*(1-
.73*mach_cruise+0.53*mach_cruise^2));

installed_thrust_loiter =
([thrust_max_seg6,thrust_max_seg11])./(0.93*sigma_loiter*(1-
.73*mach_loiter+0.53*mach_loiter^2));

max_installed_thrust = max([installed_thrust_cruise,installed_thrust_loiter]);
% Compute the weights of the components
eval('AFDD_component_mass');

% Centrifugal force on each main rotor blade, SI (N)


CF_MR = mass_blade/(nblade_MR(nb))*(tip_speed_MR(vtip)/rad_MR)^2*...
cg_MR_blade*rad_MR;
% Compute new take off weight
mass_to = 1.1*mass_empty+mass_fuel_total+mass_payload+...
mass_crew*num_crew+mass_equip;

%mass_payload = useful_load_sizing-(mass_fuel_total+mass_crew*num_crew);

% Useful load
useful_load = mass_to-mass_empty;

% Save data into arrays


useful_load_array(itercount) = useful_load;
payload_array(itercount) = mass_payload;
fuel_array(itercount) = mass_fuel_total;

% Compute convergence
errortol = (mass_to-mass0_to)/mass0_to;
disp('Error Tol, Mass TO, FM, Eta_prop, itercount, loop count,
sim size')
disp([errortol, mass_to, FM_MR(fm), eff_propeller(np),
itercount,loop_counter,max_loop_counter])

% ##############################################################
% --- END OF FILE ---
% #########################################################

You might also like