Исследование систем массового обслуживания средствами MatLab в курсе 'Моделирование систем'

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    25 Кб
  • Опубликовано:
    2017-07-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Исследование систем массового обслуживания средствами MatLab в курсе 'Моделирование систем'

Введение

программный пользователь matlab имитационный

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

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

Моделирование используется во многих сферах: бизнес, производство, научные исследования (физические, математические, химические), строительство, машиностроение. Поэтому в настоящее время разработано несколько десятков программных сред, предназначенных для построения и анализа систем.

В выпускной квалификационной работе необходимо разработать имитационную модель системы массового обслуживания. Для моделирования системы был выбран программный продукт Matlab. Построение моделей будет осуществляться с помощью блоков и различных элементов модулей Simulink, SimEvents. Программа Simulink является приложением к пакету Matlab, в котором реализуется принцип визуального программирования. Для моделирования в программной среде Matlab/ Simulink пользователю не нужно изучать язык программирования, как в универсальных языках, таких как C, Delphi, а только необходимо знать предметную область, в которой он работает, и библиотеки блоков из которых создает модель. Также в ВКР необходимо выяснить достоинства и недостатки этой среды, и сравнить с другими программными средствами имитационного моделирования систем массового обслуживания.

1.Программные средства имитационного моделирования систем массового обслуживания

1.1Обзор и анализ

Имитационное моделирование (англ. Simulation) - самый мощный инструмент исследования сложных систем, управление которыми связано с принятием решений в условиях неопределённости. Имитационное моделирование получило первоначальный толчок в ходе реализации авиакосмических программ. В настоящее время имитационное моделирование успешно используется во всех областях знаний[1].

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

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

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

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

Программные средства имитационного моделирования можно разделить на четыре группы[2]:

.Программирование модели с помощью универсальных языков, например, Pascal, C++, Delphi. Динамику системы описывают уравнениями в программу, затем проводят расчет и устанавливают связь выходных величин с входными.

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

.Построение компьютерных моделей при помощи специализированных сред, например, таких как Arena, VisSim, GPSS World. В этом случае, модель составляют из библиотечных графических модулей и заполняют специальные формы. Среда обеспечивает возможность визуализации процесса имитации и позволяет проводить анализ и поиск оптимальных решений.

.Средства имитационного моделирования в математических компьютерных системах: MatLab∕Simulink, Mathcad. Они предназначены для выполнения технических и математических расчетов, которые предоставляют пользователю инструменты для работы с числами, формулами, графиками, включают в себя средства для управления, а также снабжены графическим интерфейсом.

Языки имитационного моделирования имеют несколько преимуществ перед языками общего назначения:

·возможность описания структуры и алгоритмов функционирования исследуемой системы в терминах языков имитационного моделирования;

·простота применения языка для поставленной задачи;

·машинная реализация и методы обработки и визуализации результатов прогона модели;

Таким образом, язык, инструменты и встроенные математические функции позволяют исследовать различные подходы и получать решение быстрее, чем с использованием электронных таблиц или традиционных языков программирования, таких как C/C++ или Java.

Также в сфере имитационного моделирования систем массового обслуживания выделяют три категории при построении моделей: потоковые диаграммы, динамическое и дискретно-событийное моделирование[3].

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

Программные продукты динамического моделирования позволяют отображать динамику системы. Здесь модели состоят из логических структур, таких как потоки, уровни, стеки, соединители и преобразователи. Примерами программ являются Bizagi, IThink, PowerSim.

Дискретно-событийное моделирование является наиболее развитым и широко используемым. Программные средства поддерживают моделирование потока объектов, позволяют пользователю проводить эксперименты и наблюдать за движением в системе. Наиболее удобным средством имитационного моделирования систем массового обслуживания является MatLab∕Simulink.

Инструментарий MatLab∕Simulink включает в себя среду SimEvents и позволяет осуществлять моделирование сложных динамических систем. Ввод параметров производится путем графической сборки схемы соединений блоков. Блоки могут быть связаны друг с другом. Тип связи зависит от типа блока и работы модели. Библиотека блоков представляет собой набор визуальных объектов у которых настраиваются внутренние и внешние параметры. В пакете MATLab/Simulink имеется большой набор блоков, обеспечивающих при моделировании воздействия с разными временными и функциональными зависимостями, а также блоки получателей информации.

1.2Постановка задачи

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

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

Целью выпускной квалификационной работы является изучение алгоритмов функционирования систем массового обслуживания. Примером такой системы будет производственный процесс, в котором нужно смоделировать обработку деталей на участке цеха. Для разработки и исследования системы была выбрана среда MATLab/Simulink, библиотека SimEvents. Эта библиотека представляет собой набор блоков Simulink, предназначенных для имитационного моделирования систем массового обслуживания и обладает рядом свойств и функций:

