Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
образовательное учреждение
высшего образования
«МОСКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ»
Факультет: «Машиностроение»
Группа 181-251
Выполнил:
Проверил:
Москва 2021
Содержание
1. Особенности проведения имитационного моделирования с применением РДО-
технологий..................................................................................................................................3
1.1. Основные сведения об имитационном моделировании..................................................3
1.2. Основы РДО – языка..........................................................................................................5
2.Формулировка проблемы и цели имитационного моделирования....................................6
2.1. Цель имитационного моделирования...............................................................................6
2.2.Задача имитационного моделирования.............................................................................7
3.Определение релевантных ресурсов и законов функционирования системы................10
3.1. Описание ресурсов. Типы ресурсов, параметры, типы данных...................................10
3.2. Описание операций и образцов.......................................................................................12
4.Описание кадров анимации.................................................................................................28
5. Описание последовательности...........................................................................................31
6. Описание объекта прогона..................................................................................................33
7. Результаты трассировки......................................................................................................34
Вывод:.......................................................................................................................................37
Код программы:.......................................................................................................................39
2
1. Особенности проведения имитационного моделирования с
применением РДО-технологий
3
Проект — один или более прогонов, объединенных какой-либо общей
целью.
4
синтаксический разбор текста модели и настраиваемая подсветка
синтаксических конструкций языка РДО;
открытие и сохранение моделей;
расширенные возможности для редактирования текстов моделей;
автоматическое завершение синтаксических конструкций языка
(т.н. code completion или автозавершение);
поиск и замена фрагментов текста;
навигация по тексту моделей с помощью закладок;
наличие нескольких буферов обмена для хранения фрагментов
текста;
вставка синтаксических конструкций языка и заготовок
(шаблонов) для написания элементов модели;
настройка отображения текста моделей, в т.ч. скрытие
фрагментов текста и масштабирование;
запуск и остановка процесса моделирования, а также чтение
результатов моделирования с диска;
обработка ошибок при запуске процесса моделирования;
обеспечение пользователя справочной информацией.
Объектами исходных данных являются:
типы ресурсов (с расширением .rtp);
ресурсы (с расширением .rss);
образцы операций (с расширением .pat);
операции (с расширением .opr);
точки принятия решений (с расширением .dpt);
константы, функции и последовательности (с расширением .fun);
кадры анимации (с расширением .frm);
требуемая статистика (с расширением .pmd);
5
прогон (с расширением .smr).
6
2.Формулировка проблемы и цели имитационного моделирования
2.1. Цель имитационного моделирования
Используя РДО-метод, спроектировать модель покупки билетов,
характеризующуюся наличием обслуживания и очередью заявок.
7
Рис.1. Блок-схема часть 1
8
Рис.2. Блок-схема часть 2
9
3.Определение релевантных ресурсов и законов функционирования
системы
3.1. Описание ресурсов. Типы ресурсов, параметры, типы данных
В среде РДО моделирование ведется на основе ресурсов и действий над
ними. Ресурсы представляют собой объекты реального мира, над которыми
совершаются операции.
Ресурсы могут быть двух видов: постоянные и временные. Постоянные
ресурсы всегда присутствуют в системе. Временные ресурсы поступают в
СДС и покидают ее в процессе функционирования, они могут быть
результатом работы СДС.
Ресурсы определяют начальное состояние глобальной базы данных
модели и описываются в отдельном объекте (с расширением .rss).
$Resources
Библиотека:Библиотеки trace 0 0 * * * * * * * * * * * * * * * 0
$End
$Parameters
Количество_клиентов_в_очереди:integer
Всего_клиентов:integer
Занятость_окна_1:(Свободен,Занят,Сломан)= Свободен
10
Занятость_окна_2:(Свободен,Занят)= Свободен
Занятость_окна_3:(Свободен,Занят)= Свободен
Состояние_оплаты_1:(Оплачивает,Оплатил,Не_Оплатил) = Не_Оплатил
Состояние_оплаты_2:(Оплачивает,Оплатил,Не_Оплатил) = Не_Оплатил
Состояние_оплаты_3:(Оплачивает,Оплатил,Не_Оплатил) = Не_Оплатил
Место_свободно_1:(Да,Нет) = Да
Место_свободно_2:(Да,Нет) = Да
Место_свободно_3:(Да,Нет) = Да
Смещение_очереди_1:(Да,Нет) = Нет
Смещение_очереди_2:(Да,Нет) = Нет
Смещение_очереди_3:(Да,Нет) = Нет
Состояние_окна_1:(Работает,Перерыв,Возвращается) = Работает
Состояние_окна_2:(Работает,Перерыв,Возвращается) = Работает
Состояние_окна_3:(Работает,Перерыв,Возвращается) = Работает
Обслужено_клиентов:integer
$End
11
3.2. Описание операций и образцов
Образец типа operations содержит список релевантных ресурсов, (то
есть ресурсов, участвующих в описываемой образцом операции),
предусловия начала операции (задаваемые по значениям параметров
релевантных ресурсов) и конверторы преобразования состояния ресурсов,
участвующих в операции, в ее начале и в конце. В данном типе образцов
имеются также выражения, по которым вычисляются длительности
выполнения операций, описываемыми данными образцами.
$Operations
Приход_клиента:Образец_приход_клиента
Обслуживание_клиента_1 :Образец_обслуживание_клиента_1
Обслуживание_клиента_2 :Образец_обслуживание_клиента_2
Обслуживание_клиента_3 :Образец_обслуживание_клиента_3
Оплата_1:Образец_Оплата_1
Оплата_2:Образец_Оплата_2
Оплата_3:Образец_Оплата_3
Осовобождение_места_1:Образец_Осовобождение_места_1
12
Осовобождение_места_2:Образец_Осовобождение_места_2
Осовобождение_места_3:Образец_Осовобождение_места_3
Смещение_очереди_1:Образец_Смещение_очереди_1
Смещение_очереди_2:Образец_Смещение_очереди_2
Смещение_очереди_3:Образец_Смещение_очереди_3
Перерыв_окна_1:Образец_Перерыв_окна_1
Перерыв_окна_2:Образец_Перерыв_окна_2
Перерыв_окна_3:Образец_Перерыв_окна_3
Возвращение_окна_1:Образец_Возвращения_окна_1
Возвращение_окна_2:Образец_Возвращения_окна_2
Возвращение_окна_3:Образец_Возвращения_окна_3
$End
[ $Parameters <описание_параметров_образца> ]
$Relevant_resources <описание_релевантных_ресурсов_образца>
[ <способ_выбора> ]
13
$Time = <выражение_времени>
$Body <тело_образца>
$End
$Relevant_resources
Город:Библиотека Keep
$Time = Распределение_Паусона
$Body
Город
Convert_event
Количество_клиентов_в_очереди set
Город.Количество_клиентов_в_очереди + 1
Всего_клиентов set
Город.Всего_клиентов + 1
$End
$Relevant_resources
Город:Библиотека Keep
$Time = 3
$Body
Город
Convert_event
$End
14
Образец Перерыв окна 2
$Relevant_resources
Город:Библиотека Keep
$Time = 5
$Body
Город
Convert_event
$End
$Relevant_resources
Город:Библиотека Keep
$Time = 7
$Body
Город
Convert_event
$End
$Relevant_resources
15
Город:Библиотека Keep Keep
$Time = Равномерный_интервал(1.9,0.3)
$Body
Город
first
Convert_begin
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(1.9,0.3)
$Body
Город
16
first
Convert_begin
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(1.9,0.3)
$Body
Город
first
Convert_begin
Convert_end
$End
17
Образец смещения очереди 1
$Relevant_resources
$Time = Равномерный_интервал(0.004,0.003)
$Body
Город
Город.Занятость_окна_1 = Свободен
first
Convert_begin
Смещение_очереди_1 set Да
Convert_end
$End
$Relevant_resources
18
$Time = Равномерный_интервал(0.004,0.003)
$Body
Город
Город.Занятость_окна_2 = Свободен
first
Convert_begin
Смещение_очереди_2 set Да
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(0.004,0.003)
$Body
Город
19
Choice from Город.Количество_клиентов_в_очереди > 0 and
Город.Занятость_окна_3 = Свободен
first
Convert_begin
Смещение_очереди_3 set Да
Convert_end
$End
Образец Оплата 1
$Relevant_resources
$Time = Равномерный_интервал(0.007,0.005)
$Body
Город
first
Convert_begin
20
Convert_end
$End
Образец Оплата 2
$Relevant_resources
$Time = Равномерный_интервал(0.007,0.005)
$Body
Город
first
Convert_begin
Convert_end
$End
Образец Оплата 3
21
$Relevant_resources
$Time = Равномерный_интервал(0.007,0.005)
$Body
Город
first
Convert_begin
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(0.0010,0.003)
$Body
Город
22
Choice from Город.Состояние_оплаты_1 = Оплатил
first
Convert_begin
Convert_end
Место_свободно_1 set Да
$End
$Relevant_resources
$Time = Равномерный_интервал(0.0010,0.003)
$Body
Город
first
Convert_begin
Convert_end
Место_свободно_2 set Да
23
$End
$Relevant_resources
$Time = Равномерный_интервал(0.0010,0.003)
$Body
Город
first
Convert_begin
Convert_end
Место_свободно_3 set Да
$End
$Relevant_resources
$Time = экспоненциальное_распределение(0.1)
24
$Body
Город
Город.Занятость_окна_1 = Свободен
first
Convert_begin
Количество_клиентов_в_очереди set
Город.Количество_клиентов_в_очереди - 1
Convert_end
$End
$Relevant_resources
$Time = экспоненциальное_распределение(0.1)
$Body
25
Город
Город.Занятость_окна_2 = Свободен
first
Convert_begin
Количество_клиентов_в_очереди set
Город.Количество_клиентов_в_очереди - 1
Convert_end
$End
26
Занятость_окна_3 set Занят
Convert_end
Занятость_окна_3 set Свободен
Обслужено_клиентов set Город.Обслужено_клиентов + 1
$End
27
4.Описание кадров анимации
Описание кадров производится в отдельном объекте, который является
исходным для системы отображения. Этот объект имеет расширение .frm.
Кадр представляет собой прямоугольную область экрана, в которой
производится отображение. Он состоит из фоновой картинки и переменных
элементов (элементов отображения или спрайтов), состав, форма, размеры и
расположение которых определяются состоянием системы и, следовательно,
могут изменяться во время просмотра кадра.
$Frame <имя_кадра>
[ Show_if <условие_показа_кадра> ]
$Back_picture = <описание_фоновой_картинки>
[ <описание_элементов_отображения> ]
$End
28
В курсовой работе цвет фона выбран жёлтым:
$Back_picture = <255 255 0 > fon
<элемент_отображения> { <элемент_отображения> }
<тип_элемента> [ <свойства_элемента> ]
<имя_файла_битовой_карты> [ , <имя_файла_маски> ] ]
29
Рис.3. Общий вид ИМ в процессе прогона в начале.
30
Рис.5. Общий вид ИМ в процессе прогона в конце.
31
5. Описание последовательности
Последовательности характеризуются тем, что выдаваемое ими
значение не вычисляется на основе значений их параметров с
использованием определенного алгоритма, а определяется генератором
псевдослучайных чисел с соответствующим распределением либо
выбирается из числа значений, заданных при описании последовательности.
$Sequence <имя_последовательности> :
<тип_значения_последовательности>
$Type = <тип_последовательности>
<значение_базы_генератора>
33
6. Описание объекта прогона
В объекте прогона (с расширением .smr) указывают ряд необходимых
для управления прогоном данных и режимов. Этот объект состоит из двух
частей. Первая часть содержит имена файлов, содержащих необходимые
объекты и режимы прогона.
<зарезервированное_слово> = <значение>
Model_name = library
Resource_file = library
OprIev_file = library
Statistic_file = library
Results_file = library
Trace_file = library
Frame_file = library
Frame_number = 1
Show_mode = Animation
Show_rate = 10000.0
Terminate_if Time_now >= 16
34
7. Результаты трассировки
Статистика (с расширением .pmd) имитационной модели:
$Results
Библиотека.Количество_клиентов_в_очереди
Библиотека.Занятость_окна_1 = Занят
Библиотека.Занятость_окна_2 = Занят
Библиотека.Занятость_окна_3 = Занят
Всего_клиентов: get_value
Библиотека.Всего_клиентов
Всего_обслужено :get_value
Библиотека.Обслужено_клиентов
Средняя_скорость_прихода_клиентов: get_value
Библиотека.Всего_клиентов/Time_now
Пропускная_способность :get_value
Библиотека.Обслужено_клиентов/Time_now
$End
Полученные результаты:
35
Трассировка состояния ресурсов.
36
Показатели трассировки в начале прогона:
37
Вывод:
Наша система представлена в виде одноканальной СМО с буферным
накопителем.
L - длина очереди
Аналитический способ:
закону F*(t)=1-exp(-2,2*t),
38
ρ2
А длина очереди L равна , откуда L =1,454
1−ρ
(22,5)1 −22,5
Функция распределения Пуассона. P1= ∗e = 0,38 *E^-8
1!
.
Экспериментальный метод:
(21,47)1 −21,47
Функция распределения Пуассона P1= ∗e = 1,017*E^-8
1!
39
Код программы:
PAT
$Relevant_resources
Город:Библиотека Keep
$Time = Распределение_Паусона
$Body
Город
Convert_event
Количество_клиентов_в_очереди set
Город.Количество_клиентов_в_очереди + 1
Всего_клиентов set
Город.Всего_клиентов + 1
$End
$Relevant_resources
Город:Библиотека Keep
$Time = 3
$Body
Город
Convert_event
$End
40
$Pattern Образец_Перерыв_окна_2 : irregular_event trace
$Relevant_resources
Город:Библиотека Keep
$Time = 5
$Body
Город
Convert_event
$End
$Relevant_resources
Город:Библиотека Keep
$Time = 7
$Body
Город
Convert_event
$End
$Relevant_resources
$Body
Город
first
Convert_begin
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(1.9,0.3)
$Body
Город
first
Convert_begin
Convert_end
$End
42
$Pattern Образец_Возвращения_окна_3 : operation trace
$Relevant_resources
$Time = Равномерный_интервал(1.9,0.3)
$Body
Город
first
Convert_begin
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(0.004,0.003)
$Body
Город
43
and Город.Состояние_окна_1 = Работает
first
Convert_begin
Смещение_очереди_1 set Да
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(0.004,0.003)
$Body
Город
first
Convert_begin
Смещение_очереди_2 set Да
Convert_end
$End
$Relevant_resources
44
Город:Библиотека Keep Keep
$Time = Равномерный_интервал(0.004,0.003)
$Body
Город
first
Convert_begin
Смещение_очереди_3 set Да
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(0.007,0.005)
$Body
Город
first
Convert_begin
Convert_end
45
Состояние_оплаты_1 set Оплатил
$End
$Relevant_resources
$Time = Равномерный_интервал(0.007,0.005)
$Body
Город
first
Convert_begin
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(0.007,0.005)
$Body
Город
46
Choice from Город.Смещение_очереди_3 = Да
first
Convert_begin
Convert_end
$End
$Relevant_resources
$Time = Равномерный_интервал(0.0010,0.003)
$Body
Город
first
Convert_begin
Convert_end
Место_свободно_1 set Да
$End
$Relevant_resources
47
Город:Библиотека Keep Keep
$Time = Равномерный_интервал(0.0010,0.003)
$Body
Город
first
Convert_begin
Convert_end
Место_свободно_2 set Да
$End
$Relevant_resources
$Time = Равномерный_интервал(0.0010,0.003)
$Body
Город
first
Convert_begin
Convert_end
Место_свободно_3 set Да
48
$End
$Relevant_resources
$Time = экспоненциальное_распределение(0.9)
$Body
Город
Город.Занятость_окна_1 = Свободен
first
Convert_begin
Количество_клиентов_в_очереди set
Город.Количество_клиентов_в_очереди - 1
Convert_end
$End
$Relevant_resources
49
Город:Библиотека Keep Keep
$Time = экспоненциальное_распределение(0.7)
$Body
Город
Город.Занятость_окна_2 = Свободен
first
Convert_begin
Количество_клиентов_в_очереди set
Город.Количество_клиентов_в_очереди - 1
Convert_end
$End
$Relevant_resources
$Time = экспоненциальное_распределение(0.7)
$Body
Город
50
Choice from Город.Количество_клиентов_в_очереди>0 and
Город.Занятость_окна_3 = Свободен
first
Convert_begin
Количество_клиентов_в_очереди set
Город.Количество_клиентов_в_очереди - 1
Convert_end
$End
RTP
$Parameters
Количество_клиентов_в_очереди:integer
Всего_клиентов:integer
Занятость_окна_1:(Свободен,Занят,Сломан)= Свободен
Занятость_окна_2:(Свободен,Занят)= Свободен
Занятость_окна_3:(Свободен,Занят)= Свободен
Состояние_оплаты_1:(Оплачивает,Оплатил,Не_Оплатил) = Не_Оплатил
Состояние_оплаты_2:(Оплачивает,Оплатил,Не_Оплатил) = Не_Оплатил
Состояние_оплаты_3:(Оплачивает,Оплатил,Не_Оплатил) = Не_Оплатил
Место_свободно_1:(Да,Нет) = Да
Место_свободно_2:(Да,Нет) = Да
Место_свободно_3:(Да,Нет) = Да
Смещение_очереди_1:(Да,Нет) = Нет
51
Смещение_очереди_2:(Да,Нет) = Нет
Смещение_очереди_3:(Да,Нет) = Нет
Состояние_окна_1:(Работает,Перерыв,Возвращается) = Работает
Состояние_окна_2:(Работает,Перерыв,Возвращается) = Работает
Состояние_окна_3:(Работает,Перерыв,Возвращается) = Работает
Обслужено_клиентов:integer
$End
RSS
$Resources
Библиотека:Библиотеки trace 0 0 * * * * * * * * * * * * * * * 0
$End
OPR
$Operations
Приход_клиента:Образец_приход_клиента
Обслуживание_клиента_1 :Образец_обслуживание_клиента_1
Обслуживание_клиента_2 :Образец_обслуживание_клиента_2
Обслуживание_клиента_3 :Образец_обслуживание_клиента_3
Оплата_1:Образец_Оплата_1
Оплата_2:Образец_Оплата_2
Оплата_3:Образец_Оплата_3
52
Осовобождение_места_1:Образец_Осовобождение_места_1
Осовобождение_места_2:Образец_Осовобождение_места_2
Осовобождение_места_3:Образец_Осовобождение_места_3
Смещение_очереди_1:Образец_Смещение_очереди_1
Смещение_очереди_2:Образец_Смещение_очереди_2
Смещение_очереди_3:Образец_Смещение_очереди_3
Перерыв_окна_1:Образец_Перерыв_окна_1
Перерыв_окна_2:Образец_Перерыв_окна_2
Перерыв_окна_3:Образец_Перерыв_окна_3
Возвращение_окна_1:Образец_Возвращения_окна_1
Возвращение_окна_2:Образец_Возвращения_окна_2
Возвращение_окна_3:Образец_Возвращения_окна_3
$End
FRM
$Frame Кадр_1
Show
53
text[2,2,250,30, transparent, <0 0 0>, ='Клиентов в очереди:']
54
Show_if Библиотека.Состояние_окна_1 = Перерыв
$End
FUN
55
$Type = by_hist 123456789
$Body
$End
$End
$End
SMR
Model_name = library
56
Resource_file = library
OprIev_file = library
Statistic_file = library
Results_file = library
Trace_file = library
Frame_file = library
Frame_number = 1
Show_mode = Animation
Show_rate = 10000.0
PMD
$Results
Библиотека.Количество_клиентов_в_очереди
Библиотека.Занятость_окна_1 = Занят
Библиотека.Занятость_окна_2 = Занят
Библиотека.Занятость_окна_3 = Занят
Всего_клиентов: get_value
Библиотека.Всего_клиентов
Всего_обслужено :get_value
57
Библиотека.Обслужено_клиентов
Средняя_скорость_прихода_клиентов: get_value
Библиотека.Всего_клиентов/Time_now
Пропускная_способность :get_value
Библиотека.Обслужено_клиентов/Time_now
$End
58