Вычисление некоторых производственных характеристик рекурсивного конвейера

УДК 519.86 ВАК 05.13.18 РИНЦ 28.00.00

Вычисление некоторых производственных характеристик рекурсивного конвейера

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

Ключевые слова: численное моделирование, конвейер, производственное расписание, теория расписаний, рекурсивные функции, APS-системы, MES-системы.

EVALUATION OF SOME PRODUCTION CHARACTERISTICS OF RECURSIVE CONVEYOR

We consider the two objectives of direct relevance to operational planning based on the model of recursive conveyor process. Calculate the Critical Operation of the conveyor and calculate the Load Factor of the equipment of the conveyor.

Keywords: numerical modeling, conveyor, pipeline, production schedules, theory schedule, recursive functions, APS system, MES system.

Б.В. Куприянов

1. Введение

Статья посвящена рассмотрению свойств рекурсивных конвейерных процессов [1,2], описывающих широкий набор реальных процессов [3]: дискретное производство, транспортные расписания, вычислительные процессы [8-10] и т.п. В статье решаются две важных и традиционных для таких систем задачи. Первая - нахождение критической операции конвейера, определяющей его узкое место. Вторая - вычисление коэффициента загрузки оборудования конвейера. Решение второй задачи требует дополнительных исследований - вычисления кратностей выполнения операций конвейера. Решение данных задач имеет свою специфику. Так как основные процессы рекурсивного конвейера описываются рекурсивными функциями, это затрудняет нахождение аналитических зависимостей. Решения задач иллюстрируются конкретными примерами.

2. Модель конвейера

Моделью рекурсивного конвейерного процесса [1] (далее для краткости конвейера) является конечный ориентированный связный ациклический граф с несколькими начальными вершинами и одной конечной. Каждая вершина графа отождествляется либо с некоторой производственной операцией конвейера либо с спусковой функцией, определяющей отношение предшествования между операциями. Производственные операции характеризуются временем выполнения. Спусковые функции имеют нулевое время выполнения. Пусть {аь а2, ..., ап} - множество вершин графа (операций и спусковых функций), {аь а2, ..., ат} - множество начальных вершин (1 < т < п), а ап - конечная (или завершающая) вершина. Для каждой вершины определено время ее выполнения t2, ..., tп} (^ > 0). Операция и спусковая функция определяют вид рекурсивной функции, соответствующей данной вершине графа.

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

Производительность рекурсивного конвейерного процесса, в общем случае, сначала меняется нерегулярно - переходный процесс, а потом, начиная с некоторого номера цикла ks переходит в стационарный процесс [1,2]. Стационарный процесс, в общем случае, описывается периодической функцией. Там же показано, что рекурсивный кон-

Борис Васильевич Куприянов,

к.т.н., научный сотрудник Тел.: (903) 626-86-25 Эл. почта: kuprianovb@mail.ru Институт проблем управления РАН www.ipu.ru

Boris V. Kupriyanov,

Ph. D., research fellow Tel.: (903) 626-86-25 E-mail: kuprianovb@mail.ru Institute of control Sciences RAS www.ipu.ru

вейерный процесс K можно описать пятеркой параметров

K =

где

i - номер операции (0 < i < n); fl>i - фаза (время завершения) нулевого цикла операции (f0i > 0), ассоциируется с временем выхода с конвейера первого изделия (измеряется в единицах времени); ksi - номер цикла начала стационарного процесса (ks i > 0, безразмерная величина); fsi - фаза (время завершения) начала стационарного процесса (fsi > 0, измеряется в единицах времени); Di - амплитуда колебаний интервала операции (интервал времени между двумя завершениями операции), которая определяется как сумма интервалов в периоде (Di > 0, измеряется в единицах времени), интервал конвейера -величина обратная производительности конвейера; T - период колебаний интервала операции (Ti > 1, безразмерная величина).

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

Все параметры, кроме фазы нулевого цикла операции, характеризуют стационарный конвейерный

процесс. Отношение —— определяли

ет тангенс угла наклона направляющей фазы. Если k - номер цикла конвейера (k > 0) и ассоциируется с номером произведенного изделия, то значение фазы конвейера для k-го цикла можно вычислить по формуле

f!k = fsn + (k - ksn )• D- для

T n

k > ksn.

ft - время затраченное на производство k + 1 изделий.

Если k mod Tn = ks mod Tn то значение fk точное, в противном случае оно вычисляется с точностью до среднего значения за последний период.