·в состав библиотеки входят модули, описывающие очереди с различными дисциплинами обслуживания;

·имеются блоки для описания различных каналов обслуживания;

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

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

Перечисленные особенности определяют выбор библиотеки SimEvents программной среды MATLab/Simulink в качестве основного инструментального средства для решения поставленной задачи.

2.Программная среда Matlab

2.1Интерфейс Matlab

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

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

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

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

Работа в среде MatLab может осуществляться в двух режимах:

·В режиме калькулятора, когда в начале вводятся все операторы и команды, а потом производятся вычисления; при этом значения результатов вычисления могут присваиваться переменным, либо без присвоения переменным (как в обычных калькуляторах);

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

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

Отличительной чертой системы является легкость ее модификации и адаптации к конкретным задачам пользователя. Если пользователю не хватает возможностей системы, он может вводить в нее любую новую команду, оператор или функцию и затем пользоваться ими так же, как и встроенными операторами и функциями. При этом нет необходимости в их предварительном описании. Новые программы, функции и процедуры в системе MatLab сохраняются в виде файлов, имеющих расширение.m. Это делает набор операторов и функций практически неограниченным[4].

Вся совокупность средств общения пользователя с системой MatLab именуется интерфейсом пользователя. Как и любая программа, MatLab имеет основное окно с титульной строкой, строкой меню, панелью инструментов, строкой статуса и другими компонентами.

Панель инструментов основного окна MATLAB достаточно проста и содержит знакомые большинству пользователей кнопки (в соответствии с рисунком 2.1).

Рисунок 2.1. Интерфейс программной среды Matlab

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

По умолчанию на рабочем интерфейсе располагаются меню, панель инструментов, строка состояния и четыре окна: Command Window (Командное окно), Current Directory (Текущий каталог) и Workspace (Рабочая область) и Command History (История команд). Панель инструментов содержит значки (ярлыки), предоставляющие доступ к некоторым элементам программы[5].

Окно Command Window состоит из заголовка с названием окна, рабочей области с командной строкой. На рабочей области находится символ >> приглашения командной строки, после которого следует набирать команды и инструкции. При нажатии кнопки Enter программа выполняет эту команду и выводит результаты. Через командную строка также можно открывать окна и вызывать библиотеки. Например, если набрать simevents, откроется библиотека блоков для имитационного моделирования.

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

Новые файлы, разработанные в программе MatLab, будут хранится в текущем каталоге, то есть в окне Current Directory. Имя каталога отображается на панели инструмента. При необходимости возможно заменить текущий каталог или держать отдельные каталоги для разных проектов.

Окно Command History предназначено для просмотра и повторного выполнения ранее введенных команд.

В строке состояния находится кнопка Start. При нажатии на нее открывается меню, с помощью обеспечивается доступ ко всем основным средствам MatLab, в том числе к подсистеме SimuLink, блокам, разделу помощи и так далее.

2.2Подсистема Simulink

- это графическая среда, которая при помощи блок-диаграмм позволяет моделировать и анализировать линейные, нелинейные, непрерывные, дискретные и гибридные динамические системы. Подсистема включает в себя библиотеку блоков, которые используются для графической сборки систем. Интерактивная среда Simulink позволяет применять уже готовые библиотеки блоков для моделирования, такие как непрерывные, дискретные, линейные, нелинейные составляющие, источники сигналов и другие. В том случае, если блоки, реализованные в MATLAB Simulink, не подходят для решения поставленной задачи, то пользователь имеет возможность создать свой оригинальный блок или библиотеку блоков, как на языке MATLAB, так и на других языках.обеспечивает интерактивную среду для моделирования, при этом поведение модели и результаты ее функционирования отображаются в процессе работы, как только началась симуляция. Возможно задавать скорость симуляции, длительность работы системы и изменять параметры модели в тот момент, когда она выполняется. Чтобы наблюдать за работой системы и следить за ее состоянием используются специальные устройства наблюдения, которые входят в состав библиотеки Simulink. К данным устройствам относятся: дисплей, осциллограф и другие. Результаты моделирования могут быть представлены в виде таблиц, графиков или просто выводятся на дисплей и другие приборы.

С поддержкой специализированные приложений расширения Simulink, таких как Stateflow, Real-Time Workshop, DSP Blockset, появилась возможность моделировать поведение сложных событийно-управляемых систем, базируясь на теории конечных автоматов. Пользователю предоставляется автоматическая генерация кода на языке С для непрерывных, дискретных и иных систем. Так же применяется интерактивный подход к автоматизированному проектированию систем управления.

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

2.3Библиотека SimEvents

