Моделирование систем

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Содержание

Введение

1. Моделирование движения пешехода

1.1 Движение пешехода

1.2 Блок-схема

1.3 Реализация программы

2. Регрессионный анализ

2.1 Теоретическая справка

2.2 Описание работы

3. Моделирование супермаркета

3.1 Схематичное представление модели

3.2 Модель программы на языке GPSS/PC-2

3.3 Сведения о блоках и операторах, применяемых в модели

3.3.1 Оператор RMULT

3.3.2 Оператор EQU

3.3.3 Оператор VARIABLE

3.3.4 Блок Таблица

3.3.5 Оператор STORAGE

3.3.6 Блок GENERATE

3.3.7 Блок SELECT

3.3.8 Блок QUEUE

3.3.9 Блок TEST

3.3. 10 Блок DEPART

3.3. 11 Блок SEIZE

3.3. 12 Блок RELEASE

3.3. 13 Блок ADVANCE

3.3. 14 Блок TRANSFER

3.3. 15 Блок TERMINATE

3.4 Результаты моделирования

Приложение

Заключение

Введение

С развитием вычислительной техники наиболее эффективным и универсальным методом исследования систем стало компьютерное (машинное) моделирование, сущность которого состоит в проведении на ЭВМ экспериментов с моделью, представляющей собой программный комплекс, описывающий формально и алгоритмически поведение элементов системы в процессе её функционирования, т. е. их взаимодействие друг с другом и внешней средой.

В качестве модели может выступать словесное описание объекта, рисунок, музыкальное произведение и т. д. Перечисленные модели обладают тем недостатком, что они неоднозначно интерпретируются. Поэтому в технике для однозначного понимания при создании моделей используется язык математики. Основное требование, которому должна удовлетворять модель, это адекватность объекту. Модель адекватна объекту, если результаты моделирования подтверждаются на практике и могут служить основой для прогнозирования процессов, протекающих в исследуемых объектах.

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

В настоящее время универсальным и эффективным техническим средством решения инженерных задач на базе моделирования является ЭВМ. Модель в этом случае представляет собой программный комплекс. Машинный эксперимент с моделью даёт возможность:

1. исследовать процесс функционирования в любых условиях;

2. сокращает материальные затраты и продолжительность испытаний по сравнению с натурным экспериментом;

3. обладает гибкостью варьирования параметров, структуры, алгоритмов моделируемой системы;

4. является единственным практически реализуемым методом исследования процесса функционирования систем на этапе их проектирования.

В моделировании систем используются классический (индуктивный) и системный (дедуктивный) подходы.

Классический подход рассматривает исследуемую систему с точки зрения выполняемых функций (функциональный подход) и предполагает создание модели путём перехода от частного к общему слиянием её отдельных компонент, разрабатываемых отдельно.

Системный подход рассматривает исследуемую систему в виде целенаправленного множества взаимосвязанных элементов (структурный подход) и предполагает создание модели путём перехода от общего к частному, когда в основе рассмотрения лежит цель, при этом исследуемый объект выделяется из окружающей среды.

В настоящее время при анализе и синтезе больших систем получил распространение системный подход, который позволяет учитывать сложные стохастические связи в системе и взаимодействие с внешней средой. Модель в этом случае создается под поставленную проблему, а моделирование заключается в решении проблемы цели, проблемы построения модели, проблемы работы с моделью. Для правильно выбранной модели характерным является то, что она выявляет лишь те закономерности, которые нужны исследователю, и не рассматривает свойства системы, не существенные для данного исследования.

1. Моделирование движения пешехода

1.1 Движение пешехода

Мы разрабатываем модель для определения пути, который пешеход прошел за определенное время и в какой момент времени он устанет и не сможет ходить. На пешехода во время пути влияют как факторы окружающей среды, так и личностные факторы. При решении поставленной нам задачи мы воспользуемся такими факторами как усталость по скорости, усталость по времени и время восстановления то есть время потраченное на отдых.

