отчет (Отчет о реализации задачи №1)
Описание файла
Файл "отчет" внутри архива находится в папке "Отчет о реализации задачи №1". Документ из архива "Отчет о реализации задачи №1", который расположен в категории "". Всё это находится в предмете "военная кафедра" из 5 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "отчет"
Текст из документа "отчет"
Московский Государственный университет им М.В.Ломоносова
Факультет военного обучения
Кафедра ПВО
Отчет о реализации задачи №1
Выполнили студенты взвода 13-01:
Алистратов Андрей
Андрианов Александр
Закиров Николай
Цой Павел
1. Постановка задачи
Необходимо разработать программную модель боя группировки войск ПВО со средствами воздушного нападения противника, наносящими удар по прикрываемым объектам, и вычислить эффективность стрельбы ЗРК.
С аэродрома противника с координатами Xa = 200км, Za = -500км через интервалы времени, не большие T1 = 10 мин., поднимаются самолеты, которые летят с постоянной скоростью Vi, Vmin ≤ Vi ≤ Vmax, Vmin = 500км/ч, Vmax = 1000км/ч по направлению к объектам, прикрываемым группировкой ПВО, состоящей из РЛС и ЗРК. Количество самолетов M. РЛС и ЗРК находятся в начале координат. Радиус обнаружения РЛС R1=100км, радиус поражения ЗРК R2=50км. Скорострельность стрельбы ЗРК определяется циклом стрельбы, не меньшим T2 = 1 мин. Боекомплект ЗРК c = 100 ракет. Прикрываются 2 объекта с координатами X1 = 10км, Z1 = 20км и X2 = -5км, Z2 = -10км и находятся внутри зоны поражения ЗРК. Считается, что РЛС обнаруживает все цели, а ракеты уничтожают цель с вероятностью P = 0.8. При наличии нескольких целей выбирается наиболее опасная, т.е. самая близкая по времени подлета к прикрываемому объекту. Объект считается уничтоженным, если самолет приблизился к нему на расстояние радиуса бомбометания RB = 5км.
Моделирование производится с постоянной дискретностью dt = 0,5мин. Условия окончания реализации:
- уничтожен хотя бы один из объектов
- все самолеты сбиты
- весь боекомплект израсходован.
Все действие происходит в плоскости (т.е. высота полета самолетов не учитывается). С помощью генерирования псевдослучайной последовательности моделируются: интервал между взлетами самолетов (на отрезке [0,T1]), скорость самолета (на отрезке [Vmin, Vmax]), выбор цели самолетом.
Нужно моделировать аэродром, РЛС, ЗРК.
Частные задачи, которые должна решать проектируемая модель:
- ввод исходных данных
- планирование удара
- моделирование взлета и передвижения самолетов
- моделирование обнаружения цели РЛС
- моделирование целераспределения
- моделирование обстрела и уничтожения целей
- проверка условий окончания реализации.
2. Текст программы
PROGRAM N1(input,output);
const M = 50;
TYPE plane = record
ar_t : real;{время, когда самолет достигнет цели}
v : real;{скорость}
t : real;{время вылета}
z : real;{координата}
x : real;{координата}
cosq : real;
sinq : real;
d : boolean;{обнаружен или не обнаружен}
kill : boolean;{уничтожен или нет}
end;
var
vmin, vmax, time, dt, R1, R2, P, RB, T1, T2, x1, z1, x2, z2, xa, za, tlf : real;
{ T1-max время между вылетами самолетов,T2-max время перезарядки ракет, RB-радиус бомбометания }
{ tlf-time of the last fire-время последнего выстрела }
aM, n, с, k, i : integer;
{ aM-количество не сбитых самолетов, c-боезапас, n-число реализаций программы, k-счетчик сбитых самолетов }
success : boolean;
drome : array[1..M] of plane;
FUNCTION uniform(a,b:real):real;
var c,d : integer;
begin
c := random(100);
d := random(100);
uniform:=a + (b - a) * (0.01 * c + 0.0001 * d)
end;
FUNCTION MAX(f,g:real):real;
var ma : real;
begin
if (f>g) then
ma := f
else
ma := g;
MAX := ma
end;
PROCEDURE vvod;
begin
vmin := 500/60;
vmax := 1000/60;
time := 0;
dt := 0.5;
R1 := 100;
R2 := 50;
P := 0.8;
RB := 5;
T1 := 10;
T2 := 1;
x1 := 10;
z1 := 20;
x2 := -5;
z2 := -10;
xa := 200;
za := -500;
end;
PROCEDURE init;
var j : integer;
dist1, dist2, cq1, cq2, sq1, sq2 : real;
begin
cq1 := (z1-za)/sqrt(sqr(z1-za)+sqr(x1-xa));
sq1 := (x1-xa)/sqrt(sqr(z1-za)+sqr(x1-xa));
cq2 := (z2-za)/sqrt(sqr(z2-za)+sqr(x2-xa));
sq2 := (x2-xa)/sqrt(sqr(z2-za)+sqr(x2-xa));
dist1 := sqrt((xa-x1)*(xa-x1)+(za-z1)*(za-z1))-RB;
dist2 := sqrt((xa-x2)*(xa-x2)+(za-z2)*(za-z2))-RB;
for j := 1 to M do begin
drome[j].v := uniform(vmin,vmax);
if (j>1) then drome[j].t := drome[j-1].t + uniform(0,t1)
else drome[j].t := uniform(0,t1);
drome[j].x := xa;
drome[j].z := za;
drome[j].kill := FALSE;
drome[j].d := FALSE;
if (uniform(0,1)<0.5) then begin
drome[j].cosq := cq1;
drome[j].sinq := sq1;
drome[j].ar_t := drome[j].t + dist1/drome[j].v
end else begin
drome[j].cosq := cq2;
drome[j].sinq := sq2;
drome[j].ar_t := drome[j].t + dist2/drome[j].v
end
end;
tlf := -T2
end;
PROCEDURE newcoord;
var i : integer;
begin
for i:=1 to M do begin
if (not drome[i].kill) and (drome[i].t < time) then begin
drome[i].x := drome[i].x + drome[i].v*dt*drome[i].sinq;
drome[i].z := drome[i].z + drome[i].v*dt*drome[i].cosq;
if (sqrt(sqr(drome[i].x)+sqr(drome[i].z))<R1) and
not drome[i].d then drome[i].d:=TRUE;
if (sqrt(sqr(drome[i].x-x1)+sqr(drome[i].z-z1))<RB) or
(sqrt(sqr(drome[i].x-x2)+sqr(drome[i].z-z2))<RB) then
success := FALSE
end
end
end;
PROCEDURE fire;
var l, minp : integer;{minp-самый опасный самолет}
mint : real;
begin
minp := 0;
mint := T1*M + MAX(sqrt((xa-x1)*(xa-x1)+(za-z1)*(za-z1)),sqrt((xa-x2)*(xa-x2)+(za-z2)*(za-z2)))/vmin;
for l := 1 to M do begin
if drome[l].d and (not drome[l].kill) and (drome[l].t < time) then begin
if (mint>drome[l].ar_t) then begin
minp:=l;
mint:=drome[l].ar_t
end
end
end;
if (minp<>0) and
(sqrt(sqr(drome[minp].z)+sqr(drome[minp].x))<R2) then begin
if (uniform(0,1)<P) then begin
drome[minp].kill := TRUE;
aM := aM-1
end;
c := c-1
end
end;
BEGIN
randomize;
vvod; {procedure}
k := 0;
write('n = ');
readln(n);
for i := 1 to n do begin
c := 100;
init; {procedure}
aM := M;
success := TRUE;
time := 0;
while (c>0) and (aM>0) and success do begin
newcoord; { procedure, определяются новые координаты }
if (time >= tlf+T2) and success then begin
tlf := time;
fire {procedure, определяет наиболее опасный самолет и производит выстрел}
end;
if (c=0) and (aM>0) then success := false;
time := time+dt;
end;
if success then begin
k:=k+1;
writeln('na ',i,' shagu - uspeh')
end else
writeln('na ',i,' shagu - neudacha')
end;
writeln('k = ',k);
writeln('result ',k/n);
END.
3. Анализ, выводы.
В результате проверки программы для заданных начольных данных при большом n – количестве моделирований, получается, что эффективность стрельбы ЗРК, т.е. вероятность защиты прикрываемых объектов, примерно равна 43%.
t Xt Yt Zt Xr Yr Zr R
0 80000 10000 -30000 9296 1162 -3486 76027
4 78818 10120 -29832 12272 1534 -4602 71684
8 77624 10243 -29562 15361 1933 -5773 67168
12 76429 10368 -29191 18565 2360 -6997 62489
16 75246 10496 -28716 21884 2819 -8270 57659
20 74088 10626 -28140 25319 3314 -9586 52689
24 72967 10757 -27466 28873 3847 -10939 47594
28 71895 10889 -26697 32550 4423 -12317 42387
32 70882 11022 -25842 36352 5048 -13706 37085
36 69940 11156 -24907 40285 5728 -15088 31707
40 69078 11288 -23902 44355 6473 -16436 26270
44 68303 11421 -22838 48571 7294 -17709 20801
48 67623 11551 -21726 52942 8208 -18846 15329
52 67042 11680 -20580 57478 9241 -19736 9906
56 66563 11807 -19412 62174 10439 -20150 4656
Время наведения t = 56 секунд