Помощь в написании студенческих работ
Антистрессовый сервис

Исследование движения тела, брошенного под углом к горизонту, с учетом горизонтального сопротивления

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Анализ результатов Тело пролетело расстояние 0,741 метра за время 0,525 секунды. Скорость тела уменьшалась, пока оно не достигло наивысшей точки своей траектории (0,351 метра). Пройдя данную точку, проекция скорости на ось y (хy) поменяла своё направление (значения стали отрицательными), и тело начало разгоняться. Разгон продолжался до соприкосновения с землей. В данной задаче мы проводили… Читать ещё >

Исследование движения тела, брошенного под углом к горизонту, с учетом горизонтального сопротивления (реферат, курсовая, диплом, контрольная)

1. Введение

2. Постановка задачи

3. Математическая модель задачи

4. Алгоритм решения задачи

5. Схема алгоритма

6. Таблица идентификаторов

7. Текст программы на языке Pascal

8. Результаты решения задачи

9. Анализ результатов

10. Приложение № 1 (Microsoft Exel XP)

11. Приложение № 2 (MathCAD 2001)

12. Литература

1.

Введение

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

2. Постановка задачи Тело массой брошено под углом к горизонту с начальной скоростью (рис.1). На тело действует сила сопротивления, направленная горизонтально влево.

Исследовать характер движения тела, построив графики зависимостей хx (t), x (t), хy (t), y (t) и х (t).

Значения исходных данных для тестирования:, ,, ,, .

3. Математическая модель задачи Математическую модель задачи построим, используя второй закон Ньютона. Дифференциальные уравнения движения в проекциях на оси ОХ и ОY запишутся в виде:

и .

Начальные условия движения тела известны из постановки задачи, ,,. Таким образом, для исследования характера движения тела необходимо найти решение задачи Коши (сист. 1):

сист. 1 сист. 2.

Преобразуем её к системе дифференциальных уравнений первого порядка с начальными условиями (сист. 2).

Для решения системы используем метод Эйлера. В первом положении в соответствии с постановкой задачи определим, , ,

.

Обозначим Дt шаг изменения аргумента t. Тогда для i = 2, 3, …

, ,

, .

Процесс вычислений продолжаем до тех пор, пока тело не упадёт на землю, что соответствует выполнению условия. В результате получим таблично заданные зависимости хx (t), x (t), хy (t), y (t) и х (t).

4. Алгоритм решения задачи

1. начальные данные:

1.1×0=5 м/c

1.2 Дt=0,025 с

1.3 m=0,5 кг

1.4 k=2,8 кг/с

1.5 g=9,8 м/с2

1.6 б=30o

2. данные в первой точке пути:

2.1 i=1

2.2 t1=0

2.3 хx1=х0 cosб

2.4×1=0

2.5 хy1=х0 sinб

2.6 y1=0

3. пока повторять:

3.1 i=i+1

3.2

3.3

3.4

3.5

3.6

3.7

4. n = i-1

5. i =1.n:

5.1. вывод ti, Vxi, xi, Vyi, yi, Vi:

5. Схема алгоритма

Max

Vybor

6. Таблица идентификаторов

Номер

Идентификатор

Описание

х0

Скорость, с которой брошено тело

dt

Промежуток времени, через который проводятся измерения

k

Коэффициент вертикального сопротивления

g

Ускорение свободного падения

alpha

Угол, под которым брошено тело

m

Масса тела

n

Количество измерений от начала движения до падения тела

A (B)

Массив, в котором хранятся результаты расчётов

i

Индекс строк массива A (B)

rez

Текстовый файл, в который сохраняются результаты вычислений

dt, dy

Шаги подписей осей координат

x, s

Используются для подписей осей координат

z, k

Индекс столбца массива A (B) и поправочное слагаемое соответственно. Используются для подписей осей координат

GraphDriver

Используется для определения используемого видеокартой видео драйвера

GraphMode

После определения видео драйвера система заполняет его параметрами необходимыми для правильной работы этого видео драйвера

ErrorCode

Используется для хранения кода ошибки при инициализации модуля Graph с использованием идентификаторов d и m

7. Текст программы на языке Pascal

