Моделирование работы диспетчерского пункта
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Государственное Образовательное Учреждение
Высшего Профессионального Образования
РЯЗАНСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра Автоматизированных Систем Управления
КУРСОВОЙ ПРОЕКТ
по дисциплине
«Моделирование процессов и систем»
на тему
«Моделирование работы диспетчерского пункта»
Выполнил:
студент группы 535
Фирсов Д.А.
Проверил:
Малинин Ю.И.
Страниц 32
Рязань 2017г.
АННОТАЦИЯ
В данном курсовом проекте моделируется работа диспетчерского пункта. В качестве средства моделирования используется универсальный язык программирования Borland Pascal 7.0. Разработанная программа позволяет проанализировать работу диспетчерского пункта.
Сокращения:
ЭВМ – Электронно-вычислительная машина.
БД – База данных.
МЧС – Министерство по Чрезвычайным Ситуациям.
ЧС – Чрезвычайная ситуация.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
Моделирование (в широком смысле) является основным методом исследований во всех областях знаний и научно обоснованным методом оценок характеристик сложных систем, используемым для принятия решений в различных сферах инженерной деятельности.[1]
Все то, на что направлена человеческая деятельность, называется объектом (лат. objection — предмет).[1]
Модель (лат modulus — мера) — это объект-заместитель объекта-оригинала, обеспечивающий изучение некоторых свойств оригинала.[1]
Существующие и проектируемые системы можно эффективно исследовать с помощью математических моделей (аналитических и имитационных), реализуемых на современных ЭВМ, которые в этом случае выступают в качестве инструмента экспериментатора с моделью системы.
При аналитическом подходе математическая модель исследуемого процесса должна быть преобразована в систему уравнений, допускающих либо аналитическое, либо численное решение. Применяемый метод решения в общем случае по своей логической структуре весьма далек как от математической модели, так и от процесса-оригинала.
В противоположность этому при имитационном моделировании соотношения исходной математической модели преобразуются в специальный моделирующий алгоритм, отражающий протекание процессов во времени в той логической последовательности и с теми причинно-следственными связями, которые наблюдаются в изучаемом объекте. Моделирующий алгоритм, преобразованный далее в программу для ЭВМ, совместно с вычислительной средой (ЭВМ) и образует имитационную модель.
Применение ЭВМ при анализе и решении аналитических моделей ограничивается лишь автоматизацией вычислений. Для имитационной модели ЭВМ является ее непосредственным компонентом.
С учетом сказанного имитационный эксперимент можно рассматривать как материализацию "мысленного эксперимента".
Целью данного курсового проекта является создание имитационной модели.
Имитационная модель объекта - это его программное представление с целью анализа поведения в вычислительной среде ЭВМ.
В настоящее время работа по обслуживанию клиентов достигла высокой скорости с множеством пользователей. Все процессы осуществляются с помощью компьютера, данные хранятся в БД.
Однако, не все организации приобщились к современным технологиям и пользуются традиционными методами обслуживания. Это является следствием более низкой производительности. Естественно, до сих пор разрабатываются всё новые и новые программы, стремящиеся к максимальному ускорению данного процесса.
Информационные системы приобретают значительную важность, так как они обеспечивают принятие решений. Также база даннных является одним из важнейших элементов информационной системы. Она систематизрована и удобна для поиска и обработки нужных данных с помощью ЭВМ. Имеются несколько важных свойств базы данных:
1)База данных хранится и
2)Данные хорошо
3)Структура обеспечивает
База данных позволяет хранить данные, использовать их несколькими пользователями, строить отчёты по запросу пользователя.
В данном курсовом проекте моделируется работа диспетчерской службы.
Для начала моделирования нужно изучить выбранную систему, все её плюсы и минусы, а также возможности оптимизации работы.
Объектом моделирования является диспетчерская служба.
Предметом моделирования:
- Приём заявок от клиентов.
- Обработка заявок от клиентов.
- Выдача результата клиенту в виде квитанции.
В результате моделирования
Тема исследования работы актуальна для всех систем массового обслуживания, так как таким системам присущи проблемы очередей и простоев.
Описание предметной области
Диспетчерская служба представляет собой пункт, в который клиенты обращаются со своей проблемой. Сотрудник обслуживает клиента, принимая у него заявку и обрабатывая её. Результат работы над заявкой сотрудник выдаёт клиенту в виде квитанции со статусом работы над заявкой.
Диспетчерская служба имеется во многих отраслях(МЧС России, аэропорт, диспетчерская служба, связанная с несколькими домами одного района). Задачей диспетчерской службы является обслуживание клиентов. Имеются требования и ограничения в её работе. Требования:
- быстродействие в обслуживании;
- максимальная защищённость от чрезвычайных ситуаций;
- способность устранения неполадок в работе так быстро, насколько это возможно.
Также имеются ограничения:
- работа осуществляется не круглосуточно;
- ограниченность времени ожидания.
Для повышения быстродействия и работоспособности современные диспетчерские службы переходят на использование информационных систем и баз данных.
1.ПРИНЦИП ФУНКЦИОНИРОВАНИЯ МОДЕЛИРУЕМОЙ СИСТЕМЫ
1.1. Постановка задачи
Необходимо смоделировать процесс, который в дальнейшем сможет использовать любое предприятие[2].
Диспетчерская служба обслуживается сотрудником. Сотрудник принимает заявки и обрабатывает их. Исходными данными для осуществления имитации модели являются:
- начало рабочего дня – 8:00, конец рабочего дня – 18:00;
- интервал прихода клиентов – 9 минут;
- минимальное время
- число прогонов – 10
В процессе работы может возникнуть чрезвычайная ситуация, например, отключение света, в результате чего работа приостанавливается на время устранения этих обстоятельств (от 5 до 10 минут).
Требуется смоделировать работу системы в течение полного рабочего дня и определить:
- Число посетителей за рабочий день;
- Время закрытия;
- Среднюю длину очереди;
- Среднее количество посетителей;
- Среднее время обслуживания;
- Количество ЧС.
1.2.Блок-схема алгоритма функционирования моделируемой системы
Принцип функционирования системы представлен на рисунке 1.
При приходе клиента происходит сравнение
числа людей, находящихся в очереди. При
освобождении сотрудника к нему подходит
посетитель. На обслуживание одного клиента
отводится от 7 до 13 минут. После этого
клиент уходит из очереди.
1.3.Выбор концептуальной модели
Необходимо определить подход к разработке концептуальной модели. Возможны два различных подхода - дискретное и непрерывное моделирование, различающиеся способами задания времени в вычислительной среде ЭВМ.
При дискретном моделировании состояние моделируемой системы может меняться только в определенные моменты времени при свершении некоторых событий. Последние формируются двумя способами: безусловно (основные или временные события) или при выполнении определенных условий (вспомогательные или структурные события). Таким образом, в дискретной модели системное время всегда вторично и задается равным моменту свершения очередного события только после принятия решения о его программной реализации.
При непрерывном моделировании системное время всегда первично и задается вычислительной системой по самостоятельному алгоритму. Это время используется как аргумент для последующего вычисления нужных величин с целью определения состояния моделируемого объекта.
Так как непрерывных процессов, в которых время является аргументом, в явном виде не имеется, то данную систему можно представить как дискретную модель. Здесь, главным образом, рассматриваются события. Она представлена на рисунке 2.
2.ФОРМАЛИЗАЦИЯ МОДЕЛИ
2.1.Группировка событий
Класс 1. Приход клиента.
В данном классе задаётся количество пришедших посетителей, имеется ли очередь, а также её длина.
Класс 2. Обслуживание клиента.
В данном классе задаётся время, которые было затрачено на обслуживание клиента.
Класс 3. Уход клиента.
В данном классе происходит процесс освобождения места в очереди клиентом.
Класс 4. ЧС.
В данном классе происходит чрезвычайная ситуация, увеличивается время свершения.
2.2.Переменные модели
В процессе моделирования систем разработчик использует большое число переменных. Наиболее важные из них:
- NRNS – номер текущего прогона;
- NNRNS – общее число заданных прогонов;
- TNow – системное, т.е. текущее время;
- TTBeg – время начала прогона;
- TTFin – время окончания имитационного процесса;
- TSob – время свершения события;
- KEvent – код события;
- All – общее число посетителей;
- NEvents – количество записей в календаре;
- Ochered – длина очереди;
- Zanyat – признак занятости сотрудника;
- Kol_Chs – количество ЧС;
- Otchet_progon – файл отчёта по прогону;
- Otchet_Allprogon – файл отчёта по всем прогонам;
- Events – файл календаря.
3.АЛГОРИТМ ИМИТАЦИИ МОДЕЛИ
3.1.Процедура планирования
В процедуре SCHDL имеется 3 параметра:
KEvent – код события;
TSob – время его свершения;
A1 – атрибут события.
Начинается формирование записи, в которую поступают данные из A1. После этого в A2 копируются код и время свершения события. A2 – массив для работы с событиями. С оператора For j:=1 to nnq do начинается поиск первой свободной записи в календаре (запись с кодом события равным 0). На место найденной записи записываются данные из массива А2 (новое запланированное событие). После этого файл календаря переписывается с новой записью. В конце процедуры SCHDL записи календаря сортируются в порядке возрастания времени свершения событий процедурой GRUP.
procedure
schdl(kevnt,dtime:integer;a4:
var
i,j:integer;
begin
for i:=1 to matr do a2[i]:=a4[i];writeln('атрибуты события ',a1[1]);
a2[matr+1]:=kevnt;writeln('код события ',kevnt);
a2[matr+2]:=tnow+dtime;
seek(f,0);
read(f,a3);
j:=1;
while a3[matr+1,j]<>0 do j:=j+1;
for i:=1 to matr+2 do a3[i,j]:=a2[i];
seek(f,0);
write(f,a3);
writeln(' Вывод календаря');
for i:=1 to nnq1 do
begin
for j:=1 to matr+2 do
write(a3[j,i],' ');write(' ');
end;
writeln;
grup;
end;
3.2.Процедура перегруппировки
Процедура GRUP – системная и без параметров. Она сортирует записи по возрастанию по времени свершения. После копирования в A3 календаря осуществляется проверка состояния первой записи. Если она пустая, значит из календаря ранее выбрано событие с минимальным временем свершения и, следовательно, достаточно сдвинуть календарь на одну запись влево. Далее календарь из массива A3 переписывается в файл. Перед сортировкой календаря оператор K=J запоминает номер j–й записи, а оператор z:=a3[3,j] – ее время свершения. Следующий за ними оператор For l:=j+1 to nnq do: проверяет код очередной, сопоставляемой с j, записи l; сравнивает время двух записей; запоминает (обновляет k, z) номер и время свершения записи l. Если проверяемый код записи l равен нулю, календарь кончился и происходит обмен данными между записями j и l (k), так как ищутся записи со временем меньшим, чем у записи j. Если время свершения записи l оказывается больше или равным тому же для записи j, переходим к следующей записи календаря.
procedure grup;
var
l,k,h,i,j,n:integer;
begin
writeln(' Подпрограмма перегруппировки')
seek(f,0);
read(f,a3);
n:=1;
while a3[matr+2,n]=0 do
begin
for k:=1 to nnq1-1 do
for l:=1 to matr+2 do
begin
a3[l,k]:=a3[l,k+1];
a3[l,k+1]:=0;
end;
n:=n+1;
end;
h:=nnq1 div 2;
i:=0;
while h<>0 do
begin
for j:=h+1 to nnq1 do
begin
i:=j-h;
for k:=1 to matr+2 do
a[k]:=a3[k,j];
repeat
for k:=1 to matr+2 do
b[k]:=a3[k,i];
if (a[matr+2]<b[matr+2])and(a[
begin
for k:=1 to matr+2 do
a3[k,i+h]:=b[k];
i:=i-h;
end;
until (i<=0)or(a[matr+2]>=b[matr+2])
for k:=1 to matr+2 do
a3[k,i+h]:=a[k];
end;
h:=h div 2;
end;
seek(f,0);
write(f,a3);
writeln(' Вывод нового календаря');
for i:=1 to nnq1 do
begin
for j:=1 to matr+2 do
write(a3[j,i],' ');write(' ');
end;
writeln;
end;
3.3.Процедура извлечения первой записи из календаря
Извлечение осуществляется
процедурой RMOVE. Происходит копирование
календаря в массив А3. Затем из его
первой записи извлекаются: время свершения
события, код события и его атрибут. Затем
код события обнуляется, после этого календарь.
В конце вызывается процедура GRUP для расстановки
записей в порядке возрастания по времени
свершении.
procedure rmove;
var
i,j:integer;
begin
seek(f,0);
read(f,a3);
i:=a3[matr+1,1];
writeln(' Код извлеченного события ',i);
writeln(' Время извлеченного события ',a3[matr+2,1]);
for j:=1 to matr+3 do a3[j,1]:=0;
for j:=1 to matr do attr[j]:=a3[j,1];
seek(f,0);
write(f,a3);
writeln(' Вывод календаря');
for i:=1 to nnq1 do
begin
for j:=1 to matr+2 do
write(a3[j,i],' ');write(' ');
end;
writeln;
grup;
end;
3.4.Процедура инициализации
В процедуре INTLC определяются необходимые условия имитации. Обязательными являются оператор задания начального имитационного времени и оператор планирования события.
В процедуре задаются начальные условия:
- tnow:=ttbeg – время начала имитации;
- zanyat:=false – обнуление занятости сотрудника;
- nevents:=0 – количество событий в календаре;
- ochered:=0 – количество клиентов в очереди;
- all:=0 – общее число клиентов;
- schdl(1) – планирование первого события.
3.5.Главный модуль
В главном модуле задаются всепрогонные переменные, вводится количество прогонов, а также вызывается процедура slam.
- nnrns:=0;
- ttbeg:=0;
- ttfin:=600;
3.6.Процедура поиска алгоритма
обработки события
Процедура поиска алгоритма обработки события EVENT содержит оператор выбора Case, реализующий выбор требуемой процедуры по коду извлечённого события. Имеется 4 класса событий: приход, обслуживание, уход и ЧС.
3.7.Процедура обработки события
первого класса
Данная процедура служит для обработки события «Приход клиента». В ней клиент становится в очередь и увеличивается число человек в очереди на 1. Если сотрудник не занят, то происходит переход к планированию события второго класса.
3.8.Процедура обработки события второго класса
Это процедура обслуживания у сотрудника. Число клиентов в очереди уменьшается на 1, и если оно равняется 0, то сотрудник свободен, иначе клиент остаётся в очереди. Происходит обслуживание и увеличение числа обслуженных клиентов на 1.
3.9.Процедура обработки события третьего класса
Это процедура ухода клиента. Число клиентов в очереди уменьшается на 1.
3.10.Процедура обработки события четвёртого класса
Процедура обработки события данного класса вызывается в случае наступления чрезвычайной ситуации (отключение света). При этом работа диспетчерской службы приостанавливается на время устранения причин задержки. Увеличивается время свершения события в календаре.
3.11.Процедура формирования отчёта по прогону
Данная процедура Outputn формирует отчёт по прогону. На экран и в файл выводятся следующие статистические данные:
- Номер прогона;
- Общее количество обслуженных;
- Средняя длина очереди за прогон;
- Среднее время обслуживания за прогон;
- Время закрытия;
- Количество ЧС за прогон.
3.12.Процедура формирования отчёта по всем прогонам
Процедура Output выводит на экран и в файл данные:
- Среднее количество обслуженных;
- Средняя длина очереди;
- Среднее время обслуживания;
- Время закрытия;
- Число прогонов;
- Количество ЧС.
4.ВЫБОР ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Для реализации имитационной модели воспользуемся универсальным языком программирования. В качестве такого языка будем использовать язык Borland Pascal 7.0.
Данный язык обладает достаточным набором
операторов, с помощью которых вполне
реально создать имитационную модель.
Кроме того, данное программное средство
очень просто в применении.
5.ПРОГРАММА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ
После запуска программы необходимо ввести число прогонов. После окончания имитации на экране отобразятся итоговые данные. Просмотрев их, необходимо провести анализ и выяснить оптимальное количество прогонов. После этого запустить программу с этим числом прогонов и просмотреть новые результаты. В результате этих действий итоговые данные моделирования будут удовлетворять с заданной вероятностью определённому доверительному интервалу.
6.РЕЗУЛЬТАТЫ МОДЕЛИРОВАНИЯ
После запуска программы введём количество прогонов модели равное 10. В результате имитации получим данные, по каждому из прогонов. Ниже приведен отчет по первому прогону (рис 7):
******************************
Прогон №1
Время закрытия: 18:00
Общее число посетителей: 63
Средняя длина очереди: 1.19
Среднее время обслуживания: 9.48
******************************
Результаты по всем прогонам приведены в таблице 1.
Номер прогона |
Время закрытия |
Общее число посетителей |
Средняя длина очереди |
Среднее время обслуживания |
ЧС |
1 |
18:00 |
63 |
1.19 |
9.48 |
|
2 |
18:00 |
67 |
1.279 |
9.43 |
|
3 |
18:00 |
66 |
1.299 |
9.57 |
|
4 |
18:00 |
65 |
1.154 |
9.71 |
|
5 |
18:00 |
63 |
1.361 |
9.84 |
|
6 |
18:00 |
64 |
1.172 |
9.891 |
|
7 |
18:00 |
66 |
1.136 |
9.41 |
|
8 |
18:00 |
69 |
1.242 |
9.17 |
ЧС |
9 |
18:00 |
65 |
1.319 |
9.55 |
|
10 |
18:00 |
68 |
1.261 |
9.33 |
|
Среднее |
65.6 |
1.241 |
9.53 |
1 |
Таблица 1 – результаты моделирования
при количестве прогонов, равном 10
7.АНАЛИЗ РЕЗУЛЬТАТОВ
7.1.Расчёт оптимального числа прогонов
Анализ результатов состоит в определении по результатам нескольких прогонов оптимального числа прогонов, обеспечивающих заданную точность результатов с заданной вероятностью.
Для того, чтобы выполнить подобный анализ, необходимо задать два параметра: доверительную вероятность и точность оценки.
Число независимых повторных прогонов для достижения заданной доверительной вероятности 1- α равно
где - среднеквадратическое отклонение переменной X; q – половина доверительного интервала (точность оценки). Поскольку сами параметры , основаны на статистике, сначала делают любые I прогонов, находят (по разбросу выборок X), (по таблице t-распределения Стьюдента для заданной доверительной вероятности и m=I–1), а затем уточняют I по и q.[2]
m – число прогонов
=65 – выборочное среднее число посетителей.
Примем доверительную вероятность p=1-α=0.95(95%).
=2.26216
Для полученных данных имеем:
= =3.01(ед.
клиентов).
q=*0.05/2=65*0.025=1.625(ед.
Подставим полученные значения в формулу для расчёта оптимального числа прогонов:
==17
В результате
анализа получаем, что оптимальное количество
прогонов, которое обеспечивает оценку
математического ожидания с точностью
5% равно 17.
7.2. Установление закона распределения
Процедура проверки гипотез требует определения нулевой гипотезы (H0) и альтернативной (H1). Проверка ведется по выбранным критериям.
-критерий (критерий согласия Пирсона) используют при наличии гистограмм:
,
где - число интервалов, - теоретическая вероятность попадания в - й интервал, - практическое число попаданий в - й интервал. Из таблицы - распределения находят верхний порог значимости (квантиль) (где ) для выбранного . Значение сравнивают с :
1) приемлемо, если < (гипотеза H0);
2) не приемлемо, если ³ (гипотеза H1).
Одним из методов преобразования данных к удобному формальному виду является группировка по классам, отображающая количество (частоту) попадания данных в каждый класс. Результаты обычно отображают графически в виде гистограмм.
На основе таблицы 2, приведённой ниже, построим гистограмму (рис 8).
Номер прогона |
Количество посетителей |
Средняя длина очереди |
Среднее время обслуживания |
ЧС |
1 |
63 |
1.17 |
9.46 |
|
2 |
66 |
1.299 |
9.57 |
|
3 |
65 |
1.319 |
9.55 |
|
4 |
66 |
1.307 |
9.61 |
|
5 |
67 |
1.279 |
9.43 |
|
6 |
67 |
1.268 |
9.41 |
|
7 |
69 |
1.242 |
9.17 |
|
8 |
68 |
1.261 |
9.33 |
|
9 |
69 |
1.241 |
9.16 |
ЧС |
10 |
69 |
1.244 |
9.19 |
|
11 |
64 |
1.172 |
9.891 |
|
12 |
68 |
1.265 |
9.36 |
|
13 |
65 |
1.322 |
9.58 |
|
14 |
62 |
1.13 |
9.41 |
|
15 |
64 |
1.165 |
9.886 |
|
16 |
67 |
1.272 |
9.44 |
|
17 |
64 |
1.18 |
9.896 |
|
Среднее |
66.059 |
1.243 |
9.491 |
1 |

- Моделирование работы железнодорожной сортировочной горки
- Моделирование работы карьера
- Моделирование работы кафе
- Моделирование работы конечного распознавателя для последовательностей путей поиска файлов, разделенных запятой, и заканчивающихся точко
- Моделирование работы машинного зала пользователей ЭВМ
- Моделирование работы отделения банка
- Моделирование работы порта
- Моделирование процесса транспортного обслуживания
- Моделирование процессов
- Моделирование процессов с помощью тиаграмм типа граф
- Моделирование прчески
- Моделирование работы АЗС
- Моделирование работы библиографической системы
- Моделирование работы вычислительного центра по равномерному распределению