File Exchange

image thumbnail

Fuel fraction sizing

version 2.4 (7.24 KB) by

Finds aircraft gross weight using the fuel fraction sizing method

5 Downloads

Updated

View License

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)')

Comments and Ratings (0)

Updates

2.4

breguet format

1.9

breguet updates; error handling updates; lots of documentation updates

1.7

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

1.6

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

1.5

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

1.3

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.

1.2

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

1.1

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

MATLAB Release
MATLAB 8.1 (R2013a)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video