движение тело программа коши

uses graph, crt;

const v0=5; dt=0.025; alpha=pi/6; k=2.8; g=9.8; m=0.5;

type tab=array[1.40,1.6] of real;

var rez: text;

n, i: byte;

b:tab;

{====================================================}

procedure MyGraphInit;

var graphdriver, GraphMode, ErrorCode: integer;

begin

GraphDriver:=detect;

initGraph (graphdriver, GraphMode,'');

ErrorCode:=graphresult;

if Errorcode<>grOk then

begin

writeln ('proizoshla oshibka grafiki: ', grapherrormsg (errorCode));

writeln ('rabota programmy prervana');

readln;

end;

end;

{====================================================}

procedure osi_koordinat (A:tab; n, z, k:byte);

var i: byte;

dt, dy, x: real;

s:string;

begin

dt:=A[n, 1]/10;

dy:=A[n-k, z]/10;

setlinestyle (0,1,1);

line (100,20,100,320);

line (100,320,600,320);

for i:=0 to 10 do

begin

line (99,20+30*i, 101,20+30*i);

if z=4 then x:=A[n-k, z]-i*dy*2

else x:=A[n-k, z]-i*dy;

str (x:4:3,s);

moveTo (50,15+30*i);

outText (s);

line (100+50*i, 319,100+50*i, 321);

x:=i*dt;

str (x:4:3,s);

outtextXY (90+50*i, 324, s);

end;

for I:=1 to 10 do

begin;

setLineStyle (1,1,1);

setColor (8);

line (103,20+30*(i-1), 600,20+30*(i-1));

line (100+50*i, 318,100+50*i, 20);

setLineStyle (0,1,1);

end;

end;

{====================================================}

procedure MAX (const alpha, dt, k, m, g, v0:real; var A: tab; var n: byte);

var i: byte;

begin

i:=1;

A[i, 1]: =0;

A[i, 2]:=v0*cos (alpha);

A[i, 3]:=0;

A[i, 4]:=v0*sin (alpha);

A[i, 5]:=0;

A[i, 6]:=v0;

while A[i, 5]>=0 do

begin

i:=i+1;

A[i, 1]: =A[i-1,1]+dt;

A[i, 2]:=A[i-1,2]-dt*k/m*A[i-1,2];

A[i, 3]:=A[i-1,3]+dt*A[i-1,2];

A[i, 4]:=A[i-1,4]-dt*g;

A[i, 5]:=A[i-1,5]+dt*A[i-1,4];

A[i, 6]:=sqrt (sqr (A[i, 2])+sqr (A[i, 4]));

end;

n:=i-1;

end;

{=====================================================}

procedure graph_Vx (A:tab; n: byte);

var i, z, k:byte;

begin

MyGraphInit;

z:=2;

k:=n-1;

osi_koordinat (a, n, z, k);

setColor (red);

for i:=1 to n do

line (round (100+900*A[i, 1]), round (320−69*A[i, 2]), round (100+900*A[i+1,1]), round (320−69*A[i+1,2]));

outtextXY (100,400,'gfrafik zavisimosti Vx (t)');

readkey;

end;

{=====================================================}

procedure graph_X (A:tab; n: byte);

var i, z, k:byte;

begin

MyGraphInit;

z:=3;

k:=0;

osi_koordinat (a, n, z, k);

moveTo (100,320);

setColor (red);

for i:=1 to n do

lineto (round (100+A[i, 1]*500/A[n, 1]), round (320-A[i, 3]*300/A[n, 3]));

outtextxy (100,400,'gfrafik zavisimosti X (t)');

readkey;

end;

{====================================================}

procedure graph_Vy (A:tab; n: byte);

var i, z, k:byte;

begin

MyGraphInit;

z:=4;

k:=n-1;

osi_koordinat (a, n, z, k);

setColor (red);

moveTo (round (100+A[i, 1]*500/A[n, 1]), round (320-(A[i, 4]-A[n, 4])*300/(A[1,4]-A[n, 1])));

for i:=1 to n do

lineTo (round (100+A[i, 1]*500/A[n, 1]), round (320-(A[i, 4]-A[n, 4])*300/(A[1,4]-A[n, 4])));