Со временем движения пешеход будет уставать прямо пропорционально времени и скорости движения.

Y: =Kv*V0*Kt*sqr (T1)+Y3;

где,

Y — текущая усталость.

T1- время движения пешехода.

V0- начальная скорость движения.

Kt — коэффициенты усталости по времени.

Kv — коэффициенты усталости по скорости.

С течение времени усталость накапливается, что приводит к уменьшению скорости. Скорость будет обратно пропорциональна усталости.

V: =V0/(1+Y);

где,

V0 — начальная скорость движения пешехода.

Усталость в процессе движения накапливается, поэтому пешеход нуждается в отдыхе. Восстановление сил будет прямо пропорциональна критической усталости и обратно пропорциональна времени отдыха.

Y: =Y2-K0*sqrt (T2);

где,

Y2 — критическая усталость, при которой пешеход уже не может идти

T2 — время отдыха.

K0 — коэффициент отдыха.

1.2 Блок-схема

В соответствии с вышеизложенным, составим блок-схему для программы

1.3 Реализация программы

Для разработки модели движения человека было выбрано прикладное ПО «RAD Studio XE5».

Основным преимуществом RAD Studio XE5 является его среда программирования с визуальным конструктором программ. Эта среда (вместе с объектной библиотекой VCL) позволяет эффективно программировать под MS Windows, не отвлекаясь на выяснение всех деталей Win API, а работать над логикой программы.

В ходе разработки использовались следующие компоненты программы:

· TForm (окно программы);

· TChart (панель графика);

· TButton (кнопки);

· TEdit (поле ввода).

· TLabel (строки с текстом).

Рис. 1 Компоненты программы

При нажатии кнопки «Отобразить» осуществляется выполнение выше предложенного алгоритма.

График зависимости расстояния от времени представлен красным и синим цветом (движение и отдых соответственно). График зависимости скорости от времени представлен синим цветом.

Итак, проведем тестирование и сравним графики движения.

Зададим исходные значения в соответствии с рисунком 2.

Рис. 2 Тестирование программы

На графике зависимости расстояния от времени рис. 2 явно видно, что человек должен прирываться и восстанавливить силы чтобы пройти расстояние в 15 киллометров. Проходит он это расстояние за 9 часов, при этом 2 часа из них затрачивается на восстановление сил.

График зависимости скоростия от времени — отбражает скорость человека во все моменты времени вплоть до завершения пути.

Увеличим начальную скорость до 10 км/ч.

Рис. 3 Тестирование программы

График зависимости расстояния от времени рис. 3 показывает, что человек в силу возросшей начальной скорости проходит это расстояние за гораздо меньшее время — 5ч 45 мин и пришел раньше приблизительно на 3ч 15 мин. Как и прошлый раз человек вынужден потрать 2 часа времени на востанавливление сил.

Увеличим начальную скорость до 15 км/ч.

Рис. 4 Тестирование программы

Из графика зависимости расстояния от времени на рисунка 4 следует, что человек в силу возросшей начальной скорости проходит это расстояние за еще гораздо меньшее количество время, а именно за — 3ч 4 мин, из них 1 часа времени он тратит на востанавливление сил. В текушем тестирование человек пришел раньше приблизительно на 2ч 41 мин.

Отсюда следует, что при увеличении скорости человек пройдет этот путь за гораздо меньшее время.

Полный код программы представлен в приложении.

2. Регрессионный анализ

2.1 Теоретическая справка

В основе применения метода регрессионного анализа лежит предположение о том, что инженеру известен общий вид выражения для передаточной функции исследуемого объекта автоматизации W (p). Данное знание при наличии результатов эксперимента, представляющих собой конечное множество значений реакции объекта в дискретные моменты времени hi (ti ) на известное входное воздействие, позволяет определить выражение для аппроксимирующей кривой разгона по следующей формуле:

, (1)

где X (p) — изображение входного воздействия, — векторы постоянных коэффициентов, определяющих явный вид известного выражения для передаточной функции исследуемого объекта.

Примером векторов могут служить коэффициенты передаточной функции объектов, описываемых линейными дифференциальными уравнениями:

(2)

Идентификация методом регрессионного анализа заключается в нахождении таких значений параметров, при которых достигается минимальное среднеквадратичное отклонение от hi (ti ):

, (3)

где N — количество экспериментально снятых значений реакции исследуемого объекта на заданное входное воздействие.

Вместе с тем следует отметить, что большинство объектов с достаточной для инженерной практики точностью могут быть аппроксимированы передаточными функциями вида:

, (4)

где К — коэффициент передачи, Т1 и Т2 — постоянные времени, r=0,1,2,…  — показатель степени.

Учитывая, что коэффициент передачи определяется отношением установившегося выходного сигнала к входному, передаточную функцию (4) можно представить в безразмерном виде:

, (5)

С учетом (5) выражение (3) примет следующий вид:

, (6)

В общем случае минимум функционалу (6) доставляют параметры Т1 и Т2 удовлетворяющие следующей системе уравнений:

(7)

2.2 Описание работы

1. Для выполнения данной части курсового проекта задано изображение единичного возмущения и переходной характеристики (т.е. реакции на это возмущение).

Для построения изображения выходного сигнала в MATHCAD определим 9 точек на кривой

2. Осуществим нормирование переходной характеристики

3. Выдвинем гипотезу о передаточной функции данной системы

4. Осуществим обратное преобразование по Лапласу, что позволяет перейти от изображения функции к ее оригиналу.

5. Записываем функцию нахождения минимума между исходным графиком и предполагаемым. Находим решение этой функции с помощью частных производных по T1 и T2.

Таким образом, мы получаем приближенное решение нашей системы.

Сравнивая заданное изображение и изображение переходной характеристики, полученное методом регрессионного анализа, можно сказать, что они совпадают. Большую степень совпадения можно получить, изменяя передаточную функцию.

3. Моделирование супермаркета

Покупатели приезжают за покупками к супермаркету на автомобиле. Парковочная стоянка рассчитана на 650 машин. Если покупатель не находит свободного парковочного места, он уезжает без покупок. От машины к супермаркету идет в среднем 60 сек.

Число покупок сделанных одним покупателем равномерно распределено между 5 и 100 предметами. Покупатель, покупающий менее 10 предметов, пользуется корзиной (70 шт.); если больше 10 предметов — тележкой (650 шт.). Время, затрачиваемое на покупки, зависит от числа приобретаемых предметов (10 сек. на 1 предмет).

Покупатели, выбравшие предметы, встают в самую короткую очередь к одной из 17 касс. Оплата занимает 2 сек. на предмет +25 или 30 сек. (зависит от способа оплаты: наличные или кредитка). Вероятность появления способа оплаты 50/50. После оплаты покупатель идет 60 сек. до машины, загружает товары и уезжает.

Частота появления покупателей имеет экспоненциальное распределение: начиная с 600 чел. В час в течении получаса, затем 900 чел. в час в течении 1 часа, 450 чел. в час в течении 1 часа и оставшееся время 300 чел. в час.

Моделирование системы. Созданную имитационную модель необходимо оттранслировать и запустить на выполнение.

2. После трансляции, если нет ошибок, начнется процесс моделирования. Появится окно REPORT, в котором можно найти указанные в задании 2 параметры функционирования системы.

3. Представим табличные данные в виде гистограмм. Для построения гистограмм необходимо воспользоваться окном гистограмм (Table Window), где в списке выбрать имена нужных гистограмм.

Очевидно, что эту задачу можно легко приспособить к любому магазину или товару.

3.1 Схематичное представление модели

Система обслуживания с несколькими приборами и очередями представляет собой систему обслуживания с несколькими каналами, перед которыми образуются отдельные очереди.

