Code covered by the BSD License  

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

» Watch video

Highlights from
Fuel fraction sizing

Be the first to rate this file! 19 Downloads (last 30 days) File Size: 7.24 KB File ID: #38973 Version: 2.4
image thumbnail

Fuel fraction sizing

by

Sky Sartorius (view profile)

 

09 Nov 2012 (Updated )

Finds aircraft gross weight using the fuel fraction sizing method

| Watch this File

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

Dimensioned Variable Class: Units Support For Matlab, The Carpetplot Class, and Bisection Method Root Finding inspired this file.

MATLAB release MATLAB 8.1 (R2013a)
MATLAB Search Path
/
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
12 Nov 2012 1.1

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

13 Nov 2012 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

19 Nov 2012 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.

20 Nov 2012 1.5

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

04 Dec 2012 1.6

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

11 Dec 2012 1.7

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

15 May 2013 1.9

breguet updates; error handling updates; lots of documentation updates

21 Aug 2015 2.4

breguet format

Contact us