outtextxy (100,400,'grafik zavisimosti Vy (t)');

readkey;

end;

{=====================================================}

procedure graph_V (A:tab; n: byte);

var i, z, k:byte;

begin

MyGraphInit;

z:=6;

k:=n-1;

osi_koordinat (a, n, z, k);

moveTo (100,20);

setColor (red);

for i:=1 to n do

lineTo (round (100+A[i, 1]*500/A[n, 1]), round (20+(A[i, 6]-A[1,6])*140/(A[n, 6]-A[1,6])));

outtextXY (100,400,'grafik zavisimosti V (t)');

readkey;

end;

{=====================================================}

procedure graph_Y (A:tab; n: byte);

var i, z, k:byte;

begin

MyGraphInit;

z:=5;

k:=0;

osi_koordinat (a, n, z, k);

moveTo (100,320);

setColor (red);

for i:=1 to n do

lineTo (round (100+A[i, 1]*500/A[n, 1]), round (320-A[i, 5]*22.5/A[n, 5]));

outtextXY (100,400,'grafik zavisimosti Y (t) ');

readkey;

end;

{=====================================================}

procedure vybor (A:tab; n: byte);

var z: byte;

begin

z:=0;

begin

restoreCRTmode;

clrscr;

writeln ('1-grafik Vx (t)');

writeln ('2-grafik X (t)');

writeln ('3-grafik Vy (t)');

writeln ('4-grafik Y (t)');

writeln ('5-grafik V (t)');

writeln ('sdelaite vybor nazhatiem');

writeln ('sootvetstvyuschei knopki');

read (z);

clrscr;

if (z<>1) and (z<>2) and (z<>3) and (z<>4) and (z<>5) then

else case z of

1: graph_Vx (A, n);

2: graph_x (A, n);

3: graph_Vy (A, n);

4: graph_y (A, n);

5: graph_V (A, n);

end;

closegraph;

end;

end;

{=====================================================}

begin

MAX (alpha, dt, k, m, g, v0,b, n);

vybor (b, n);

assign (rez,'rez.txt');

rewrite (rez);

writeln (rez,' raspe4atka rezul''tatov');

writeln (rez,'issledovanie dvizheniya tela brozhenogo pod uglom k gorizontu');

writeln (rez,'s u4etom gorizontal''nogo soprotivleniya ');

writeln (rez);

writeln (rez,'KOZEL A.N. gr.103 814 ');

writeln (rez);

writeln (rez,'variant30');

writeln (rez);

writeln (rez,'ishodnye dannye:');

writeln (rez,'massa tela m=', m:4:2,' kg');

writeln (rez,'na4al''naya skorost'' tela Vo=', v0:2,' m/s');

writeln (rez,'koeficient soprotivleniya sredy K=', k:3:2,' kg/s');

writeln (rez,'uskorenie Sv. Padeniya g=', g:3:2,' m/s2');

writeln (rez,'promezhutok vremeni dt=', dt:6:4,' s');

writeln (rez,'ugol broska alpha=', alpha*180/pi:2:0,' grad');

writeln (rez);writeln (rez);

writeln (rez,'__________________________________________________');

writeln (rez,'| i t Vx x Vy y V|');

writeln (rez,'|_________________________________________________|');

for i:=1 to n do

writeln (rez,'|', i:3,' | ', B[i, 1]: 5:3,' | ', B[i, 2]: 5:3,' | ', B[i, 3]: 5:3,' | ', B[i, 4]: 7:3,' | ', B[i, 5]: 5:3,' | ',

B[i, 6]: 4:3,'|');

write (rez,'———————————————————————————');

close (rez);

end.

8. Результаты решения задачи

raspe4atka rezul’tatov

issledovanie dvizheniya tela brozhenogo pod uglom k gorizontu

s u4etom gorizontal’nogo soprotivleniya

KOZEL A.N. gr.103 814

variant30

ishodnye dannye:

massa tela m=0.50 kg

na4al'naya skorost' tela Vo= 5 m/s

koeficient soprotivleniya sredy K=2.80 kg/s

uskorenie Sv. Padeniya g=9.80 m/s2

