УДК 519.248
И. М. Якимов, А. П. Кирпичников, В. В. Мокшин, Т. А. Мухутдинов
ОБУЧЕНИЕ ИМИТАЦИОННОМУ МОДЕЛИРОВАНИЮ
В ПАКЕТЕ SIMULINK СИСТЕМЫ MATLAB
Ключевые слова: структурное моделирование, имитационное моделирование, бизнес-процесс, система MATLAB, пакет Sim-система массового обслуживания, сущность (транзакт), генератор сущностей, обслуживающий аппарат (ОА).
Приводится описание методики компьютерного моделирования бизнес-процессов, включающей в себя построение структурных моделей и имитационных моделей в пакете Simulink, позволяющим вводить структуры моделируемых бизнес-процессов в графическом виде. Приведено 3 наиболее характерных модели систем массового обслуживания.
Keywords: structural modeling, simulation, business process, system MATLAB, package Simulink, queuing system, the essence
(TRANSACT), generator entities serving apparatus (OA).
The description of the methods of computer modeling of business processes, including the construction of structural models and simulation models in the package Simulink, allows you to enter the structure modeled business processes graphically. 3 shows the most typical model of queuing systems.
В последнее время для моделирования бизнес-процессов, под которыми далее будем понимать любую систематическую деятельность, начали применять программные системы, позволяющие осуществлять графический ввод структурных схем моделируемых бизнес-процессов. Краткий обзор возможностей таких систем приведён в [1]. Для сохранения конкурентной способности программной системы GPSS W в фирме ОАО «Элина» г. Казань разработано расширение редактора, позволяющее вводить структуры моделируемых процессов в графическом виде [2].
В то же время несомненный интерес вызывают и другие системы структурно-имитационного моделирования и особенно пакет Simulink системы MATLAB [3], [4], благодаря широкой библиотеке и огромном количестве блоков. Также для разработки моделей систем массового обслуживания и технических систем используется среда моделирования Arena [5] и AnyLogic [6]. Для обработки результатов моделирования используется методика, описанная в статьях [7-10].
MATLAB является высокопроизводительным языком для технических расчетов. Он включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме близкой к математической.
В состав системы MATLAB входит пакет SIMULINK. Он предназначен для моделирования динамических систем, модели которых составляются из отдельных блоков. В этом пакете на самом высоком уровне реализована идея АВМ (аналоговых вычислительных машин), в которых источником информации являются реальные сигналы, а система представляет собой различные функциональные блоки, соединенные между собой. Вместе с базовой системой MATLAB пакет SIMULINK становится мощным средством имитационного моделирования различных систем. Сильная сторона SIMULINK в огромном выборе библиотек предназначенных для построения различных видов моделей.
Для построения имитационной модели в SIMULINK рекомендуется использование стандартной библиотеки Simulink и SimEvent.
SimEvent позволяет моделировать взаимодействия между компонентами, основанные на событиях, чтобы анализировать и оптимизировать сквозные задержки, пропускную способность, потерю пакетов и другие характеристики моделируемого процесса. Библиотеки предопределенных блоков — таких, как очереди, серверы и переключатели, позволяют создавать корректное представление вашей системы и настроить в требуемом виде маршрутизацию, задержку на время обработки, назначение приоритетов и другие операции.
Так как библиотека SimEvent и Simulink обширны, то в SimEvent есть разные виды библиотек блоков:
Библиотека Generators содержит блоки для создания сущностей, основанных на времени или сигналах, например, блок Event-Based Entity Generation.
Библиотека Entity Management содержит блоки для упаковки сущностей или их разделения, например, блок Entity Combiner.
Библиотека Attributes содержит блоки для установки и чтения атрибутов сущности, например, блоки Set Attribute и Get Attribute.
Библиотека Queues содержит блоки для приема входящих сущностей, например, блок FIFO Queue.
Библиотека Servers содержит блоки для обработки входящих сущностей, например, блок Infinite Server.
Библиотеки Routing и Gates содержат блоки, которые используют переключатели, которые работают либо статистически, либо детерминировано, например, блок Input Switch.
Из выше перечисленных библиотек в таблице 1 приведены основные блоки для создания имитационной модели [3].
Таблица 1 - Описание блоков
Блок
ЯУ
IN Й
Название
Time-Based-Entity-Generator
Infiniteser ver
SingleServ er
Event-
BasedRand
omNumber
EntitySink
TimedtoEv entSignal
CompareT oConstant
Stop
Clock
Описание
Этот блок предназначен для создания объектов с помощью блока "Интергенерация" времени, которое удовлетворяют условием, которые вы определите. В "Интергенерация" время - это интервал времени между двумя последовательными событиями
Этот блок обслуживает любое количество лиц, за период времени, называемый время обслуживания, а затем пытается вывести их через OUT порт._
Этот блок обслуживает одно лицо в течение заданного периода времени, и затем пытается вывести лицо через OUT порт_
Этот блок предназначен для генерации случайных чисел на основе событий происходящим в следующем блоке. Например, при подключении к Спорту ввода "Одного Сервера" блок, событийный генерирует новое случайное число каждый раз, когда лицо поступает на сервер_
Этот блок обеспечивает способ прекратить движение сущности
Этот блок преобразует данные на основе сигнала данных во времени. Выходной сигнал предполагает только одно значение в любой момент времени моделирования_
Блок сравнивает входной постоянный сигнал с указанной константой. Также необходимо указать способ сравнения
Блок заканчивает очередной временной шаг моделирования._
Блок выводит текущее время симуляции на
Display
Patch Combiner
Replicate
Input Switch
Output Switch
Priority Queue
Set Attribute
Attribute Scope
каждом шаге моделирования_
Блок отображает результат.
Блок принимает сущность через любой входной порт сущности. Требуется задать число входных портов сущностей_
Блок генерирует копию поступившей сущности через каждый порт сущности, который не заблокирован. Требуется определить число копий, которые генерирует блок_
Блок выбирает точно один входной порт сущности для потенциального поступления. Отобранный входной порт сущности может измениться во время моделирования. То, когда одно сущность заняла порт, то он становится недоступными
Блок получает сущности, которые выводятся через один из имеющихся портов сущности. Отобранный порт может измениться во время моделирования
Блок может хранить до N сущностей одновременно в отсортированной последовательности
Блок принимает сущности, назначает данные для них, и затем передает их. Назначенные данные хранятся в признаках сущностей. У каждого признака есть имя и количество ресурсов, которую вы можете определить. Вы можете определить до 32 признаков в блоке. Чтобы узнать о виде данных, признак их может сохранить и выводить из модели
Блок создает участок, используя данные от реального признака со скалярным знаком прибывающих сущностей
Сигналы выходных портов каждого блока, которые передают определенные результаты моделирования, приведены в таблице 2.
Таблица 2 - Свойства сигналов выходных портов
Метка Описание
#d Число сущностей, которые выведены из этого блока через OUT порт с начала моделирования.
#n Количество сущностей, в настоящее время в блоке, либо 0, либо 1.
#p Число сущностей, которые были выведены из этого блока, с момента начала моделирования.
pe Значение 1 указывает на то, что устройство работало на момент завершения, а 0 устройство не работало
w Среднее время ожидания в этом блоке всех сущностей, которые вышли из OUT порта.
util Коэффициент использования устройства
#to Число сущностей, которые выведены из этого блока с момента начала моделирования.
Модель 1. СМО, включающая в себя генератор транзактов (ГТ) (равномерный закон 10±6), очередь неограниченной длины, обслуживающий аппарат (ОА) (равномерный закон 9±7). Промоделировать обслуживание 200 сущностей. (рис.1).
Рис. 1 - Структурная модель модели 1
Для построения модели используются следующие блоки:
1. Time-Based Entity Generator - для генерации транзактов.
2. Infiniteserver - очередь неограниченной длины.
3. SingleServer - обслуживающий аппарат.
4. Event-BasedRandomNumber - для обслуживая транзактов.
5. Entity Sink - вывод транзактов из модели.
6. Timed to Event Signal
7. Compare To Constant
8. Stop - для прекращения моделирования
9. Clock - для вывода времени моделирования
10. Display - для выведения результатов.
Для каждого блока введем значения параметров:
Для генератора транзактов зададим Minimum и Maximum. В нашей задаче минимум равен 4, а максимум равен 16.
Для генератора чисел зададим минимум равный 2 и максимум равные 16.
В устройстве галочками отметим выходные параметры, которые нам необходимо вывести в качестве результата '#d', 'w' и 'so'.
В параметрах блока CompareToConstant зададим 200 транзактов, которые необходимо обслужить.
Теперь запустим моделирование нажав на
кнопку Run ® '
После завершения моделирования в блоках Display появятся результаты моделирования.
Модель 2. СМО с генераторами транзактов с нулевым и первым приоритетами. Для нулевого приоритеа ГТ (равномерный закон 10±4) - очередь неограниченной длины - ОА (равномерный закон 8±5). Для первого приоритеа ГТ (равномерный закон 150±60) - очередь неограниченной длины -ОА (экспоненциальный закон, среднее 25). Отказы транзактам с нулевым приоритетом при поступлении транзактов с первым приоритетом. Промоделировать обслуживание 100 транзактов (рис.2).
Для каждого блока введем значения параметров, аналогично как и в предыдущем примере.
Для задания приоритетов нам понадобится новый блок Set Attribute куда мы зададим приоритет и генератор чисел.
В блоках PatchCombiner и PatchCombiner1 ставим значение 2. Так как у нас имеется две очереди.
Далее, как и предыдущем примере указываем какие результаты требуется вывести: '#p', 'w' и 'util'.
По результатам моделирования видим, что время ожидания равно 8,949; коэффициент использования устройства 0,89; количество обслуженных транзактов 200; на момент завершения моделирования устройство работало.
Промоделировав мы видим следующие результаты:
Коэффициент использования устройства равен 0,774; среднее время ожидания устройства равно 9,25; количество необслуженных транзактов равно 6. Время моделирования равно 1007.
Рис. 2 - Структурная модель модели 2
Рис. 3 - Оставшееся необходимое время на обработку
Пример 3. СМО генератор транзактов (равномерный закон 10±3) -восемь устройств (равномерный закон 100±50 для каждого). Выбор устройства по правилу «первый свободный с наименьшим номером». Если все устройства заняты транзакт получает отказ. Промоделировать обслуживание 100 транзактов (рис.4).
Рис. 4 - Структурная модель модели 3
Для каждого блока введем значения параметров для генератора транзакта minimum = 7 и maximum = 13, а для времени обработки 50 и 150 соответственно.
В блоках Output Switch и Input Switch в поле Number of entity input ports введем 9 устройств- 8 устройств и одно устройство для отказа.
Исходя из результатов моделирования видно, что устройства сравнительно сильно загружены, коэффициент использования первого устройства - 0,965; восьмого - 0,654. Разница в загрузке устройств значительная - 0,311. В систему для обслуживания поступило 161 транзакт.
Рассмотрев решение 3 примеров можно сделать выводы о пакете 81шиИпк.
Плюсы:
1. Как уже было сказано, огромная библиотека для моделирования бизнес процессов.
2. Возможность моделирования различных моделей.
3. Использование блоков и задание только параметровЕсть возможность показывать именно те результаты, которые нам необходимо видеть.
Минусы:
1. Долгое время создание 1 структуры модели
2. Необходим большой объем знаний об этом пакете
3. Неудобное построение блоков (не в своей схеме можно запутаться).
Литература
1. Якимов И.М., Кирпичников А.П., Мокшин В.В. Моделирование сложных систем в среде имитационного моделирования ОРББ Ш с расширенным редактором // Вестник Казанского технологического университета. 2014. Т. 17. № 4. С. 298-303.
2. Якимов И.М. Компьютерное моделирование. Учебное пособие. Казань: Изд-во Казан. гос. техн. ун-та, 2008. 220с.
3. В.П. Дьяконов. Matlab 6.5 SP1/7 + Simulink 5/6 в математике и моделировании. М.: СОЛОН-Пресс, 2005. -576с.
4. Е.Р. Алексеев, О.В. Чеснокова MATLAB 7. Самоучитель. М.: НТ Пресс, 2006. ISBN: 5-477-00283-2.
5. Якимов И.М., Кирпичников А.П., Мокшин В.В., Костюхина Г.В., Шигаева Т.А. Комплексный подход к моделированию сложных систем в системе BPwin-Arena // Вестник Казанского технологического университета. 2014. Т. 17. № 6. С. 287-292.
6. Якимов И.М., Кирпичников А.П., Мокшин В.В. Моделирование сложных систем в имитационной среде ANYLOGIC // Вестник Казанского технологического университета. 2014. Т. 17. № 13. С. 352-357.
7. Мокшин В.В., Якимов И.М. Метод формирования модели анализа сложной системы / Информационные технологии, №5. - М.: Изд-во Новые технологии, 2011. -С. 46-51.
8. Мокшин В.В., Кирпичников А.П., Шарнин Л.М. Отслеживание объектов в видео потоке по значимым признакам на основе фильтрации частиц // Вестник Казанского технологического университета. - Казань: КНИ-ТУ, 2013. Т. 16. № 18. - С. 297-303.
9. Степанова М.А., Сытник А.С., Кирпичников А.П., Мокшин В.В. Оптимизация процесса ремонта грузоподъемных машин по математической модели // Вестник Казанского технологического университета. 2013. Т. 16. № 20. С. 309-314.
10. Мокшин В.В., Якимов И.М., Юльметьев Р.М., Мок-шин А. В. Рекурсивно-регрессионная самоорганизация моделей анализа и контроля сложных систем // Нелинейный мир. М: 2009. №1. С. 48-63.
© И. М. Якимов - канд. техн. наук, профессор кафедры автоматизированных систем обработки информации и управления КНИТУ-КАИ им А.Н. Туполева; А. П. Кирпичников - д-р физ.-мат. наук, зав. каф. интеллектуальных систем и управления информационными ресурсами КНИТУ, kirpichnikov@kstu.ru; В. В.Мокшин - канд. техн. наук, доцент кафедры автоматизированных систем обработки информации и управления КНИТУ-КАИ им А.Н. Туполева, vladimir.mokshin@mail.ru; Т. А. Му-хутдинов - бакалавр кафедры автоматизированных систем обработки информации и управления КНИТУ-КАИ им А.Н. Туполева, timerking@rambler.ru.
© 1 М. Yakimov - PhD, Professor of the Department of Automated Information Processing Systems & Control, KNRTU named after A.N. Tupolev; А. P. Kirpichnikov - Dr. Sci, Head of the Department of Intelligent Systems & Information Systems Control, KNRTU, e-mail: kirpichnikov@kstu.ru; V. V. Mokshin-- PhD, Associate Professor of the Department of Automated Information Processing Systems & Control, KNRTU named after A.N. Tupolev, vladimir.mokshin@mail.ru; T. A. Muhutdinov - Bachelor of the Department of Intelligent Systems & Information Systems Control, KNRTU named after A.N. Tupolev, timerking@rambler.ru.