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,...nonlinear constraint function are provided with an allowable value for
- BladeARconstraint(AR_all,...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_variable...
- ITERmake_CON_MAT(Problem,...first get values for baseline aircraft:
- ITERmodify_LB_X0_UB(Probl...
- ITERmodify_composite_obj(...
- ITERoptimoptset(Spec)
- ITERrun_optimizer(Problem...set standard options
- ITERsave_hist(Problem,Con...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, a...run though all the point performance requirements
- [C,CompositeObjectiveValu...
- betafinder(AC,betain,payl...
- 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(Dlengt...nonlinear constraint function are provided with an allowable value for
- constraint_Dlength(Dlengt...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,...[CDfuse,DLfactor] = fusepolar_arealoading(AC,tState)
- fusepolar_arealoading(AC,...[CDfuse,DLfactor] = fusepolar_arealoading(AC,tState)
- g0(unit)g0 Gravitational acceleration
- get_yes_or_no(prompt,defa...% get_yes_or_no(prompt,default) displays a prompt and reads a response from
- lininterp1f(X,Y,XI,Ydefau...
- linspace3(d1, tar, d2, n)
LINSPACE3 bilinearly spaced vector defined by three points.
- loadfactor(tState)
- progressbar(varargin)
Description:
- retreating_stall_envelope...
- simpleTRsizing(AC)
- sinspace(d1, d2, n, factor)
SINSPACE cosine spaced vector.
- tail_rotor_power(TORQ,AC,...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,vara...TXTMENU Generate a numbered list text menu in the command window.
- vLdistribution(r,psi,AC,t...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_assumpti...
- 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