В статье [1] приводится классификация рекурсивных конвейеров:

1. Конвейер с наличием переходного процесса и стационарных колебаний - класс 11.

2. Конвейер с наличием переходного процесса и отсутствием

стационарных колебаний - класс 10.

3. Конвейер с отсутствием переходного процесса и наличием стационарных колебаний - класс 01.

4. Конвейер с отсутствием переходного процесса и отсутствием стационарных колебаний - класс 00.

В статье [2] описываются методы преобразования конвейера высшего класса (11) в низший (00), представляющий собой конвейер с линейными характеристиками. Конвейеры данного класса описываются аналитическими функциями, но преобразование приводит к ухудшению некоторых характеристик. В данной статье вычисление коэффициента загрузки оборудования производится для разных классов.

3. Вычисление критической операции

Из классического определения конвейерного процесса, описываемого параллельно-последовательными схемами известно, что в конвейере существует понятие «узкого места» в виде некоторой операции, которая определяет характеристику производительности конвейера. Данное понятие применимо и к рекурсивным конвейерам. Будем называть такую операцию критической. Специфика состоит в том, что характеристики конвейера в общем случае, меняются от цикла к циклу. В данном случае будет вычисляться критическая операция стационарного режима работы конвейера. Далее описывается схема нахождения такой операции конвейера. Как и в случае вычислений других характеристик конвейера [1,

6] опишем нахождение критической операции с помощью рекурсивных функций. Далее для каждой операции и спусковой функции будут приведены ее графическое представление и формулы вычисления тройки параметров.

мг =

где

г - номер операции; БI - амплитуда колебаний интервала

операции в периоде (Б ! > 0); Т - период колебаний интервала операции (Т > 1); тг - номер критической операции конвейера, определяемого операцией г.

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

Простая операция а, ассоциируется с некоторой производственной операцией реального процесса и характеризуется временем выполнения 4 которое является постоянным. Операции (если она не начальная) может предшествовать только одна операция. Простая операция является частным случаем линейного конвейера. Линейный конвейер отличается от простой операции тем, что у него задается фаза нулевого цикла Е,. Если линейный конвейер является начальным,