- это библиотека SimuLink, которая представляет собой ядро для дискретно-событийного моделирования. Позволяет моделировать взаимодействия между компонентами, основанные на событиях, создавать имитационные модели, чтобы анализировать характеристики производительности, пропускную способность, потерю пакетов и другие характеристики. С помощью SimEvents можно разрабатывать распределенные системы управления, аппаратные архитектуры, коммуникационные сети для космических, электронных и автомобильных приложений. Также библиотека дает возможность симулировать событийные процессы, такие, как выполнение плана производства для стадий производственного процесса.предлагает библиотеку блоков, которая позволяет создавать, сохранять, обрабатывать и перемещать сущности в системе, моделировать как простые, так и сложные сети серверов и очередей. Создавая связи между блоки, можно устанавливать пути, по которым сущности будут перемещаться. Эти пути могут включать задержки и выборочные критерии переключения. Многие параметры в SimEvents могут быть статистически определены для моделирования вероятностных вариаций в системе. SimEvents дает возможность пользователю создавать собственные библиотечные блоки библиотеки, используя ключевые возможности Simulink.


Рисунок 2.2. Блоки библиотеки SimEvents

Основная библиотека - Generators. Она содержит блоки для создания сущностей (заявок), основанных на времени или сигналах. Так же есть библиотеки для обработки, приема, разделения и упаковки сущностей, для установки и чтения атрибутов сущности.

Результаты моделирования могут быть выведены как в виде чисел, коэффициентов, на блок «Display», который находится в библиотеке SimuLink, в виде графиков на осциллораф «Signal Scope», и в форме анимации. С помощью их можно наблюдать движение сущностей, генерацию событий, исследовать поведение системы и проверять последовательность выполнения блоков. Так же они выдают статистику, которая позволяет оценивать состояние системы в целом.

Time-based entity generator

Блок, представленный на рисунке 2.3, генерирует входящие в систему заявки.

Рисунок 2.3. Блок генерации заявок

Event-Based Random Number

Блок, представленный на рисунке 2.4, является генератором случайных чисел с заданным законом распределения.

Рисунок 2.4. Генератор случайных чисел

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

Signal Scope

Signal Scope - специальный осциллограф, представленный на присунке 2.5, предназначенный для работы с другими блоками библиотеки SimEvents.

Рисунок 2.5. Анализатор потока событий

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

Entity Sink

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

Рисунок 2.6. Приемник заявок

Он является необходимым элементом каждой модели и имеет неограниченной емкости, если включена опция «Input port available for entity arrivals». Блок позволяет показать количество поступивших в него заявок после включения опции «Report number of entities arrived»

Single Server

Блок, представленный на рисунке 2.7, моделирует работу одиночного обслуживающего сервера.


Рисунок 2.7. Одноканальный сервер

На первой вкладке настроек выбирается источник информации о длительности обслуживания заявок: диалог («Dialog»), сигнальный порт («Signal port t») или атрибут самой заявки («Attribute»). В первом случае время обслуживания каждой заявки будет фиксировано. Во втором - через внешний порт можно задать сигнал, определяющий время обслуживания в соответствии с каким-либо видом статистического распределения. В третьем время обслуживания заложено в атрибуте самой заявки.

Дополнительный выход «TO» можно включит в третей вкладке. Он предназначен для заявок, у которых истекло время терпения нахождения в системе.

Четвертая вкладка «Statistics» содержит список возможных информационных сигналов с сервера: «Number of entities departed» - текущее число покинувших сервер заявок; «Number of entities in block» - текущее количество заявок на обслуживании; «Pending entity present in block» - текущее количество задержанных в блоке из-за блокировки выхода заявок; «Average wait» - фактическое среднее время нахождения заявки на обслуживании; «Utilization» - коэффициент занятости сервера, он же среднее число занятых каналов; «Number of entities timed out» - текущее число заявок, покинувших сервер по причине завершения времени терпения.

N-Server

Блок, представленный на рисунке 2.8, моделирует работу N независимых параллельных серверов.


Рисунок 2.8. Многоканальный сервер

В настройках можно задать число серверов и другие параметры, аналогичные параметрам Single Server.

Set Attribute

Блок, представленный на рисунке 2.9, задает заявке дополнительные атрибуты.

Рисунок 2.9. Блок установки атрибутов

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

Output Switch

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

Рисунок 2.10. Коммутатор потоков

Число направлений можно указать в настройках. Возможные правила: «Round robin» - каждая следующая заявка подается на следующий свободный порт по кругу; «Equiprobable» - равновероятный выбор; «First port that is not blocked» - первый свободный порт; «From signal port p» - по внешнему сигналу; «From attribute» - по соответствующему атрибуту.

Path Combiner

Блок, представленный на рисунке 2.11, позволяет объединить заявки, приходящие разными путями, на один выход.

Рисунок 2.11. Агрегатов потоков

