Практическое задание 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;
Дата добавления: 2016-06-29; просмотров: 1527;