Блок-схема

где:

§ k- число людей в очереди к кассе;

§ n- количество покупок.

моделирование программа операнд gpss

3. 2 Модель программы на языке GPSS/PC-2

; Модель супермаркета

RMULT 1187

First EQU 2

Last EQU 18

Qty VARIABLE (RN1@96+5)

Finance VARIABLE (RN1@3+1)#50+200

Transit TABLE M1,10 000,10000,7; Время пребывания в системе.

Items TABLE P$Quantity, 10,10,10; Число купленных предметов.

Shoppers TABLE X$Customers, 100,50,12; Число покупателей.

Baskt STORAGE 70

Cart STORAGE 650

Park STORAGE 650

Checkout VARIABLE (P$Quantity)#20+P$Payment

Tshop VARIABLE P$Quantity#100

INITIAL X$Customers, 0

Beg TRANSFER Both, Los; Попытка припарковаться.

ENTER Park; Парковка.

ADVANCE 600; Путь от машины в супермаркет.

SAVEVALUE Customers+, 1; Вход в супермаркет

ASSIGN Quantity, V$Qty; Параметр Quantity = числу купленных предметов.

ASSIGN Payment, V$Finance; Параметр payment = метод оплаты.

TEST LE P$Quantity, 10, Qcart; Предметов > 10 Берем тележку.

GATE SNF Baskt, Qcart; Проверяем наличие тележки.

QUEUE Basket; Встаем в очередь за корзиной.

ENTER Baskt; Получаем корзину.

DEPART Basket; Покидаем очередь.

ASSIGN Carrier, Baskt ;В параметр Carrier записывается Baskt (корзина).

TRANSFER, Shop; Покупки окончены.

Qcart QUEUE Carts; Встаем в очередь за тележку.

ENTER Cart; Получаем тележку.

DEPART Carts; Покидаем очередь за тележками.

ASSIGN Carrier, Cart ;В параметр Carrier записывается Cart (тележка).

Shop ADVANCE V$Tshop; Время покупок истекло.

SELECT MIN Minque, First, Last, Q; Находим кратчайшую очередь.

QUEUE P$Minque; Встаем в эту очередь.

SEIZE P$Minque; Начало обслуживания.

DEPART P$Minque; Освобождение очереди.

ADVANCE V$Checkout; Время обслуживания.

RELEASE P$Minque; Освобождение кассы.

LEAVE P$Carrier; Освобождение тележки.

TABULATE Transit; Запись транзитного времени.

TABULATE Items; Запись количества купленных предметов.

SAVEVALUE Customers-, 1; Один покупатель уходит.

ADVANCE 600; Движение к машине.

LEAVE Park; Освобождение стоянки.

TERMINATE

Lost TERMINATE; Один покупатель уехал.

* Прибытие покупателей для времени 0 — 30 мин.

GENERATE (Exponential (1,0,60)), 300; Появление покупателей.

TRANSFER, Beg

* Прибытие покупателей для времени 30 — 90 мин.

GENERATE (Exponential (1,0,40)), 18 000,900; Частота появления через 0.5 часа.

TRANSFER, Beg

* Прибытие покупателей для времени 90 — 150 мин.

GENERATE (Exponential (1,0,80)), 54 000,450; Частота появления через 1.5 часа.

TRANSFER, Beg

* Прибытие покупателей для времени 150+ мин.

GENERATE (Exponential (1,0,120)), 90 000; Частота появления через 2.5 часа.

TRANSFER, Beg

GENERATE 600; Один транзакт каждую минуту.

TABULATE Shoppers; Запись числа покупателей.

TERMINATE 1

3.3 Сведения о блоках и операторах, применяемых в модели

3.3.1 Оператор RMULT

RMULT - (устанавливает значения генераторов) позволяет перед началом моделирования установить начальные значения генератора случайных чисел, определяющие генерируемые ими последовательности.