promezhutok vremeni dt=0.0250 s

ugol broska alpha=30 grad

______________________________________________________

| I t Vx x Vy y V|

|_____________________________________________________|

| 1 | 0.000 | 4.330 | 0.000 | 2.500 | 0.000 | 5.000|

| 2 | 0.025 | 3.724 | 0.108 | 2.255 | 0.063 | 4.353|

| 3 | 0.050 | 3.203 | 0.201 | 2.010 | 0.119 | 3.781|

| 4 | 0.075 | 2.754 | 0.281 | 1.765 | 0.169 | 3.271|

| 5 | 0.100 | 2.369 | 0.350 | 1.520 | 0.213 | 2.814|

| 6 | 0.125 | 2.037 | 0.409 | 1.275 | 0.251 | 2.403|

| 7 | 0.150 | 1.752 | 0.460 | 1.030 | 0.283 | 2.032|

| 8 | 0.175 | 1.507 | 0.504 | 0.785 | 0.309 | 1.699|

| 9 | 0.200 | 1.296 | 0.542 | 0.540 | 0.328 | 1.404|

| 10 | 0.225 | 1.114 | 0.574 | 0.295 | 0.342 | 1.153|

| 11 | 0.250 | 0.958 | 0.602 | 0.050 | 0.349 | 0.960|

| 12 | 0.275 | 0.824 | 0.626 | -0.195 | 0.351 | 0.847|

| 13 | 0.300 | 0.709 | 0.647 | -0.440 | 0.346 | 0.834|

| 14 | 0.325 | 0.610 | 0.664 | -0.685 | 0.335 | 0.917|

| 15 | 0.350 | 0.524 | 0.680 | -0.930 | 0.318 | 1.068|

| 16 | 0.375 | 0.451 | 0.693 | -1.175 | 0.294 | 1.259|

| 17 | 0.400 | 0.388 | 0.704 | -1.420 | 0.265 | 1.472|

| 18 | 0.425 | 0.333 | 0.714 | -1.665 | 0.229 | 1.698|

| 19 | 0.450 | 0.287 | 0.722 | -1.910 | 0.188 | 1.931|

| 20 | 0.475 | 0.247 | 0.729 | -2.155 | 0.140 | 2.169|

| 21 | 0.500 | 0.212 | 0.735 | -2.400 | 0.086 | 2.409|

| 22 | 0.525 | 0.182 | 0.741 | -2.645 | 0.026 | 2.651|

——————————————————————————-;

9. Анализ результатов Тело пролетело расстояние 0,741 метра за время 0,525 секунды. Скорость тела уменьшалась, пока оно не достигло наивысшей точки своей траектории (0,351 метра). Пройдя данную точку, проекция скорости на ось y (хy) поменяла своё направление (значения стали отрицательными), и тело начало разгоняться. Разгон продолжался до соприкосновения с землей.

Следовательно, исходя из результатов, можно сделать вывод:

чтобы увеличить дальность и время полёта тела, необходимо уменьшить массу тела, подобрать оптимальный угол броска (45о) и место проведения эксперимента для уменьшения величины вертикального сопротивления (ветер, дождь и т. д.), увеличить начальную скорость броска.

В данной задаче мы проводили расчеты через равные промежутки времени Дt=0,025 с. При этом в последней точке, в которой тело находилось максимально близко к земле, координата y составляла 0,026 метра. Следовательно, это даёт существенную погрешность. Чтобы уменьшить величину погрешности эксперимента, необходимо уменьшить значение Дt, например, до Дt =0,01 с.

10. Приложение № 1 (Microsoft Exel XP)

исходные данные

макс и мин значения

V0=

maxV=

maxY=

0,350 625

dt=

0,025

minV=

0,834 207

minY=

a (град)=

maxVx=

maxX=

0,7 406 698

k=

2,8

minVx=

minX=

g=

9,8

maxVy=

m=

0,5

minVy=

t

Vx

X

Vy

Y

V

4,330 127

2,5

0,025

3,723 909

0,108 253

2,255

0,0625

4,3 534 498

0,05

3,202 562

0,201 351

2,01

0,118 875

3,7 810 717

0,075

2,754 203

0,281 415

1,765

0,169 125

3,271 217

0,1

2,368 615

0,35 027

1,52

0,21 325

2,8 143 802

0,125

2,37 009

0,409 485

1,275

0,25 125

2,4 031 291

0,15

1,751 828

0,460 411

1,03

0,283 125

2,321 908

0,175

1,506 572

0,504 206

0,785

0,308 875

1,6 988 182

0,2

1,295 652

0,541 871

0,54

0,3285

1,4 036 784

0,225

1,11 426

0,574 262

0,295

0,342

1,1 526 497

0,25

0,958 264

0,602 118

0,05

0,349 375

0,9 595 675

0,275

0,824 107

0,626 075

— 0,195

0,350 625

0,8 468 632

0,3

0,708 732

0,646 678

— 0,44

0,34 575

0,8 342 068

0,325

0,60 951

0,664 396

— 0,685

0,33 475

0,9 169 116

0,35

0,524 178

0,679 634

— 0,93

0,317 625

1,675 499

0,375

0,450 793

0,692 738

— 1,175

0,294 375

1,2 585 069

0,4

0,387 682

0,704 008

— 1,42

0,265

1,4 719 706

0,425

0,333 407

0,7137

— 1,665

0,2295

1,6 980 533

0,45

0,28 673

0,722 035

— 1,91

0,187 875

1,9 314 021

0,475

0,246 588

0,729 203

— 2,155

0,140 125

2,1 690 621

0,5

0,212 065

0,735 368

— 2,4

0,8 625

2,4 093 509

0,525

0,182 376

0,74 067

— 2,645

0,2 625

2,6 512 801

макс и мин значения

maxV=

=МАКС (F10:F38)

maxY=

=МАКС (E10:E38)

minV=

=МИН (F10:F38)

minY=

=МИН (E10:E38)

maxVx=

maxX=

=МАКС (C10:C38)

minVx=

minX=

=МИН (C10:C38)

maxVy=

minVy=

t

Vx

X

=$B$ 3*COS (РАДИАНЫ ($B$ 5))

=A10+$B$ 4

=B10-$B$ 4*$B$ 6/$B$ 8*B10

=C10+$B$ 4*B10

=A11+$B$ 4

=B11-$B$ 4*$B$ 6/$B$ 8*B11

=C11+$B$ 4*B11

=A12+$B$ 4

=B12-$B$ 4*$B$ 6/$B$ 8*B12

=C12+$B$ 4*B12

=A13+$B$ 4

=B13-$B$ 4*$B$ 6/$B$ 8*B13

=C13+$B$ 4*B13

=A14+$B$ 4

=B14-$B$ 4*$B$ 6/$B$ 8*B14

=C14+$B$ 4*B14

=A15+$B$ 4

=B15-$B$ 4*$B$ 6/$B$ 8*B15

=C15+$B$ 4*B15

=A16+$B$ 4

=B16-$B$ 4*$B$ 6/$B$ 8*B16

=C16+$B$ 4*B16

=A17+$B$ 4

=B17-$B$ 4*$B$ 6/$B$ 8*B17

=C17+$B$ 4*B17

=A18+$B$ 4

=B18-$B$ 4*$B$ 6/$B$ 8*B18

=C18+$B$ 4*B18

=A19+$B$ 4

=B19-$B$ 4*$B$ 6/$B$ 8*B19

=C19+$B$ 4*B19

=A20+$B$ 4

=B20-$B$ 4*$B$ 6/$B$ 8*B20

=C20+$B$ 4*B20

=A21+$B$ 4

=B21-$B$ 4*$B$ 6/$B$ 8*B21

=C21+$B$ 4*B21

=A22+$B$ 4

=B22-$B$ 4*$B$ 6/$B$ 8*B22

=C22+$B$ 4*B22

=A23+$B$ 4

=B23-$B$ 4*$B$ 6/$B$ 8*B23

=C23+$B$ 4*B23

=A24+$B$ 4

=B24-$B$ 4*$B$ 6/$B$ 8*B24

=C24+$B$ 4*B24

=A25+$B$ 4

