Code covered by the BSD License
-
...
-
...
Pavail - Preq plotting:
-
...
Inputs:
-
...
Inputs:
-
...
OPTIMIZE Optimize general constrained problems using Nelder-Mead algorithm
-
...
penalties
-
ACbuilder(X, Spec)
Creates an aircraft from decision variables contained in X and the base
-
BladeARconstraint(AR_all,AC)
nonlinear constraint function are provided with an allowable value for
-
BladeARconstraint(AR_all,AC)
nonlinear constraint function are provided with an allowable value for
-
CMATpick_point(...
-
CMATplot_the_carpet(...
grey background
-
CORE_ITERATE(Spec)
-
COREchooseproject()
-
COREmkrequirements()
Get assumptions from excel file
-
IGEvi(z_over_D)
Data for curve fit from Prouty:
-
ITERfix_decision_variables(Pr...
-
ITERmake_CON_MAT(Problem, Con...
first get values for baseline aircraft:
-
ITERmodify_LB_X0_UB(Problem)
-
ITERmodify_composite_obj(Obje...
-
ITERoptimoptset(Spec)
-
ITERrun_optimizer(Problem,Con...
set standard options
-
ITERsave_hist(Problem,Constra...
eval everything
-
Obj_max_W_P(AC)
Objective functions to be minimized during the design process. They are
-
Obj_max_W_P(AC)
Objective functions to be minimized during the design process. They are
-
Obj_min_AUM(AC)
Objective functions to be minimized during the design process. They are
-
Obj_min_AUM(AC)
Objective functions to be minimized during the design process. They are
-
Obj_min_size(AC)
Objective functions to be minimized during the design process. They are
-
PointAnalysisBEA(AC, State)
-
SELECTind_from_pop...
sol: pareto set
-
[C, Ceq, activeMargins, activ...
run though all the point performance requirements
-
[C,CompositeObjectiveValue, S...
-
betafinder(AC,betain,payloadi...
-
bpolar(BladeState,AC)
To make your own bpolar:
-
bpolar(BladeState,AC)
To make your own bpolar:
-
bpolar(BladeState,AC)
To make your own bpolar:
-
constraint_Dlength(Dlength_al...
nonlinear constraint function are provided with an allowable value for
-
constraint_Dlength(Dlength_al...
nonlinear constraint function are provided with an allowable value for
-
convarea( in, uin, uout )
CONVAREA Convert from area units to desired area units.
-
convmass( in, uin, uout)
CONVMASS Convert from mass units to desired mass units.
-
convpower( in, uin, uout )
CONVPOWER Convert from power units to desired power units.
-
convvel( in, uin, uout)
CONVVEL Convert from velocity units to desired velocity units.
-
cosspace(d1, d2, n, factor)
COSSPACE cosine spaced vector.
-
fusepolar_arealoading(AC,tSta...
[CDfuse,DLfactor] = fusepolar_arealoading(AC,tState)
-
fusepolar_arealoading(AC,tSta...
[CDfuse,DLfactor] = fusepolar_arealoading(AC,tState)
-
g0(unit)
g0 Gravitational acceleration
-
get_yes_or_no(prompt,default)
% get_yes_or_no(prompt,default) displays a prompt and reads a response from
-
lininterp1f(X,Y,XI,Ydefault)
-
linspace3(d1, tar, d2, n)
LINSPACE3 bilinearly spaced vector defined by three points.
-
loadfactor(tState)
-
progressbar(varargin)
Description:
-
retreating_stall_envelope(mu_...
-
simpleTRsizing(AC)
-
sinspace(d1, d2, n, factor)
SINSPACE cosine spaced vector.
-
tail_rotor_power(TORQ,AC,tSta...
Assumptions:
-
twistf(r)
As a function of non-dimensional radius location r (0-1), the twist
-
twistf(r)
As a function of non-dimensional radius location r (0-1), the twist
-
txtmenu(HeaderPrompt,varargin)
TXTMENU Generate a numbered list text menu in the command window.
-
vLdistribution(r,psi,AC,tStat...
my formulation:
-
weightestimate_baseline(AC)
Write this weight estimation function to estimate the all up mass (TOGW)
-
weightestimate_baseline(AC)
Write this weight estimation function to estimate the all up mass (TOGW)
-
weightestimate_decVar(AC)
Write this weight estimation function to estimate the all up mass (TOGW)
-
wingpolar(CL,AC,tState)
inputs:
-
wingpolar(CL,AC,tState)
inputs:
-
COREmainmenu.m
-
PAblade_elements.m
-
PointAnalysisMOM_assumptions.m
-
Run_CORE.m
-
convtime.m
-
stdatmo.m
-
View all files
from
CORE: Conceptual Optimization of Rotorcraft Environment
by Sky Sartorius
Facilitates optimization and design space exploration in the conceptual design phase of rotorcraft.
|
| ...
|
function [Pavail, Tavail, Tfuelburn, Pfuelburn, totalfuelburn] = ...
plapse_simple(AC, tState, Treq, Preq)
% Inputs:
% AC: see documentation
% tState: see documentation
% Treq: thrust required (N)
% Preq: power required (W) including tail rotor, main rotor, and
% accessories
%
% Outputs:
% Pavail: power available (W)
% Tavail: thrust available (N)
% Tfuelburn: fuel burn from forward propulsion
% Pfuelburn: fuel burn from power production
% totalfuelburn: the sum of Tfuelburn and Pfuelburn
%number of power-producing engines
% nP = 2;
nP = round(AC.Vars.nPowerEngines);
% OEI
OEI = tState.OEI;
% engine condition
switch tState.EngCond
case 'continuous' %continuous power
Pfactor = .85;
Tfactor = .9;
case 'takeoff' %takeoff/30min power
Pfactor = 1;
Tfactor = 1;
case 'emergency' %OEI/emergency
Tfactor = 1;
Pfactor = 1.1;
end
if nargin <4; Preq = NaN;end
if nargin <3; Treq = NaN;end
PSFC0 = .45; %lb/hp-h
PSFC0 = 0.000608277388*PSFC0; %kg/W-h UNISTALLED! PSFC
TSFC0 = .5; %lb/lbf-h
TSFC0 = TSFC0*0.102; %kg/N-h UNISTALLED! TSFC
[Plossfactor, Tlossfactor] = installation_and_losses(AC);
PSFC = PSFC0/Plossfactor; %installed PSFC
TSFC = TSFC0/Tlossfactor; %installed PSFC
sigma = tState.rho/1.225;
aratio = tState.a/340.2940;
Pinstalled = AC.Power.P*Plossfactor; %installed power for rotors and accessories
Pavail = (Pinstalled .* sigma).*((nP - OEI)./nP);
c = Preq/Pavail;
Pavail = Pavail*Pfactor;
if Preq > 0
%temperature correction
PSFC = PSFC*aratio;
%throttle setting correction;
PSFC = PSFC*(.1./c+.24./c.^.8+.66.*c.^.8);
Pfuelburn = PSFC * Preq; %kg/hr
else
Pfuelburn = 0;
end
if AC.Power.T
Tinstalled = AC.Power.T*Tlossfactor;
Tavail = Tinstalled .* sigma;
cthrust = Treq/Tavail;
Tavail = Tavail*Tfactor;
if Treq > 0
%temperature correction
TSFC = TSFC*aratio;
%throttle setting correction;
TSFC = TSFC*.1./cthrust+.24./cthrust.^.8+.66.*cthrust.^.8+.1*(tState.V/tState.a).*(1./cthrust-cthrust);
Tfuelburn = TSFC * Treq; %kg/hr
else
Tfuelburn = 0;
end
else
Tavail = 1e-15;
Tfuelburn = 0;
end
totalfuelburn = Tfuelburn + Pfuelburn; %kg/h
Pfuelburn = Pfuelburn/3600; %kg/s
Tfuelburn = Tfuelburn/3600; %kg/s
totalfuelburn = totalfuelburn/3600; %kg/s
end
function [Plossfactor, Tlossfactor] = installation_and_losses(AC)
Pavail = AC.Power.P;
% engine installation and transmission losses
% % inlet duct friction
Pavail = Pavail*(1-.01);
% inlet particle separator
Pavail = Pavail*(1-0);
% exhause back pressure due to friction
Pavail = Pavail*(1-.01);
% IR suppressor
Pavail = Pavail*(1-0);
% Inlet temp rise due to reingestion
Pavail = Pavail*(1-.005);
% compressor bleed
Pavail = Pavail*(1-.03);
% gearbox loss
Pavail = Pavail*(1-.04);
Plossfactor = Pavail./AC.Power.P;
Tavail = AC.Power.T;
% installation loss
Tavail = Tavail*(1-.1);
% engine mounted accessories
Tavail = Tavail*(1-.02);
Tlossfactor = Tavail./AC.Power.T;
end
|
|
Contact us