Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Склад готовой продукции

Содержание:

Введение

В данной курсовой работе будет построена и рассмотрена модель работы склада готовой продукции. Исходные данные для построения модели:
На склад готовой продукции предприятия каждые 5±2 мин поступают изделия типа А партиями по 500 штук и каждые 20±5 мин изделия типа Б партиями по 2000 штук. С интервалами 10±5 мин к складу подъезжают грузовики, в каждый из которых загружаются 1000 штук изделий типа А и Б. Погрузка начинается, если на складе присутствуют в нужном количестве изделия обоих типов. На стоянке у склада могут находиться одновременно не более трех грузовиков, включая грузовик, стоящий под погрузкой. Грузовики, заставшие стоянку занятой, уезжают порожними.

Необходимо смоделировать работу склада в течение времени, достаточного для загрузки 50 грузовиков, и определить:

– число грузовиков, уехавших без груза,

– среднее число хранящихся на складе изделий типа  А,

– среднее число хранящихся на складе изделий типа  Б.

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

Глава 1. Выбор метода

При построении данной модели возможно применение нескольких методов, таких как аналитическое и имитационное моделирование.

Аналитическое моделирование - математический прием исследования систем, который позволяет получать точные решения.

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

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

Недостатком метода является то, что по мере усложнения воздействий на модель и увеличения порядка и числа уравнений состояния, исследование аналитическими методами наталкивается на трудности, связанные с чрезмерно громоздкими, сложными и трудно осмысляемыми выражениями, то есть этот метод идеален только для сравнительно простых систем. Так же невозможно создать аналитическую модель, если рассматривать поведение какой-либо системы во времени или если в системе присутствуют такие параметры, как время, нелинейности, причинные связи, случайные переменные.

Имитационное моделирование – это вид математического моделирования, реализуемого с помощью набора специальных имитирующих компьютерных программ и технологий программирования

(А.А. Емельянов, Е.А. Власова, Р.В. Дума; Под ред. А.А. Емельянова. Имитационное моделирование экономических процессов: Учеб. пособие - М.: Финансы и статистика, 2002. - 368 с.- С. 5).

Имитационное моделирование включает в себя два этапа: конструирование модели и постановка экспериментов.

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

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

Глава 2. Имитационная модель

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

Для автоматизации составления описания модели и получения на его основе исходного текста программной модели в моделирующей системе Pigrim предусмотрен специальный конструктор Gem (Прокимнов Н.Н. Handbook по дисциплине «Математическое моделирование», Московский финансово-промышленный университет «Университет», 2014.). Данный конструктор значительно облегчает работу при создании модели, так как для пользователя не надо обладать глубокими познаниями в программировании, а достаточно с помощью конструктора построить граф модель, описать все присутствующие в ней узлы, а конструктор сам сгенерирует программу на C++, используемую нами в дальнейшем. Граф модель для решения поставленной задачи приведена на рисунке 1.

Рисунок 1

После размещения всех узлов и связей между ними, необходимо провести инициализацию модели. Под инициализацией модели понимается установка параметров моделирования. С помощью инструмента ModBeg зададим название модели и время моделирования. Так как в нашей задаче нет определенного времени, а есть условие «смоделировать работу склада в течение времени, достаточного для загрузки 50 грузовиков», то пишем в строке время значение, которое превысит время погрузки 50 грузовиков, а остановку моделирования будем осуществлять программно, по событию, с помощью функции interrupt(), фиксируя при этом время необходимое для погрузки и все остальные данные.

В инструменте ModEnd оставляем значения по умолчанию и приступаем к определению переменных. Добавляем следующие переменные:

  • counttovarA типа int и присваиваем значение 0, для подсчета количества изделий типа А, поступающих на склад;
  • counttovarB типа int и присваиваем значение 0, для подсчета количества изделий типа Б, поступающих на склад;
  • countcar типа int и присваиваем значение 0, для подсчета количества грузовиков, находящихся у склада;
  • countincar типа int и присваиваем значение 0, для подсчета количества погрузок.

Переходим к описанию узлов. Три узла ag (AG) применяются для создания транзактов, имитирующих поступление изделий одного и второго типов на склад и прибытие грузовиков. В них мы заполняем значения интервала времени генерации транзактов и устанавливаем приоритет.

Два узла term (T) служат для фиксации значений уехавших грузовиков и произведенных погрузок. Для нашего примера в узле 111 никаких дополнительных настроек не требуется, а в узле 110 напишем код C++, в соответствии с которым будет отмечаться каждая погрузка, а когда это число достигнет значения 50, то произойдет остановка процесса моделирования.

Узел key (K), номер 106, применен для контроля количества грузовиков находящихся у склада. Если переменная countcar равна трем, то транзакт переходит в узел term, отмечая этим уехавший грузовик, если переменная countcar меньше 3, то транзакт проходит в узел 107, при этом к переменной прибавляется единица.

Узлы queue (Q), номер 104 и 105 фиксируют поступление изделий соответствующих типов и передают все на склад. Все поставка количественно приравнивается к числовому значению и записываются в переменных counttovarA и counttovarB.

Узлы queue (Q), номер 107, имитирует необходим для фиксации в очереди прибывших грузовиков на погрузку и обработку условий, при которых начинается погрузка, т.е. присутствие обоих типов изделий в количестве не менее 1000 штук и присутствие грузовика на стоянке. Если все условия выполняются, то выдается команда на открытие узла key (K), номер 109, и транзакт проходит в узел term (T), номер 110, что и является погрузкой грузовика. Так же в узле key (K), номер 109, отнимается погруженное количество изделий и грузовик, в который произведена погрузка, и еще раз проверяются условия. Если одного из типов изделий не хватает в нужном количестве, либо нет грузовика на стоянке, то вырабатывается команда на закрытие узла номер 109.

Генерируем в конструкторе Gem C++ файл, в котором и будет содержаться текст программной модели для дальнейшей компиляции в Visual C++. Исходный текст программной модели:
#include <Pilgrim.h>

forward

{

int fw;

int counttovarA=0;

int counttovarB=0;

int countcar=0;

int countincar=0;

modbeg("Склад готовой продукции", 112, 1000, (long)time(NULL), none, none, none,none, 2);

ag("Изделия А", 101, 1, norm, 5, 2, none, 104);

ag("Изделия Б", 102, 1, norm, 20, 5, none, 105);

ag("Грузовики", 103, 2, norm, 10, 5, none, 106);

network(dummy, dummy)

{

top(104):

queue("Кол-во изделийА", none, 107);

clcode{

counttovarA=counttovarA+500;

}

place;

top(105):

queue("Кол-во изделийБ", none, 107);

clcode{

counttovarB=counttovarB+2000;

}

place;

top(106):

if( countcar>=3 )

{

fw=111;

}

else

{

countcar=countcar+1;

fw=107;

}

key("Ограничение кол-ва грузовиков", fw);

clcode{

}

place;

top(107):

if ((counttovarA>=1000) && (counttovarB>=1000) && (countcar>0))

{

rels (109);

}

queue("Склад", prty, 109);

place;

top(109):

key("Разрешение на погрузку", 110);

clcode{

countcar=countcar-1;

counttovarA=counttovarA-1000;

counttovarB=counttovarB-1000;

if ((counttovarA<1000) || (counttovarB<1000) || (countcar==0))

{

hold (109);

}

}

place;

top(110):

term("Погрузка");

clcode{

countincar=countincar+1;

if (countincar==50)

{

interrupt();

}

}

place;

top(111):

term("Уехавшие грузовики");

place;

fault(123);

}

modend("pilgrim.rep", 1, 8, page);

return 0;

}

В интегрированной среде разработки приложений на языке C++, Visual C++, создадим проект, добавим файл модели, полученный в результате работы с конструктором Gem, скомпелируем файл EXE и проведем несколько экспериментов. Полученные значения:

  • эксперимент 1

*---------------------------------------------------------------------------------------------*

| НАЗВАНИЕ МОДЕЛИ: Склад готовой п |

| ВРЕМЯ МОДЕЛИРОВАНИЯ: 532.12 Лист: 1 |

|---------------------------------------------------------------------------------------------|

| No | Наименование | Тип |Точ-|Загруз-| M [t] | C [t] |Счетчик|Кол.|Оcт.|Состояние узла|

|узла| узла | узла | ка |ка(%=),| среднее |квадрат |входов |кан.|тр. |в этот момент |

| | | | |Путь(км) время |коэф.вар.|и hold | | | |

| 101 Изделия А ag - - 5.32 0.14 101 1 1 открыт |

| 102 Изделия Б ag - - 20.31 0.08 27 1 1 открыт |

| 103 Грузовики ag - - 9.58 0.22 56 1 1 открыт |

| 104 Кол-во изделийА queue - - 0.00 49.35 100 1 0 открыт |

| 105 Кол-во изделийБ queue - - 0.00 0.00 26 1 0 открыт |

| 106 Ограничение кол key - %= 0.0 0.00 1.00 0 1 0 открыт |

| 107 Проверка queue - - 24.37 0.09 178 1 128 открыт |

| 109 Разрешение на п key - %= 98.9 11.70 0.26 46 1 1 закрыт |

| 110 Погрузка term - - 24.08 0.09 50 0 1 закрыт |

| 111 Уехавшие грузов term - - 0.00 0.00 3 0 0 открыт |

*---------------------------------------------------------------------------------------------*

  • эксперимент 2

*---------------------------------------------------------------------------------------------*

| НАЗВАНИЕ МОДЕЛИ: Склад готовой п |

| ВРЕМЯ МОДЕЛИРОВАНИЯ: 540.01 Лист: 1 |

|---------------------------------------------------------------------------------------------|

| No | Наименование | Тип |Точ-|Загруз-| M [t] | C [t] |Счетчик|Кол.|Оcт.|Состояние узла|

|узла| узла | узла | ка |ка(%=),| среднее |квадрат |входов |кан.|тр. |в этот момент |

| | | | |Путь(км) время |коэф.вар.|и hold | | | |

| 101 Изделия А ag - - 4.86 0.14 112 1 1 открыт |

| 102 Изделия Б ag - - 17.89 0.06 30 1 1 открыт |

| 103 Грузовики ag - - 11.02 0.19 50 1 1 открыт |

| 104 Кол-во изделийА queue - - 0.00 139.23 111 1 0 открыт |

| 105 Кол-во изделийБ queue - - 0.00 0.00 29 1 0 открыт |

| 106 Ограничение кол key - %= 0.0 0.00 1.00 0 1 0 открыт |

| 107 Проверка queue - - 8.52 0.60 189 1 139 открыт |

| 109 Разрешение на п key - %= 99.4 11.67 0.16 47 1 1 закрыт |

| 110 Погрузка term - - 8.69 0.57 50 0 1 закрыт |

*---------------------------------------------------------------------------------------------*

  • эксперимент 3

*---------------------------------------------------------------------------------------------*

| НАЗВАНИЕ МОДЕЛИ: Склад готовой п |

| ВРЕМЯ МОДЕЛИРОВАНИЯ: 515.93 Лист: 1 |

|---------------------------------------------------------------------------------------------|

| No | Наименование | Тип |Точ-|Загруз-| M [t] | C [t] |Счетчик|Кол.|Оcт.|Состояние узла|

|узла| узла | узла | ка |ка(%=),| среднее |квадрат |входов |кан.|тр. |в этот момент |

| | | | |Путь(км) время |коэф.вар.|и hold | | | |

| 101 Изделия А ag - - 4.90 0.17 106 1 1 открыт |

| 102 Изделия Б ag - - 17.89 0.06 29 1 1 открыт |

