Исследовательская часть

Исследуем, как будут меняться функции v, y, x, Исследовательская часть - student2.ru в зависимости от подстановки в уравнения движения неуправляемого летательного аппарата в проекциях на касательную и нормаль к траектории значений коэффициента свободного падения с разной точностью задания (см. табл. 6, 7).

Таблица 6: Расчёт активного участка

  Скорость vа, Исследовательская часть - student2.ru Угол   θа Высота   yа, м Дальность   xа, м Время   tа, с Коэф. своб. падения g Исследовательская часть - student2.ru
Метод Рунге-Кутта 432.42 0.574 552.47 789.37 9.81
432.10 0.569 549.17 790.83
Метод Эйлера 0.575 565.39 807.67 9.81
447.09 0.570 561.19 808.16

Таблица 7: Расчёт пассивного участка

  Скорость vп, Исследовательская часть - student2.ru Угол   θп Высота   yп, м Дальность   xп, м Время   tп, с Коэф. своб. падения g Исследовательская часть - student2.ru
Метод Рунге-Кутта 237.377 -0.906 10426.327 46,488 9.81
238.600 -0.900 10288.818 45.558
Метод Эйлера 240.461 -0.914 10884.580 47.618 9.81
241.703 -0.908 10744.871 46.668

Из таблиц 6 и 7 видно, что изменение величины коэффициента свободного падения g в пределах (9.81 - 10)м/с существенным образом не оказывает влияние на функции v, y, Исследовательская часть - student2.ru . Изменение коэффициента свободного падения g более существенно влияет только на дальность x.

Исследуем точность метода Рунге-Кутта и метода Эйлера на примере дальности неуправляемого ЛА xп. Точность в этих методах определяется заданием шага интегрирования Исследовательская часть - student2.ru Исследовательская часть - student2.ru . Будем Исследовательская часть - student2.ru последовательно делить на 2, если точность велика, и Исследовательская часть - student2.ru последовательно умножать на 2, в случае, если точность удовлетворяет (см.табл.8).

Таблица 8

  Исследовательская часть - student2.ru Дальность xп, м
Метод Рунге-Кутта Исследовательская часть - student2.ru =0.02 10452.093
Исследовательская часть - student2.ru =0.01 10426.327
Исследовательская часть - student2.ru 10426.866
Метод Эйлера Исследовательская часть - student2.ru =0.02 10573.747
Исследовательская часть - student2.ru =0.01 10884.580
Исследовательская часть - student2.ru 10885.449

8 видно, что шаг Исследовательская часть - student2.ru =0.01 выбран верно, т.к. при Исследовательская часть - student2.ru изменение значения дальности полёта неуправляемого ЛА незначительно, а при Исследовательская часть - student2.ru =0.10 изменение дальности полёта уже существенно.

Исследуем поведение функции v, y, x, Исследовательская часть - student2.ru в зависимости от времени t при постоянном коэффициенте лобового сопротивления Cx. В качестве значений Cx возьмём: 0.157; 0.181; 0.567.

V(t):

Cx=0.157

Исследовательская часть - student2.ru

Сх=0.567

Исследовательская часть - student2.ru

Q(t)

Cx=0.157

Исследовательская часть - student2.ru

Сх=0.567

Исследовательская часть - student2.ru

X(t):

Cx=0.157

Исследовательская часть - student2.ru

Сх=0.567

Исследовательская часть - student2.ru

Y(t):

Cx=0.157

Исследовательская часть - student2.ru

Сх=0.567

Исследовательская часть - student2.ru

Приложение

Траектория неуправляемого летательного аппарата

Зависимость y(t)

Исследовательская часть - student2.ru

Зависимость x(t)

Исследовательская часть - student2.ru

Зависимость v(t)

Исследовательская часть - student2.ru

Зависимость угла Исследовательская часть - student2.ru

Исследовательская часть - student2.ru

Зависимость y(x)

Исследовательская часть - student2.ru

Программа расчета методом Рунге Кутта:

#include<stdio.h>

#include<math.h>

#include<conio.h>

#include<iostream.h>

#include<stdlib.h>

#include<dos.h>

main()

{

FILE *fin;

float t0,v0,y0,x0,dt,cx,i,ay1,ay2,ay3,ay4,r,ay11,ay22,ay33,ay44,

by1,by2,by3,by4,by11,by22,by33,by44,cy1,cy2,cy3,cy4,cy11,cy22,cy33,cy44,

dy1,dy2,dy3,dy4,dy11,dy22,dy33,dy44,q,q0,m,y111,y222,y333,s,y1,y2,y3,y4,w,w1,w2;

int k=1;

clrscr();

printf("PROGRAMMA RASCHOTA RUNGI-KUTT\n");

printf("Vvedite dt=");

scanf("%f",&dt);

printf("Vvedite t0=");

scanf("%f",&t0);

printf("Vvedite v0=");

scanf("%f",&v0);

printf("Vvedite y0=");

scanf("%f",&y0);

printf("Vvedite x0=");

scanf("%f",&x0);

printf("Vvedite cx=");

scanf("%f",&cx);

printf("Vvedite i=");

scanf("%f",&i);

printf("Vvedite q0=");

scanf("%f",&q0);

printf("Vvedite q=");

scanf("%f",&q);

printf("vvedite r=");

scanf("%f",&r);

printf("Vvedite s=");

scanf("%f",&s);

printf("Vvedite m=");

scanf("%f",&m);

printf("CHTOBU NACHAT RASCHOT NAGMITE 'ENTER'\n");

getch();

fin=fopen("RUNGIKUTT.txt","w+");

q0=((M_PI)*q0)/180;

w=m-q*t0; w1=m-q*(t0+dt);w2=m-q*(t0+(dt/2));

do{

if(t0>=2) w=w1=w2=m-q*2;

ay1=(r/w)-(0.5*i*cx*1.24*exp((-y0)/7800)*s*pow(v0,2))/w-9.81*sin(q0);

ay2=(-9.81*cos(q0))/v0;

ay3=v0*sin(q0);

w=m-q*(t0+dt);

by11=v0+ay1*(dt/2);

by22=q0+ay2*(dt/2);

by33=y0+ay3*(dt/2);

by1=(r/w2)-(0.5*i*cx*1.24*exp((-by33)/7800)*s*pow(by11,2)/w2)-9.81*sin(by22);

by2=(-9.81*cos(by22))/by11;

by3=by11*sin(by22);

cy11=v0+by1*(dt/2);

cy22=q0+by2*(dt/2);

cy33=y0+by3*(dt/2);

cy1=(r/w2)-((0.5*i*cx*1.24*exp((-cy33)/7800)*s*pow(cy11,2))/w2)-9.81*sin(cy22);

cy2=(-9.81*cos(cy22))/cy11;

cy3=cy11*sin(cy22);

w2=w2-q*(dt/2);

dy11=v0+cy1*(dt/2);

dy22=q0+cy2*(dt/2);

dy33=y0+cy3*(dt/2);

dy1=(r/w1)-(0.5*i*cx*1.24*exp((-dy33)/7800)*s*pow(dy11,2))/w1-9.81*sin(dy22);

dy2=(-9.81*cos(dy22))/dy11;

dy3=dy11*sin(dy22);

w1=w1-q*dt;

y111=(dt/6)*(ay1+2*(by1+cy1)+dy1);

y222=(dt/6)*(ay2+2*(by2+cy2)+dy2);

y333=(dt/6)*(ay3+2*(by3+cy3)+dy3);

y1=v0+y111;

y2=q0+y222;

y3=y0+y333;

y4=x0+(y333/tan(y2));

printf("v=%f\t",y1); printf("q=%f\t",y2); printf("x=%f\t",y4); printf("y=%f\t",y3);

if(k==1 || k%100==0)

{

fprintf(fin,"%f\t ",y1); fprintf(fin,"%f\t ",y2); fprintf(fin,"%f\t ",y4); fprintf(fin,"%f\t ",y3);

printf(fin,"%f\n ",t0);

}

t0=t0+dt;

if(t0>4)r=0;

v0=y1;

y0=y3;

x0=y4;

q0=y2;

if(t0<=4){ w=m-q*(t0+(dt/2)); w1=m-q*(t0+dt); }

if(t0>4)w1=w=m-q*4;

k++;

if(k==10000) break;

}

while(y3>0);

printf("\n");

printf("RASCHT ZAKONCHEN NAGMITE 'ENTER', FILE RUNGIKUTT.txt");

fclose(fin); getch(); return 0;

}

Промежуточные вычисления:

V: Q: Y: X: T:

23,763874 0,782398 1,932259 1,931275 0,220200

130,429199 0,665657 60,209183 50,639038 1,210199

240,823135 0,622026 209,025696 161,298325 2,210198

351,822113 0,594530 452,504089 330,191559 3,210197

432,421600 0,574160 789,378723 552,577148 4,210201

410,369293 0,554478 1145,322510 777,929565 5,210224

390,529816 0,533505 1487,881226 985,174377 6,210247

372,570251 0,511212 1818,487915 1175,542236 7,210270

356,230286 0,487569 2138,346680 1350,063477 8,210293

341,304321 0,462546 2448,473633 1509,606689 9,210316

327,628387 0,436118 2749,739258 1654,914673 10,210339

315,070465 0,408263 3042,888184 1786,622437 11,210361

303,524170 0,378962 3328,566406 1905,282227 12,210384

292,902863 0,348209 3607,338623 2011,374756 13,210407

283,135834 0,316002 3879,694092 2105,320312 14,210430

274,165192 0,282353 4146,065918 2187,491699 15,210453

265,943207 0,247286 4406,835449 2258,217773 16,210476

258,430359 0,210840 4662,344238 2317,796143 17,210499

251,593369 0,173071 4912,887695 2366,490967 18,210522

245,403946 0,134051 5158,762695 2404,544189 19,210545

239,837524 0,093874 5400,248047 2432,175537 20,210567

234,872025 0,052648 5637,703613 2449,588623 21,210590

230,487061 0,010502 5872,410156 2456,972656 22,210613

226,663147 -0,032420 6097,707520 2454,506836 23,210636

223,380859 -0,075957 6321,226074 2442,352783 24,210659

220,620346 -0,119939 6541,516113 2420,673584 25,210682

218,360825 -0,164188 6758,337891 2389,623779 26,210705

216,580521 -0,208521 6971,687012 2349,355713 27,210728

215,255966 -0,252755 7181,595215 2300,018311 28,210751

214,362350 -0,296715 7388,096680 2241,760742 29,210773

213,873505 -0,340230 7591,227539 2174,732422 30,210796

213,761581 -0,383144 7791,015137 2099,085938 31,210819

213,997803 -0,425316 7987,480469 2014,974976 32,210800

214,552155 -0,466622 8180,636230 1922,559082 33,210632

215,394058 -0,506956 8370,488281 1822,002563 34,210464

216,492340 -0,546230 8557,041992 1713,474976 35,210297

217,815765 -0,584377 8740,285156 1597,153198 36,210129

219,332977 -0,621347 8920,211914 1473,221069 37,209961

221,013184 -0,657105 9096,802734 1341,869263 38,209793

222,825775 -0,691633 9270,041992 1203,298706 39,209625

224,741074 -0,724925 9439,906250 1057,717041 40,209457

226,730392 -0,756987 9606,370117 905,341431 41,209290

228,765884 -0,787836 9769,406250 746,397583 42,209122

230,821045 -0,817495 9928,986328 581,120117 43,208954

232,870499 -0,845993 10085,081055 409,752747 44,208786

234,890274 -0,873367 10237,661133 232,547562 45,208618

236,857834 -0,899655 10386,698242 49,765450 46,208450

237,377380 -0,906571 10426,327148 -0,507259 46,488403

Программа расчёта методом Эйлера:

#include<stdio.h>

#include<math.h>

#include<conio.h>

#include<iostream.h>

#include<stdlib.h>

#include<dos.h>

main()

{

FILE *fin;

float t0,v0,y0,x0,dt,cx,i,r,s,q0,q,m,w,v1,x1,y1,q1,v11,x11,y11,q11;

int k=1;

clrscr();

printf("PROGRAMMA RASCHOTA EILERA\n");

printf("Vvedite dt=");

scanf("%f",&dt);

printf("Vvedite t0=");

scanf("%f",&t0);

printf("Vvedite v0=");

scanf("%f",&v0);

printf("Vvedite y0=");

scanf("%f",&y0);

printf("vvedite x0=");

scanf("%f",&x0);

printf("Vvedite cx=");

scanf("%f",&cx);

printf("Vvedite i=");

scanf("%f",&i);

printf("Vvedite q0=");

scanf("%f",&q0);

printf("Vvedite q=");

scanf("%f",&q);

printf("vvedite r=");

scanf("%f",&r);

printf("Vvedite s=");

scanf("%f",&s);

printf("Vvedite m=");

scanf("%f",&m);

printf("CHTOBU NACHAT RASCHOT NAGMITE 'ENTER'\n");

getch();

fin=fopen("EILER.txt","w+");

q0=((M_PI)*q0)/180;

w=m-q*t0;

do{

v11=r/w-((0.5*(cx*i*1.24*exp(-y0/7800)*s*pow(v0,2)))/w)-9.81*sin(q0);

q11=-9.81*cos(q0)/v0;

y11=v0*sin(q0);

x11=v0*cos(q0);

v1=v0+v11*dt;

q1=q0+q11*dt;

y1=y0+y11*dt;

x1=x0+x11*dt;

printf("v=%f\t",v1); printf("q=%f\t",q1); printf("y=%f\t",y1); printf("x=%f\t",x1);

if(k==1 || k%100==0)

{

fprintf(fin,"%f\t ",v1);

fprintf(fin,"%f\t ",q1); fprintf(fin,"%f\t ",x1); fprintf(fin,"%f\t ",y1); fprintf(fin,"%f\n ",t0);

}

t0=t0+dt;

if(t0>4)r=0;

v0=v1;

x0=x1;

y0=y1;

q0=q1;

if(t0<=4) w=m-q*(t0+dt);

if(t0>4) w=m-q*4;

k++;

if(k==10000) break;

}

while(y1>0);

printf("\n");

printf("RASCHT ZAKONCHEN NAGMITE 'ENTER', FILE EILER.txt");

fclose(fin);

getch();

return 0;

}

Промежуточные вычисления:

V: Q: X: Y: T:

23.763487 0.782344 1.928373 1.928373 0.220200

131.555527 0.664869 60.104259 50.557625 1.210199

245.423386 0.621682 210.645355 162.456131 2.210198

362.258942 0.594789 459.645721 335.258881 3.210197

448.610260 0.575086 807.672485 565.398193 4.210201

425.312317 0.556125 1176.425903 799.623352 5.210224

404.417419 0.535910 1530.832520 1015.116455 6.210247

385.550812 0.514415 1872.469849 1213.211670 7.210270

368.421021 0.491612 2202.653809 1395.019653 8.210293

352.798492 0.467472 2522.492676 1561.475098 9.210316

338.500519 0.441972 2832.930664 1713.372681 10.210339

325.380981 0.415087 3134.776855 1851.392578 11.210361

313.321747 0.386803 3428.725586 1976.120483 12.210384

302.226898 0.357106 3715.384766 2088.067139 13.210407

292.018005 0.325995 3995.277832 2187.680664 14.210430

282.631012 0.293475 4268.866699 2275.349854 15.210453

274.013245 0.259566 4536.555664 2351.424561 16.210476

266.120728 0.224298 4798.701172 2416.217041 17.210499

258.916901 0.187718 5055.616699 2470.004883 18.210522

252.370651 0.149888 5307.567383 2513.041016 19.210545

246.455460 0.110888 5554.813965 2545.554443 20.210567

241.147659 0.070814 5797.562500 2567.756836 21.210590

236.425873 0.029781 6036.002441 2579.842773 22.210613

232.269989 -0.012081 6270.298340 2581.993408 23.210636

228.660477 -0.054626 6500.593750 2574.381592 24.210659

225.577728 -0.097697 6727.014160 2557.172119 25.210682

223.001633 -0.141127 6949.667480 2530.521240 26.210705

220.911148 -0.184744 7168.646973 2494.581543 27.210728

219.283890 -0.228372 7384.031250 2449.501953 28.210751

218.096405 -0.271839 7595.883301 2395.431885 29.210773

217.323624 -0.314978 7804.257324 2332.520508 30.210796

216.939178 -0.357632 8009.194336 2260.917236 31.210819

216.915359 -0.399656 8210.727539 2180.774902 32.210800

217.223389 -0.440921 8408.875977 2092.249512 33.210632

217.833908 -0.481313 8603.659180 1995.501709 34.210464

218.716614 -0.520738 8795.081055 1890.696777 35.210297

219.840820 -0.559116 8983.143555 1778.006958 36.210129

221.175995 -0.596388 9167.840820 1657.611084 37.209961

222.691498 -0.632510 9349.162109 1529.694824 38.209793

224.357285 -0.667453 9527.090820 1394.452148 39.209625

226.143692 -0.701202 9701.610352 1252.085693 40.209457

228.021835 -0.733755 9872.696289 1102.805054 41.209290

229.963791 -0.765121 10040.324219 946.830811 42.209122

231.942581 -0.795314 10204.467773 784.390381 43.208954

233.932571 -0.824359 10365.097656 615.721252 44.208786

235.909058 -0.852286 10522.188477 441.068268 45.208618

237.848923 -0.879128 10675.707031 260.686157 46.208450

239.730392 -0.904923 10825.626953 74.837372 47.208282

Список использованных источников:

1. Шалыгин А.С. Основы статистической динамики летательных аппаратов: Учебное пособие – Л.: ЛМИ, 1989.

2. http://altfast.ru

3. http://www.belostokskaya.ru

4. http://www.narod.ru

5. http://www.rian.ru

6. http://www.vpk-news.ru

7. http://www.gunscity.ru

8. http://flot.sevastopol.info

Наши рекомендации