close

Вход

Забыли?

вход по аккаунту

?

kokin.course2

код для вставкиСкачать
 Министерство образования Российской Федерации
Ивановский Государственный Энергетический Университет
Кафедра ПОКС
Имитационное моделирование.
Работа оптового магазина.
Выполнил: студент группы 4-42
Архипов А. Л.
Проверил: Кокин В. М.
Иваново
2003
Оглавление
Оглавление2
Задание3
Концептуальная модель3
Разработка библиотеки функциональных блоков4
Структурная модель системы5
Схема модели5
Описание модели5
Разработка плана экспериментов15
Результаты имитационных экспериментов16
Графики процессов16
Расчетные характеристики18
Расчет характеристик системы19
Выводы19
Приложение.19
Задание
В оптовом магазине используется новая процедура обслуживания клиентов. Клиенты, попадая в магазин, определяют по каталогу наименования товаров, которые они хотели бы приобрести. После этого клиент обслуживается клерком, который идет на расположенный рядом склад и приносит необходимый товар. Каждый из клерков может обслуживать одновременно не более шести клиентов. Время, которое затрачивает клерк на путь к складу, равномерно распределено на интервале от 0.5 до 1.5 минут. Время поиска зависит от числа наименований товаров, которые клерк должен найти на складе.
Это время нормально распределено с математическим ожиданием, равным утроенному числу искомых наименований, и среднеквадратичным отклонением, равным 0.2 математического ожидания. Следовательно, если, например, со склада надо взять товар одного наименования, время на его поиск будет нормально распределено с математическим ожиданием, равным 3 минуты, и среднеквадратичным отклонением, равным 0.6 минут. Время возвращения со склада равномерно распределено на интервале от 0.5 до 1.5 минут. По возвращении со склада клерк рассчитывается со всеми клиентами, которых он обслуживает. Время расчета с клиентом равномерно распределено на интервале от 1 до 3 минут. Расчет производится в том порядке, в каком к клерку поступали заявки на товар. Интервалы между моментами поступления заявок на товары от клиентов экспоненциально распределены с математическим ожиданием, равным 2 минуты. Клиентов в магазине обслуживают три клерка.
Определить:
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку;
* число заявок, удовлетворяемых клерком за один выход на склад;
* количество выходов клерков на склад;
* среднюю занятость клерков.
Концептуальная модель
Объект Клиент атрибутов не имеет.
Объект Клерк имеет следующие атрибуты:
1. Признак занятости. Показывает, обслуживает ли в данный момент клерк клиентов или ожидает прибытия новых.
2. Список обслуживаемых в данный момент клиентов.
3. Время, необходимое на обслуживание текущей группы клиентов.
4. Максимальное количество клиентов, которых он может обслуживать одновременно.
Магазин (shop) работает следующим образом:
1. В начале работы все клерки в магазине ожидают прибытия клиентов.
2. По прибытии в магазин, клиент выбирает себе товары, которые он покупает, и встает в очередь на обслуживание клерком.
3. Свободный клерк забирает себе из очереди столько клиентов, сколько может обслужить. Клерк идет на склад, а клиенты дожидаются его возвращения для получения заказанных товаров и оплаты покупки.
4. Клерк выбирает товары на складе и возвращается к ожидающим его клиентам.
5. Клерк рассчитывается с каждым из клиентов в порядке очереди.
6. Клерк становится свободным и ожидает новых клиентов.
Разработка библиотеки функциональных блоков
Модель создана для работы в среде MathWorks(r) MATLAB(r) Simulink. Модель содержит следующие подсистемы (Subsystems):
1. event gen (Exp event generator) - генератор событий. Генерирует короткие импульсы, интервалы времени между которыми распределены по экспоненциальному закону. Моделирует прибытие клиентов.
1.1 Exp rnd - подсистема, генерирующая числа, значения которых распределены по экспоненциальному закону с заданным математическим ожиданием.
2. Queue (Queue) - формирователь очереди. Выдает на выходе количество клиентов в очереди.
2.1. Counter (Counter) - счетчик импульсов. Считает количество подаваемых на вход импульсов, вне зависимости от шага интегрирования.
3. Clerk (Clerk) - подсистема, имитирующая работу клерка.
3.1. srvtime (Service Time Calc) - вычисляет время, которое должен потратить клерк на путь до склада, поиск товаров и возвращение со склада.
3.1.1. wttime (Search Time Calc) - вычисляет время, которое должен потратить клерк на поиск товаров на складе.
3.2. sig (Single Impulse Gen) - генерирует на выходе импульс единичной длины при появлении сигнала на входе.
3.3. ev (Event Generator) - генератор событий. Генерирует короткие импульсы, интервал времени между которыми задается входным сигналом.
4. SS (Signal Switch) - выделяет очередь для клерка с заданным индексом.
5. SCS (Switch Control Signal) - формирует управляющий сигнал для Signal Switch.
6. ShStat (Shop Statistics) - вычисляет значения характеристик системы.
Структурная модель системы
Схема модели
* EEG - Mask subsystem "Exp Event Generator";
* Queue - Mask subsystem "Queue";
* Counter - Mask subsystem "Counter";
* Clerk1, Clerk2, Clerk3 - Mask subsystem "Clerk";
* ShStat - Mask subsystem "Shop Statistics";
* SCS - Mask subsystem "Switch Control Signal";
* Counter - Mask subsystem "Signal Switch";
* Clients out - количество обслуженных клиентов;
* Avg client wait - среднее время, которое клиент проводит в магазине;
* Clerk avg busy - среднее число занятых клерков;
* Walks - сколько раз клерки ходили на склад;
* Clients per clerk - сколько клиентов клерк в среднем обслуживал за раз.
Описание модели
Exp Event Generator моделирует прибытие клиентов в магазин. Клиенты накапливаются в очереди (Queue). Эту очередь клиентов обслуживает группа клерков clerk1, clerk2, clerk3. Клерки берут из очереди некоторое число клиентов, уменьшают очередь на это число, обслуживают этих клиентов, берут следующую группу клиентов и т.д.
Все блоки, созданные для данной модели объединены в библиотеку.
1. Mask Subsystem "Exp Event Generator":
Генератор событий. Генерирует короткие импульсы, интервалы времени между которыми распределены по экспоненциальному закону с заданным математическим ожиданием.
Exp rnd:
Параметры настройки:
Expected interval (interv) - ожидаемый интервал времени между событиями.
Вход: нет.
Выход: event - поток событий.
Описание работы: "Exp rnd" (схема приведена выше) выдает на выходе значения, соответствующие интервалам времени между событиями (выходными импульсами). Время считает система (счетчик) из двух блоков: Constant и Discrete-Time Integrator. На выходе Discrete-Time Integrator значение, соответствующее пройденному времени с момента начала работы счетчика или с момента его последнего сброса. Как только это значение превысит значение на выходе "Exp rnd" - на выходе сумматора сигнал перейдет через 0. в этот момент Hit Crossing выдаст на выходе короткий импульс - очередное событие. Этот импульс сбросит Discrete-Time Integrator и "Exp rnd" сгенерирует очередное число. Unit Delay нужен для избежания алгебраического цикла.
2. Mask Subsystem "Queue":
Формирователь очереди. Выдает на выходе количество клиентов в очереди.
Параметров настройки не имеет.
Вход: 1) Входной поток клиентов (импульсов).
2) Количество клиентов, которых клерки забрали из очереди.
Выход: 1) Количество клиентов в очереди.
Описание работы: Counter считает количество прибывающих клиентов. Сумматор из него вычитает количество клиентов, которых клерки забрали из очереди. Результат - текущее количество клиентов в очереди.
2.1. Mask Subsystem "Counter":
Счетчик импульсов. Считает количество подаваемых на вход импульсов, вне зависимости от шага интегрирования. Его действие аналогично действию Discrete-Time Integrator при шаге интегрирования, равном 1.
Где необходимо считать входные импульсы следует использовать этот блок.
Параметров настройки не имеет.
Вход: in1 - входной поток импульсов.
Выход: out1 - величина, равная количеству импульсов, прошедших через Counter с начала его работы.
Описание работы: Сумматор складывает значение на текущем шаге и на предыдущем. В результате значения накапливаются.
3. Mask Subsystem "Clerk":
Моделирует работу клерка. Сколько нужно смоделировать клерков, столько нужно взять этих блоков.
Клерк берет максимально возможное количество клиентов из очереди, уменьшает очередь на это количество и передает остаток очереди следующему клерку.
Параметры настройки:
1) Clerk capacity (cap) - максимальное количество клиентов, которое клерк может обслуживать одновременно;
2) Search time (st) - данные для вычисления времени нахождения клерка на складе [количество товаров в списке; количество товаров, которые клиенты берут в среднем; коэффициент математического ожидания времени поиска товаров; коэффициент среднеквадратичного отклонения; левая граница времени пути до склада; правая граница времени пути до склада];
3) Pay time (pt) - данные для вычисления времени расчета с клиентами [левая граница времени расчета с клиентом; правая граница времени расчета с клиентом].
Вход:
1) Clts in - входной поток клиентов.
Выход:
1) Clts out - число клиентов, которых клерк обслужил за все время работы;
2) wtt - время, которое потратили клиенты, ожидая окончания обслуживания данным клерком;
3) Wk - количество выходов клерка на склад;
4) wkt - время, которое клерк затратил на обслуживание клиентов.
Описание работы: Если клерк свободен (на выходе Logical Operator1 - единица), он забирает из очереди максимально возможное количество клиентов (задается переменной cap), уменьшает очередь на это количество (выдает на выходе clts out сосчитанное Counter'ом общее количество клиентов, которых клерк забрал из очереди) и переходит в состояние busy (на вход Discrete-Time Integrator4 подается импульс, на выходе Discrete-Time Integrator4 единица, на выходе Logical Operator1 - 0). В этом состоянии клерк не берет клиентов из очереди (на выходе Product - 0), пока не обслужит уже имеющихся клиентов и не перейдет в состояние free. Как только EG выдаст импульс, сообщающий о том, что обслуживание закончено, Discrete-Time Integrator4 будет сброшен, на его выходе - 0, на выходе Logical Operator1 - единица. Время обслуживания зависит от параметров клерка, на основе которых оно вычисляется с помощью блока STC.
3.1. Mask Subsystem "Service Time Calc"
Вычисляет время, которое должен потратить клерк на путь до склада, поиск товаров и возвращение со склада.
Параметров настройки не имеет.
Вход:
Enable - сигнал Enable.
1) Количество обслуживаемых клерком клиентов;
2) Данные для вычисления времени нахождения клерка на складе [количество товаров в списке; количество товаров, которые клиенты берут в среднем; коэффициент математического ожидания времени поиска товаров; коэффициент среднеквадратичного отклонения; левая граница времени пути до склада; правая граница времени пути до склада];
3) Данные для вычисления времени расчета с клиентами [левая граница времени расчета с клиентом; правая граница времени расчета с клиентом].
Выход:
3) Время обслуживания.
Описание работы: к времени поиска товаров на складе, вычисленному с помощью SrTC сумматор прибавляет время расчета с клиентом, считаемое MATLAB Fcn.
3.1.1. Mask Subsystem "Search Time Calc"
Вычисляет время, которое должен потратить клерк на поиск товаров на складе.
Параметров настройки не имеет.
Вход:
1) Количество обслуживаемых клерком клиентов;
2) Данные для вычисления времени нахождения клерка на складе [количество товаров в списке; количество товаров, которые клиенты берут в среднем; коэффициент математического ожидания времени поиска товаров; коэффициент среднеквадратичного отклонения; левая граница времени пути до склада; правая граница времени пути до склада];
Выход:
1) Время поиска товаров на складе.
Описание работы: считает время поиска товаров на складе по формуле: mm * (CSCOEF + CSVCOEF * randn(1)) + 2 * CWTIMEL + (CWTIMER - CWTIMEL) * (rand(1) + rand(1)), где mm - количество наименований товаров, CSCOEF - ожидаемое время поиска одного товара, CSVCOEF - среднеквадратичное отклонение времени поиска одного товара, CWTIMEL - левая граница времени пути клерка до склада, CWTIMER - правая граница времени пути клерка до склада.
3.2. Mask Subsystem "Single Impulse Generator"
Генерирует на выходе импульс единичной длины при появлении сигнала на входе.
Параметров настройки не имеет.
Вход: входной сигнал.
Выход: выходной сигнал (импульс).
Описание работы: На выходе выдается входной сигнал, если на предыдущем шаге на входе был 0.
3.3. Mask subsystem "Event Generator"
Генератор событий. Генерирует короткие импульсы, интервал времени между которыми задается входным сигналом.
Параметров настройки не имеет.
Вход:
1) Интервал времени между событиями;
2) Сигнал сброса.
Выход:
1) Поток событий.
Описание работы: Принцип работы соответствует описанному ранее "Exp Event Generator", за исключением того, что в "Event Generator" интервал времени задается в качестве входного сигнала и имеется вход для внешнего сигнала сброса счетчика.
4. Mask Subsystem "Signal Switch".
Выделяет очередь для клерка с заданным индексом. Блок "Signal Switch" необходим для каждого используемого в модели блока "Clerk".
Параметров настройки не имеет.
Вход:
1) очередь клиентов;
2) управляющий сигнал (от блока "Switch Control Signal");
3) Индекс элемента.
Выход:
1) очередь клиентов для клерка с заданным индексом;
2) индекс, передаваемый следующему Signal Switch.
Каждый из клерков поочередно получает доступ к очереди.
На вход индекс первого блока "Signal Switch" подается константа 0, а на индекс каждого последующего блока "Signal Switch" соединяется с выходом индекс предыдущего. Выход индекс последнего в цепочке блока "Signal Switch" соединяется с входом блока "Switch Control Signal".
Описание работы: Выдает на выходе out1 сигнал входа In1, если значение на входе In2 равно значению на входе In3.
5. Mask Subsystem "Switch Control Signal"
Формирует управляющий сигнал для Signal Switch.
Параметров настройки не имеет.
Вход:
1) Количество элементов Signal Switch.
Выход:
1) Управляющий сигнал.
Описание работы: Выдает на выходе остаток отделения величины текущего времени на количество элементов SS, подаваемое на вход In3.
6. Mask Subsystem "Shop Statistics"
Вычисляет значения характеристик системы. Соответствующие выходы блоков "Clerk" объединяются с помощью Mux, выход Mux соединяется с соответствующим входом блока "Shop Statistics".
Параметров настройки не имеет.
Вход:
1) Вектор количества клиентов, которых клерки обслужили (число элементов вектора равно числу клерков);
2) Вектор времени, которое потратили клиенты, ожидая окончания обслуживания клерками (число элементов вектора равно числу клерков);
3) Вектор количества выходов клерков на склад (число элементов вектора равно числу клерков);
4) Вектор времени, которое клерки затратили на обслуживание клиентов (число элементов вектора равно числу клерков).
Выход:
1) число обслуженных клиентов;
2) среднее время нахождения клиента в очереди;
3) среднее количество одновременно обслуживаемых клиентов;
4) количество выходов клерков на склад;
5) средняя занятость клерков.
Описание работы: Считает выходные величины, производя манипуляции со входными.
Разработка плана экспериментов
Было проведено 3 эксперимента.
1. - Время работы магазина - 20 часов.
- Шаг по времени - 0.1 минута.
- Количество наименований товаров в каталоге - 10.
- Остальные параметры установлены в соответствии с заданием.
- Выходные параметры:
* количество обслуженных клиентов;
* количество выходов клерков на склад;
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку;
* число заявок, удовлетворяемых клерком за один выход на склад;
* средняя занятость клерков.
2. - Время работы магазина - 40 часов.
- Шаг по времени - 0.1 минута.
- Количество наименований товаров в каталоге - 10.
- Остальные параметры установлены в соответствии с заданием.
- Выходные параметры:
* количество обслуженных клиентов;
* количество выходов клерков на склад;
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку;
* число заявок, удовлетворяемых клерком за один выход на склад;
* средняя занятость клерков.
3. - Время работы магазина - 80 часов.
- Шаг по времени - 0.1 минута.
- Количество наименований товаров в каталоге - 10.
- Остальные параметры установлены в соответствии с заданием.
- Выходные параметры:
* количество обслуженных клиентов;
* количество выходов клерков на склад;
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку;
* число заявок, удовлетворяемых клерком за один выход на склад;
* средняя занятость клерков.
Результаты имитационных экспериментов
Графики процессов
1. время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку
число заявок, удовлетворяемых клерком за один выход на склад
средняя занятость клерков
2. время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку
число заявок, удовлетворяемых клерком за один выход на склад
средняя занятость клерков
3. время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку
число заявок, удовлетворяемых клерком за один выход на склад
средняя занятость клерков
Расчетные характеристики
1. * количество обслуженных клиентов = 562;
* количество выходов клерков на склад = 136;
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку = 28.17;
* число заявок, удовлетворяемых клерком за один выход на склад = 4.132;
* средняя занятость клерков = 2.985.
2. * количество обслуженных клиентов = 1122;
* количество выходов клерков на склад = 272;
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку = 28.31;
* число заявок, удовлетворяемых клерком за один выход на склад = 4.125.
* средняя занятость клерков = 2.959.
3. * количество обслуженных клиентов = 2290;
* количество выходов клерков на склад = 550;
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку = 27.94;
* число заявок, удовлетворяемых клерком за один выход на склад = 4.164;
* средняя занятость клерков = 2.97.
Расчет характеристик системы
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку:
* среднее значение = 28.14;
* дисперсия = 0.1868.
* число заявок, удовлетворяемых клерком за один выход на склад:
* среднее значение = 4.1403;
* дисперсия = 0.0208.
* средняя занятость клерков:
* среднее значение = 2.9713;
* дисперсия = 0.0131.
Выводы
Магазин работает в установившемся режиме, клиенты в очереди не накапливаются (среднее количество клиентов в очереди равно 1.6), среднее время ожидания клиентом окончания обслуживания - 28.14 минут. Если необходимо уменьшить время пребывания клиента в магазине, то руководству магазина следует нанять еще клерков. Если в магазине будут работать 5 клерков, то:
* время, необходимое на обслуживание одного клиента с момента подачи заявки на товар до оплаты счета на покупку = 23.88;
* число заявок, удовлетворяемых клерком за один выход на склад = 2.121;
* средняя занятость клерков = 4.728.
Из занятости клерков можно заключить, что они не простаивают (среднее количество занятых клерков немногим меньше их числа). С увеличением количества клерков они быстрее будут освобождаться и быстрее забирать клиентов из очереди (т.к. клерки будут работать быстрее, за время их отсутствия у стойки клиентов успеет прибыть меньше). Т.к. клерк будет за один раз обслуживать меньшее количество клиентов, то количество товаров, которые он должен будет найти на складе, также будет меньше. Соответственно клерк затратит меньше времени на их поиски и быстрее вернется со склада.
Приложение. В данной модели программы не использовались.
1
1
Документ
Категория
Рефераты
Просмотров
41
Размер файла
656 Кб
Теги
course, kokin
1/--страниц
Пожаловаться на содержимое документа