Code covered by the BSD License

### Highlights from Fuel fraction sizing

Be the first to rate this file! 13 Downloads (last 30 days) File Size: 8.08 KB File ID: #38973

# Fuel fraction sizing

### Sky Sartorius (view profile)

09 Nov 2012 (Updated )

Finds aircraft gross weight using the fuel fraction sizing method

File Information
Description

Read about fuel fraction sizing in Raymer's "Aircraft Design: A Conceptual Approach" or most other aircraft design text books.

FUELFRACTIONSIZING finds aircraft gross weight using the fuel fraction sizing method.
W0 = fuelfractionsizing(EWfunc, fixedW, FF, tol, maxW)

BREGUET uses the Breguet range equation to calculate the weight fraction for a cruise or loiter mission segment -OR- to find the range and endurance for a given segment weight fraction.
segFrac = breguet('Jet', 'Cruise', R, LD, TSFC, V)
segFrac = breguet('Jet', 'Loiter', E, LD, TSFC)
[R, E] = breguet('Jet', 'Range', segFrac, LD, TSFC, V)

segFrac = breguet('Prop', 'Cruise', R, LD, PSFC, [], eta_p)
segFrac = breguet('Prop', 'Loiter', E, LD, PSFC, V, eta_p)
[R, E] = breguet('Prop', 'Range', segFrac, LD, PSFC, V, eta_p)

All functions in the suite are vectorized and can accept arrays for input parameters - very useful for conducting trade studies.

Example 1: Find gross weight of a light sport aircraft with 600 nmi range, PSFC of 0.4 lb/hr/bhp, and fixed weights (pilot, passenger, cargo) of 400 lbs.
Single line:
W0 = fuelfractionsizing({3.03 -.235}, 400, 1.06*missionfuelburn...
(.98,.99,breguet('Prop','Cruise',1111200,10,6.628e-07,0,.8),.99))

Verbose:
fixedW = 400;
R = 600*1852; %convert nmi to m
L_over_D = 10;
PSFC = 0.4*1.657e-06; %convert lbm/hr/bhp to 1/m
eta_prop = 0.8;

segments = {.98 %startup, runup, taxi, takeoff
.99 %climb
breguet('Prop','Cruise', R, L_over_D, PSFC, false, eta_prop)
.99}; %decent, landing, taxi, shutdown

fuel_safety_margin = 0.06;
FF = (1+fuel_safety_margin)*missionfuelburn(segments{:});

EWfunc = @(W0) 3.03*W0.^-.235;
W0 = fuelfractionsizing(EWfunc, fixedW, FF)

Example 2: Evaluate sensitivity of W0 to variations in historical trendline parameter A.
A0 = 3.03; A = linspace(.8*A0,1.2*A0,30);
W0 = fuelfractionsizing({A -0.235}, 400, 1.06*missionfuelburn...
(.98,.99,breguet('Prop','Cruise',1111200,10,6.628e-07,0,.8),.99));
plot(A,W0); xlabel('A'); ylabel('W0 (lb)')

Example 3: Take advantage of vectorization to do a gross weight trade study for the effect of range and fixed weights on gross weight, ignoring aircraft that are heavier than the light sport category limit of 1,320 pounds.
R = 1852*(300:2:1000)'; %convert nmi to m
fixedW = 200:2:600;
[R, fixedW] = meshgrid(R,fixedW);
W0 = fuelfractionsizing({3.03 -.235},fixedW,1.06*missionfuelburn...
(.98,.99,breguet('Prop','Cruise',R,10,6.628e-07,0,.8),.99),[],1320);
surfc(R/1852,fixedW,W0,'LineStyle','none')
xlabel('Range (nmi)'); ylabel('Fixed Weights (lb)')
zlabel('Gross Weight (lb)')

Acknowledgements
MATLAB release MATLAB 8.1 (R2013a)
12 Nov 2012

DimensionedVariable example and documentation; more EWfunc options; better BREGUET case handling; improved documentation; added example for arrays in EWfunc

13 Nov 2012

added a . to missionfuelburn so it can handle multiple array inputs; fixed typo in documentation; did testing and confirmed that bisection is the most stable array-capable search method; integrated bisection as sub-function

19 Nov 2012

changed the math to vastly increase robustness of the method for more reliable convergence; added maxW optional input; fixed bisection bug; added new input to example 3.

20 Nov 2012

fixed premature convergence bug; more testing confirmed that bisection is better than classic iteration

04 Dec 2012

fixed a small bug that would in some cases evaluate EWfunc at a weight above the upper limit.

11 Dec 2012

bisection usage now consistent with full function to help modularity; brequet made more general (no longer metric-specific documentation)

15 May 2013