ai(Fi',t,) Mi

то вычисление тройки определяется следующими выражениями

Т = 1; Di = ti^; т, = V; дДя (1 ^ I ^ Ш)\

Если линейный конвейер не является начальным,

-Mj-

ai(Fi;tl) —M{

то вычисление тройки определяется следующими выражениями

если->

то {Т = Т/; Di = Dp т, = т} иначе {Т = 1; Di = Т; т, = ,}. Спусковая функция - логическое И запускает выполнение к-го цикла следующей за ней операции после того как завершится выполнение ^го цикла обеих операций, предшествующих данной функции.

-мр-

-Mj

dp > dj если->-

T Tp j

то {Ti = Tp; Di = Dp; mf = mp},

p

Dp D

если-<

Tp T

i

p i

то {Ti = T,; Di = D,; mi = m,},

p

D p D

j

p j Ti = нок(Тр ,Tj);

(tp ,Tj).

Di = D

p> j> нок(:

Спусковая функция повторения (мультиплицирования) операций осуществляет многократный запуск последующей за ней операции на однократное завершение предшествующей операции. Количество запусков указывается в функции и является константой равной q.

-Ыц

Яяр-MiН

T =

ifa^—Mf\

HOK

q

нок lq.

-Mr

Qi

и распадается на две

-Mj-

T =

a

-Mr

нок(2, Tj) 2

Dt = 2  D ^ ;

1 T

~MH a mp-

T =

p

нок(2, Tj) ~~2 :

имитирует прием на одну операцию с двух потоков.

-мр--Mj-

at

Dr

I--Mr D;

если

p j

то {Ti = 2 • Tp; Di = D„; mi = m„};

Dp

если

<

i

Т = q • Т/; Di = Dj; т, = т/.

Спусковая функция сокращения (редукции) повторения операций является обратной к предыдущей. Она запускает выполнение последующей за ней операции после q выполнений предшествующей. Константа q, указана в функции.

Tp Ti

pi

то {Tj = 2 • T,; D, = D; m, = m,};

D

если

,

Dj

Tj

то

Ti = нок(Тр ,Tj);

(tp T).

Di = D

P'

нок(

D; = D j

Функция раздачи по четным циклам запускает операцию ,, а по нечетным операцию /. Функция имитирует раздачу на две операции с одного потока.

_ -Ыг

dp=2 • Dj • Y ;

Функция приема является обратной к функции раздачи. Она сливает два потока в один, принимая управление то с верхнего потока, то с нижнего. Данная функция

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

Рассмотрим пример вычисления троек и критической операции для конвейера на рис 1.

M = (1,2,1), M2=(1,2,2), Mm1 = (2,2,1), M3=(1,1,3), Mm2=(3,2,2), M5 = (1,1,5), Mand = (1,1,3), M4 = (1,1,4).

Окончательно получаем: критическая операция - это операция 4 и интервал конвейера, который она определяет равен 1 с периодом 1.

4. Вычисление кратностей операций конвейера

Рассмотрение примера с некоторыми спусковыми функциями приводит к понятию частоты выполнения операции. Так в примере на Рис 1. видно, что на каждое выполнение операции 1 приходится

2 выполнения операции 3. Если на оси нумераций цикла для каждой операции ввести отдельную шкалу, то масштабы этих шкал демонстрируют разность частот. Изменение частоты выполнения операций осуществляют также функции div, get и put.

В физическом смысле частота определяется как количество коле-

>

m = m

Ш: = m

Ш: = m

m = mj

Ш: = m

t

4

(U2^ml(2>>(3(I))—| 4 з||б

—K^jiD 4 зПб

1 1 3 \ Г

Z 3 5

3 5

3 5 1

4 з 5 Т

1 3 5

4 3 5

5

1

I-1-1 I I I-1 i i i г* кз,к4,к5

1 T 1 1 %

Рис. 1. Пример конвейера с операциями, выполняемыми с различной частотой и его временная диаграмма

баний (периодов) в единицу времени. В данном случае речь идет о том - сколько раз выполнится одна операция, когда другая выполнится один раз и в данном случае частота является безразмерной величиной. Поэтому правильно будет называть - кратность выполнения операции. Обозначим кратность операции а, как ш,. Рассмотрим вычисление кратности более подробно. Рассмотрим отношения

а ^ ти1(д) ^ а,,

где ти1(д) - вершина графа типа мультиплицирования выполнения операций.

В данном случае кратность операции а, по отношению к операции а, будет равна q. Это означает, что на одно выполнение операции ау приходится q выполнений операции а,. Положим кратность операции относительно самой себя равной 1. В этом случае будем говорить, что операция а, выполняется в q раз чаще операции а, если ш/Юу =q. При вычислении кратнос-тей вершин графа конвейера будем вычислять кратность и спусковых функций как вершин графа в соответствии с табл. 1.

Таблица 1

Вычисление кратностей в зависимости от типа вершин и отношений между ними

№ Вид Формула для

п/п отношения вычисления ю

1 a ^ a а>1 = а,

2 aj ^ mul(q) ати1 =?' а1

3 mul(q) ^ at = ати1

4 aj ^ div(q) аа™ = а /ч

5 div(q) ^ at а1 = аЛу

6 aj ^ get =2 а1

7 get ^ ai а =

8 aj ^ put = а, /2

9 put ^ ai а1 = атг

10 aj ^ and аапс1 = а1

11 and ^ aj аг = тапс1

На рис. 1 приведен пример конвейера и его диаграммы.

В данном случае между операциями 1 и 2 нет отношения предшествования, но кратность выполнения одной операции по отношению к другой существует. По делениям оси абсцисс она равна 3/2, т.е. на 3 выполнения операции

1 приходится 2 выполнения операции 2. Отношение кратностей в общем случае является рациональным числом, т.е. представимым в виде дроби p/q, где р и q целые положительные числа больше нуля.

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

Как было показано на примере, кратность определяется отношением чисел двух вершин графа. Для того, чтобы характеризовать кратность одним числом, выберем в качестве второго соответствующую одной вершине. Для удобства в качестве такой вершины выберем завершающую вершину графа (завершающую операцию конвейера). Для определенности, будем кратность завершающей операции конвейера полагать равной 1, а остальные кратности вычислять относительно нее. Таким образом, интерпретация кратности операции будет означать - сколько выполнений данной операции требуется

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

Определим две функции на графе.

Если ai некоторая вершина графа такая, что m < I, то ргес(аг) функция, определяющая вершину графа ау предшествующую аь т.е. в графе существует дуга а, ^ а

Рис. 2. Пример обхода вершин графа конвейера

Таблица 2 Вычисление кратностей при обратном проходе вершин графа

№ Вид Формула для

п/п отношения вычисления ю

1 a ^ L a a = al

2 a ^ mul(q) aa = amJq

3 a ^ div(q) aa =q • adiv

4 a ^ get a a = aJ2

5 a ^ put a a =2 ' aput

6 a ^ and a a = a and

Если ai некоторая вершина графа типа and или put, то функция altera) определяет вершину графа предшествующую ah но альтернативную вершине ргес(аг).

Остальные используемые обозначения понятны без их определения.

Алгоритм вычисления кратности операций конвейера является рекурсивным.

Описание рекурсивной процедуры:

Вычислить кратность (а). Предполагается, что кратность вершины ai определена.

Если i < m то выход.

Вычислить aj = ргес(аг).

Вычислить ojj как функцию от юг- по Таблице 2.

Вычислить кратность(aj).

Если тип^) Ф and и тип^) Ф put то выход.

Вычислить aj = alter(aj).

Вычислить a>j как функцию от юг- по Таблице 2.

Вычислить кратность(aj).

Выход.

Конец описания процедуры.

Алгоритм вычисления кратности всех вершин конвейера выглядит следующим образом:

Положить i = n и а>„ = 1.

Вычислить кратность (a).

Конец алгоритма.

Рассмотрим применение данного алгоритма к конвейеру на рис.1. Выпишем значения кратностей в порядке их вычисления данным алгоритмом:

ю4 = 1;

aand = 1;

3 = 1;

am1 = 1;

= 1/2;

5 = 1;

m2 = 1;

ю2 = 1/3.

Данные кратности вычислены по отношению к завершающей операции. Если требуется вычислить кратность одной операции по отношению к другой, то необходимо взять отношение кратностей. Так кратность операции 1 по отношению к операции 2 равна 3/2, т.е. на 3 выполнения операции 1 приходится 2 выполнения операции 2. Это отношение легко видеть на шкалах диаграммы.

В общем случае кратность может быть рациональной дробью, как это видно на рассмотренном примере для о^ и о2. Однако всегда можно перейти к целым числам, умножив все кратности на наименьшее общее кратное (нок) всех знаменателей кратностей. Очевидно, что умножение всех кратностей на константу не изменит их значения относительно друг друга. В данном случае это будет константа 6. После такого преобразования кратность завершающей операции может отличаться от 1. В дальнейшем, если не оговорено противное, кратность завершающей операции будет полагаться равной 1.

Умение вычислять кратности операций позволит нам решить следующую задачу.

5. Вычисление коэффициента загрузки оборудования

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

ме, имеет смысл рассматривать данный показатель для 4-х классов процессов: 11, 10, 01 и 00.

На начальном этапе рассмотрим общий случай.

Пусть п - количество операций конвейера и п завершающая операция. Вычисляем загрузку 1-й операции (1< / < п).

Пусть k - количество циклов выполнения конвейера (количество произведенных изделий).

Пусть ю, - кратность выполнения операции /.

Обозначим Нсс(/, к) - коэффициент загрузки 1-й операции (оборудования) при выполнении k циклов (производстве k + 1 изделий) для конвейера класса сс (т.е. 11, 10, 01, 00).

В этом случае

Hi

(i, k )Д*+ !) U (0 < н < 1),

fn

т.е. в знаменателе время затраченное конвейером на производство k + 1 изделий, а в числителе количество повторений /-й операции помноженной на ее время выполнения. Количество повторений определяется как произведение (к + 1) на кратность данной операции относительно завершающей операции конвейера.

Коэффициент средней загрузки конвейера в целом при производстве k +1 изделий вычисляется по формуле

¿Я 11

Нц (к ) = ^-=

п

1 п

= —Т '¿(1_к +1)' и.

п • /п '=1

В данном случае возникает необходимость вычисления рекурсивной функции Однако, если известны характеристики конвейера

/, kSn, /п, Dn, Тп) и k > kSn

то фазу можно вычислить по формуле

/пк = ¡8п + (к - Ьп )• ^г

т п

для k > Ь'п.

Данная формула вычисляет, в общем случае, среднее значение фазы, но при значени-

ях k кратных Tn, т.е. таких, что k mod T = ksj mod T значение функции будет точным.

В этом случае для коэффициента загрузки получаем

нп (i, k ) = JLk^J±lh_

fin +

для k > ksn.

Если конвейер относится к классу 01 (т.е. fsn = Д0п и ksn = 0), то формула сокращается до

H,

01

(. k ) = (Lk ^J +1). ti для k > 0.

f0n + k•D

1. Вычислить коэффициент загрузки операция 4 при производстве 10 изделий.

, = 4, k = 9, и = 1, ю4 = 1, D4 = 1, Т4 = 1, Д49 = 13 (из диаграммы), Д40 = 4 (из диаграммы).

я =10.

т ' /49 13

Н 01 (4,9) = ^^ 1> = 1°.

0 /04 + * - ^ 13

H 0

(49\=(^4>lbL = 10 /04 + k. D4

13

В данном случае коэффициент загрузки имеет значение среднего или точного значения.

Если конвейер относится к классу 00 (т.е. fsn = Д0п и = 0 и Тп = 1), то формула сокращается до

I (к -а, 1 +1)-г, Н00 к) = \п 1\ для k > 0.

/0 п + к - °п

В данном случае коэффициент загрузки имеет точное значение.

Рассмотрим пример расчета коэффициента загрузки для конвейера на рис. 1. При этом значения фаз можно брать из диаграммы. Далее будут описаны постановки задачи и различные решения.

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

2. Коэффициенты загрузки операций 1, 3, 5 также будут равны 10/13. Вычислим коэффициент загрузки операция 2 при производстве 10 изделий.

, = 2, k = 9, ^ = 2, ю2 = 1/3 (из примера вычисления кратности), D4 = 1, Т4 = 1, Д49 = 13, Д40 = 4.

Яп = 1

Л9

13

яоо (2,9)=1b^J+iK=А.

00V у /о4 + k •

13

Меньшую чем у других операций загруженность операции 2 видно непосредственно из диаграммы на рис. 1.

Заключение

Модели таких процессов могут эффективно использоваться для разработки APS и MES систем [4,5] планирования: серийных, массовых и поточных дискретных производств. Возможность данной модели описывать широкий класс дискретных процессов позволяет ставить вопрос о включении ее в системы моделирования бизнес процессов [7] с целью вычисления численных характеристик дискретных процессов. В Институте проблем управления разработан лабораторный вариант системы моделирования рекурсивных конвейерных процессов на базе Microsoft Visio. Характеристики могут вычисляться в двух режимах. Первый заключается в прямом вычислении рекурсивных функций. Этот режим подходит для задач относительно небольшой размерности (десятки или сотни тысяч циклов). Второй метод основан на вычислении пятерок конвейерных характеристик K . Этот метод работает в тех случаях, когда циклы исчисляются шестизначными числами и более, например в вычислительных процессах.

n

4

Литература

1. Куприянов Б.В. Рекурсивные конвейерные процессы - основные свойства и характеристики. Вестник УМО «Экономика, статистика и информатика». № 1. 2015.

2. Куприянов Б.В. Преобразование рекурсивного конвейера общего вида в линейный конвейер. Научно-практический журнал «Открытое образование». № 6. 2015.

3. Куприянов Б.В. Применение модели конвейерных процессов рекурсивного типа для решения прикладных задач. Вестник УМО «Экономика, статистика и информатика». № 6. 2014.

4. Загидуллин Р.Р. Управление машиностроительным производством с помощью систем MES, APS, ERP. - Старый Оскол: ТНТ, 2011. - 372 с. - ISBN 978-5-94178-272-7.

5. Высочин С.В., Пителинский К.В., Смирнов Ю.Н. Принципы построения систем для расчета производственных расписаний (рус.) // САПР и графика: журнал. - М.: Компьютер Пресс, 2008. - 9. - С. 57-59. - ISSN 15604640.

6. Куприянов Б. В. Моделирование конвейерных бизнес-процессов. Сборник трудов «Управление большими системами», вып. 28, 2010, 230-273.

7. Калянов Г.Н. Формальные методы теории бизнес-процессов // Современные информационные технологии и ИТ-образование, 2015, №11, том 1, с. 628-632.

8. Воеводин В.В. Математическая модель конвейерных вычислений. М.: 1982. С. 34.

9. Штейнберг Р.Б. Автоматическое отображение программ на конвейерные и многоконвейерные архитектуры. ДКФМН. 05.13.11. М. 2012.

10. Лысаков К.Ф. Исследование методов реализации алгоритмов обработки больших потоков данных за счет конвейерного распараллеливания. ДКТН. 05.13.18. М. 2009.