Число объединяемых путей задается на первой вкладке настроек. Правила открытия портов могут быть следующие: «IN1 port» - первый порт; «Round robin» - открывается следующий за предыдущим принявшим заявку портом по кругу; «Equiprobable» - равновероятный выбор; «From signal port p» - по внешнему сигналу.

FIFO Queue

Блок, представленный на рисунке 2.12, позволяет организовать очередь из заявок по принципу «первый вошел - первый вышел».

Рисунок 2.12. Блок очереди

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

При необходимости блоку можно задавать несколько выходных портов. Назначение портов:

·#d - Количество объектов, которые покинули этот блок через порт OUT с момента моделирования;

·#n - Количество объектов находящихся в очереди;

·w - Среднее время ожидания объектов, независимо через какой порт они вышли;

·len - Среднее количество объектов в очереди за все время;

·#to - Количество объектов покинувших блок при истечении времени ожидания.

3.Разработка имитационных моделей СМО в среде Simevents (Matlab/Simulink)

3.1Общие сведения о СМО

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

Система массового обслуживания (СМО) - система, в которой поток некоторых объектов обрабатывается обслуживающими устройствами. Она производит обслуживание (выполнение) поступающих в неё требований (заявок). Процессы поступления и обслуживания заявок в таких системах являются случайными. Из-за случайного, непредсказуемого характера потока заявок и длительности их обслуживания возникают различные проблемные ситуации. Это приводит к неравномерной и непостоянной загруженности СМО, образованию больших очередей и отказы в обслуживании. В определенные промежутки времени на входе СМО может происходить скопление заявки, которое приводит к перегрузке СМО, в другие же интервалы времени при свободных каналах (устройствах обслуживания) на входе СМО заявок не будет, что приводит к недогрузке СМО, то есть к простаиванию её каналов. Заявки, скапливающиеся на входе СМО, либо «становятся» в очередь, либо по какой-то причине невозможности дальнейшего пребывания в очереди остаются необслуженными и покидают системы.

Основными элементами СМО, в соответствии с рисунком 3.1, являются: входной (входящий) поток требований (заявок) на обслуживание, приборы (каналы) обслуживания, очередь (накопитель) заявок, ожидающих обслуживания, выходной (выходящий) поток обслуженных заявок, поток не обслуженных заявок, очередь свободных каналов (для многоканальных СМО). [6]

Рисунок 3.1. Система массового обслуживания

Эффективность функционирования СМО определяется ее пропускной способностью - относительным числом обслуженных заявок.

Все СМО классифицируются по ряду признаков.

По числу каналов все СМО разделяются на одноканальные, где число каналов равно единице, и многоканальные, где число каналов два и более. Многоканальные СМО бывают как однородными (по каналам), так и разнородными (по продолжительности обслуживания заявок).

По дисциплине обслуживания, в соответствии с рисунком 3.2, различают СМО с отказами и с очередью.

Рисунок 3.2. Классификация СМО

Системы с отказами, в которых заявка, не нашедшая в момент поступления ни одного свободного прибора покидает СМО и в дальнейшем не обслуживается. Примером такой системы является вызов абонента через автоматическую телефонную станцию. В СМО с очередью заявка, которая пришла в момент, когда все каналы заняты, не уходит, а ожидает в очереди возможности быть обслуженной. Примерами являются торговля, сфера медицинского обслуживания. СМО с очередями могут быть ограничены или нет. Системы с ожиданием, не ограниченные, в которых имеется накопитель бесконечной ёмкости для буферизации поступивших заявок. Если соединить системы с отказами и с ожиданием, то получится еще одна система - с ожиданием и ограничениями. Она имеет накопителем конечной ёмкости. В таких системах длина очереди или время пребывания заявки имеют ограничение и не могут превышать ёмкости накопителя. При этом заявка, поступающая в переполненную СМО (отсутствуют свободные места для ожидания), теряется. Так же есть СМО с обслуживанием с приоритетом, то есть некоторые заявки обслуживаются вне очереди. [6]

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

Кроме этого СМО делятся на открытые и замкнутые. В открытой СМО характеристики потока заявок не зависят от того, в каком состоянии сама СМО (сколько каналов занято). В замкнутой СМО - зависят.

3.2Разработка подсистем моделирования

Анализ основных требований

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

Условие: на обрабатывающий участок цеха поступают детали через 30 + 10 секунд, которые обрабатываются последовательно на двух станках. Первичная обработка деталей производится на первом станке, который обрабатывает деталь в среднем 20 + 10 секунд, второй - соответственно 10 + 5 секунд. Загрузка станков производится манипуляторами за 5 + 2 секунды каждый; выгрузка автоматическая. В случае простоя второго станка на нем обрабатываются дополнительные детали, поступающие на него через 60 + 10 секунд. Смоделировать обработку на участке 500 деталей.

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

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

Подсистема источника заявок

Схема подсистемы источника заявок представлена на рисунке 3.3.

