Table of Contents
Table of Contents 1
Program Identification 2
Purpose of the Program 3
Mathematical Technique 3
Program Usage 5
Program Listing 5
Data Runs/Test Cases 6
Appendices 6
FLIGHT_ENVELOPE.m 7
NEWTON_RAPHSON.m 9
CDZERO.m 10
AK.m 10
F.m 11
ATMOS.m 12
6
Program Identification
Program Assignment: flight_envelope.m
Programmer: Gregory R. Whitney
Date: October 15, 2001
Requirements: Computer running MATLAB
Storage Required: 6.22KB
Special I/O Requirements: None
To plot the data, run flight_envelope.m. There is no input required.
Purpose of the Program
The purpose of the program is to plot the flight envelope for the Lear 23 at a weight of 11,000 pounds. The flight envelope is plotted for values of the altitude ranging from sea level to 45,000 ft. There are 5 curves generated by the program. The 5 curves are the stall velocity (Vstall), the maximum mach number (VM_Max), the maximum dynamic pressure velocity (VQ_max), the low speed solution (V_low), and the maximum speed solution (V_high).
Mathematical Technique
The mathematical technique of flight_envelope.m is based on the Newton-Raphson technique for solving for the roots of an equation. The equation that we need to find the roots of comes from the conditions of steady flight at full power setting. The equation is as follows:
(1)
where
T = Thrust
D = Drag
H = altitude (constant)
L = Lift (Constant)
Substituting the equation for thrrust and drag produces the next equation:
(2)
where
ρ* = Density at sea level
ρ = Density
M = Mach number
Cdo = Zero-lift drag coefficient
K = Induced drag factor
W = Weight (W=L)
V = velocity
Sw = Planform Area
The function f(V) can be solved for V numerically using the Newton-Raphson method.
The Newton Raphson Method yields
(3)
(4)
where
ΔV = 0.0001
By solving Eq.[2] for V, we get two solutions: a high speed solution and a low speed solution. As altitude changes, you have to recalculate Eq[2], Eq.[3], and Eq.[4]. There is quite a lot of computation involved therefore we have the computer do it. We can then plot the high velocity curve and the low velocity curve versus altitude.
The remaining curves for the flight envelope are the stall velocity, max mach number, and max dynamic pressure. The stall speed is given by
(5)
where
CLMax = The maximum lift coefficient (1.24)
The velocity at the maximum mach number is
(6)
where
Mmax = The maximum mach number for the aircraft (0.85)
a = Speed of Sound at the cruising altitude
Finally, the velocity at the maximum allowable dynamic pressure is
(7)
where
Qmax = The maximum dynamic pressure (300 psf)
If we plot Eq[2] and Eqs[5-7], then we will get the flight envelope for the Lear 23 at a weight of 11,000 lbs.
Program Usage
Input format: There is no input for this program
Output format: The output of the program is a plot of the flight envelope of the Lear 23 at 11,000 lbs from sea level to 45,000 ft.
Error Provisions: None
User Instructions:
1. Start MATLAB
2. Change directory to Z:\My Documents\167M\lab4
3. At the prompt, type “flight_envelope”
4. To save the figures, simply click “Save As” and choose a filename and directory
Program Listing
See the source files, starting on page 7, for the actual program codes.
Data Runs/Test Cases
The following plot shows the flight envelope for the Lear 23 (SBJ) at a weight of 11,000 pounds. This is the only output of flight_envelope.m
Appendices
This lab was done using a home PC and running Windows 2000 and MATLAB 6.1.
The remaining pages include the source code for flight_envelope.m and the other functions that were used.
FLIGHT_ENVELOPE.m
%Gregory R. Whitney
%ASE 167M 10/9/2001
%Computer Assignment 2
%This m-file constructs a level flight envelope
%There are a few routines in this program that
%Should be mentioned. The program makes use of
%atmos.m which calculates the temperature, pressure,
%density, and speed of sound of the atmosphere at a
%particular altitude. The other function to make
%note of is the newton-raphson routine. The N-R
%function iteratively calculates the roots of a function.
%Calculate the atmospheric properties using atmos.m
function flight_envelope
%Some Constants
S = 232.0; %[ft^2]
Qmax = 300; %[lbf/ft^2]
M_max = 0.85;
Cl_max = 1.24;
RHO_STAR = 7.0163E-4; %[slugs/ft^3]
W = 11000; %[lbs]
%Counter
i=1;
for h = 0:1000:45000
[TEMP,PRESS,RHO,SOS] = atmos(h);
%Calculate Stall Speed
Vstall(i) = sqrt((2*W)/(RHO*S*Cl_max));
%Calculate the Maximum Speed based on Dynamic Pressure
VQ_max(i) = sqrt((2*Qmax)/RHO);
%Calculate the maxium speed based on Max Mach Number
VM_max(i) = M_max * SOS;
%Try to get a good initial guess
if h < 25000
V_high = VQ_max(i)+150;
V_low = Vstall(i)-50;
elseif h < 35000
V_high = VQ_max(i);
V_low = Vstall(i)-50;
elseif h >=35000
V_high = VQ_max(i)+500;
V_low = Vstall(i)-50;
end
%Run the Newton Raphson Method to find the roots of Steady-Flight
V_low_root(i) = newton_raphson(V_low,SOS,RHO);
V_high_root(i) = newton_raphson(V_high,SOS,RHO);
alt(i) = h;
i = i + 1;
end
plot(V_low_root(:),alt(:),'b-')
hold
plot(V_high_root(:),alt(:),'g-')
plot(Vstall(:),alt(:),'r-')
plot(VM_max(:),alt(:),'m-')
plot(VQ_max(:),alt(:),'c-')
NEWTON_RAPHSON.m
%Gregory R. Whitney
%ASE 167M 10/9/2001
%Computer Assignment 2
%This function utilizes the Newton-Raphson
%Method of determining the roots of a function.
%This funciton already exists in MATLAB, but as
%an exercise, I have created my own function.
function [root] = newton_raphson(V,a,RHO)
dV = 10; %Just a large number so that the loop will start
delta_v = .0001;
i = 0;
while abs(dV) > delta_v & i < 100
Cdo = CDZERO(V,a);
K = AK(V,a);
f = F(V,a,RHO,Cdo,K);
f_prime = (F((V+delta_v),a,RHO,CDZERO(V+delta_v,a),AK(V+delta_v,a)) - f)/delta_v;
dV = (f/f_prime);
V = V - dV;
root = V;
i = i + 1;
end
CDZERO.m
%Gregory R. Whitney
%ASE 167M 10/9/2001
%Computer Assignment 2
%This m-file determines the value Cdo for the
%Lear jet 23. It recieves a Mach Number as
%Input and returns the value of Cdo
function [Cdo] = CDZERO(V,a)
Mach = V/a;
if Mach < 0.7
Cdo = 0.023;
elseif Mach > 0.7 & Mach < 0.9
Cdo = 0.0385 - 0.1*sqrt(0.024 - 0.6*(Mach - 0.7)^2);
elseif Mach > 0.9
Cdo = 0.0385;
End
AK.m
%Gregory R. Whitney
%ASE 167M 10/9/2001
%Computer Assignment 2
%This m-file determines the value K for the
%Lear jet 23. It recieves a Mach Number as
%Input and returns the value of K
function [K] = AK(V,a)
Mach = V/a;
if Mach < 0.7
K = 0.075;
elseif Mach > 0.7 & Mach < 0.95
K = 0.325 - sqrt(0.0625 - (Mach - 0.7)^2);
elseif Mach > 0.95
K = 0.325;
End
F.m
%Gregory R. Whitney
%ASE 167M 10/9/2001
%Computer Assignment 2
%This m-file creates the equation that will
%be used in conjucntion with newton_raphson.m
%and flight_envelope.m
%This routine defines the function used in determining
%The level flight envelope of the Lear 23 (SBJ)
function f = F(V,a,RHO,Cdo,K)
M = V/a;
RHO_STAR = 7.0163E-4; %[slugs/ft^3]
S = 232; %[ft^2]
W = 11000; %[lbf]
f = 2000*(RHO/RHO_STAR)*(0.89*(M-0.4)^2 + 0.64) - (0.5*(Cdo)*RHO*S*V^2) - (2*K*(W^2))/(RHO*S*V^2); %[lbf]
ATMOS.m
% The function atmos was created by Gregory Whitney 9/26/2001 ASE 167
%
% atmos requires an input of altitude (H) in ft,
% and returns four parameters
% 1. TEMP = Temperature (Rankine)
% 2. PRESS = Pressure (Lbs/ft^2)
% 3. DENS = Density (slugs/ft^3)
% 4. SOS = Speed of Sound (ft/sec)
%
% All of the equations for the four parameters are modeled after
% the 1962 standard atmosphere
function [TEMP,PRESS,DENS,SOS] = atmos(H)
% Definitions for Sea-Level values of Temperature, density, and pressure
RHOSL = 0.002376899341; % slugs/ft^3
TEMPSL = 518.69; % Rankine
PASL = 2116.199414; % lbs/ft^2
% Layer 1: For units, see definitions above
if H >= 0 & H < 36089.2
TEMP = TEMPSL - 0.00356616*H;
PRESS = (1.137193514E-11)*(TEMP)^5.2560613;
DENS = (RHOSL * TEMPSL / PASL)*(PRESS / TEMP);
SOS = 49.0214 * (TEMP)^.5;
% Layer 2
elseif H > 36089.2 & H < 65616.8
TEMP = 389.9901385;
PRESS = 2678.38681*exp((-4.80624E-5)*H);
DENS = (RHOSL * TEMPSL / PASL) * PRESS / TEMP;
SOS = 49.0214 * (TEMP)^.5;
% Layer 3
elseif H > 65616.8 & H < 104986.9
TEMP = 353.9901374 + 0.00054864 * H;
PRESS = (3.802075778E+90)*(TEMP)^(-34.1643987);
DENS = (RHOSL * TEMPSL / PASL)*(PRESS / TEMP);
SOS = 49.0214 * (TEMP)^.5;
% Layer 4
elseif H > 104986.9 & H < 154199.5
TEMP = 250.31033243 + 0.00153619 * H;
PRESS = (1.44217649E+33)*(TEMP)^(-12.20158686);
DENS = (RHOSL * TEMPSL / PASL) * PRESS / TEMP;
SOS = 49.0214 * (TEMP)^.5;
% Layer 5
elseif H > 154199.5 & H < 170603.7
TEMP = 487.1900543;
PRESS = (873.6400826)*exp((-3.84736009E-5)*H);
DENS = (RHOSL * TEMPSL / PASL) * PRESS / TEMP;
SOS = 49.0214 * (TEMP)^.5;
% Layer 6
elseif H > 170603.7 & H < 200131.2
TEMP = 674.3900821 - 0.00109728*H;
PRESS = (1.509860827E-46)*(TEMP)^17.08219937;
DENS = (RHOSL * TEMPSL / PASL) * PRESS / TEMP;
SOS = 49.0214 * (TEMP)^.5;
% Layer 7
elseif H > 200131.2 & H < 259186.0
TEMP = 893.9900454 - (2.19456e-3)*H;
PRESS = (7.577930948E-24)*(TEMP)^8.541099698;
DENS = (RHOSL * TEMPSL / PASL) * PRESS / TEMP;
SOS = 49.0214 * (TEMP)^.5;
% Layer 8
elseif H > 259186.0 & H <= 2000000
TEMP = 325.1908172;
PRESS = (6.669501806E+4)*exp((-5.763986782E-5)*H);
DENS = (RHOSL * TEMPSL / PASL) * PRESS / TEMP;
SOS = 49.0214 * (TEMP)^.5;
else
disp('That value of H is unacceptable');
TEMP = 'Not Defined';
PRESS = 'Not Defined';
DENS = 'Not Defined';
SOS = 'Not Defined';
end
6