TURBO PASCAL

Новости       

Программы

Turbo Pascal

Игры

Документация

"Странности"

FAQ

Ссылки

Благодарности 

Гостевая книга

Спонсор

От автора

 

         Практическое задание  N 2. 23

            1.  Рассчитать разностным моделированием и по аналитической зависимости траектории полета снаряда без учета сопротивления воздуха.  Построить траектории полета снаряда.  Начальная скорость V0=1000, м/с,  угол fi=450.  Аналитическая зависимость имеет вид:

              X = V0*t*cos(fi);       Y = V0*t*sin(fi) - g*t2/2;

            2.  Рассчитать разностным моделированием и по аналитической зависимости траектории полета снаряда с учетом сопротивления воздуха,  пропорциональным скорости снаряда.  Построить траектории полета снаряда.  Начальная скорость V0=3000, м/с,  угол  fi = 450.  Коэффициент сопротивления воздуха  kc = 0. 01,с-1. 

            Аналитическая зависимость имеет вид:

X=V0*cos(fi)*(1-e(-kc*t))/kc; Y=(V0*sin(fi)+g/kc)*(1-e(-kc*t))/kc-g*t/kc;

            3.  Рассчитать разностным моделированием траектории полета снаряда с учетом сопротивления воздуха,  пропорциональным квадрату скорости снаряда.  Коэффициент сопротивления воздуха  kc1 = kc2 .  Построить совместно траектории полета снаряда для п.  1,  2,  3.  Начальная скорость  V0 = 3000, м/с,   угол  fi = 450. 

            4.  Составить программу поражения неподвижной цели при kc1 = kc2.  Изменяя в цикле угол fi на небольшую величину,  определить в программе угол при котором будет поражена цель - небольшой прямоугольник с координатами вершин (x1, y1) и (x2, y2).  Построить все траектории полета снаряда. 

            Примечание к п. 1. . 4:  Выводить на экран исходные данные: V0,  fi,  kc,  а также наибольшую высоту и дальность полета снаряда.

 

            Рассмотрим задачу расчета траектории космического тела,  в поле тяготения планеты без учета сил сопротивления.  В начальный момент времени тело движется на высоте "Н" со скоростью "V0",  направленной по касательной к окружности радиуса R0.  Поскольку движение спутника вокруг планеты достаточно продолжительно,  то не целесообразно запоминать в оперативной памяти все параметры (координаты,  скорости и ускорения) в каждый момент времени.  Обычно эти параметры,  записываются в файл на диск при вычислениях через некоторые моменты времени,  а траекторию строят сразу,  либо запуская отдельную программу,  считывающую данные из файла.  Расчетная область задается исходя из оценочных расчетов.  Для спутника,  движущегося вокруг Земли,  можно принять:

                        Xmin= Ymin= -Kv*R0,                                  Xmax= Ymax= Kv*R0,

            Здесь R0 = (Rz+H),           Rz=6. 37*106, м.  -  радиус Земли.

Kv=1. 5  при  V0 <= W1        Kv=10  при  W1 < V0 < W2             Kv=20  при V >= V2.  

                        W1 =  Rz*Ö(g/R0)  - первая космическая скорость,

                        W2 = Ö2* W1  - вторая космическая скорость.

            Параметр "dt" можно определить приближенно по формуле: dt=T/N,

где  T= 6. 28*Rz/W1 -  время оборота спутника вокруг Земли,  N=300.

            Расстояние от спутника до центра планеты определяется через координаты:

 

function R(x, y: double): double;  begin R:= sqrt(x*x + y*y)   end;

            Проекции ускорений определим в виде функции:

function FA(x,r,kz: double):double;  begin FA:= -kz*x/(r*r*r)  end;

            Здесь  kz = 4. E+14  для Земли (в системе СИ).

            Пусть в начальный момент времени известны координаты спутника: 

                                               x1 = R0;              y1 = 0;             r1 = R(x1,  y1);

             скорость:    Vx1 = 0;              Vy1 = V0; 

и  ускорение:      Ax1 = FA(X1,  r1,  kz);         Ay1 = FA(Y1,  r1,  kz);

Отметим,  что скорость в начальный момент времени направлена по касательной к окружности радиуса r1.

            Для записи алгоритма расчета траектории необходимо знание параметров в двух соседних точках,  например,  в точке "1" - для предшествующего момента времени и в точке "2" - для расчетного момента времени.  Расчет производим в цикле с одновременным выводом траектории движения спутника на экран до тех пор пока выполняется ограничение по радиусу траектории или не нажата любая клавиша.

While ( r1< Xmax ) or ( r1> Rz ) or ( not keyPressed ) do   begin

         Vx2:= Vx1 + Ax1*dt;         Vy2:= Vy1 + Ay1*dt;

         X2:= X1 + 0.5*(Vx1 + Vx2)*dt;

         Y2:= Y1 + 0.5*(Vy1 + Vy2)*dt;      r2:= R(x2, y2);

         Ax2:=FA(X2, r2, kz);

         Ay2:=FA(Y2, r2, kz);

         Vx2:= Vx1 + 0.5*(Ax1 + Ax2)*dt;                        { уточняем скорость }

         Vy2:= Vy1 + 0.5*(Ay1 + Ay2)*dt;  

                                                                                                 { Переопределяем значения параметров в точке }

         x1:= x2;    y1:= y2;   r1:= r2; 

         Vx1:= Vx2;  Vy1:= Vy2;  Ax1:= Ax2;   Ay1:= Ay2  

     PutPixel_G(x1,y1,c);  { Строим траекторию движения точки,  c - цвет точки }

end;

 

На первую страницу

Rambler's Top100 PROext: Top 1000
Rambler's Top100

(с) Все права защищены.

По всем интересующим вопросам прошу писать электронный адрес

Hosted by uCoz