close

Вход

Забыли?

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

?

salexkurs

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Ивановский Государственный Энергетический Университет
Кафедра ПОКС
Курсовая работа по курсу
Моделирование Систем
"Моделирование работы
оптового магазина"
Выполнил ст.гр. 4-42хх
Сосновиков А.Ю.
Проверил доц.каф. ПОКС
Кокин В.М.
- Иваново 2002 -
Содержание
ЗАДАНИЕ3
КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ4
РАЗРАБОТКА БИБЛИОТЕКИ ФУНКЦИОНАЛЬНЫХ БЛОКОВ6
СТРУКТУРНАЯ МОДЕЛЬ СИСТЕМЫ19
РАЗРАБОТКА ПЛАНА ЭКСПЕРИМЕНТОВ20
РЕЗУЛЬТАТЫ ИМИТАЦИОННЫХ ЭКСПЕРИМЕНТОВ21
РАСЧЕТ ХАРАКТЕРИСТИК СИСТЕМЫ22
ВЫВОДЫ23
ПРИЛОЖЕНИЕ24
Задание
В оптовом магазине используется новая процедура обслуживания клиентов. Клиенты, попадая в магазин, определяют по каталогу наименования товаров, которые они хотели бы приобрести. После этого клиент обслуживается клерком, который идет на расположенный рядом склад и приносит необходимый товар. Каждый из клерков может обслуживать одновременно не более шести клиентов.
Время, которое затрачивает клерк на путь к складу равномерно распределено на интервале от 0,5 до 1,5 мин. Время поиска товара нужного наименования зависит от числа наименований, которое клерк должен найти на складе. Это время нормально распределено с математическим ожиданием, равным утроенному числу искомых наименований, и среднеквадратичным отклонением, равным 0,2 математического ожидания. Время возвращения со склада равномерно распределено на интервале от 0,5 до 1,5 мин. По возвращении со склада клерк рассчитывается с клиентами, которых он обслуживает. Время расчета с клиентом равномерно распределено на интервале от 1 до 3 мин. Расчет производится в том порядке, в каком к клерку поступали заявки на товар. Интервалы между моментами поступления заявок на товары от клиентов экспоненциально распределены с математическим ожиданием, равным 2 мин. Клиентов в магазине обслуживают три клерка.
Продолжительность имитационного прогона составляет 1000 мин.
Цель моделирования - определить следующее:
1. Среднюю занятость клерков
2. Число заявок, удовлетворяемых за один выход на склад
3. Среднее время обслуживания клиентов
4. Число выходов клерков на склад
5. Среднее время ожидания клиента в очереди
6. Среднее число заявок в очереди
7. Число пришедших в Оптовый Магазин клиентов
Концептуальная модель
Рассматриваемая система включает в себя следующие объекты:
1. клиент - человек, пришедший в оптовый магазин для того, чтобы выбрать желаемый товар по каталогу и сделать покупку;
2. очередь - некоторое пространство в оптовом магазине, которое предназначено для тех клиентов, которые пришли в магазин, но в этот момент не оказалось незанятых клерков (клиенты не уходят, а ждут обслуживания в порядке поступления);
3. клерк - работник магазина, осуществляющий обслуживание клиентов (выполняет операции с товаром и рассчитывается с клиентом).
ОбъектАтрибутыКлиентВремя прихода в магазин - время поступления очередной заявки на обслуживание (интервалы между заявками имеют экспоненциальное распределение)
Время ухода из магазина - время, равное сумме времени прихода в магазин, времени ожидания клиента в очереди и времени обслуживания клиента клерком (поход на склад, поиск товара, возвращение, расчет)ОчередьЧисло клиентов в очереди - отражает то количество клиентов, которое вынуждено ожидать начала обслуживания по причине занятости всех клерковКлеркПризнак занятости - отражает тот факт, что данный клерк уже принял к обслуживанию некоторое количество заявок (клиентов) и еще не закончил работу с ними (не произвел расчет с каждым клиентом)
Число обслуживаемых клиентов - количество принятых к обслуживанию заявок (клиентов)
Время пути к складу - случайная величина, определяющая время пути клерка на склад с товаром
Время выбора товара - случайная величина, определяющая время выбора клерком товара нужного наименования (зависит от числа обслуживаемых клиентов)
Время пути со склада - случайная величина, определяющая время пути клерка со склада с товаром
Время расчета с клиентами
Диаграмма связей
Разработка библиотеки функциональных блоков
Концептуальная модель системы
Библиотека блоков
Основные функциональные блоки
для построения модели Оптового Магазина
Наименование: Клиенты.
Назначение: Создает (генерирует) поток событий с заданным распределением интервалов времени между ними. Используется для имитации потока клиентов в оптовый магазин.
Изображение:Описание входов: отсутствуют
Описание выходов:
* Единственный выход представляет собой количество клиентов, пришедших в оптовый магазин на текущем шаге интегрирования модели.
Состояния элемента: Элемент может находиться либо в состоянии отсчета запланированного времени прихода очередного клиента, либо в состоянии индикации этого события (генерация выходного импульса) и немедленного планирования времени следующего события.
События, на которые реагирует элемент: Элемент не реагирует на внешние события. Единственное внутренне событие, вызывающее его реакцию - наступление времени свершения очередного события (приход клиента).
Алгоритм функционирования: После отсчета блоком "задержка" заданного интервала времени, на выход подается импульс (сигнал о том, что пришел клиент) и перезапускается генератор экспоненциально распределенной случайной величины (подсистема "exp gen", см. Приложение) для получения следующего значения временного интервала.
Блок-схема модели:Параметры, устанавливаемые пользователем: * N - математическое ожидание экспоненциального распределения между поступлениями заявок.
Окно установки параметров:
Наименование: Очередь.
Назначение: Предназначен для организации очереди клиентов.
Изображение:Описание входов: * Поступающие заявки, то есть импульсы, генерируемые блоком "Клиенты".
* Сигнал очереди, за вычетом тех заявок, которые были приняты к обработке на текущем шаге интегрирования модели (второй выход последнего "Клерка" в цепочке).
Описание выходов: * Количество заявок (клиентов, ожидающих обслуживания) находятся в очереди в текущий момент времени.
Состояния элемента: Элемент находится в стационарном состоянии обработки поступающих заявок (клиентов).
События, на которые реагирует элемент: Элемент реагирует на поступление новой заявки (клиента).
Алгоритм функционирования: Поступающая заявка (на первый вход подается сигнал 1) суммируется с текущим количеством не обслуженных клиентов в очереди (вход 2) и результат формируется на единственном выходе.
Блок-схема модели:Параметры, устанавливаемые пользователем: * INUM - число заявок, находящиеся в очереди в начале имитационного прогона.
Окно установки параметров:
Наименование: Клерк.
Назначение: Обслуживание клиентов.
Изображение:Описание входов: * Вектор статистики, собранной предыдущим "клерком" в цепочке.
* Состояние очереди (количество заявок).
Описание выходов: * Вектор статистики, измененный с учетом состояния данного клерка.
* Состояние очереди (количество заявок).
Состояния элемента: Элемент может находиться либо в состоянии "свободен", когда клерк не занят обслуживанием и может принять к обслуживанию некоторое число заявок, либо в состоянии "занят", когда клерк уже принял к обслуживанию некоторое количество заявок и находится в процессе их удовлетворения.
События, на которые реагирует элемент: Элемент реагирует на состояние очереди (второй вход), изменяя при необходимости количество заявок в ней.
Алгоритм функционирования: В случае, когда клерк свободен (выход модуля "ДНИ занятости" равен нулю) и в очереди присутствует некоторое (удовлетворяющее заданным условиям) заявок, из очереди вычитается некоторое количество (заданное параметрами) заявок и в зависимости от их количества вычисляется время, необходимое на их обработку (это делает подсистема "Время обслуживания", см. Приложение). При этом состояние клерка переходит в состояние "занят" (выход модуля "ДНИ занятости" не равен нулю, в этом состоянии клерк не принимает заявки на обработку). По достижении заданного интервала времени модулем "Задержка" вырабатывается сигнал окончания обслуживания, который изменяет состояние клерка (сбрасывает до нуля состояние модуля "ДНИ занятости"). Попутно вычисляется и добавляется в вектору статистики (вход "stat in") статистические данные клерка.
Блок-схема модели:Параметры, устанавливаемые пользователем: * CL (вектор) - Минимальное и максимальное число клиентов, с которыми клерк должен работать одновременно.
* TOSTORE (вектор) - Границы (минимальное и максимальное значение) равномерно распределенной случайной величины, представляющей собой время пути клерка на склад.
* FROMSTORE (вектор) - Границы (минимальное и максимальное значение) равномерно распределенной случайной величины, представляющей собой время пути клерка со склада.
* SEL (вектор) - Коэффициент ожидания и коэффициент среднеквадратичного отклонения случайной величины, который будучи умноженными на количество обслуживаемых клиентов задают параметры нормально распределенной случайной величины, представляющей собой время, необходимое клерку на поиск необходимого товара.
* RASCH (вектор) - Границы (минимальное и максимальное значение) равномерно распределенной случайной величины, представляющей собой время расчета клерка с одним клиентом.
Окно установки параметров:
Наименование: Статистика.
Назначение: Вычисляет средние статистические характеристики системы.
Изображение:Описание входов: * Поступающие на обслуживание заявки.
* Вектор статистики, полученный с первого выхода последнего клерка в цепочке.
* Состояние очереди после последнего клерка в цепочке.
Описание выходов: * Среднее число занятых клерков.
* Среднее число заявок, удовлетворяемых клерком за один выход на склад.
* Среднее время обслуживания клиентов.
* Общее количество выходов клерков на склад.
* Среднее время ожидания заявки в очереди.
* Среднее число заявок в очереди.
* Количество пришедших клиентов.
Состояния элемента: Элемент постоянно находится в одном состоянии - в состоянии вычисления средних статистических характеристик.
События, на которые реагирует элемент: Элемент реагирует на изменение входного статистического вектора (первый вход) и на изменение состояния очереди (второй вход).
Алгоритм функционирования: Элемент демультиплексирует входной вектор статистики и вычисляет усредненные характеристики, записанные в элементах этого вектора.
Блок-схема модели:Параметры, устанавливаемые пользователем: отсутствуют
Окно установки параметров:
Наименование: Начальная статистика.
Назначение: Начальный вектор для вычисления статистики.
Изображение:Описание входов: отсутствуют
Описание выходов: * Начальный (нулевой) вектор статистики.
Состояния элемента: отсутствуют
События, на которые реагирует элемент: отсутствуют
Алгоритм функционирования: Мультиплексирование нулевых значений в единый вектор.
Блок-схема модели:Параметры, устанавливаемые пользователем: отсутствуют
Окно установки параметров:
Вспомогательные функциональные блоки
для построения основных функциональных
блоков модели Оптового Магазина
Наименование: Дискретно-непрерывный интегратор.
Назначение: Интегрирование величин с дискретизацией, равной текущему шагу интегрирования модели.
Изображение:Описание входов: * Интегрируемая величина.
Описание выходов: * Результат интегрирования.
Состояния элемента: Элемент находится в состоянии запоминания предыдущего значения результата.
События, на которые реагирует элемент: Входная величина.
Алгоритм функционирования: Значение на выходе элемента "Memory1" (задержка на один шаг интегрирования) складывается с текущим значением входной величины. Результат сложения на следующем шаге появляется на выходе.
Блок-схема модели:Параметры, устанавливаемые пользователем: * IC - Начальное состояние интегратора (значение на выходе в начале имитационного прогона).
Окно установки параметров:
Наименование: Дискретно-непрерывный интегратор со сбросом.
Назначение: Интегрирование величин с дискретизацией, равной текущему шагу интегрирования модели и возможность сброса (обнуления).
Изображение:Описание входов: * Интегрируемая величина.
* Сигнал сброса интегратора.
Описание выходов: * Результат интегрирования.
Состояния элемента: Элемент находится в состоянии запоминания предыдущего значения результата, либо в состоянии обнуления (пои ненулевом значении сигнала на втором входе).
События, на которые реагирует элемент: Входная величина, сигнал сброса.
Алгоритм функционирования: Значение на выходе элемента "Memory1" (задержка на один шаг интегрирования) складывается с текущим значением входной величины. Результат сложения на следующем шаге появляется на выходе. В случает ненулевой входной величины на втором входе, текущее значение интегратора умножается на ноль, тем самым сбрасывая (обнуляя) значение на выходе интегратора.
Блок-схема модели:Параметры, устанавливаемые пользователем: * IC - Начальное состояние интегратора (значение на выходе в начале имитационного прогона).
Окно установки параметров:
Наименование: Задержка.
Назначение: Отсчитывание заданных промежутков времени.
Изображение:Описание входов: * Импульс, длиной в один шаг интегрирования, представляющий собой время (в единицах интегрирования модели), через которое необходимо выдать импульс.
Описание выходов: * Импульс, длиной в один шаг интегрирования, означающий, что заданный интервал времени истек.
Состояния элемента: Элемент находится либо в состоянии отсчета промежутка времени, либо в состоянии ожидания сигнала задания промежутка.
События, на которые реагирует элемент: Импульс на входе, задающий время.
Алгоритм функционирования: При поступлении входного импульса (он не должен быть нулевым, в этом случае необходимо подать любое отрицательное значение) происходит сброс интегратора непрерывного времени "Integrator". На вход интегратора постоянно подается значение "-1", что приводит к уменьшению значения на выходе интегратора пропорционально текущему системному времени. При достижении нуля интегратором, блок "Hit Crossing" выдает единичный выходной импульс (длительностью в один шаг интегрирования), который и символизирует об окончании отсчета временного интервала.
Блок-схема модели:Параметры, устанавливаемые пользователем: отсутствуют
Окно установки параметров:
Наименование: Блок деления без ошибки.
Назначение: Производит деление двух чисел, избегая ошибки "деление на ноль" с случае отсутствия (равенства нулю) знаменателя.
Изображение:Описание входов: * Числитель.
* Знаменатель.
Описание выходов: * Частное.
Состояния элемента: Элемент не имеет состояний.
События, на которые реагирует элемент: Входные мвеличины.
Алгоритм функционирования: Если вход "знаменатель" равен нулю, то к нему добавляется число "1", для избежания ошибки. Далее производится деление.
Блок-схема модели:Параметры, устанавливаемые пользователем: отсутствуют
Окно установки параметров:
Наименование: Среднее значение.
Назначение: Вычисление среднего значения входной величины.
Изображение:Описание входов: * Входная величина.
Описание выходов: * Среднее значение входной величины.
Состояния элемента: отсутствуют
События, на которые реагирует элемент: Входная величина.
Алгоритм функционирования: Интегрирование входной величины и системного (имитационного) времени. Результат деления - среднее значение.
Блок-схема модели:Параметры, устанавливаемые пользователем: отсутствуют
Окно установки параметров:
Наименование: Дискретно-среднее значение.
Назначение: Вычисление среднего значения дискретных (одношаговых) импульсов.
Изображение:Описание входов: * Входная величина (импульсы).
Описание выходов: * Среднее значение.
Состояния элемента: отсутствуют
События, на которые реагирует элемент: Входная величина.
Алгоритм функционирования: Интегрирование с помощью "Дискретно-непрерывных интеграторов" входных импульсов и их количества с последующим безопасным делением.
Блок-схема модели:Параметры, устанавливаемые пользователем: отсутствуют
Окно установки параметров:
Наименование: Шаг.
Назначение: Вычисление шага интегрирования.
Изображение:Описание входов: отсутствуют
Описание выходов: * Значение шага интегрирования.
Состояния элемента: отсутствуют
События, на которые реагирует элемент: Изменение времени (интегрирование модели).
Алгоритм функционирования: Производится интегрирование единичной величины и вычисление разности интеграла на текущем и предыдущем шагах интегрирования модели.
Блок-схема модели:Параметры, устанавливаемые пользователем: отсутствуют
Окно установки параметров:
Структурная модель системы
Блок-схема модели
Описание модели
Модель работы Оптового Магазина состоит из "Клиентов", "Очереди" и трех "Клерков". Сигналы, символизирующие клиентов, поступают в "очередь". Далее из "очереди" клиенты поступают к "Клеркам". Если клерк занят, то он передает следующему в цепочке клерку то же значение количества заявок в очереди, что принял сам. В противном случае (когда клерк свободен), клерк вычитает (принимает на обработку, иначе говоря, начинает обслуживать) из очереди некоторое количество заявок (по заданию - не более шести) и переходит в состояние "занят". Состояние очереди (второй выход последнего в цепочке клерка) передается "Очереди" и представляет собой число заявок, не принятых на обслуживание на данном шаге интегрирования. Средняя статистическая информация, собираемая клерками (первый вход клерка -> первый выход) обрабатывается модулем "Статистика". Выходные величины этого модуля могут быть визуализированы с помощью модулей "Display" либо "Scope".
Разработка плана экспериментов
Для получения интегральных характеристик системы (см. Задание), принимая во внимание широкое использование случайных величин, необходимо провести целый ряд экспериментов (имитационных прогонов) и усреднение результатов при параметрах модели, указанных в задании.
При проведении экспериментов будут установлены следующие параметры:
Время интегрирования (мин)1000Метод интегрированияDormand-Prince (ode45)Шаг интегрированияVariable, auto; 0.05 maxМатематическое ожидание интервалов между приходом клиентов (мин)2Число одновременно обслуживаемых клиентовне более 6Границы времени пути клерка на склад (мин)0.5 ... 1.5Ожидание и отклонения поиска одного наименования (мин)3, 3*0.2Границы времени пути клерка со склада (мин)0.5 ... 1.5Границы времени расчета клерка с одним клиентом (мин)1 ... 3Число клерков в магазине3
В ходе имитации будут определены следующие измеряемые величины:
* Средняя занятость клерков
* Число заявок, удовлетворяемых за один выход на склад
* Среднее время обслуживания клиентов
* Число выходов клерков на склад
* Среднее время ожидания клиента в очереди
* Среднее число заявок в очереди
* Число пришедших в Оптовый Магазин клиентов
Результаты имитационных экспериментов
№ п/пСредняя занятость клерковЧисло заявок, удовлетв. за один выходСреднее время обслуживанияЧисло выходов на складСреднее время ожидания в очередиСреднее число заявок в очередиЧисло пришедших клиентов12.8712.36613.852093.6681.78249522.9223.56819.691509.8625.06852132.8422.67014.991914.9652.48350142.9352.68515.271934.6452.32750552.8892.45314.342025.5112.657492
Расчет характеристик системы
Графики процессов
Число занятых клерков
Время обслуживания
Основные характеристики системы
Средняя занятость клерковЧисло заявок, удовлетв. за один выходСреднее время обслуживанияЧисло выходов на складСреднее время ожидания в очередиСреднее число заявок в очередиЧисло пришедших клиентовСреднее2,8922,74815,631895,7302,863503Дисперсия0,001430,2295,464527,55,7841,626129,2
Выводы
В ходе курсовой работы была проанализирована и смоделирована в среде simulink работа оптового магазина. Были изучены и применены на практике приемы работы со средой моделирования и с программным комплексом Mat LAB в целом. Так же были рассчитаны заданные параметры системы.
Полученные результаты показывают, что руководству магазина необходимо нанять еще нескольких клерков или поменять процедуру обслуживания в зависимости от минимального и максимального числа клиентов, которое один клерк должен обслуживать одновременно. Совершенствование модели, по мнению автора работы, нецелесообразно (по крайней мере на данном этапе), так как это не приведет к значительному экономическому эффекту от оптимизации работы магазина.
Приложение
Подсистемы основных библиотечных блоков
Клиенты: exp gen
Управляемая (reset) подсистема для генерации экспоненциально распределенных случайных величин.
MATLAB Function:
random('exp', N)Клерк: Время обслуживания
Управляемая (reset) подсистема для генерации времени обслуживания заданного числа клиентов.
MATLAB Functions:
random('unif', TOSTORE(1), TOSTORE(2))
random('norm', SEL(1)*u, SEL(2)*u)
random('unif', FROMSTORE(1), FROMSTORE(2))
ws_getraschtime(u, 'unif', RASCH(1), RASCH(2))
Подпрограмма на языке MATLAB
ws_getraschtime.m
function r = ws_getraschtime(clcount, type, p1, p2)
% Функция вычисляет время, необходимое для расчета
% с заданным числом клиентов.
res = 0;
% Время расчета с клиентами равно сумме случайных
% величин с заданным законом распределения
for i=1:clcount
res = res + random(type, p1, p2);
end
r = res;
2
Документ
Категория
Рефераты
Просмотров
57
Размер файла
264 Кб
Теги
salexkurs
1/--страниц
Пожаловаться на содержимое документа