ЛЕКЦИЯ 2. ДВИЖЕНИЕ В ГРАВИТАЦИОННОМ ПОЛЕ

Движение при отсутствии сопротивления среды

Задачи о движении в гравитационном поле часто встречаются в прикладной физике (баллистика, воздухоплавание, космонавтика). Рассмотрим несколько вариантов постановки задачи и способы их решения в среде MATLAB и GNU Octave.

В самом простом случае можно пренебречь сопротивлением внешней среды и неинерциальностью системы отсчета. При этих предположениях траектория движения лежит в одной плоскости и для описания движения достаточно двух осей. Решение хорошо известно из школьного курса физики:

д ' t2

У = Уо + Ц) • sin(a) • t--—?>

х = х0 + Vo • cos(a) • t;

Vy = V0- sin(a) -gt;

VX = VO- cos(a).

Время полета может быть найдено как положительный корень уравнения

д ' t2

Уо + Vo • sin(a) • t + = 0.

В качестве параметров задаются хО, уО, V0, а.

Рассмотрим алгоритм решения задачи с помощью MATLAB и GNU Octave. Первое, что необходимо сделать, - это вычислить время полета, затем вычислить значения координат и скоростей за все время движения и построить графики.

Нахождение времени полета сводится к решению квадратного уравнения и выделению положительного корня. Для нахождения корней полинома используется функция roots (с), принимающая в виде аргумента матрицу с коэффициентами полинома (первый коэффициент соответствует старшей степени). Функция возвращает значения корней полинома. С остальными функциями и их действием мы ознакомились на лекции 1.

Пример: движение в поле силы тяжести без учета сопротивления:

% Сброс всех переменных

clear all;

% Начальные условия

V0=10;

Alpha0=60;

Х0=0;

Y0=0;

g=9.8;

% Поиск времени полета

% Задаем коэффициенты полинома

c=[-g/2, VO*sind(AlphaO), YOJ;

% Ищем корни

FlyingTime= roots(c);

%о Выделяем положительный корень

if FlyingTime(l)>0

Time =FlyingTime(1);

else

Time=FlyingTime(2);

end;

%Вычисляем зависимости величин от времени

t=0: (Time/100): Time;

X=XO+VO*cosd(AlphaO). *t;

Y=YO+VO*sind(AlphaO). *t-g. *(t.C2)/2;

Vx=VO*cosd(AlphaO). *t./t;

Vy= VO*sind(AlphaO)-g. *t;

% Построение графиков

figure();

hold on;

grid on;

plot(t,X, 'LineStyle',', 'LineWidth ',3);

plot(t, Y, 'LineStyle','LineWidth', 3);

plot(t, Vx, 'LineStyle',':', 'LineWidth ',3);

plot(t, Vy, 'LineStyle','LineWidth',3);

legend('X','Y','Vx','Vy);

Выполнение программного кода приведет к построению графика зависимости кинематических величин от времени.

Зависимость кинематических величин от времени

Рис. 7. Зависимость кинематических величин от времени

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >