Процесс устранения отказов и неисправностей сложных технических систем включает в себя предварительную проверку работоспособности, выявление факта неисправности (отказа) – контроль, локализацию места неисправности – диагностику и устранение отказа – ремонт. Поступающие в ремонт сменные элементы (СЭ) (заявки) в случае их действительной неработоспособности проходят последовательно контроль исправности и диагностику с целью локализации неисправности, а затем непосредственно ремонт с использованием соответствующей оснастки и запасного имущества и принадлежностей (ЗИП) [1]. Прошедшие ремонт СЭ повторно проходят контроль исправности, в случае выявления неисправности процесс повторяется. Если ремонт проведен успешно, СЭ возвращаются для пополнения израсходованных комплектов эксплуатационных ЗИП [2].
Таким образом, ремонтно-диагностический комплекс (РДК) может быть представлен как многофазная, многоканальная система массового обслуживания (СМО) (рис. 1).
Поступающие из территориально-распределенных технических систем (ТРТС) СЭ представляют собой входной поток для РДК. Работоспособные СЭ, попавшие на входной поток РДК по ложной регистрации отказа (вероятность Pл), сразу попадают на выходной поток. Остальные последовательно проходят контроль, диагностику и ремонт на соответствующих участках.
Каждый из участков состоит из нескольких линий. Прошедшие ремонт СЭ с вероятностью Ррем на входе после повторного контроля уходят на выходной поток, с вероятностью Ррем = 1– на участок диагностики, а в последующем на участок ремонта и т.д.
Многофазные СМО состоят из нескольких последовательных типовых узлов, то есть представляют собой совокупность нескольких СМО [3].
Все заявки, обслуженные в одном узле, направляются в следующий узел. Другими словами, выходной поток одного узла многофазной СМО является входным потоком для следующего [4].
Точный расчет характеристик таких СМО возможен только в случае, если все потоки заявок являются пуассоновскими, а все времена обслуживания – случайными величинами, распределенными по экспоненциальному закону. В других случаях возможен лишь приближенный расчет характеристик СМО.
При расчете характеристик многофазных СМО [5] необходимо учитывать следующее:
– если на вход СМО поступает несколько потоков заявок, то интенсивность полного потока заявок в этой СМО равна сумме интенсивностей отдельных потоков;
– если на вход СМО поступает часть заявок из некоторого потока, интенсивность которого равна λ, то интенсивность входного потока заявок в СМО можно определить по формуле λвх(t) = = Pλ(t), где P — вероятность попадания заявки во входной поток;
– интенсивность выходного потока в СМО (то есть потока обслуженных заявок) равна интенсивности входного потока.
Заявки, поступающие на обслуживание в СМО, образуют поток заявок. Элементы СМО, обслуживающие заявки, создают каналы обслуживания.
В большинстве случаев интервалы времени между моментами поступления заявок и/или времена обслуживания заявок в СМО представляют собой случайные величины, то есть в большинстве случаев заранее точно неизвестно, когда поступит очередная заявка и сколько времени займет ее обслуживание. Поэтому теория систем массового обслуживания основана на математическом аппарате теории вероятностей и математической статистике.
Наиболее точный расчет характеристик возможен для СМО, в которых поток заявок является пуассоновским (простейшим). Пуассоновский поток заявок обладает свойствами реккурентности, стационарности, ординарности и отсутствия последействий.
Если при этих условиях время обслуживания заявок на каждом участке подчиняется экспоненциальному закону, то в этом случае модель СМО легко описывается системой дифференциальных уравнений.
Однако на практике время обслуживания более адекватно может быть представлено с помощью бета-распределения [6].
Обоснование выбора закона распределения продолжительности выполнения работ в моделях систем массового обслуживания
В СМО, процесс обслуживания которых подвержен влиянию случайных воздействий [5], принимается, что продолжительность работ является случайной величиной. Предполагается, что случайные величины продолжительности работ подчинены принятому для данной СМО закону распределения, причем тип распределения прини- мается одинаковым для всех работ. Что касается параметров распределения, то последние задаются для каждой работы их ответственными исполнителями на основе либо нормативных данных, либо априорных соображений, либо своего производственного опыта.
В некоторых СМО задаются три параметра: нижняя грань а области определения (оптимистическое время), верхняя грань b (пессимистическое время) и мода распределения m (наиболее вероятное время).
В других системах (например в некоторых отечественных) задаются всего два параметра – оценки а и b. Практически во всех системах СМО априорно принимается, что плотность распределения временных оценок продолжительности работ обладает тремя свойствами: непрерывностью, унимодальностью, двумя неотрицательными точками пересечения этой плотности с осью абсцисс. Простейшим распределением с подобными свойствами является бета-распределение, которое обычно постулируется на практике. Общий вид бета-распределения характеризуется, помимо наличия большого количества случайных факторов, каждый из которых в отдельности оказывает незначительное, несущественное влияние, наличием нескольких, также случайных, факторов, число которых невелико, а влияние существенно. В результате воздействия существенных факторов распределение вероятностей обычно делается асимметричным. Именно такого рода обстоятельство имеет место при реализации подавляющего большинства входящих в сетевой проект работ. Отсюда вытекает возможность выбора бета-распределения в качестве априорного типового.
Анализ большого количества статистических данных (хронометражи времен реализации отдельных работ, нормативные данные и т.д.) тоже подтверждает возможность использования бета-распределения в качестве априорного.
Формула плотности бета-распределения имеет следующий вид:
(1)
где B(p, q) – бета-функция, причем
(2)
а гамма-функция Г(z) определяется по формуле причем для целых z функция Г(z) = 1×2×...×(z – 1) = (z – 1)! Начальный момент r-го порядка определяется формулой
(3)
При r = 1 получаем математическое ожидание
(4)
При r = 2 получаем дисперсию
(5)
Плотность вероятности времени работы, распределенного по закону бета-распределения [5] на отрезке [a, b], имеет вид:
Так, например, для построения теоретико-вероятностного аппарата системы PERT полагают, что продолжительность произвольной работы есть случайная величина, распределенная по закону бета-распределения на отрезке [a, b], а параметры закона распределения – математическое ожидание М и дисперсия s2 – определяются по формулам: где а, b и m – соответственно оптимистическая, пессимистическая и наиболее вероятная (мода) оценки, задаваемые ответственными исполнителями работы.
Жизненный цикл системы
После входа заявки в СМО возможны с заданной вероятностью прекращение цикла обслуживания и выход из РДК. По выходу из подсистемы ремонта заявки возвращаются в подсистему контроля, с заданной вероятностью продолжая обслуживание или покидая РДК.
Количество мест в накопителях каждого уз- ла неограниченно, все подсистемы без отказов. В моделируемой СМО используется дисциплина очереди – принцип, в соответствии с которым поступающие на вход обслуживающей системы требования выбираются из очереди на обслуживание, – определяемая правилом FIFO (First In, First Out). В существующей реализации имитационной модели модельное время продвигается дискретно, по принципу продвижения модельного времени до очередного события.
Модельное время сдвигается вперед не на фиксированную величину, а точно до времени наступления самого раннего из очередных событий, что имеет ряд преимуществ: события рассматриваются и моделируются в моменты их свершения и одновременно, если у них одинаковое время появления. Промежутки времени, когда в модели ничего не происходит, пропускаются без особых затрат машинного времени.
Возможный вариант сдвигов времени для заданной СМО при наступлении основных событий, приводящих к изменению состояния системы, имеет вид, представленный на рисунке 2.
Временные диаграммы, представляющие продвижение модельного времени по данному принципу, будут выглядеть так, как показано на рисунке 3.
Обоснование выбора технических средств программной реализации
В качестве среды разработки программного средства для моделирования СМО выбрана среда разработки программного обеспечения Microsoft Visual Studio 2010. Выбор обусловлен широким набором инструментальных средств для написания и отладки кода, удобством их использования. Приложение реализовано на основе объектно-ориентированного языка программирования C# [7] как одного из наиболее многофункциональных, обладающего преимуществами простого синтаксиса и поддерживающего большое количество библиотек программного кода. Аргументом в пользу выбора данной IDE послужило и наличие в ней встроенных библиотек с классами генераторов случайных чисел (ГСЧ), создающими достаточно равномерную последовательность псевдослучайных значений.
Алгоритм моделирования функционирования РДК
При реализации программной модели СМО целесообразно использовать объектно-ориентированный подход. При этом структура обобщенных в единую СМО элементов выглядит, как показано на рисунке 4.
При наступлении каждого основного события, которое имитируется выборкой ближайшего события из списка текущих событий, происходят сдвиг модельного времени и удаление данного события из списка как обработанного. Последовательность основных этапов показана на рисунке 5.
Реализация СМО и процесса ее функционирования
Все элементы, входящие в состав СМО, а также объекты и понятия, необходимые для реализации функциональной и структурной моделей заданной СМО, представляют собой соответствующие сущности – экземпляры классов. Некоторые из классов объединены в библиотеки как относящиеся к одной категории объектов.
Классы, использующиеся для представления структурной организации модели:
– библиотека компонентов СМО ComponentsLibrary, включающая класс заявки Request и класс участка обслуживания Device;
– различные перечисления, характеризующие тип участка Type и его состояние State, текущее месторасположение заявки Location в системе и другие сущности (реализуются соответствующими полями свойств перечисления типов – enum);
– класс СМО.
Для реализации функциональных составляющих модели используются:
– класс события BasicEvent, возникающего в системе, с соответствующим типом TypeEvent;
– класс обработчика событий HandlerEvent, происходящих при функционировании СМО;
– библиотека генераторов входящих заявок, работающих в соответствии с заданным законом распределения СВ GeneratorsRV (все классы унаследованы от родительского абстрактного класса Distribution): ExponentialDistribution, GammaDistribution, BetaDistribution, UniformDistribution, Probability.
Для сбора, промежуточной и финальной обработки, а также формирования представления результатов созданы:
– класс сборщика статистики GarbageStatistic;
– класс ведения логирования LogModeling.
Одним из инструментов Visual Studio 2010, позволяющим наглядно продемонстрировать архитектуру приложения, является Dependency Graph (граф зависимостей), использующий язык DGML (Directed Graph Markup Language). Данный инструмент используется для анализа исходного кода и визуализации связей между различными артефактами кода приложений (классами, интерфейсами, пространствами имен и т.п.).
Для представления инфраструктуры созданного приложения и документирования кода построены соответствующие диаграммы зависимостей (рис. 6).
Для достижения приемлемого быстродействия работы программного приложения осуществлено разделение непосредственно процессов моделирования и взаимодействия приложения с пользователем путем организации многопоточного исполнения, с разделением потоков для моделирования работы СМО и для взаимодействия с пользователем программы.
Описание работы с разработанным программным средством РДК
В верхнем меню приложения можно выбрать язык интерфейса приложения: русский или английский. При этом, кроме отображения элементов интерфейса с использованием выбранного языка, весь дальнейший диалог с пользователем и вывод данных будут осуществляться на данном языке (рис. 7).
К необязательным настройкам процесса моделирования относится возможность ведения логирования этапов моделирования по всем основным событиям и сдвигам модельного времени системы.
Логирование предоставляет информацию о состоянии всех элементов системы в текущий момент времени. Запись в лог осуществляется в заданный файл с расширением *.log, который можно открыть любым текстовым редактором, поддерживающим минимальные возможности форматирования текста.
Задание файла для записи в лог осуществляется через верхнее меню на вкладке «Моделирование» – «Запись в лог». При этом открывается стандартное для ОС Windows диалоговое окно сохранения файла с возможностью выбора пути сохранения и выбора имени (по умолчанию "CMO_Log.log"). При существовании файла с вводимым именем будет предложена его замена. По умолчанию лог моделирования не ведется.
Внешнее оформление рабочего пространства пользователя реализовано в соответствии со структурной схемой заданной СМО, что обеспечивает наглядность и удобство при инициализации ее параметров и позволяет сразу получить представление об основных принципах функционирования [8].
Настраиваемые параметры разделены на группы в соответствии с логикой структуры СМО: выделены подсистема контроля, подсистемы диагностики и ремонта, отдельно представлен блок характеристик по формированию входного потока заявок. В панели настроек системы также задается время моделирования.
К обязательным параметрам настройки сети массового обслуживания относятся:
– задание количества участков в узлах контроля, диагностики и ремонта;
– выбор законов распределения интервалов поступления заявок в систему, обслуживания в блоке контроля, в блоке диагностики и в блоке ремонта;
– задание параметров всех законов распределения;
– задание вероятности попадания в системы заявки, не требующей полного цикла обслуживания (исправной) и вероятности некорректного ремонта, то есть вероятности повторения цикла полного обслуживания.
При выборе следующих законов распределения случайных величин требуется ввод параметров:
– l для экспоненциального;
– q и k для гамма-распределения;
– a и b для бета-распределения;
– a и b для равномерного распределения.
Окна для ввода параметров становятся активными и доступными для редактирования в них данных только после выбора конкретного закона распределения. При этом после выбора закона распределения случайной величины появляются информирующие подписи, сообщающие о требуемых параметрах для выбранного распределения.
Ввод данных осуществляется в форме целых или дробных чисел в зависимости от параметров, которые эти данные характеризуют. Для инициализации коэффициентов распределений, вероятностей и времени моделирования могут исполь- зоваться целые и дробные числа. При указании количества приборов допустим ввод только целочисленных значений.
Дробные числа могут задаваться с использованием точки или запятой между дробной и целой частями, однако при вводе более одного коэффициента (что необходимо при инициализации некоторых распределений) требуется задание дробных чисел через точку с разделителем в форме запятой между задаваемыми параметрами.
В текстовое окно, расположенное ниже интерфейса ввода информации, выводятся данные о текущем состоянии работы приложения: запись о необходимости ожидания завершения процесса моделирования и по его окончании результаты работы модели.
Сообщения об ошибочной конфигурации модели СМО
В случае ввода недопустимых значений параметров распределения, вероятностей, времени или неправильности других настроек процесс моделирования не будет начат. При этом пользователю будут выведены соответствующие предупреждения об ошибках конфигурации. Возникновение подобных ошибок возможно при заполнении полей данных параметрами недопустимого формата (пустых полей данных, символических или буквенных символов вместо численных значений, неправильной записи дробных чисел и т.д.), и в такой ситуации будет выведено сообщение «Недопустимый формат вводимых данных».
Существует вероятность появления ошибок другой категории, связанных с вводом численных данных, не соответствующих ограничениям, накладываемым на вводимые параметры с позиции их математического и физического смысла. Все значения параметров для корректности процесса моделирования должны лежать в допустимых интервалах, определяющихся ограничениями того или иного закона распределения [9]. Для коэффициентов некоторых распределений недопустимы ввод отрицательных и нулевых значений, задание интервала вероятности в диапазоне, лежащем за границами {0, 1}, и т.д. Ошибки такого рода приводят к появлению сообщения «Введены недопустимые значения».
Разработка модели СМО в GPSS
Для оценки качества разработанного программного средства было осуществлено моделирование СМО средствами общецелевой системы моделирования GPSS [10].
С учетом принципов построения моделей в среде GPSS алгоритм симулирования процесса функционирования заданной СМО сводится к следующему.
Шаг 1. Обеспечить генерацию входящих транзактов с экспоненциальным распределением интервалов времени прибытия.
Шаг 2. Описать маршрут следования транзактов:
– поместить транзакт в объект оборудования «очередь контроля»;
– если дальнейшее обслуживание не требуется, удалить транзакт из системы;
– переместить транзакт в объект оборудования «многоканальная СМО контроля»;
– освободить место в «очереди контроля»;
– обслужить транзакт в «многоканальной СМО контроля»;
– если транзакт ранее успешно прошел полный цикл обслуживания, удалить его из системы;
– переместить транзакт в объект оборудования «многоканальная СМО диагностики»;
– освободить место в «очереди диагностики»;
– обслужить транзакт в «многоканальной СМО диагностики»;
– поместить транзакт в объект оборудования «очередь ремонта»;
– переместить транзакт в объект оборудования «многоканальная СМО ремонта»;
– освободить место в «очереди ремонта»;
– обслужить транзакт в «многоканальной СМО ремонта»;
– переместить транзакт в объект оборудования «очередь контроля» и повторить цикл, начиная с перемещения транзакта в объект оборудования «многоканальная СМО контроля».
Шаг 3. Обеспечить обслуживание транзактов во всех одноканальных и многоканальных СМО в соответствии с выбранными распределениями.
При создании модели СМО необходимо учитывать, что вероятности завершения обслуживания транзакта в системе и выход из нее на момент первичного вхождения в систему и на момент завершения цикла (то есть после прохождения обслуживания во всех участках – контроля, диагностики, ремонта, вторичного контроля) различны. Первая вероятность соответствует поступлению в систему изначально исправной детали, которая не требует дальнейшего обслуживания, а вторая – неудачному сеансу обслуживания в системе, в ходе которого не была восстановлена функциональность детали, то есть неудачному ремонту.
Текст программы для большей наглядности снабжен комментариями на русском языке, которые необходимо удалить при непосредственном прогоне модели:
INITIAL X$c,0
INITIAL X$t,0
Control STORAGE 3
Diagnostic STORAGE 2
Repair STORAGE 2
GENERATE (EXPONENTIAL(1,0,2))
ASSIGN 1,0
QUEUE WaitServiceInControl
TRANSFER 0.01,Service,NotService;С заданной Pr выход из СМО при отсутствии необходимости обслуживания (изначальной исправности)
NotService DEPART WaitServiceInControl
TRANSFER,LeaveCMO
Service ENTER Control
DEPART WaitServiceInControl
ADVANCE (GAMMA(2,0,4,0.1))
LEAVE Control
TEST G P1,0,ContinueService;Проверка количества циклов ремонта
TRANSFER 0.03,LeaveCMO,ContinueService;С заданной Pr выход из СМО после цикла полного обслуживания
ContinueService QUEUE WaitServiceInDiagnostic
ENTER Diagnostic
DEPART WaitServiceInDiagnostic
ADVANCE (BETA(2,0.5,3,0.1,0.9)); M[x]=0.75
LEAVE Diagnostic
QUEUE WaitServiceInRepair
ENTER Repair
DEPART WaitServiceInRepair
ADVANCE (UNIFORM(2,0,1.8))
LEAVE Repair
ASSIGN 1+,1; Увеличение СЧ циклов обслуживания транзакта
QUEUE WaitServiceInControl
TRANSFER ,Service
LeaveCMO SAVEVALUE t+,M1; Инкремент времени обслуживания транзакта
SAVEVALUE c+,1; Инкремент СЧ обслуженных транзактов
SAVEVALUE aveT,(X$t/X$c); Вычисление среднего времени пребывания в СМО
TERMINATE
GENERATE 1000000
TERMINATE 1
Для технической реализации данной особенности необходимо вначале установить, на каком этапе обслуживания находится активный транзакт, и только потом разыгрывать СВ и направлять его по дальнейшему маршруту в соответствии с заданной вероятностью.
Сравнительный анализ реализаций модели СМО
Наиболее важной искомой характеристикой функционирования заданной СМО является среднее время нахождения заявки в системе. Процесс моделирования с заданными параметрами показал следующие результаты: среднее время обслуживания в СМО разработанным программным средством составило 2,531 сек., а в системе GPSS World – 2,555 сек.
Показатели различаются сотыми долями, что доказывает корректность работы и эффективность разработанного программного приложения. Различие объясняется использованием разных ГСЧ СВ, равномерно распределенных на интервале {0, 1}, и использованием различных алгоритмов генерации случайных величин с заданным распределением.
Относительно продолжительности моделирования, то есть машинного времени имитации, отражающего затраты ресурса времени компьютера, измерения показали: машинное время моделирования для программного средства ~12,3 сек., а для пакета GPSS World ~12,4 сек. Это доказывает аналогичную производительность реализаций модели в обеих средах.
В результате использования различных реализаций моделей отмечены такие преимущества созданного программного средства, как наглядность представления моделируемой СМО, прозрачность и доступность интерфейса, простота использо- вания, отсутствие необходимости выполнения предварительных расчетов при инициализации параметров, вывод результатов в доступной и понятной форме, защита от ввода недопустимых параметров.
К недостаткам созданного программного приложения можно отнести меньшую информативность отчета (определяется меньшее количество характеристик функционирования СМО и статистических параметров), что объясняется спецификой и требованиями технического задания.
При этом по точности и быстродействию разработанная программа не уступает модели, написанной в GPSS.
Литература
1. Абу-Абед Ф.Н. Имитационное моделирование процессов ремонтно-технического обслуживания нефтяных скважин // Программные продукты и системы. 2010. № 4. С. 167–171.
2. Абу-Абед Ф.Н., Аверкин В.Н., Кордюков Р.Ю., Щербинко А.В. Имитационное моделирование системы ремонта и технического обслуживания буровых установок // Ремонт, восстановление, модернизация. 2011. № 4. С. 19–21.
3. Алиев Т.И. Погрешности моделирования высоконагруженных систем в GPSS WORLD // Науч.-технич. вестн. информационных технологий, механики и оптики. 2013. № 1. С. 70–75.
4. Алиев Т.И. Характеристики дисциплин обслуживания заявок с несколькими классами приоритетов // Изв. РАН. Теория и системы управления. 1987. № 6. С. 188.
5. Арепин Ю.И., Допира Р.В., Смоляков А.А. Военная кибернетика: методология создания автоматизированных систем управления техническим обеспечением. Тверь. Изд-во НИИ ЦПС, 2006. 204 с.
6. Биллиг В.А. Основы объектного программирования на C# (C# 3.0, Visual Studio 2008): учеб. пособ. М., 2010. Сер. Основы информационных технологий.
7. Гаммер М.Д., Сызранцев В.Н., Голофаст С.Л. Имитаторы на базе программно-аппаратной платформы в техническом образовании. Н.: Изд-во Тюменского гос. нефтегаз. ун-та, 2011.
8. Голенко-Гинзбург Д.И. Стохастические сетевые модели планирования и управления разработками: монография. Воронеж: Научная книга, 2010.
9. Допира Р.В., Кордюков Р.Ю., Платонов А.Ю., Сергиенко С.В., Щербинко А.В. Методика планирования ввода в эксплуатацию сложных технических систем // Ремонт, восстановление, модернизация. 2014. № 9. С. 45–48.
10. Мартенс Т., Вальрайвенз Дж., Брунэел Г. Приоритетные системы массового обслуживания: от вероятностных производящих функций к конечным вероятностям. Системы массового обслуживания. 2007. Т. 55. Вып. 1. С. 27–39.