=B25-$B$ 4*$B$ 6/$B$ 8*B25

=C25+$B$ 4*B25

=A26+$B$ 4

=B26-$B$ 4*$B$ 6/$B$ 8*B26

=C26+$B$ 4*B26

=A27+$B$ 4

=B27-$B$ 4*$B$ 6/$B$ 8*B27

=C27+$B$ 4*B27

=A28+$B$ 4

=B28-$B$ 4*$B$ 6/$B$ 8*B28

=C28+$B$ 4*B28

=A29+$B$ 4

=B29-$B$ 4*$B$ 6/$B$ 8*B29

=C29+$B$ 4*B29

=A30+$B$ 4

=B30-$B$ 4*$B$ 6/$B$ 8*B30

=C30+$B$ 4*B30

Vy

Y

V

=$B$ 3*SIN (РАДИАНЫ ($B$ 5))

=КОРЕНЬ (B102+D102)

=D10-$B$ 4*$B$ 7

=E10+$B$ 4*D10

=КОРЕНЬ (B112+D112)

=D11-$B$ 4*$B$ 7

=E11+$B$ 4*D11

=КОРЕНЬ (B122+D122)

=D12-$B$ 4*$B$ 7

=E12+$B$ 4*D12

=КОРЕНЬ (B132+D132)

=D13-$B$ 4*$B$ 7

=E13+$B$ 4*D13

=КОРЕНЬ (B142+D142)

=D14-$B$ 4*$B$ 7

=E14+$B$ 4*D14

=КОРЕНЬ (B152+D152)

=D15-$B$ 4*$B$ 7

=E15+$B$ 4*D15

=КОРЕНЬ (B162+D162)

=D16-$B$ 4*$B$ 7

=E16+$B$ 4*D16

=КОРЕНЬ (B172+D172)

=D17-$B$ 4*$B$ 7

=E17+$B$ 4*D17

=КОРЕНЬ (B182+D182)

=D18-$B$ 4*$B$ 7

=E18+$B$ 4*D18

=КОРЕНЬ (B192+D192)

=D19-$B$ 4*$B$ 7

=E19+$B$ 4*D19

=КОРЕНЬ (B202+D202)

=D20-$B$ 4*$B$ 7

=E20+$B$ 4*D20

=КОРЕНЬ (B212+D212)

=D21-$B$ 4*$B$ 7

=E21+$B$ 4*D21

=КОРЕНЬ (B222+D222)

=D22-$B$ 4*$B$ 7

=E22+$B$ 4*D22

=КОРЕНЬ (B232+D232)

=D23-$B$ 4*$B$ 7

=E23+$B$ 4*D23

=КОРЕНЬ (B242+D242)

=D24-$B$ 4*$B$ 7

=E24+$B$ 4*D24

=КОРЕНЬ (B252+D252)

=D25-$B$ 4*$B$ 7

=E25+$B$ 4*D25

=КОРЕНЬ (B262+D262)

=D26-$B$ 4*$B$ 7

=E26+$B$ 4*D26

=КОРЕНЬ (B272+D272)

=D27-$B$ 4*$B$ 7

=E27+$B$ 4*D27

=КОРЕНЬ (B282+D282)

=D28-$B$ 4*$B$ 7

=E28+$B$ 4*D28

=КОРЕНЬ (B292+D292)

=D29-$B$ 4*$B$ 7

=E29+$B$ 4*D29

=КОРЕНЬ (B302+D302)

=D30-$B$ 4*$B$ 7

=E30+$B$ 4*D30

=КОРЕНЬ (B312+D312)

11. Приложение № 2 (MathCAD 2001)

Исходные данные для тестирования Данные в первой точке пути Графики График зависимости Vx (t)

График зависимости x (t)

График зависимости Vy (t)

График зависимости y (t)

График зависимости V (t)

12. Литература

1) П. П. Анципорович, О. И. Алейникова, Т. И. Булгак, Н. Я. Луцко Учебно-методическое пособие к лабораторным работам для студентов машиностроительных специальностей. Часть 1. Минск: БНТУ, 2009.

2) Конспект лекций.

Показать весь текст
Заполнить форму текущей работой