БИБЛИОТЕКА
!
Вход

главная страница

новости проекта
опросы
соревнования

авиамодели
воздушные змеи
ла
библиотека

гостевая
раздел авиационной литературы

Температура воздуха и высота

Source unknown

Ознакомившись со строением атмосферы в общих чертах, посмотрим как изменяется температура воздуха с изменением высоты.
Известно, что для проведения различных расчетов, в которых используються парамтеры воздуха пользуются стандартной атмосферой (СА) - условным распределением, не зависящим от погодных условий, времени года и времени суток.

Рассмотрим, какому закону подчиняеться изменение температуры с изменением высоты. В основу алгоритма расчёта положено распределение температуры воздуха в зависимости от высоты. Алгоритм справедлив только для высот, где состав воздуха более или менее постоянен. Конкретно в нашем случае рассматривается диапазон: -2000 .. 94000 м.

Геопотенциальная и геометрическая высоты
С подъёмом на высоту уменьшается величина ускорения силы тяжести. Это сильно усложнит расчет, поэтому для правильного определения температуры вводиться понятие геопотенциальной высоты. Суть его заключается в том, что Земля принимается как идеальный шар, при этом сила притяжения направлена прямо в его центр. В этом случае нет необходимости принимать во внимание изменение ускорения падения g.
За начало отсчета геопотенциальной высоты так же, как и геометрической, принимается средний уровень моря.
Геопотенциальную высоту H и геометрическую h описывают уравнениями:

(r - радиус Земли. Принимаем его равным 6356767 м)

Температура и вертикальный градиент температуры
Соотношение между температурами по шкале Кельвина - T и Цельсия - t выражается формулой:
,
где To = 273,15 К - температура Кельвина для точки таяния льда при давлении 101325 Па.

Как известно, атмосферу принято делить на условные слои (см. статью об атмосфере, ссылка выше). По характеру изменения температуры с высотой атмосфера делиться на: тропосферу, стратосферу и т. д. Границы слоёв задаются значениями геопотенциальной высоты. Для расчета параметров атмосферы на высотах до H = 94000 м температура каждого слоя аппроксимируется линейной функцией геопотенциальной высоты:

где B - градиент температуры по геопотенциальной высоте;
      H* - высота нижней границы рассматриваемого слоя;
      Т* - температура на нижней границе слоя.

составим таблицу зависимости градиента температуры В от высоты Н :

Высота
геопотенциальная
H
Высота
геометрическая
h
Температура
H*, град. К
Градиент
температуры
К/м
-2000 -1999 301.15 -0.0065
0 0 288.15 -0.0065
11000 11019 216.65 0.000
20000 20063 216,65 0,0010
32000 32162 228.65 0.0028
47000 47350 270.65 0.000
51000 51412 270.65 -0.0028
71000 71802 214.65 -0.0020
85000 86152 186.65 0.000
94000 95411 186.65 0.000

Теперь мы располагаем всеми необходимыми данными.
Я выбрал такой путь решения: все значения заносятся в двумерный массив, тогда индекс элемента условно будет кодом (номером) слоя. Этот путь может показаться немного запутанным на первый взгляд, однако он очень удобен если потребуются дальнейшие модификации либо ловля ошибок.
Итак, получили следующий код:

const
 atm: array[1..3,1..10]of real=
       (( -2000, 0, 11000, 20000, 32000, 47000, 51000, 71000, 85000, 94000),
       ( 301.15, 288.15, 216.65, 216.65, 228.65, 270.65, 270.65, 214.65, 186.65, 186.65),
       (-0.0065, -0.0065, 0, 0.0010, 0.0028, 0, -0.0028, -0.0020, 0, 0));

{ geopetential ; T*, K ; Beta-gradient }

var
 
Form1: TForm1;

implementation

function TForm1.geop(h_m: real):real;
 var H, R: real;
  begin
   R:=6356767.0; {Earth rad, meters}
   H:=(R*h_m)/(R+h_m);
   geop:=H;
  end;

function TForm1.tempr(h_g: real): real;
 var i: byte;
     t: real;
  begin
   for i:=2 to 10 do
    begin
     if (h_g < atm[1,i])and(h_g > atm[1,i-1]-1) then break;
    end;
 {T = T* + Beta*(H-H*) }
   i:=i-1;
   t:= atm[2,i] + atm[3,i]*(h_g - atm[1,i]);
   tempr:=t;
  end;

function TForm1.wlayer(H_g: real): string;
 var o: integer;
  begin
  
o:=round(h_g);
  case o of
    -2001..-1: Wlayer:='ниже уровня моря';
    0..8500: WLayer:='Тропосфера';
    8501..17000: WLayer:='Тропопауза';
    17001..45000: WLayer:='Стратосфера';
    45001..55000: WLayer:='Стратопауза';
    55001..80000: WLayer:='Ионосфера (мезосфера)';
    80001..99000: WLayer:='Ионосфера (термосфера)';
  else Wlayer:='не бывает такого';
 end;
end;


procedure TForm1.AltInpEnter(Sender: TObject);
 begin
  if
AltInp.Text='' then AltInp.Text:='0';
  if strtofloat(AltInp.Text)<-2000 then AltInp.Text:='-2000';
  if strtofloat(AltInp.Text)>94000 then AltInp.Text:='94000';
  AltGeop.Text:=floattostr(round(10000*geop(strtofloat(AltInp.text)))/10000);
  Theight.Text:=floattostr(round(10000*tempr(strtofloat(AltGeop.text)))/10000);
  TCels.Text:=floattostr(-273.15 + strtofloat(Theight.Text));
  ALayer.Text:=Wlayer(strtofloat(AltGeop.text));
 end;

end.

Кроме подсчета высоты необходимо выполнять проверку вводимых значений, а также показывать температуру в градусах шкалы Кельвина и Цельсия.
Правильность проверяется по таблице стандартной атмосферы.
[LINK=content/upload_files/Altitude.zip] [IMG]./_img/zip.gif[/IMG] скачать программу [/LINK]

Опубликовал:
загрузок 8307 (размещено 1 Января 1970)

версия для печати
Охраняется законом об авторском праве. При использовании материалов ссылка на источник обязательна.