Приход заявок (заготовок) в систему моделируем при помощи блока Time-based entity generator. Каждая новая заявка может генерироваться через разные промежутки времени, по равномерному или экспоненциальному закону распределения. Заявки могут генерироваться как в самом блоке, так и через внешний порт. В данной работе все настройке проведены внутри блока. Задан тип распределения и необходимые параметры.

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

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


После генерации и задания атрибутов заявки направляются в очередь.

Подсистема Очереди

В эту подсистему входит блок, который реализует очередь сущностей (заявок) заданной емкости с дисциплиной обслуживания FIFO, в соответствии с рисунком 3.4. Блок работает по принципу «первый вошел - первый вышел», то есть принимает на вход заявку, ставит ее в конец очереди, а заявку, стоящую в начале очереди отправляет на выход. Кроме того, блок в каждый момент опроса сообщает свое содержимое (количество заявок в очереди, количество обслуженный заявок).

Рисунок 3.4. Подсистема очереди FIFO

В данной работе необходимо, чтобы выполнялось условие: в случае простоя второго станка, на нем обрабатываются дополнительные детали. Для этого используется очередь с приоритетом (Priority queue), в соответствии с рисунком 3.5. Как было описано ранее, в системе два источника заявок. Для того, чтобы объединить все пришедшие в систему заявки в единый поток, используется блок Path Combiner. Весь этот поток поступает в блок Priority Queue. Этот блок выстраивает заявки в очередь, в соответствии с атрибутом ServiceTime. В свойствах блока Priority Queue необходимо задать направление сортировки. В нашем случае задаем направление по убыванию (Sorting direction=Descending), то есть в начале очереди будут стоять заявки с большим приоритетом.

Рисунок 3.5. Подсистема очереди с приоритетом Priority Queue

После этого заявки в порядке очереди отправляются на обслуживающие приборы.

Подсистема канала обслуживания

Основным элементом подсистемы является канал обслуживания (сервер). Он принимает на вход заявку и «обслуживает» (задерживает) ее на заданный период времени. Длительность периода может задаваться как свойство блока, а может быть передана ему через входной сигнал. В данной работе использован входной сигнал. Источником сигнала времени задержки является блок - генератор случайных чисел (Event-Based Random Number). В нем задается тип распределения и необходимые параметры случайной величины.

Рассматриваемая система имеет две фазы обслуживания. I фаза обслуживания - обработка на первом станке, а II фаза обслуживания - об - работка на втором станке.фаза включает первичную обработку основных деталей. Функциональная схема представлена на рисунке 3.6. Для обслуживания заявок требуется два блока Signal Server. Один будет соответствовать обработке заявки манипулятором, другой станком. В этих блоках время обслуживания заявок задается, как уже было написано ранее, через входной сигнал по равномерному закону распределения.

Рисунок 3.6. Подсистема I фазы канала обслуживания

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

·разные интервалы обслуживания;

·обслуживаются разные заявки.

Рисунок 3.7. Подсистема II фазы канала обслуживания

Обслуженные заявки поступают в блок-приемник.

Подсистема приемника заявок

Функциональная схема подсистемы приемника заявок представлена на рисунке 3.8.

Конечным пунктом назначения любой заявки является блок библиотеки SimEvents, обозначенный как приемник заявок (Entity Sink). Он «подавляет» в себе заявку и сообщает в виде сигнала количество пришедших в него заявок. Это количество сравнивается с заданным перед экспериментом количеством заявок. Их совпадение говорит о том, что все заявки, сгенерированные и незаблокированные в источнике, прошли обслуживание.

Для того, чтобы было видно сколько за это время обработалось разных заявок, приемника деталей должно быть два. Для разделения одного потока заявок используется блок Output Switch. Он разделяет поток по нескольким направлениям в соответствии с правилом. Число направлений для данной задачи равно двум, для двух приемников заявок. Заявки могут разделяться по разным правилам: подается на следующий свободный порт, равновероятностный выбор, по внешнему сигналу, по атрибуту. Для системы выбрано последнее правило, по соответствующему атрубуту (Switch). Если атрибут принимает значение 1, то идет на первый выход, если 2 - то на второй.

В данной работе моделирование должно прекращаться после обработки 500 заявок. Для выполнения этого условия необходимы логические и математические блоки. Во-первых, нужно суммировать заявки прошедшие обработку с помощью блока Add. Установить константу, по условию задачи 500. Затем сравнить количество заявок пришедших на выход с выбранной константой (Relational Operator). Остановить моделирование (Stop Simulation).

Рисунок 3.8. Подсистема II фазы канала обслуживания

3.3Обобщение модели и подготовка к моделированию

Перед тем, как соединить все подсистемы в единую систему составим Q-схему - типовая математическая схема систем массового обслуживания. Q-схема представлена на рисунке 3.9.