| 103 Грузовики ag - - 10.53 0.21 50 1 1 открыт |

| 104 Кол-во изделийА queue - - 0.00 248.15 105 1 0 открыт |

| 105 Кол-во изделийБ queue - - 0.00 7.76 28 1 0 открыт |

| 106 Ограничение кол key - %= 0.0 0.00 1.00 0 1 0 открыт |

| 107 Проверка queue - - 2.20 5.71 182 1 132 открыт |

| 109 Разрешение на п key - %= 98.7 10.39 0.20 50 1 1 закрыт |

| 110 Погрузка term - - 2.24 5.58 50 0 1 закрыт |

*---------------------------------------------------------------------------------------------*

  • эксперимент 4

*---------------------------------------------------------------------------------------------*

| НАЗВАНИЕ МОДЕЛИ: Склад готовой п |

| ВРЕМЯ МОДЕЛИРОВАНИЯ: 499.09 Лист: 1 |

|---------------------------------------------------------------------------------------------|

| No | Наименование | Тип |Точ-|Загруз-| M [t] | C [t] |Счетчик|Кол.|Оcт.|Состояние узла|

|узла| узла | узла | ка |ка(%=),| среднее |квадрат |входов |кан.|тр. |в этот момент |

| | | | |Путь(км) время |коэф.вар.|и hold | | | |

| 101 Изделия А ag - - 4.49 0.17 111 1 1 открыт |

| 102 Изделия Б ag - - 19.71 0.09 26 1 1 открыт |

| 103 Грузовики ag - - 9.42 0.27 54 1 1 открыт |

| 104 Кол-во изделийА queue - - 0.00 999.99 110 1 0 открыт |

| 105 Кол-во изделийБ queue - - 0.00 0.00 25 1 0 открыт |

| 106 Ограничение кол key - %= 0.0 0.00 1.00 0 1 0 открыт |

| 107 Проверка queue - - 6.18 1.94 185 1 135 открыт |

| 109 Разрешение на п key - %= 99.9 13.11 0.30 39 1 1 закрыт |

| 110 Погрузка term - - 6.30 1.88 50 0 1 закрыт |

| 111 Уехавшие грузов term - - 0.00 0.19 3 0 0 открыт |

*---------------------------------------------------------------------------------------------*

Глава 3. Анализ результатов

Полученные данные, в результате экспериментов занесем в таблицу 1, в которой отобразим количество машин, уехавших без груза, среднее количество изделий типа А и типа Б, вычисленные отношением поступивших изделий на склад к количеству погрузок, при этом помня, что одно поступление изделий типа А приравнивается к 500 шт., а изделий типа Б к 2000 шт. И найдем среднее значение к каждому из пунктов.

Таблица 1

Номер эксперимента

Число уехавших грузовиков

Среднее число изделий типа  А

Среднее число изделий типа  Б

1

3

1010

1080

2

0

1120

1200

3

0

1060

1160

4

3

1110

1040

Среднее значение

1,5

1075

1120

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

Заключение

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

В результате курсовой работы была создана модель склада готовой продукции, смоделирована работа склада в течение времени, достаточного для загрузки 50 грузовиков, и определено число грузовиков, уехавших без груза, среднее число хранившихся на складе изделий типа А и среднее число хранившихся на складе изделий типа Б.

Для этого была разработана и инициализирована граф модель в графическом конструкторе Gem, скомпилирована программа в Visual C++ и проведен ряд экспериментов.

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

Для полноценного моделирования склада готовой продукции необходимо более углубленно исследовать процессы, происходящие в реальной системе.

Список использованных источников

1. Прокимнов Н.Н. Handbook по дисциплине «Математическое моделирование», Московский финансово-промышленный университет «Университет», 2014.

2. А.А. Емельянов, Е.А. Власова, Р.В. Дума; Под ред. А.А. Емельянова. Имитационное моделирование экономических процессов:

Учеб. пособие - М.: Финансы и статистика, 2002. - 368 с.