RMUL[T] A, B, C, D, E, F, G

Операнды:

§ А — начальное значение генератора 1;

§ В — начальное значение генератора 2;

§ G — начальное значение генератора 7.

В соответствующее поле устанавливается определенное начальное значение чисел, если поле не определено, то соответствующее начальное значение не изменяется. Если начальным значением генератора является ноль, то генератор будет выдавать нули.

3.3.2 Оператор EQU

EQU — ставит в соответствие объекту его символьное обозначение.

symbol EQU num

Операнды:

§ symbol — определяемое символьное обозначение объекта;

§ num — целое число в диапазоне от -32 766 до +32 766.

Определяемое символьное обозначение объекта должно начинаться с буквы и иметь длину не более пяти символов. GPSS заменяет символьные ссылки на соответствующие цифровые эквиваленты.

3.3.3 Оператор VARIABLE

VARIABLE — определяет целочисленнную переменную.

num VARIABLE ехр

Операнды:

§ num — номер переменной (числовое или символическое имя),

§ ехр — арифметическое или логическое выражение.

Допустимые операторы:

= - равно,

= - не равно,

< > - не равно,

< - меньше чем,

> - больше чем,

>= - больше или равно,

>= - меньше или равно,

1 -И,

ИЛИ,

+ - сложение,

— - вычитание,

/ - деление,

* - умножение,

@ - деление по модулю @,

() — правило круглых скобок.

3.3.4 Блок Таблица

Для сбора статистических данных о различных отчетах модели и для представления их в стандартной табличной форме используют таблицы.

Занесение информации в таблицу осуществляется в момент входа очередного транзакта в блок

TABULATE A, B

Операнды:

§ А — имя или номер таблицы,

§ B — вес, указывающий, сколько раз значение должно быть занесено во взвешенную таблицу (по умолчанию В=1).

Описание структуры таблицы и типа заносимых данных осуществляется оператором описания таблицы

num TABLE A, B, C, D, E

Операнды:

§ num — имя или номер таблицы (совпадает с полем, А блока TABULATE A, B);

§ А — поле, в котором может быть записан либо аргумент таблицы;

§ B — верхняя граница нижнего интервала;

§ C — ширина интервала;

§ D — число интервалов;

§ E — интервал времени (только для RT — режима).

3.3.5. Оператор STORAGE

STORAGE — определяет емкость памяти.

STORAGEA, B

Операнды:

§ А — память (S) (стандартный числовой атрибут);

§ В — емкость памяти (по умолчанию 32 767).

Устанавливает определенную емкость памяти. Если емкость не определена, то значением по умолчанию является 32 767.

3.3.6. Блок GENERATE

GENERATE — блок, через который транзакты входят в модель. В одной модели может быть несколько различных таких блоков.

GENERATE А, B, C, D, E

Операнды:

§ А — Средний интервал времени прибытия (среднее время между последовательными приходами транзактов в блоке GENERATE);

§ B — Половина поля допуска равномерно распределенного интервала. Понимать как А+В;

§ C — Смещение интервалов (момент времени, в который в блоке должен появиться первый транзакт);

§ D — Ограничитель (граничное значение общего числа транзактов, которые могут войти в модель через данный блок в течение времени моделирования. Когда это число достигнуто, данный блок GENERATE перестает быть активным);

§ E — Уровень приоритета (уровень или класс приоритета каждого из транзактов, входящих в модель через данный блок).

Операнды, А и В в блоке являются основными (их наличие обязательно), операнды С, D и E — дополнительными. Все эти операнды не обязательно должны быть заданы явно. Но когда операнды заданы в виде констант, то они должны быть неотрицательными целыми числами.

3.3.7 Блок SELECT

Блок SELECT применяется для нахождения номера первого объекта (из определенного диапазона объектов), удовлетворяющего заданному условию.

SELECT lo A, B, C, D, E

где

§ lo — логический оператор;

