вариант № 26
Заказать уникальную курсовую работу- 22 22 страницы
- 5 + 5 источников
- Добавлена 16.05.2009
- Содержание
- Часть работы
- Список литературы
Введение
Постановка задачи.
Терминология.
Алгоритм программы
Инструкция к программе.
Исходный код программы
Результаты моделирования
Выводы
Заключение
Список литературы
NextEventTime := FModelTime+FRunwayBusyTime;
FPlanes[FCurrentPlane].Status := psFlying; // Статус самолёта - взлетает
inc(Flying); // Увеличиваем число взлетевших самолётов
end
else
begin
FPlanes[FCurrentPlane].NextEventTime := FFreeRunWayTime;
// Если полоса занята - ждём освобождения
end
end;
procedure TAirPort.TryLanding;
begin
if not FIsRunWayBusy then // Если полоса не заянта
begin
FIsRunWayBusy := true; // Занять полосу
FFreeRunWayTime := FModelTime+FRunwayBusyTime; // Время осовбождения полосы текущее + 2 минуты
FPlanes[FCurrentPlane].NextEventTime := FModelTime+FRunwayBusyTime;
FPlanes[FCurrentPlane].Status := psLanding;// Статус самолёта - взлетает
inc(Landing); // Увеличиваем число взлетевших самолётов
end
else
begin
with FPlanes[FCurrentPlane] do
if AttemptCount < 5 then // Если число попыток меньше пяти
begin
// Делаем ещё попытку
NextEventTime := FModelTime+FWaitRoundTime;
Status := psWait;
inc(AttemptCount);
end
else
begin
// Если больше
// отправляем самолёт на другой аеродром
Status := psOther;
inc(Redirected);
end;
end
end;
procedure TfrmMain.btnFileClick(Sender: TObject);
var AirPort:TAirPort;
f:TextFile;
i:integer;
begin
AirPort := TAirPort.Create; // Создаём модель
AirPort.FEndTime := 24*60;
AirPort.LandingPlanesM := StrToFloat(self.edtLandingM.Text);
AirPort.LandingPlanesPM := StrToFloat(self.edtLandingPM.Text);
AirPort.FlyingPlanesM := StrToFloat(self.edtFLyingM.Text);
AirPort.FlyingPlanesPM := StrToFloat(self.edtFLyingPM.Text);;
AirPort.FRunwayBusyTime:=StrToFloat(self.edtBusy.Text);;
AirPort.FWaitRoundTime:=StrToFloat(self.edtWait.Text);;
// заполняем параметры
AssignFile(f,'res.csv');
Rewrite(f);
Writeln(f,'Перенаправлено;Взлетело;Приземлилось;Загрузка взлётной полосы');
// Записываем заголовок в файл
for I := 0 to 499 do
begin
AirPort.Run;
Writeln(f,AirPort.Redirected,';',AirPort.Flying,';',AirPort.Landing,';',(AirPort.Landing+AirPort.Flying)*AirPort.FRunwayBusyTime/AirPort.FEndTime);
end;
// Проводим 500 сеансов моделирования и записываем их в файл
CloseFile(f);
AirPort.Free;
end;
procedure TfrmMain.btnModelingClick(Sender: TObject);
var AirPort:TAirPort;
begin
AirPort := TAirPort.Create; // Создаём модель
AirPort.FEndTime := 24*60;
AirPort.LandingPlanesM := StrToFloat(self.edtLandingM.Text);
AirPort.LandingPlanesPM := StrToFloat(self.edtLandingPM.Text);
AirPort.FlyingPlanesM := StrToFloat(self.edtFLyingM.Text);
AirPort.FlyingPlanesPM := StrToFloat(self.edtFLyingPM.Text);;
AirPort.FRunwayBusyTime:=StrToFloat(self.edtBusy.Text);;
AirPort.FWaitRoundTime:=StrToFloat(self.edtWait.Text);;
AirPort.Run;
// заполняем параметры
edtRedirected.Caption := IntToStr( AirPort.Redirected);
edtFlying.Caption := IntToStr( AirPort.Flying);
edtLanding.Caption := IntToStr( AirPort.Landing);
edtP.Caption := FloatToStr((AirPort.Landing+AirPort.Flying)*AirPort.FRunwayBusyTime/AirPort.FEndTime);
// Загрузку вычисляем как время заянятости полосы к общему времени работы системы
AirPort.Free;
end;
begin
Randomize;
end.
Результаты моделирования
(Время моделирования – 8 часов, среднее за 500 прогонов)
Приземлилось Взлетело Перенаправлено Загрузка взлётной полосы 143,16 142,91 0,04 0,4
Выводы
Из результатов моделирования понятно, что аэропорт обладает определенным запасом пропускной способности, и нагрузка на него может быть увеличена без потерь самолётами времени на ожидание.
Заключение
В данном курсовом проекте была создана программа, реализующая имитационную модель аэропорта, и проведено исследование её характеристик. Имитационное моделирование — удобный способ решить задачу исследования поведения системы в случае, если провести эксперименты на реальной модели затруднительно, дорого или вовсе невозможно.
Список литературы
1. Шенном Р. Имитационное моделирование систем — искусство и наука; пер с англ. — Москва: Наука, 1985.— 237 с.
2. Цифровая имитация автоматизированных систем — Москва: Институт проблем передач информации АН СССР, 1983.— 139 с.
3. Хомоненко А. Гофман В. Мещеряков Е. Никифоров В. Delphi 7 — Санкт-Петербург: БХВ-Санкт-Петербург, 2006.— 1216 с.
Передвинуть модельное время до времени смены статуса выбранного самолёта.
Изменить самолёту статус.
Изменить его время смены статуса в соответствии с новым статусом.
Да
У следующего самолёта время смены статуса меньше?
Поменять местами текущий и следующий
Перейти к следующему
Нет
Да
Да
Выбрать первый не ушедший самолёт
Нет
Да
Обработать результаты
Конец
Модельное время больше времени окончания моделирования (ModelTime > EndTime)?
Создать достаточное количество самолётов
Начало
2. Цифровая имитация автоматизированных систем — Москва: Институт проблем передач информации АН СССР, 1983.— 139 с.
3. Хомоненко А. Гофман В. Мещеряков Е. Никифоров В. Delphi 7 — Санкт-Петербург: БХВ-Санкт-Петербург, 2006.— 1216 с.