Курсовая работа: Моделювання надходження повідомлень від датчиків до ЕОМ
- постановка повідомлення в пам'ять, якщо процесор ЕОМ зайнятий;
- знищення повідомлення, якщо воно вже не актуальним;
- надходження повідомлення до обчислювального пристрою ЕОМ;
- звільнення місця в пам'яті;
- обробка повідомлення обчислювальним пристроєм ЕОМ деякий час;
- звільнення обчислювального пристрою ЕОМ;
- знищення повідомлення.
5 Програмування системи обробки повідомлень від датчиків та вимірюючих пристроїв на ЕОМ
Для виконання програмування моделі процесу надходження і обробки повідомлень на ЕОМ можна використати або з загальних мов програмування (Pascal, С++, Java) чи спеціалізованих мовах для моделювання дискретних стохастичних моделей (Simula, GPSS/PC, GPSS/World) – при опис потрібної імітаційної моделі було показано, що процес надходження і обробки нформаційних повідомлень є дискретним стохастичним процесом.
Pascal – мова програмування, що дозволяє виконати моделювання обмежений час, проте в ній існують істотн обмеження на розмір пам'яті та низька швидкість виконання. Інші загальні мови програмування С++ та Java дають багато технічних засобів для побудови програми-імітатора, в якому можна врахувати специфічні особливості процесів, що моделюються, а отримана програма зможе працювати на різних операційних платформах. Крім того мова Java має такий засіб як багатопотоковість, що може спростити організацію моделювання паралельного існування заявок та багато стандартних бібліотек, що дозволить спростити виконання деяких дій. Проте, написання програми з використанням багато потоковості займатиме багато часу, а зміна функціонування моделі вимагатиме значних змін у програмі так як виконання паралельних потоків може затримуватись в залежності від завантаження процесора.
Спеціалізовані мови програмування дозволяють виконувати моделювання лише найбільш загальних видів моделей, але можливостей таких мов цілком достатньо для виконання поставленої задачі моделювання процесу надходження і обробки повідомлень на ЕОМ та збору необхідної статистики, а головною перевагою є автоматична організація одночасного існування декількох повідомлень та їх обробки. Мова Simula дозволяє встановлювати багато параметрів та характеристик модел використовується для моделювання складних моделей. Мова GPSS/PC дає змогу виконувати моделювання простих моделей на ЕОМ, а тести програми є короткими і зрозумілими, що зменшує ймовірність помилок при програмуванні. На відміну від GPSS/PC, яка розроблена для MS-DOS® , мова GPSS/World розроблена , для операційної системи Microsoft® Windows® включає в себе всі можливості GPSS/PC в поєднанні з зручною графічною оболонкою, 32-розрядним інтерпретатором, що швидко працює та автоматичним створенням текстових звітів[4].
Так як процес, що буде моделюватися є дискретним стохастичним, не буде дуже складним, не вимагатиме завдання специфічних параметрів, збору особливих характеристик для статистики і моделювання буде проводитися в операційній системі Microsoft® Windows® , то найкращим засобом буде спеціалізована мова GPSS/World.
Мова для дискретних стохастичних систем GPSS/World має повну версію та безкоштовну Student-версію, яка має обмеження щодо кількості транзактів та часу моделювання. Беручи до уваги те, що час моделювання є незначним, то можна скористатися Student-версією мови GPSS/World.
При моделюванні змінимо значення блоків так, що 1 секунда дорівнюватиме 100 одиницям модельного часу.
Мова GPSS/World дозволяє отримати значення основних характеристик компонентів системи обробки, що моделюється, завдяки тому, що після виконання моделювання автоматично виводиться звіт, який містить вказан характеристики. Головні характеристики, що можна побачити в результуючому звіті GPSS/WORLD такі:
Інформація про пристрої
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
Поля мають наступне призначення:
FACILITY – номер або ім'я об'єкта типу «пристрій»;
ENTRIES – кількість оброблених транзактів;
UTIL. – середній час зайнятості пристрою одним транзактом протягом періоду моделювання після останнього виконання операторів RESET або CLEAR;
AVAIL. – стан готовності пристрою наприкінці періоду моделювання;
OWNER – номер останнього транзакту, що займав пристрій;
PEND – кількість транзактів, що очікують пристрій;
INTER – кількість транзактів, обробка яких перервана на пристрої у даний момент модельного часу;
RETRY – кількість транзактів, що очікують спеціальних умов, що залежать від стану об'єкта типу «пристрій»;
DELAY – кількість транзактів, що очікують можливості входу.
Інформація про черги
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
Поля мають наступне призначення:
QUEUE – ім'я або номер об'єкта типу «черга»;
MAX – максимальний уміст об'єкта типу черга протягом періоду моделювання;
CONT. – поточний уміст об'єкта типу в момент завершення моделювання;
ENTRY – загальна кількість входів у чергу протягом періоду моделювання (лічильник входів);
ENTRY(0) – загальна кількість входів у чергу з нульовим часом очікування (лічильник нульових входів);
AVE.CONT. – середнє значення вмісту черги;
AVE.TIME – середній час, проведений транзактом у черзі з урахуванням всіх входів у чергу;
AVE.(-0) – середній час, проведений транзактом у черзі без обліку нульових входів у чергу;
RETRY – кількість транзактів, що очікують спеціальних умові, що залежать від стану об'єкта типу «черга».
Інформація про об'єкти типу пам'ять
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
Поля мають наступне призначення:
STORAGE ім'я або номер об'єкта типу «пам'ять»;
CAP. – обсяг пам'яті, заданого оператором STORAGE;
REM. число одиниць вільного обсягу пам'яті в кінці періоду моделювання;
MIN. мінімальна кількість використовуваних одиниць пам’яті за період моделювання;
MAX. максимальна кількість використовуваних одиниць пам'яті за період моделювання;
ENTRIES кількість входів на згадку за період моделювання;
AVL. – стан готовност пам'яті наприкінці періоду моделювання;
AVE.C. – середнє число зайнятих одиниць пам'яті за період моделювання;
UTIL. – частина періоду моделювання, протягом якого пам'ять використовувалася;
RETRY – кількість транзактів, що очікують спеціальних умов, що залежать від стану пам'яті;
DELAY – кількість транзактів, що очікують можливості входу в блок ENTER.
6 Перевірка адекватності моделі системи обробки повідомлень від датчиків та вимірюючих пристроїв на ЕОМ
Для перевірки імітаційної моделі, дещо змінимо текст програми, видаливши перевірку часу актуальності повідомлень і змінивши заданий рівномірний закон надходження повідомлень від датчиків та їх обробки на експоненційний закон (текст даної програми для виконання верифікації показаний в додатку В).
Це дозволить перевірити відповідність результатів моделювання видозміненої модел (результати моделювання видозміненої моделі приводяться в додатку Г) характеристикам, які можна отримати за допомогою математичних формул як отримані для відповідної, еквівалентній даній моделі, найпростішо одноканальної СМО з обмеженою довжиною черги. Інтервали часу між заявками незалежними і мають паусонівський (найпростіший) розподіл випадкових величин, які утворюють стаціонарний потік[1]. Для цього потоку число заявок k для будь-якого інтервалу часу має розподіл за експоненційним законом. Закон описується формулою і дозволяє обчислити ймовірність надходження k заявок за інтервал часу t.
Для найпростішого потоку з інтенсивністю λ нтервал t між сусідніми подіями має показниковий розподіл з щільністю:
.
Графік функції розподілу показаний на рисунку 3.
Рисунок 3 — Графік щільності ймовірності експоненційного розподілу
Знайдемо вигляд закону розподілу:
Графік функції розподілу представлений на рисунку 4.
Рисунок 4 — Графік експоненційного розподілу
Відповідні математичн формули для розрахунку такої найпростішої одноканальної СМО з відомою довжиною черги подаються нижче.
Кількість втрачених повідомлень розраховується за формулою[3]:
(1),
де N – загальна кількість повідомлень, n довжина черги, а ρ розраховується за формулою . Так як інтенсивність потоку надходження , а інтенсивність потоку обробки, то ρ розраховується за формулою:
(2),
де to - час обробки повідомлень на ЕОМ, tn нтервал надходження інформації від датчиків та вимірювальних пристроїв
Кількість оброблених повідомлень:
Nобр=Np–Nвтр (3).
Підставивши в формулу (2) задані значення to=7 секунди і tn =8 секунд (λ=1/7, μ=1/8), отримаємо ρ=0.875. Після підстановки в формулу (1) задане значення N=440, n=1 і розраховане значення ρ=0.875 отримаємо теоретичну кількість втрачених повідомлень - Nвтр=167. Підставивши це значення в формулу (3) отримаємо теоретичну кількість оброблених повідомлень: Nобр=270 повідомлень.
Розраховані дан (оброблено 270 повідомлень, втрачено 167 повідомлення) відрізняються від даних отриманих після роботи тестової імітаційної моделі (оброблено 275 повідомлень, втрачено 165 повідомлень) відповідно на 0.73% та 1.2%, що підтверджує адекватність імітаційної моделі процесу надходження обробки повідомлень на ЕОМ.
В курсовій роботі було побудовано імітаційну модель, виконано моделювання та отримано характеристики роботи системи обробки повідомлень від датчиків та вимірюючих пристроїв на ЕОМ , яка працює в систем управління технологічним процесом, з такими характеристиками:
- інтервал надходження нформації від датчиків - 7±2 с;
- час обробки повідомлень на ЕОМ - 8±3с;
- ємність буферної пам’ят 1 повідомлення;
- час, після якого нформація не обробляється – 14 с;
- кількість повідомлень 440.
Для виконання моделювання було вирішено наступні задачі:
- зроблено опис системи обробки інформації від датчиків;
- встановлено границі та обмеження моделювання надходження повідомлень до ЕОМ, яка працює в систем управління технологічним процесом;
- складено концептуальну модель ЕОМ, яка працює в системі управління технологічним процесом;
- висунуто гіпотези зафіксувати припущення необхідні для побудови моделі ЕОМ, яка працює в систем управління технологічним процесом;
- побудовано схеми функціонування реальної ЕОМ, яка працює в системі управління технологічним процесом;
- зроблено математичний опис функціонування ЕОМ, яка працює в системі управління технологічним процесом;
- виконано опис імітаційно моделі ЕОМ, яка працює в системі управління технологічним процесом;
- зроблено програмування моделі ЕОМ, яка працює в системі управління технологічним процесом;
- проведено випробування моделі ЕОМ, яка працює в системі управління технологічним процесом;
- отримано характеристики роботи ЕОМ, яка працює в системі управління технологічним процесом.
Після виконання моделювання системи обробки повідомлень від датчиків та вимірюючих пристроїв на ЕОМ , яка працює в систем управління технологічним процесом згідно заданих початкових характеристик було з’ясовано, що з 440 повідомлень, що надійшли від датчиків до ЕОМ, було оброблено 275 повідомлення, а втрачено – 165 повідомлень. Коефіцієнт завантаження ЕОМ при цьому склав 99,7%. Всі повідомлення, що були втрачені, не оброблялись через відсутність місць у черзі, і жодне з повідомлень не було втрачено за часом актуальності.
У додатку Б надруковано зміст звіту, який створено в результаті моделювання системи обробки повідомлень від датчиків та вимірюючих пристроїв на ЕОМ , яка працює в системі управління технологічним процесом (текст програми подано в додатку А).
Список використаної літератури
1 Томашевський В. М., Жданова В. Г., Жолдаков О.О.. Вирішення практичних завдань методами комп’ютерного моделювання: Навч. посібник. – К.:”Корнійчук”,2001.-268c.
2 Статистичні методи для ЕОМ/ Під ред. К.Єнслейна: Пер. з англ. /Під ред. М.Б.Малютова.- М.:Наука. Гол.ред. фіз. Мат.,літ. 1986.-464с.
3 Лабораторний практикум з математичної статистики А.М.Кузнецов, Р.І.Зароський, Є.Ю. Неділько. – Миколаїв: УДМТУ, 2002.-72c
4 Алтаев А. А.. Имитационное моделирование на языке GPSS: Метод. пособник. – Улан-Уде: ВСГТУ, 2001.-122с.
Текст програми для моделювання процесу отримання та обробки на ЕОМ повідомлень від вимірюючих пристроїв
before table M1,0,100,50;Таблиц для фіксації розподілу часу очікування
after table M1,0,100,50;обробки повідомленнями до та після видалення
;застарілих повідомлень
Memory storage 1
Tlive Variable 1400 ; Змінна для зберігання часу життя повідомлення
generate 700,200,,440; Надходження заданої кількості
; повідомлень від датчиків
gate SNF Memory,DataLost ; Якщо черга заповнена,
; повідомлення втрачається
enter Memory
queue Mem ; Повідомлення стає в чергу...
test E f$EOM,0 ; ...і чекає звільнення пристрою
tabulate before ; Фіксація давності повідомлення
test LE m1,v$Tlive,LeftMemory; Якщо повідомлення
; застаріле, воно покидає чергу
tabulate after ; Фіксація давності повідомлення, що залишилось
seize EOM; Захват ЕОМ
LeftMemory depart Mem ; Повідомлення покидає чергу
leave Memory
advance 800,300; Обробка повідомлення на ЕОМ
release EOM; Звільнення ЕОМ
DataLost terminate 1; Знищення повідомлення
start 440; Старт прогону
моделі
Додаток Б
Результати роботи програми для моделювання процесу отримання та обробки на ЕОМ повідомлень від вимірюючих пристроїв
GPSS World Simulation Report - Kursova.217.1
Thursday, January 11, 2007 22:18:47
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 309061.710 14 1 1
NAME VALUE
AFTER 10001.000
BEFORE 10000.000
DATALOST 14.000
EOM 10005.000
LEFTMEMORY 10.000
MEM 10004.000
MEMORY 10002.000
TLIVE 10003.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 440 0 0
2 GATE 440 0 0
3 ENTER 383 0 0
4 QUEUE 383 0 0
5 TEST 383 0 0
6 TABULATE 383 0 0
7 TEST 383 0 0
8 TABULATE 383 0 0
9 SEIZE 383 0 0
LEFTMEMORY 10 DEPART 383 0 0
11 LEAVE 383 0 0
12 ADVANCE 383 0 0
13 RELEASE 383 0 0
DATALOST 14 TERMINATE 440 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
EOM 383 0.986 795.865 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
MEM 1 0 383 36 0.472 380.772 420.276 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
MEMORY 1 1 0 1 383 1 0.472 0.472 0 0
TABLE MEAN STD.DEV. RANGE RETRY FREQUENCY CUM.%
BEFORE 380.772 257.323 0
_ - 0.000 36 9.40
0.000 - 100.000 24 15.67
100.000 - 200.000 50 28.72
200.000 - 300.000 40 39.16
300.000 - 400.000 57 54.05
400.000 - 500.000 54 68.15
500.000 - 600.000 51 81.46
600.000 - 700.000 21 86.95
700.000 - 800.000 23 92.95
800.000 - 900.000 14 96.61
900.000 - 1000.000 11 99.48
1000.000 - 1100.000 2 100.00
AFTER 380.772 257.323 0
_ - 0.000 36 9.40
0.000 - 100.000 24 15.67
100.000 - 200.000 50 28.72
200.000 - 300.000 40 39.16
300.000 - 400.000 57 54.05
400.000 - 500.000 54 68.15
500.000 - 600.000 51 81.46
600.000 - 700.000 21 86.95
700.000 - 800.000 23 92.95
800.000 - 900.000 14 96.61
900.000 - 1000.000 11 99.48
1000.000 - 1100.000 2 100.00
Текст програми для перевірки адекватност моделювання процесу отримання та обробки на ЕОМ повідомлень від вимірюючих пристроїв
EXPON FUNCTION RN1,C24; Експонентційна функція розподілу
0,0/.1,.104/.2,.222/.3,.355/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38
.8,1.6/.84,1.85/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2
.97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
generate 700,fn$EXPON,,440; Надходження
; повідомлень від датчиків
test L q$Memory,1,DataLost ; Якщо память заповнена,
; повідомлення втрачається
queue Memory ; Повідомлення стає в чергу...
seize EOM; Захоплення ЕОМ
depart Memory ; Повідомлення покидає чергу
advance 800,fn$EXPON; Обробка повідомлення на ЕОМ
release EOM; Звільнення ЕОМ
DataLost terminate 1; Знищення повідомлення
start 440; Старт прогону моделі
Результати роботи програми для перевірки адекватності моделювання процесу отримання та обробки на ЕОМ повідомлень від вимірюючих пристроїв
GPSS World Simulation Report - KursovaTest.247.1
Thursday, January 11, 2007 22:21:21
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 293543.299 8 1 0
NAME VALUE
DATALOST 8.000
EOM 10002.000
EXPON 10000.000
MEMORY 10001.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 440 0 0
2 TEST 440 0 0
3 QUEUE 275 0 0
4 SEIZE 275 0 0
5 DEPART 275 0 0
6 ADVANCE 275 0 0
7 RELEASE 275 0 0
DATALOST 8 TERMINATE 440 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
EOM 275 0.694 741.004 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
MEMORY 1 0 275 127 0.360 384.143 713.779 0