§ A — номер параметра входящего транзакта, в который помещается результат подсчета объектов;

§ B — номера первого объекта;

§ C — номер последнего объекта.

3.3. 8 Блок QUEUE

QUEUE — помещает транзакт в конец очереди.

QUEUE А, В

Операнды:

§ А — номер очереди (числовое или символьное имя очереди);

§ В — число добавляемых к очереди элементов (по умолчанию 1).

Увеличивает текущее содержимое очереди, указанной в поле А, на значение в поле В. Если поле В не определено, увеличивает содержимое очереди на единицу. Транзакт может находиться в двух различных очередях одновременно.

3.3.9 Блок TEST

TEST — сравнивает два стандартных числовых атрибута.

TEST_r А, В, С

§ r — внутренний операнд, принимающий значения:

§ Е — равно; NE — не равно; L — меньше чем; LE — меньше чем или равно;

§ G — больше чем; GE — больше чем или равно;

§ А — стандартный числовой атрибут;

§ В — стандартный числовой атрибут;

§ С — номер альтернативного блока.

3.3. 10 Блок DEPART

DEPART — удаляет транзакт из очереди.

DEPART А, В

А — номер (имя) очереди;

В — число удаляемых из очереди элементов.

Удаляет текущий транзакт из очереди, указанной в поле А, и уменьшает содержимое очереди на значение поля В. Транзакт может находиться одновременно в двух различных очередях.

3.3. 11 Блок SEIZE

Блок SEIZE обладает следующими свойствами:

§ Если прибор уже используют, транзакт не может войти в блок, и он должен ждать в очереди.

§ Если прибор не используют, транзакт может войти в блок. В результате произойдет изменение статуса прибора из «незанято» в «занято».

SEIZE А

Транзакт, А — имя занимаемого прибора. Имя прибора может быть символическим или числовым.

3.3. 12 Блок RELEASE

Блок RELEASE — освобождает устройство.

RELEASE А

Транзакт, А — номер устройства (числовое или символьное имя освобождаемого устройства).

Устройство, указанное в поле А, освобождается и становится доступным для других транзактов. Освобождать устройство должен тот же транзакт, который его занимал.

3.3. 13 Блок ADVANCE

ADVANCE — задерживает транзакт.

ADVANCE А, В

Транзакты:

§ А — среднее время задержки (константа, если В не задано);

§ В — разброс относительно среднего значения, должен быть меньше или равен А.

Блок ADVANCE моделирует временною задержку транзакта в течение определенного интервала. Значение задержки по умолчанию равно нулю.

3.3. 14 Блок TRANSFER

TRANSFER — изменяет движение транзакта в модели.

TRANSFER А, В, С, D

Операнды:

§ А — режим передачи (пробел,., ALL, BOTH, FN, P, PICK, SBR, SIM);

§ В — следующий блок;

§ С — следующий блок;

§ D — значение индекса, используемое в режиме ALL.

Транзакт направляется в блок, определяемый в соответствии с режимом передачи, указанным в поле А.

3.3. 15 Блок TERMINATE

Транзакты удаляются из модели, попадая в блок TERMINATE. В модели может быть любое число этих блоков. Информация для этого блока задается с помощью единственного операнда, А — он определяет величину, которая вычитается из специального счетчика, называемого счетчиком завершений, каждый раз, когда транзакт входит в блок TERMINATE. Если операнд, А не задан, то по умолчанию подразумевается значение 0. В этом случае вход транзакта в такой блок не вызывает уменьшения содержания счетчика. При достижении счетчиком значения 0 (ноль) моделирование завершается.

3.4 Результаты моделирования

В ходе выполнения 3х часового процесса моделирования были определены:

1) транзитное время, необходимое покупателям — показано на рисунке 3. 1

Рис. 3. 1

2) загрузка (коэффициент использования) парковки, тележек, корзин и касс:

§ результаты функционирования каналов обслуживания (касс) 1- 17:

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY

1 82 0. 976 1285. 544 1 1366 0 0 0 26

2 82 0. 967 1273. 468 1 1340 0 0 0 27

3 78 0. 963 1333. 954 1 1426 0 0 0 26

4 76 0. 952 1353. 275 1 1375 0 0 0 26

5 75 0. 946 1362. 750 1 1292 0 0 0 27

6 82 0. 944 1242. 809 1 1381 0 0 0 27

7 80 0. 941 1270. 173 1 1404 0 0 0 26

8 77 0. 940 1318. 423 1 1367 0 0 0 26

9 77 0. 938 1316. 275 1 1499 0 0 0 26

10 81 0. 934 1245. 009 1 1371 0 0 0 26

11 75 0. 929 1337. 859 1 1449 0 0 0 26

12 71 0. 909 1382. 084 1 1323 0 0 0 26

13 69 0. 899 1407. 408 1 1266 0 0 0 26

14 72 0. 889 1333. 724 1 1349 0 0 0 26

15 78 0. 890 1231. 898 1 1468 0 0 0 25

16 72 0. 886 1329. 515 1 1420 0 0 0 25

17 76 0. 881 1251. 635 1 1350 0 0 0 26

где:

FACILITY — канала обслуживания (кассы);

ENTRIES — число входов;

UTIL — коэффициент использования;

AVE. TIME — среднее время обслуживания;

— результаты функционирования очередей 1−17, CARTS, BASKET:

QUEUE MAX CONT. ENTRY ENTRY (0) AVE. CONT. AVE. TIME

1 32 26 108 1 19. 543 19 543. 375 19 726. 024 0

2 32 27 109 1 19. 484 19 305. 470 19 484. 224 0

3 32 26 104 1 19. 397 20 142. 940 20 338. 502 0

4 32 26 102 2 19. 377 20 517. 082 20 927. 424 0

5 32 27 102 1 19. 313 20 449. 027 20 651. 492 0

6 32 27 109 1 19. 232 19 056. 032 19 232. 477 0

7 32 26 106 1 19. 172 19 533. 856 19 719. 893 0

8 32 26 103 1 19. 134 20 062. 414 20 259. 105 0

9 32 26 103 1 19. 028 19 951. 910 20 147. 517 0

10 31 26 107 2 18. 962 19 139. 570 19 504. 133 0

11 31 26 101 2 18. 936 20 248. 502 20 657. 562 0

12 31 26 97 1 18. 881 21 022. 114 21 241. 095 0

13 31 26 95 1 18. 830 21 406. 637 21 634. 367 0

где:

QUEUE — название очереди;

ENTRY — число входов;

ENTRY (0) — число нулевых входов;

AVE. TIME — среднее время пребывания транзакта в очереди;

MAX — максимальное содержимое;

AVE. CONT — среднее число входов

— результаты функционирования накопителей BASKT, CART, PARK:

BASKT 70 36 0 39 111 1 20. 557 0. 294 0 0

CART 650 186 0 586 1673 1 402. 570 0. 619 0 0

PARK 650 138 0 636 1788 1 440. 170 0. 677 0 0

где:

STORAGE — название накопителя;

CAP максимальная вместимость;

AVE.C — средняя вместимость;

ENTRIES — число входов;

UTIL — коэффициент использования;

3) количество покупателей супермаркета в минутный интервал — представлено на гистограмме рисунка 3.2.

Рис. 3. 2

4) количество покупателей во всех 17-ти очередях (рис. 3.3 — 3. 7)

Рис. 3. 3

Рис. 3. 4

Рис. 3. 5

Рис. 3. 6

Рис. 3. 7

Выводы

Из отчета по накопителям Storage мы видим, что максимальное количество машин никогда не достигло установленного лимита. Таким образом, всегда имелось достаточное количество парковочных мест, корзин и тележек.

