ПРИЛОЖЕНИЕ X
определять общее время работы резервированной структуры и сразу отыскивать min t[.
Ветвь 27, 28, 22, 17, 29 —34, 42. При рассмотрении многозначной структуры фиксируется накопление отказов с учетом коэффициентов значимости (оператор 28). При наличии структурной избыточности коэффициент значимости резервированного блока не уменьшается до отказа последнего устройства в структуре.
В том случае, когда суммарный коэффициент еще не превышает допустимое значение, фиксируются номера отказавших блоков {а;} (оператор 22), затем машин ный код времени этих блоков дополняется до 1 (оператор 17) и управление пере дается оператору 12 для дальнейшего поиска. Если суммарный коэффициент ока жется выше допустимого значения, фиксируется срыв функционирования (опера тор 29), определяется наличие ремонтника (оператор 30) и время его освобождения (оператор 31), и если ремонтник освобождается ранее конца рабочего цикла, то нахо дится случайное время исправной работы устройства с максимальным коэффициен том значимости (оператор 33). Далее суммарное время min ^ -j- | тах где 4-
соответствует блоку с максимальным коэффициентом значимости kß, засылается вместо машинной единицы в ячейку с кодом блока, и операция поиска продолжается. Одновременно формируется время освобождения ремонтника.
Теперь рассмотрим случай, когда логический оператор 15 выдает признак «восстановление» и время восстановления не выходит за границы интервала [0 , Гр]
(оператор 16). В этом случае определяется момент времени очередного отказа і-го блока (оператор 8), полученное значение складывается с | min t( | (оператор 9), причем в случае структурного резерва количество резервных блоков увеличивается на единицу при условии, что сумма будет больше начального числа блоков т р , а число запасных блоков т3 уменьшается на единицу (оператор 4).
Поскольку при моделировании конкретной системы работает только одна из рас смотренных ветвей алгоритма, то после окончания одной реализации фиксируется число срывов функционирования и времена работы и простоя за время рабочего цикла. Данные гистограммы обрабатываются с помощью процедуры, приведенной в приложении V. Общее число реализаций подсчитывается по одному из существую щих методов.
Таким образом, с помощью рассмотренного алгоритма реализуются все варианты функционирования в рабочем цикле.
Теперь рассмотрим профилактический цикл. В этом цикле используется ряд данных, полученных в процессе проведения моделирования рабочего цикла.
При отсутствии профилактики (оператор 21) min tL передается на построение гистограммы; при наличии профилактики управление передается в ветвь алгоритма, моделирующего второй режим. Учитывая, что в процессе плавания отказавшие блоки не восстанавливаются, рассмотрим три возможных варианта восстановления:
1) замена части отказавших блоков в случае многозначной системы; 2 ) замена всех отказавших в рабочем цикле блоков;
3) обновление всех блоков, в том числе и неотказавших.
Если имеет место первый вариант, то после определения необходимости профи лактики (ключ Ян, оператор 23) происходит ранжировка по величинам коэффициента значимости (оператор 24) и проверка наличия ЗИПа у блоков с максимальными коэффициентами значимости (оператор 25). Затем вырабатываются времена замен t3 в том количестве, которое выбрано на основании заданных критериев (например, восстановление до уровня эффективности 0,8 и т. п.) (операторы 35 и 43), и минималь ные времена освобождения ремонтных бригад (оператор 44). После этого выясняется принадлежность интервала времени освобождения ремонтника заданному интервалу профилактики (оператор 10). В случае, если min іосв > Дп, берется блок со сле дующим (меньшим) значением коэффициента значимости (оператор 51), определяется наличие блока в ЗИПе и управление передается к оператору 35. Если Дп [> min /осв, то время замены (оператор 43) складывается с временем освобождения, при этом формируются новые значения t0св.
При втором варианте работает ветвь алгоритма, идущая через оператор 18, который проверяет наличие ЗИПа у всех отказавших устройств, взятых в массиве
[а,-]. Затем управление передается оператору 2, выполняющему те |
же |
функции, |
что и оператор 35. Отличие от рассмотренной уже ветви 44, 50, 56, |
51, |
57 состоит |
15 А . Г . Варжапетяп |
|
225 |
ПРИЛОЖЕНИЯ
в том, что в случае неполного проведения профилактики из суммарного коэффи циента значимости, равного единице, вычитается коэффициент значимости невос становленного блока (при аддитивных k E) либо решается одно из известных пра
вил [1 0 ] (при |
неаддитивных |
k E) (оператор 11), а затем проверяется условие |
k E доп |
(оператор 14). |
В случае выполнения этого условия ведется дальней- |
І
шая проверка восстановления, в случае его невыполнения фиксируется срыв профи лактики и отказ системы по крайней мере на следующий сеанс работы.
При восстановлении по третьему варианту моделирование проводится так же, только вместо числа отказавших блоков берется общее число блоков.
Вся последующая обработка ведется на основе полученной статистики за N реа
лизаций. |
|
|
Приложение |
ПРОЦЕДУРА ПОЛУЧЕНИЯ ВРЕМЕНИ |
XI |
РАБОТЫ И ВРЕМЕНИ ВОССТАНОВЛЕНИЯ |
|
ПРИ ПОСЛЕДОВАТЕЛЬНОМ СОЕДИНЕНИИ |
|
ВОССТАНАВЛИВАЕМЫХ ЭЛЕМЕНТОВ |
|
НАЗНАЧЕНИЕ
Процедура служит для получения случайного времени работы и восстановления при последовательном соединении. Блок-схема приведена на рис. П. 8 .
ОБРАЩЕНИЕ К ПРОЦЕДУРЕ
Процедура |
!Р„. |
с. в (л, сЗ, с4, с5, |
tp, |
/в, d) включает |
в себя: я — переменную |
Типа integer; |
d, |
tp, |
ів — переменные |
типа |
real; сЗ, с4, |
с5 — массивы. |
Обращение к процедуре может быть записано и без формальных параметров, |
если в основной программе ввести следующие обозначения: |
|
|
tp |
— время работы; |
|
|
|
|
|
|
ів |
— время восстановления; |
|
|
|
я — число последовательно соединенных элементов; |
|
|
сЗ — массив для записи |
параметров законов распределения вре |
с4 |
|
|
мени работы; |
|
номеров законов распределения времени |
[1 : я] — массив для записи |
с5 [л + |
|
|
работы; |
|
|
|
|
1 : 2л 1 — массив для записи номеров законов времени восстановления; |
|
|
d |
— постоянная, которая |
в начале каждой реализации равна 1, |
|
|
|
а внутри реализаций |
равна 0 . |
|
ОПИСАНИЕ ПРОЦЕДУРЫ*
При значении входного параметра d — 1 присваиваем величинам k и Т нуле вые значения и полагаем г І : — г З : = 1. Далее выполняем одно обращение к процедурефункции !РХ. Затем получаем случайные интервалы времени t [і] всех элементов
* |
При использовании этой и последующих (см. приложения X II— XVIII) про |
цедур |
в одной программе целесообразно присваивать счетчикам и массивам времен |
индексы, соответствующие назначению процедуры. В настоящей работе эти индексы опущены,
ПРИЛОЖЕНИЕ XII
и отыскиваем минимальный. При d 1 сразу переходим к поиску min | I [І]|. Находим
|
/1 |
[t'] := (abs (I |
[I] — I min) |
x sign (I [t]) |
и прибавляем |
1 min к T |
(время от одного состояния системы до другого). Элемент, |
у которого И |
[t ] = 0 (т. е. время его |
пребывания |
в исследуемом состоянии было |
минимальным), на у-м шаге изменил свое состояние. Если он работал, то находим время его восстановления и наоборот, причем для удобства программирования время восстановления записываем со знаком минус. Остальные элементы своего состояния
не меняют, и после /-го шага 1 [I] := И [і]. Если среди |
элементов |
есть такие, |
у которых І[і] < 0, то система восстанавливается. |
|
|
Если система на у-м шаге не изменила своего состояния, то переходим к отыска |
нию минимального из полученных на у'-м шаге I [I]. Если |
состояние |
изменилось, |
то полученное к этому моменту значение Т заносим в массивы Ів либо Ір (в зависи мости от того, работала система до этого или восстанавливалась). Затем Т пола гаем равным нулю и обращаемся к началу процедуры, причем все необходимые вели чины оказываются подготовленными к (у + 1)-му шагу.
Таким образом, при каждом выходе из процедуры получаем или Ір, или Ів (первый раз Ір, затем эти величины чередуются). В зависимости же от d либо реали зация будет продолжаться (при d =/= 1), либо будет начинаться новая реализация
(при |
d = 1). |
|
|
|
В программе, использующей |
с. в. необходимо описать г 1, гЪ — переменные |
типа |
real; I [1 : п ] — массив, так же, как в приложении |
IX. |
|
|
|
Приложение |
ПРОЦЕДУРА ПОЛУЧЕНИЯ ВРЕМЕНИ |
ХИ |
РАБОТЫ И ВРЕМЕНИ ВОССТАНОВЛЕНИЯ |
|
ПРИ НАГРУЖЕННОМ |
|
|
ОБЩЕМ ДУБЛИРОВАНИИ |
|
|
НАЗНАЧЕНИЕ
Процедура служит для получения случайного времени работы и восстановления при нагруженном дублировании.
Блок-схема процедуры приведена на рис. П.9.
ОБРАЩЕНИЕ К ПРОЦЕДУРЕ
Процедура |
0. д (п, сЗ, с4, с5, !р, Ів, d) включает |
в себя: п — переменную |
типа integer; d, |
Ір, Ів — переменные типа real; сЗ, с4, |
с5 — массивы. |
Обращение к процедуре может быть записано без формальных параметров, если ввести в основной программе следующие обозначения:
Ір — время работы; Ів — время восстановления;
п — число элементов основной цепочки (резервной цепочки); сЗ — массив для записи параметров законов распределения вре
мени работы и времени восстановления;
ПРИЛОЖЕНИЯ
с4 [1 : /г] — массив для записи номеров законов распределения времени работы основной цепочки;
с4 [я -)- 1 : 2я] — массив для записи номеров законов распределения времени работы резервной цепочки;
с5 [2п -j- 1 : Зя] — массив для записи номеров законов распределения времени восстановления основной цепочки;
с5 [Зя -j- 1 : 4я ] — массив для записи номеров законов распределения времени
восстановления резервной цепочки; |
|
d — постоянная, которая в начале каждой реализации равна 1 |
а внутри реализации равна 0 . |
|
Обращение к процедуре может быть многократным. |
|
В программе, использующей обращение к процедуре |
0. д, необходимо так же, |
как и в приложении IX, описать: гі, г З — переменные |
типа real; t [1 :2 я ] — |
массив. |
|
ОПИСАНИЕ ПРОЦЕДУРЫ
При d = 1 полагаем к, Т , г, I равным нулю, а г \ и гЗ — равными 1. Далее осуществляем одно обращение к процедуре-функции !?х . Получаем случайные интер валы времени t [і] и определяем минимальный. При d =j= 1 сразу находим / min (минимальное среди времен 2я элементов) и прибавляем его к времени Т (от одного состояния системы до другого). Элемент, у которого время его пребывания в иссле
|
|
|
|
|
|
|
|
|
|
|
|
|
|
дуемом состоянии оказалось |
минимальным, |
изменил это |
состояние. |
Так |
же как |
и в процедуре £РП. с. в, для него |
отыскиваем |
время |
работы |
или время |
восстановле |
ния (со знаком |
минус). Для |
остальных элементов |
после |
/-го шага имеем |
|
|
|
t |
[і] ;= |
(abs (t [г 1) — |
|
('m in)xsign (t |
[/]). |
|
|
|
Если |
среди |
времен |
работы |
элементов |
хотя |
бы |
одной |
цепочки (или |
в цепочке |
1...........я, |
или в |
цепочке я -}- |
1, |
. . ., 2 я) |
есть |
t [і] со знаком минус, |
то |
проис |
ходит отказ системы.
Далее операции в процедуре проводятся аналогично операциям процедуры â^n.c.u.
|
Приложение |
ПРОЦЕДУРА ПОЛУЧЕНИЯ ВРЕМЕНИ |
Ш |
РАБОТЫ И ВОССТАНОВЛЕНИЯ |
|
ПРИ НЕНАГРУЖ ЕННОМ |
|
ОБЩЕМ ДУБЛИРОВАНИИ |
|
НАЗНАЧЕНИЕ
Процедура служит для получения случайного времени работы и времени восста новления при ненагруженном общем дублировании.
Блок-схема процедуры приведена на рис. П.10.
ПРИЛОЖЕНИЕ XIII
ОБРАЩЕНИЕ К ПРОЦЕДУРЕ
Процедура ^„ен. о. д (л, сЗ, с4, с5, /р, /в, d) включает в себя: л — переменную типа integer; d, tp, /в — переменные типа real; сЗ, с4, с5 — массивы.
Обращение к процедуре может быть записано без формальных параметров, если принять обозначения, аналогичные принятым при описании процедуры 5Ѵо.д-
Возможно многократное обращение к процедуре.
В программе, использующей процедуру ^нен.о.д. необходимо также описать fe12, іТ, і 2 — переменные типа integer; / [1 : 2 n ] — массив.
ОПИСАНИЕ ПРОЦЕДУРЫ
При первом обращении к процедуре полагаем /рв = 2 (/рв — постоянная, значение которой попеременно равно 1 и 2 ), поэтому проверяем, выполняется ли
условие d = |
1. Если да, то |
задаем начальные значения соответствующим вели |
чинам: £ : = Т |
:= 0; £12 : = 1 |
и т. д., выполняем первое обращение к |
процедуре !РХ |
и переходим |
к нахождению 2п случайных интервалов времени / [і]. |
Если условие |
d — 1 не выполняется, то сразу осуществляем переход на переключатель R 1 І£ 1 2 ],
который направляет на поиск элемента, имеющего min / [/] либо в основной цепочке
блоков |
(/ := 1, . . ., я), |
либо в резервной (£ := л -J- I, |
. |
. ., 2я). Номер этого |
эле |
мента запоминаем £з := |
/, а вместо t |
[£з] находим время |
восстановления. К значе |
нию Т |
(котороепервоначально равно |
нулю) добавляем |
Im in. Для остальных |
эле |
ментов |
рассматриваемой |
цепочки после этого |
получаем |
|
|
|
|
/ [і] := (abs ( t |
[i]) — t |
m in)Xsign (/ [t]). |
|
Далее, пока данная цепочка восстанавливается, подключаем резервную (или основную) цепочку и для нее выполняем те же операции. К значению Т добавляем / min этой цепочки. Выясняем, превышает ли / min этой цепочки найденное время восстановления первой цепочки / [р]. Если да, то за время работы второй цепочки успела восстановиться первая (исправные элементы ее не работали, а отказавшие восстановились). Для нее определяем время работы и снова среди ее элементов оты скиваем элемент, имеющий / min. Если указанное условие не выполняется, то это значит, что обе цепочки восстанавливаются и система отказала. Тогда / [р] опреде ляется с помощью выражения
/ [р] := (abs (/ [р]) — / min) X sign (/ [p]).
Выясняем, модуль какой из величин, определяющих случайные времена восста новления отказавших элементов в двух цепочках, меньше. Эта величина и будет временем восстановления системы / min. Вместо нее определяем время работы цепочки, а вместо второй величины будет теперь стоять их разность. Для постоян
ной £ 1 2 должно быть задано |
такое значение, |
чтобы при следующем обращении |
к процедуре переключатель Д 1 |
[£ 1 2 ] направил |
на поиск элемента с минимальным |
временем восстановления в нужной цепочке (в той, время восстановления которой явилось временем восстановления системы). Таким образом, будут найдены значе
ния tp := |
Т |
и Ів |
:= |
t |
min. Первое из них выдается при первом выходе из процедуры |
(при этом |
Т |
:= |
/в := |
0, а /рв задаем равным 2), а второе (так как /рв = 2 ) — при |
следующем |
выходе из |
процедуры. |
При |
/рв = |
2 мы |
сразу выходим из процедуры со следующими значениями: |
/в := / min; |
tp |
:= |
0 ; |
/рв := 1. |
Таким образом, |
/рв будет обеспечивать чередование на выходе величин /р и /в. |
Продолжать же реализацию системы будем лишь при следующем обращении к про цедуре (при d Ф 1). Для этого все величины подготовлены заранее.
|
Приложение |
ПРОЦЕДУРА ПОЛУЧЕНИЯ ВРЕМЕНИ |
XIV |
РАБОТЫ И ВРЕМЕНИ ВОССТАНОВЛЕНИЯ |
|
ПРИ НАГРУЖЕННОМ РЕЗЕРВЕ ЭЛЕМЕНТОВ |
|
С РАЗЛИЧНЫМИ ИНТЕНСИВНОСТЯМИ ОТКАЗОВ |
|
ПРИ НЕОГРАНИЧЕННОМ ВОССТАНОВЛЕНИИ |
|
НАЗНАЧЕНИЕ
Процедура служит для получения случайного времени работы и времени восста новления при нагруженном резерве элементов с различными интенсивностями отказов при неограниченном восстановлении.
Блок-схема процедуры представлена на рис. П. II.
ОБРАЩЕНИЕ К ПРОЦЕДУРЕ
Процедура éPH, р (я, т, |
сЗ, с4, с5, /р, (в, d) |
включает |
в себя: т , я — пере |
менные типа integer; d, tp, |
ta — переменные типа |
real; сЗ, |
с4, с5 — массивы. |
Обращение к процедуре может быть записано без формальных параметров, |
если ввести следующие обозначения: |
|
|
ір |
— время |
работы; |
|
|
(в |
— время |
восстановления; |
|
|
я — число элементов; т — число рабочих элементов;
сЗ — массив для записи параметров законов распределения вре мени работы и времени восстановления;
с4 [1 : /г] — массив для записи номеров законов распределения времени работы;
с5 [я - f 1 : 2/1 ] — массив для записи номеров законов распределения времени
восстановления;
d — постоянная, равная 1 в начале каждой реализации и 0 внутри
реализации.
Получаемые на выходе из процедуры величины tp и ів чередуются, т. е. на первом шаге получается Ір (при этом Ів = 0 ), на втором шаге (в (при этом tp = 0)
ит. д. К процедуре можно обращаться многократно.
Впрограмме, использующей процедуру !?н, р, должны быть описаны: гі, гЗ — переменные типа real; t [1 : я] — массив.
ОПИСАНИЕ ПРОЦЕДУРЫ
При значении входного параметра d = 1 полагаем величины k, Т , г, равными нулю, а гі, гЗ равными 1 (г характеризует содержимое счетчика, определяющего
состояние системы; гі — счетчика, выясняющего, изменилось ли состояние системы на последующем шаге; гЗ — счетчика, определяющего, является Т временем работы или временем восстановления). Далее осуществляем первое обращение к процедуре ^ т . Затем получаем я случайных интервалов времени t [і], распределенных по заданному закону. После этого определяем m in |i [і]|. В случае нее d=±= 1 мы сразу определяем min |f [i]), минуя обращение к процедуре Элемент с минимальным временем
пребывания в исследуемом состоянии |
изменил свое состояние (если до /-го шага он |
работал, |
то после /-го |
шага |
он восстанавливается по соответствующему закону, |
и наоборот). Находим |
|
|
|
|
Ü |
[і] := |
(abs (/ |
[i]) — i min)Xsign (t [i ]) |
для всех |
i от 1 до я. |
|
|
|
ПРИЛОЖЕНИЕ XIV—XV
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если t-я разность abs ( t [i]) — |
f min не равна нулю, то полагаем f [t] |
:= |
fl |
[i] |
[эти |
значения f [t] |
используются |
на |
(/ + |
1)-м шаге]. Если |
указанная |
разность |
равна нулю, то |
элемент изменил |
свое |
состояние. Если |
для |
него |
f [ і] ] > 0 , |
то |
f [i] |
:= — 9>x (j. |
e. элемент восстановился), |
если же t [t']<[ 0 , то |
f |
[i] := |
<рх |
и мы |
определяем |
время |
работы восстановленного |
элемента. |
После |
этого |
полагаем |
Т : = |
Т |
t min |
и |
подсчитываем |
количество |
элементов, |
которые |
восстановятся. |
Если г ]> и — т , то система на /-м шаге отказала и г2 := 0, если же указанное усло вие не выполняется, то система работает и г2 := 1. Если г2 = г1 (в начале гі := 1), то система на j- u шаге не изменила своего состояния и мы снова переходим к отыска
нию минимума для следующего шага. При этом полагаем г |
: = 0 — условие того, |
что система не изменила свое состояние. Затем полагаем гі := |
г2 и проверяем гЗ = 1 |
(в начале процедуры гЗ:= |
1). Если гЗ = |
|
1, то Т — время работы системы. Полагаем |
fp := Т ; /в := |
0; гЗ := гЗ — 1 (подготавливаем гЗ для следующих шагов); г : = Т : = О |
и выходим из |
процедуры. |
Если |
гЗ Ф |
1, то Т — время восстановления системы. |
Полагаем Ів := |
Т \ fp := |
0; |
гЗ := |
г2> -|- |
1, г := 0 и выходим из процедуры. При |
следующем обращении к |
процедуре все |
операции повторяются. |
|
|
|
|
|
|
|
Приложение |
ПРИМЕР ПРОГРАММЫ |
|
|
|
|
|
XV |
ПОСЛЕДОВАТЕЛЬНОГО СОЕДИНЕНИЯ СТАНДАРТНЫ Х БЛОКОВ
НАЗНАЧЕНИЕ
Программа служит для получения времени работы и времени восстановления при последовательном соединении стандартных блоков.
Блок-схема программы приведена на рис. П.12.
ОБОЗНАЧЕНИЯ, ВВЕДЕННЫЕ В ПРОГРАММЕ, И ЕЕ ОСОБЕННОСТИ
Для |
составления программы необходимо задать следующие величины: |
п 1, |
сЗІ,с41, с51 — формальные |
параметры процедуры ^ п. с. в! |
п2, |
с32,с42, с52 — формальные |
параметры процедуры |
^„ен. о. д! |
яЗ, |
сЗЗ,с43, с53 — формальные |
параметры процедуры |
^ н. 0. д; |
пб — число |
последовательно |
соединенных |
стандартных блоков; |
fp, fß, d l , e l, е2 , k l , k2, |
fVmax — формальные |
параметры процедуры |
|
d — постоянная, принимающая значения 0 или 1; |
f [1 : пб] — время |
работы или |
время восстановления |
|
блоков; |
|
|
|
|
Т 1 — время работы или время восстановления си |
|
стемы после каждого изменения ее состояния; |
|
f min — минимум из |
f [fj; |
|
|
із — номер элемента, время t для которого ока |
|
залось минимальным; |
|
гі, |
г2, гЪ — переменные, |
характеризующие содержимое |
|
счетчиков. |
|
|