Рисунок 3.9. Q-схема моделируемого объекта

Соединим подсистемы в систему. Тогда готовая СМО, в соответствии с Приложением 1, будет включать следующие компоненты и моделирующие их блоки:

·два источника заявок (Time-Based Entity Generator) - блоки формирования распределенных во времени сигналов, имитирующих последовательность поступающих на вход системы запросов на обслуживание;

·блок (Set Attribute), позволяющий задать заявке на обслуживание дополнительные атрибуты: номер приоритета и номер выхода;

·накопитель (FIFO Queue) - это блок, реализующие дисциплину обслуживания заявок по принципу «первый вошел - первый вышел»;

·входной переключатель (Path Combiner) - блок, позволяющий объединить заявки, приходящие разными путями, на один выход;

·очередь с приоритетом (Priority Queue) - сортирует заявки в соответствии со значениями атрибута;

·выходной переключатель (Output Switch) - блок, разделяющий потоки заявок;

·четыре канала обслуживания - серверы (Single Server);

·два приемника обслуженных заявок (Entity Sink);

·четыре блока формирования временных интервалов, используемых в качестве времени обслуживания заявок в обслуживающем приборе (Event-Based Random Number);

·четыре блоков визуализации процесса моделирования (Signal Scope);

·дисплеи, отображающие количество сформированных и обслуженных заявок.

Моделируемая СМО имеет две фазы обслуживания. В обе фазы входит по два сервера. I фаза обслуживания - обработка на первом станке, а II фаза обслуживания - обработка на втором станке. I фаза включает обработку основных деталей, а II - основных и дополнительных. Заявки не получают отказ, а ожидают обслуживания в очередях (накопителях) каждой фазы обслуживания. В I фазе очередь из заявок по принципу «первый вошел - первый вышел», во II - очередь с приоритетом. Таким образом, рассматривается многофазное многоканальное обслуживание с ожиданием.

Заявки поступают на обслуживание из двух источников с равномерным распределением: первые на отрезке от 20 до 40 секунд, вторые - от 50 до 70 секунд. Среднее время обслуживания заявок первым и третьим сервером (манипуляторами) составляет 5 + 2 секунды, вторым(станком) - 20 + 10 секунд, четвертым - 10 + 5 секунд. Предположим, что в момент поступления заявки сервер свободен. Тогда обслуживание заявки начинается в этот же момент, т.е. в момент поступления заявки. Когда сервер завершает обработку текущей заявки, он освобождается и готов принять на обработку следующую заявку. После окончания обслуживания заявка покидает систему.

Для каждого блока модели устанавливаются необходимые параметры, соответствующие требованиям моделируемой системы. Чтобы установить параметры необходимо два раза нажать на нужный блок. Окно настроек представлено на рисунке 3.10. К примеру, в блоке Time-based Entity Generator - источник заявок, необходимо установить время обслуживания по равномерному закону. Для начала, чтобы настройки проводить в самом блоке, нужно установить генерирование заявок через диалог - intergeneration time from dialog. Затем распределение (Distribution) равномерное (Uniform), и соответственно промежуток от 20 до 40.


Рисунок 3.10. Окно настроек блока Time-based Entity Generator

Аналогично настраиваются другие блоки.

Во второй фазе обрабатываются все заявки, поэтому для их объединения используется блок Path Combiner. Он объединяет заявки, пришедшие разными путями на один выход. Далее заявки попадают в очередь с приоритетом. В соответствии со свойствами указанными в атрибуте, заявка с более высоким приоритетом проходит дальше на обслуживание, а с низким остается в очереди.

После обработки каналом обслуживания заявки попадают на выходной переключатель Output Switch. Он позволяет установить порядок выхода заявок после обслуживания. Этот блок имеет критерий переключения «from attribute» - направление заявки на один из выходных портов переключателя зависит от свойств заявки. Основные заявки идут на первый выход, дополнительные - на второй. Далее поступают в блок-приемник заявок. Моделирование заканчивается, после обработки 500 заявок.

3.4Проведение эксперимента и результаты имитационного моделирования

Прежде чем начать моделирование нужно установить примерное время, за которое обработается 500 заявок. В меню рабочего окна установим 15000. Нажимаем кнопку Start для начала моделирования. Когда моделирование завершится, блоки Signal Scope откроют окна, содержащие графики. Результаты моделирования представлены в Приложении 2.

Для начало необходимо проверить правильность генерирования заявок. По условиям задачи заявки в первом случае должны генерироваться в промежутке от 20 до 40, а во втором от 50 до 70.

Графики результатов моделирования представлены на рисунке 3.11.

Рисунок 3.11. Генерирование заявок

По графикам видно, что заявки генерируются согласно условиям.

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

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

Таблица 3.1. Сгенерированные и обработанные заявки