Тем не менее, очень большое количество покупателей (380) стояло в очередях перед кассой. В очереди они проводили, в среднем, больше времени, чем в процесс совершения покупок.

Таблица Shoppers предоставляет гистограмму покупателей в супермаркете, подсчитываемых каждую минуту. В среднем, каждую минуту в магазине находились 380 покупателей. Практически все они ожидали своей очереди на кассе.

Приложение

unit Unit1;

interface

uses

Winapi. Windows, Winapi. Messages, System. SysUtils, System. Variants, System. Classes, Vcl. Graphics, Vcl. Controls, Vcl. Forms, Vcl. Dialogs, Vcl. StdCtrls, Vcl. ExtCtrls, VCLTee. TeEngine, VCLTee. TeeProcs, VCLTee. Chart, VCLTee. Series;

type

TForm1 = class (TForm)

LabeledEdit1: TLabeledEdit;

LabeledEdit2: TLabeledEdit;

Button1: TButton;

LabeledEdit3: TLabeledEdit;

LabeledEdit4: TLabeledEdit;

LabeledEdit5: TLabeledEdit;

LabeledEdit6: TLabeledEdit;

Chart1: TChart;

LabeledEdit7: TLabeledEdit;

Series1: TLineSeries;

Chart2: TChart;

Series2: TLineSeries;

Button2: TButton;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *. dfm}

procedure TForm1. Button1Click (Sender: TObject);

const

dt = 0. 001; //интервал времени

var

S//текущий пройденный путь

, Smax//путь который необходимо пройти

, Y, Y2, Y3,//усталость

Ymax,//максимальная усталость

Ymin,//минимальная усталость

V,//скорость

V0,//начальная скорость в км/ч

Kv,// коэффициент скорости

Kt,// коэффициент времени

K0,// коэффициент отдыха

T,//отрезок времени

T1,//время достижения минимальной усталости

T2//время достижения максимальной усталости

: Extended;

begin

Form1. Chart1. Series[0]. Clear;

Form1. Chart2. Series[0]. Clear;

Smax: =StrToFloat (LabeledEdit1. Text);

Ymax: =StrToFloat (LabeledEdit2. Text);

Ymin: =StrToFloat (LabeledEdit3. Text);

Kv: =StrToFloat (LabeledEdit4. Text);

Kt: =StrToFloat (LabeledEdit5. Text);

K0: =StrToFloat (LabeledEdit6. Text);

V0: =StrToFloat (LabeledEdit7. Text);

T: =0;

S: =0;

Y: =0;

V: =0;

T1: =0;

T2: =0;

Y2: =0;

Y3: =0;

while (S< =Smax) do

begin

T: =T+dt;

if Y< =Ymax then

begin

V: =V0/(1+Y); // вычисляем текущую скорость

Form1. Series2. AddXY (T, V); // отображаем текущую скорость на график

T1: =T1+dt;

T2: =0;

S: =S+V*dt;

Y: =Kv*V0*Kt*sqr (T1)+Y3;

Y2: =Y;

Form1. Series1. AddXY (T, S,'');

end

else

begin

while (Y> =Ymin) do

begin

V: =0;

Form1. Series2. AddXY (T, V,''); // отображаем на графике текущую

//скорость

T1: =0;

T2: =T2+dt;

Y: =Y2-K0*sqrt (T2); // восстанавливаем значение усталости

//до минимума

Y3: =Y;

Form1. Series1. AddXY (T, S,'', clblue); // отображаем на графике период

//отдыха

T: =T+dt;

end;

end;

end;

end;

procedure TForm1. Button2Click (Sender:TObject);

begin

close;

end;

end.

Заключение

В ходе выполнения поставленных задач получил навыки работы с GPSS и с ПО Mathcad, научился проводить регрессионный анализ объектов.

Разработанные в курсовом проекте модели при должном тестировании, отладке и модернизации могут служить средством решения реальных задач.

ПоказатьСвернуть
Заполнить форму текущей работой