Plotting Air Density as a function of altitude (in SI Units)
12 views (last 30 days)
Show older comments
hello, i am trying to plot air density as a function of altitude, but i am having trouble with the plotting itself.
when i run the code, there are no calculation errors, however the graph i get out of the plot is odd and doesnt look right. Can someone explain what my errors are?
Any help would be greatly appreciated, thanks in advance.
All units are in SI units too btw
% ---------------------------------------------------------
% AIR DENSITY AS A FUNCTION OF ALTITUDE
% ---------------------------------------------------------
clc
clear
X = 40000; %defining the altitude limit
rho = zeros(1,X); %creating empty rho vector
for z = 1:X
if z < 10999 %inside the troposphere
T = 15.04 - 0.00649 * z;
P = (101.29) * ((T + 273.15)/288.08).^(5.256);
rho(z) = P./(0.2869*(T + 273.15));
end
if (11000 < z) && ( z < 24999) %inside the the lower stratosphere
T = -56.46;
P = 22.65 * exp(1.73 - 0.000157 * z);
rho(z) = P./(0.2869*(T + 273.15));
end
if z > 25000 %upper stratosphere and beyond
T = -131.21 + 0.00299 * z;
P = 2.488 * ((T + 273.15)/288.08).^(-11.388);
rho(z) = P./(0.2869*(T + 273.15));
end
rho = rho.'; %transpose of rho vector
L = length(rho);
z = 1:L; %re-defining altitude vector to match rho vector dimensions
end
plot(z,rho); %plotting rho as a function of z
5 Comments
Accepted Answer
dpb
on 24 Feb 2019
Just because you don't get an actual error doesn't mean calculations are correct -- you've got a discontinuity in the correlations between the 2nd and third sections; there's something wrong there in your implementation.
You also have a missed calculation point between each of the three section breakpoints resulting in one returned zero value at each breakpoint--two, overall.
if z < 10999
...
if (11000 < z) && ( z < 24999) %inside the the lower stratosphere
...
if z > 25000 %upper stratosphere and beyond
...
You didn't calculate anything for z==11000 nor 25000...
There's a missing normaliztion or offset or something in the last section to match up to the previous results; would have to see the source of the correlations to determine what.
But, just looking at what the correlations as written generate,
z=25000; % look at breakpoint
T = -131.21 + 0.00299 * z % upper stratosphere correlation T
-56.4600
% matches the lower strosphere so that's ok
P = 2.488 * ((T + 273.15)/288.08).^(-11.388)
P =
63.7166
>> P = 22.65 * exp(1.73 - 0.000157 * z)
P =
2.5223
>>
But the two P values aren't even close; something's not right in that correlation it would seem.
0 Comments
More Answers (0)
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!