ЗаявкиСгенерировалисьПрошли обработкуОсновные334333Дополнительные167167

Для того, чтобы убедится, что система работает правильно, необходимо у дополнительных заявок сократить время генерирования. К примеру, взять в промежутке от 10 до 20. Тогда, по результатам, представленным в таблице 3.2, сразу видно, что выше приоритет у основных деталей, так как они за время моделирования обработались почти все, а дополнительные детали остались в очереди.

Таблица 3.2. Сгенерированные и обработанные заявки

ДеталиСгенерировалисьПрошли обработкуОсновные165163Дополнительные509337

Вернемся к параметрам, согласно условиям задачи.

Ранее, в курсе «моделирование систем», эта задача рассматривалась на языке GPSS. Код программы и результаты моделирования в Приложении 3 и в Приложении 4 соответственно.

Проведем сравнение результатов моделирования, представленных в таблице 3.3.

Таблица 3.3. Результаты моделирования

Ман1Станок1Ман2Станок2GPSSMatLabGPSSMatLabGPSSMatLabGPSSMatLab#d337333336333500500500500w5.6765.79520.24920.055.886.22110.1169.978util0.1920.19250.6830.66670.2950.31040.5070.4974

#d - Число обслуженных заявок;

W - Среднее время обслуживания;

Util - Коэффициент занятости.

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

В GPSS количество обработанных заявок 500. Основных - 336, дополнительных - 164. Всего за все время, сгенерировалась 501 заявка. Одна заявка осталась на обслуживание манипулятором.

В MatLab/SimuLink количество обработанных заявок так же 500, что соответствует условию. Количество основных обработанных деталей - 333, дополнительных - 167. Как и в GPSS количество сгенерированных заявок 501 и одна заявка под конец моделирования осталась на обслуживание манипулятором.

Среднее время заявки, проведенное в первой очереди равно 0. В очереди с приоритетом - 0.3496. Исходя из таких данных, можно было бы исключить первую очередь из модели. И заявка после генерации попадала бы сразу на канал обслуживания. В случае, если время генерации заявок придется поменять, очередь из системы исключать не надо.

Отличительной особенностью моделирования в представленных программах средствах является то, что в GPSS при запуске моделирования результаты будут одинаковые, а в MatLab различные.

Главным недостатком Matlab/Simulink являются его высокая цена.

4.Методическое обеспечение

4.1Руководство пользователя

Руководство пользователя представлено в Приложении 5. Оно содержит краткое описание программной среды MatLab/SimuLink и сведения по работе с ней. Представлена информация о том, как запускать программу. Описаны основные пункты окна программы и окна для создания модели. Для создания имитационных моделей систем массового обслуживания в данной среде используется библиотека SimEvents.

4.2Построение имитационной модели

Методические указания по построению имитационной модели в программной среде MatLab/SimuLink представлены в Приложении 6. Оно содержит пошаговое создание модели с помощью блоков библиотеки SimEvents. Описано как добавлять, удалять и изменять блоки. Как их правильно соединять между собой. Какие блоки предназначены для того или иного действия и как изменять их параметры.


Заключение

В ходе выполнения выпускной квалификационной работы была разработана имитационная модель системы массового обслуживания в программной среде Matlab/Simulink. Система была разработана с помощью блоков библиотеки SimEvents. С помощью удобного интерфейса и правильного расположения блоков, система получилась простой в понимании.

При сравнении Matlab с другими программными средами выявлено несколько преимуществ:

·при разработке систем есть готовая библиотека блоков;

·поведение модели и результаты ее функционирования отображаются в процессе работы;

·чтобы следить за работой системы используются специальные устройства наблюдения (дисплей, осциллограф);

·пользователь может создать свой уникальный блок или библиотеку блоков;

·предоставляется автоматическая генерация кода на языке С.

Главным недостатком среды является его большая стоимость.

Визуальное моделирование в среде MATLab/Simulink дает возможность значительно упростить и сократить процесс создания, поиска ошибок, модификации модели, что позволяет добиваться результатов гораздо быстрее, чем при использовании языка MATLAB в чистом виде или другого универсального языка.

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

1.Тюкин, В.Н. Моделирование систем: учеб. пособие / В.Н. Тюкин. - Вологда: ВоГТУ, 2009. - 138 с.

.Михеева, Т.В. Обзор существующих программных средств имитационного моделирования при исследовании механизмов функционирования и управления производственными системами/ Т.В. Михеева // Управление, вычислительная техника и информатика. - 2009. - №1. - С. 87-90.

3.Галиуллина, А.Ф. Оценка эффективности управления производственным процессом с применением имитационного моделирования на основе систем массового обслуживания/ А.Ф. Галиуллина, С.В. Сильнова, Л.Р. Черняховская // 2014. - №1. - С. 115-122.

