Автор работы: Пользователь скрыл имя, 19 Ноября 2013 в 00:16, курсовая работа
В данной курсовой работе проведено моделирование магистрали передачи данных. Проведен анализ задачи, сформулированы возможные гипотезы. По результатам экспериментов проведен анализ работы магистрали передачи данных, и определен оптимальный режим работы, при котором возможна передача максимального количества сообщений. Моделирование проведено в пакете AnyLogic.
Логическая схема модели представлена на Рис.№5.
После генерации сообщений, все
сообщения поступают в
Рис.№5
В нашем случае для проведения моделирования системы массового обслуживания с непрерывным временем обработки параметров при наличии случайных факторов необходимо использовать ЭВМ с применением пакета AnyLogic. При разработке моделей в AnyLogic можно использовать концепции и средства из нескольких методов моделирования, например, в агентной модели использовать методы системной динамики для представления изменений состояния среды или в непрерывной модели динамической системы учесть дискретные события. Например, управление цепочками поставок при помощи имитационного моделирования требует описания участников цепи поставок агентами: производители, продавцы, потребители, сеть складов. При этом производство описывается в рамках дискретно-событийного (процессного) моделирования, где продукт или его части — это заявки, а автомобили, поезда, штабелёры — ресурсы. Сами поставки представляются дискретными событиями, но при этом спрос на товары может описываться непрерывной системно-динамической диаграммой. Возможность смешивать подходы позволяет описывать процессы реальной жизни, а не подгонять процесс под доступный математический аппарат.
Спецификация постановки задачи
При исследовании модели канала передачи сообщений необходимо получит следующие данные:
Для того чтобы определить количество переданных сообщений будем считать количество обработанных сообщений на выходе модели.
Для того чтобы определить загрузку запасного канала будем считать количество обработанных сообщений на выходе запасного канала.
Для того чтобы определить частоту отказов основного канала будем считать количество выходов из строя основного канала.
Для того чтобы определить число прерванных сообщений будем считать количество удаленных сообщений при выходе из строя основного канала.
Для реализации модели канала передачи данных в пакете AnyLogic будем использовать библиотеку AnyLogic Enterprise Library которая поддерживает дискретно-событийный или, если быть более точным, "процессный" подход моделирования. Управлять объектами будем с помощью событий которые мы создадим специально для этой модели, подсчет параметров будем производить с помощью простых переменных которые также должна предопределены в модели.
Не обходимо создать следующие события:
Avaria (выход из строя основного канала с интервалом 250 ± 40 с. uniform(290,210))
Действия происходящие при наступлении события
Startvoctanovlenie (запуск события на восстановление основного канала)
Действия происходящие при наступлении события
Voctanovlenie (время восстановление основного канала 22 ± 6 с.)
Действия происходящие при наступлении события
Startrezerv (время запуска резервного канала 3 с)
Действия происходящие при наступлении события
Необходимые переменные для реализации модели
Blok(переменная типа boolean если true то основной канал вышел из строя, эта переменная управляет объектами selectOutput)
Kollotkazov (переменная типа double для подсчета количества отказов)
Prervzaiavka (переменная типа double для подсчета прерванных сообщений)
Kolrezerv (переменная типа double для подсчета количества сообщений переданных резервным каналом)
Kolosnovnoi (переменная типа double для подсчета количества сообщений переданных основным каналом)
Vsegozaiavok (переменная типа double для подсчета количества сгенерированных сообщений)
Vsegonaobrabotky (переменная типа double для подсчета переданных сообщений по обоим каналам)
Наборы данных для сбора статистики
Zagryzkarez (определение загрузки резервного канала kolrezerv/(vsegozaiavok/100))
Zagryzkaosn ( определение загрузки основного
канала kolosnovnoi/(vsegozaiavok/100)
Объекты библиотеки AnyLogic Enterprise Library используемые при построении модели канала передачи данных.
Source (генерирует сообщения, время генерации новых сообщений 8± 2с uniform(13,3) количество заявок прибывающих за один раз равно 1).
queue2(выполняет роль накопителя, хранит сообщения в последовательности прибытия , при освобождении ресурсов пропускает сообщение на выход, максимальная вместимость)
Seize (осуществляет захват сообщением
списка ресурсов указанных в resourcePool, при
входе сообщений происходит подсчет сгенерированных
сообщений vsegonaobrabotky=
ResourcePool (содержит список захваченных ресурсов)
SelectOutput (передает заявки в основной канал, если blok=false. если blok=true то заявка передается в резервный канал)
Split (создаем копию заявки при передаче по основному каналу, при выходе из строя основной линии заявка находящаяся в обработке уничтожается, а копия заявки уходит на резервную линию)
Hold (имитирует выход из строя основного
канала, при наступлении события Avaria (hold.setBlocked(true);//
Delay (имитирует передачу заявки по резервному каналу, задерживает передачу сообщения на время 6± 2с. uniform(8,4), при выходе заявки открываем буфер с копией сообщения hold2.setBlocked(false))
SelectOutput1 (при выходе из строя основного канала blok=true сообщение считается прерванным и уничтожается. На выходе «false» производится подсчет сообщений переданных основным каналом kolosnovnoi=kolosnovnoi+1)
Release (освобождает ресурсы захваченные сообщением)
Sink (подсчитывает количество обработанных сообщений vsegozaiavok=vsegozaiavok+1, унечтожает обработанные сообщения с обоих каналов.)
Release1 (освобождает ресурсы захваченные сообщением при уничтожении)
Sink1 (уничтожение сообщений из основной линии при неисправности, производится подсчет прерванных заявок prervzaiavka=prervzaiavka+1)
Queue1 (имитирует буфер, хранит копию сообщения, вместимость равна 1)
Hold2 (не пропускает копию сообщения пока не произойдет обработка основной заявки, при выходе закрываем буфер hold2.setBlocked(true);)
SelectOutput2 (выводит копию сообщения на резервную линию при условии что на основной линии авария и основное сообщение не обработано, если blok=true то заявка передается на резервный канал)
Sink2 (уничтожение копий сообщений при условии что оригинал был обработан на основной линии)
Queue (сохраняет сообщения если резервный канал еще не запушен)
Hold1 (отключение резервного канала и задержка на его запуск, канал открывается при наступлении события Startrezerv (hold1.setBlocked(false)))
Delay1 (имитирует передачу заявки по резервному каналу, задерживает передачу сообщения на время 6± 2с. uniform(8,4))
Схема модели канала представлена на Рис.№6, программное исполнение модели канала представлено на Рис.№7
Рис.№6
Рис.№7
Для получения максимального объема необходимой информации об объекте моделирования при минимальных затратах машинных ресурсов проведем полный факторный эксперимент с четырьмя существенными факторами (переменных и параметров).
х1 – интервал времени прибытия очередного сообщения = 8с.;
х2 – интервал времени выхода из строя основного канала 250с.;
х3 – время передачи сообщения по каналам 6с.;
х4 – время восстановления основного канала 22с.;
х5 – время запуска резервного канала 3с.;
Зададим уровни вариации для каждого фактора:
Dх1= 2, Dх2= 50, Dх3= 2, Dх4= 4, Dх5= 1
Составим матрицу плана
Таблица №1.
Номер опыта |
Фактор х1 |
Фактор х2 |
Фактор х3 |
Фактор х4 |
Фактор х5 |
0 (базовый) |
8 |
250 |
6 |
22 |
3 |
1 |
6 |
200 |
4 |
18 |
2 |
2 |
6 |
200 |
4 |
18 |
4 |
3 |
6 |
200 |
4 |
26 |
2 |
4 |
6 |
200 |
4 |
26 |
4 |
5 |
6 |
200 |
8 |
18 |
2 |
6 |
6 |
200 |
8 |
18 |
4 |
7 |
6 |
200 |
8 |
26 |
2 |
8 |
6 |
200 |
8 |
26 |
4 |
9 |
6 |
300 |
4 |
18 |
2 |
10 |
6 |
300 |
4 |
18 |
4 |
11 |
6 |
300 |
4 |
26 |
2 |
12 |
6 |
300 |
4 |
26 |
4 |
13 |
6 |
300 |
8 |
18 |
2 |
14 |
6 |
300 |
8 |
18 |
4 |
15 |
6 |
300 |
8 |
26 |
2 |
16 |
6 |
300 |
8 |
26 |
4 |
17 |
10 |
200 |
4 |
18 |
2 |
18 |
10 |
200 |
4 |
18 |
4 |
19 |
10 |
200 |
4 |
26 |
2 |
20 |
10 |
200 |
4 |
26 |
4 |
21 |
10 |
200 |
8 |
18 |
2 |
22 |
10 |
200 |
8 |
18 |
4 |
23 |
10 |
200 |
8 |
26 |
2 |
24 |
10 |
200 |
8 |
26 |
4 |
25 |
10 |
300 |
4 |
18 |
2 |
26 |
10 |
300 |
4 |
18 |
4 |
27 |
10 |
300 |
4 |
26 |
2 |
28 |
10 |
300 |
4 |
26 |
4 |
29 |
10 |
300 |
8 |
18 |
2 |
30 |
10 |
300 |
8 |
18 |
4 |
31 |
10 |
300 |
8 |
26 |
2 |
32 |
10 |
300 |
8 |
26 |
4 |
Набор исходных данных для ввода в ЭВМ представлен в виде матрицы плана, с помощью которой в достаточном объеме исследуется факторное пространство. Получение выходных данных зависит от среды моделирования AnyLogic. Дополнительные расчеты не требуются.
Планирование полного
Результаты моделирования
Таблица №2
Частота отказов |
Количество отказов |
Загрузка резервного канала % |
Число прерванных сообщений |
Кол-во переданных сообщений по основному каналу |
Кол-во переданных сообщений по резервному каналу |
Всего переданных сообщений |
Всего поступивших сообщений |
276,9 |
26 |
9,3 |
20 |
820 |
85 |
905 |
910 |
232,2 |
31 |
9,5 |
19 |
1083 |
114 |
1197 |
1199 |
218,2 |
33 |
9,3 |
25 |
1105 |
114 |
1219 |
1219 |
225 |
32 |
13,1 |
21 |
1030 |
156 |
1186 |
1187 |
218,2 |
33 |
12,5 |
26 |
1032 |
148 |
1180 |
1181 |
218,2 |
33 |
14,2 |
20 |
495 |
82 |
577 |
1119 |
218,2 |
33 |
13,9 |
19 |
457 |
74 |
531 |
1200 |
225 |
32 |
12,1 |
31 |
737 |
102 |
839 |
1209 |
232,2 |
31 |
11,9 |
31 |
754 |
102 |
856 |
1220 |
327,2 |
22 |
7 |
16 |
1134 |
86 |
1220 |
1220 |
327,2 |
22 |
6,2 |
12 |
1135 |
74 |
1209 |
1210 |
342,8 |
21 |
9 |
12 |
1073 |
107 |
1180 |
1181 |
327,7 |
22 |
8 |
13 |
1084 |
95 |
1179 |
1180 |
327,2 |
22 |
8,8 |
15 |
554 |
54 |
608 |
1178 |
327,2 |
22 |
9,8 |
13 |
479 |
49 |
528 |
1199 |
327,2 |
22 |
9 |
21 |
765 |
76 |
841 |
1207 |
327,2 |
22 |
8,7 |
20 |
731 |
70 |
801 |
1215 |
218,1 |
33 |
9,9 |
14 |
666 |
73 |
739 |
739 |
211,7 |
33 |
11 |
14 |
631 |
78 |
709 |
710 |
225 |
32 |
13 |
14 |
621 |
93 |
714 |
714 |
225 |
32 |
12,6 |
14 |
624 |
90 |
714 |
715 |
218,1 |
33 |
11,5 |
23 |
590 |
77 |
667 |
724 |
225 |
32 |
13 |
22 |
515 |
77 |
592 |
726 |
232,2 |
31 |
13,2 |
27 |
630 |
96 |
726 |
727 |
225 |
32 |
13,9 |
30 |
631 |
102 |
733 |
734 |
327,2 |
22 |
6,2 |
6 |
677 |
45 |
722 |
722 |
327,2 |
22 |
6,6 |
13 |
673 |
48 |
721 |
721 |
327,2 |
22 |
9,4 |
12 |
651 |
68 |
719 |
719 |
327,2 |
22 |
8,9 |
9 |
654 |
64 |
718 |
718 |
327,2 |
22 |
9 |
15 |
534 |
53 |
587 |
720 |
327,2 |
22 |
7,7 |
15 |
610 |
51 |
661 |
719 |
342,8 |
21 |
9 |
16 |
653 |
67 |
720 |
721 |
342,8 |
21 |
9,9 |
16 |
599 |
66 |
665 |
721 |
Информация о работе Имитационное моделирование процесса передачи данных по двум каналам