4.Дьяконов, В.П. MATLAB 7.*/R2006/R2007: Самоучитель/В.П. Дьяконов - М.: ДМК Пресс, 2008. - 768 с.

.Гультяев, А. Визуальное моделирование в среде MATLAB: учебный курс/ А. Гультяев. - СПБ: Питер, 2000 - 432 с.

6.Гладких, Б.А. Методы оптимизации и исследование операций для бакалавров информатики: учебное пособие/ Б.А. Гладких. - Томск: Изд-во НТЛ, 2013. - 164 с.


Приложение 1

СМО, разработанная в программной среде MatLab



Приложение 2

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



Приложение 3

СМО, разработанная в программной среде GPSS

30 *

* ПЕРВЫЙ СЕГМЕНТ МОДЕЛИ

* ДВИЖЕНИЕ ЗАГОТОВОК

*

GENERATE 30,10; ВВОД ЗАГОТОВКИ

PRIORITY 2; ВЫСОКИЙ ПРИОРИТЕТ

QUEUE OCH1; ОЧЕРЕДЬ

SEIZE MAN1; ЗАНЯТЬ РОБОТ

DEPART OCH1; ВЫХОД ИЗ ОЧЕРЕДИ

ADVANCE 5,2; ЗАГРУЗКА

SEIZE STAN1; Занять станок

RELEASE MAN1; Освободить робот

ADVANCE 20,10; Обработка ЗАГОТОВКИ

RELEASE STAN1; Освободить станок

*

QUEUE OCH2; ОЧЕРЕДЬ

SEIZE MAN2; ЗАНЯТЬ РОБОТ

DEPART OCH2; ВЫХОД ИЗ ОЧЕРЕДИ

ADVANCE 5,2; ЗАГРУЗКА

SEIZE STAN2; Занять станок

RELEASE MAN2; Освободить робот

ADVANCE 10,5; Обработка ЗАГОТОВКИ

RELEASE STAN2; Освободить станок

TERMINATE 1; Вывод из модели ОСНОВНЫХ ДЕТАЛЕЙ

*

* ВТОРОЙ СЕГМЕНТ МОДЕЛИ

*

GENERATE 60,10; ВВОД ЗАГОТОВКИ

PRIORITY 1; НИЗКИЙ ПРИОРИТЕТ

QUEUE OCH2; ОЧЕРЕДЬ

SEIZE MAN2; ЗАНЯТЬ РОБОТ

DEPART OCH2; ВЫХОД ИЗ ОЧЕРЕДИ

ADVANCE 5,2; ЗАГРУЗКА

SEIZE STAN2; Занять станок

RELEASE MAN2; Освободить робот

ADVANCE 10,5; Обработка ЗАГОТОВКИ

RELEASE STAN2; Освободить станок

TERMINATE 1; Вывод из модели ДОП. ДЕТАЛЕЙ

*

* УПРАВЛЯЮЩИЕ КОМАНДЫ

*



Приложение 4

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

GPSS World Simulation Report - M9+.16.1

Monday, June 12, 2017 09:25:22

TIME END TIME BLOCKS FACILITIES STORAGES

.000 9967.318 30 4 0

VALUE10001.00010004.00010000.00010003.00010002.00010005.000

LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

GENERATE 337 0 0

PRIORITY 337 0 0

QUEUE 337 0 0

SEIZE 337 0 0

DEPART 337 0 0

ADVANCE 337 1 0

SEIZE 336 0 0

RELEASE 336 0 0

ADVANCE 336 0 0

RELEASE 336 0 0

QUEUE 336 0 0

SEIZE 336 0 0

DEPART 336 0 0

ADVANCE 336 0 0

SEIZE 336 0 0

RELEASE 336 0 0

ADVANCE 336 0 0

RELEASE 336 0 0

TERMINATE 336 0 0

GENERATE 164 0 0

PRIORITY 164 0 0

QUEUE 164 0 0

SEIZE 164 0 0

DEPART 164 0 0

ADVANCE 164 0 0

SEIZE 164 0 0

RELEASE 164 0 0

ADVANCE 164 0 0

RELEASE 164 0 0

TERMINATE 164 0 0

ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY337 0.192 5.676 1 501 0 0 0 0336 0.683 20.249 1 0 0 0 0 0500 0.295 5.880 1 0 0 0 0 0500 0.507 10.116 1 0 0 0 0 0MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE. (-0) RETRY1 0 337 337 0.000 0.000 0.000 01 0 500 437 0.016 0.326 2.591 0

XN PRI BDT ASSEM CURRENT NEXT PARAMETER VALUE

501 2 9969.719 501 6 7

0 9991.767 502 0 20

0 9998.276 503 0 1

Похожие работы на - Исследование систем массового обслуживания средствами MatLab в курсе 'Моделирование систем'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!