Опубликован: 06.09.2012 | Уровень: для всех | Доступ: платный | ВУЗ: Московский государственный университет путей сообщения
Лекция 15:

Приближенные методы моделирования неисправностей

< Лекция 14 || Лекция 15: 123 || Лекция 16 >

15.2 Статистический анализ неисправностей.

Статистический метод STAFAN [15.4,15.5] позволяет получить оценку полноты тестовой последовательности без моделирования всех неисправностей. Он использует данные, полученные при логическом моделировании исправной схемы, и позволяет приблизительно найти вероятность обнаружения неисправностей. В течение моделирования собирается статистика данных моделирования на внутренних линиях схемы. Для каждой линии схемы вычисляются следующие характеристики:

  1. с1(n) - управляемость линии n, т. е. вероятность появления на этой линии единицы на случайно выбранном входном наборе;
  2. c0(n) - 0-управляемость линии n, вероятность появления на линии значения 0 на случайно выбранном входном наборе;
  3. В_{1}(n) - 1-наблюдаемость линии n, вероятность наблюдения линии n на внешнем выходе схемы при значении n =1 (фактически условная вероятность активизации пути от линии n до внешнего выхода схемы при n =1);
  4. В0(n) - 0-наблюдаемость линии n, вероятность активизации пути от линии n до внешнего выхода линии схемы при n =0.

Для каждой линии схемы определим два счетчика. Первый 0-счетчик предназначен для подсчета нулевых значений на данной линии в процессе моделирования и 1-счетчик для подсчета единичных значений. Когда в процессе моделирования данная линия принимает значение 0 (1) , то ее 0 (1) -счетчик увеличивается на единицу. Если значение сигнала на линии неопределенное u, то счетчики не изменяются. Если на линии n получается значение, соответствующее высокому импедансу, то обычно увеличивается значение того счетчика, чье значение изменялось в последний раз.

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


c_1(n) = \cfrac{1-счетчик}{N}\\
c_0(n) = \cfrac{0-счетчик}{N}

Фактически 0-управляемость характеризует частоту (вероятность) установки данной линии схемы в нулевое значение, а 1-управляемость соответственно в единичное.

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

S(n)=\cfrac{счетчик-активизации}{N}

В начале моделирования значения наблюдаемости полагаются равными В_{1}(n) = В_{0}(n) = 1.0. для всех внешних выходов схемы. Значения наблюдаемости остальных линии схемы последовательно вычисляются, двигаясь от выходов схемы к ее входам, с помощью специальных формул. Рассмотрим их на примере вентиля И с распределением сигналов, показанным на рис.15.3.

Вычисление наблюдаемости входа вентиля.

Рис. 15.3. Вычисление наблюдаемости входа вентиля.

Проблема состоит в том, как по данному значению 1-наблюдаемости В_{1}(m) выхода вентиля И получить 1-наблюдаемость его входа В_{1}(n). Для этого используем формулу Байеса:


c1(m)= Prob(i=1, j=1, k=1, n=1) = Prob(i=1, j=1, k=1 / n=1)*c1(n)

Из этого выражения получаем:


Prob(i=1, j=1, k=1 / n=1)=\cfrac{c_1(m)}{c_1(n)}

Поэтому:


B1(n)=B1(m)= Prob(i=1, j=1, k=1 / n=1)= \cfrac{B1(m)*C_1(m)}{C_1(n)}

Из полученной формулы видно, что 1-наблюдаемость вычисляется на основании значения 1-наблюдаемости выхода элемента и значений 1-управляемости этого входа и выхода.

Далее найдем выражение для расчета 0-наблюдаемости этого же вентиля И.

Поскольку S(n) - вероятность активизации входа n, то


S(l) = Prob(i=1, j=1, k=1) = Prob(i=1, j=1, k=1, n=1) +Prob(i=1, j=1, k=1 / n=0) * C0(1).

Отсюда следует:


Prob(i=1, j=1, k=1 / n=0)=\cfrac{S(n)-C1(n)}{C0(n)},\\
B0(n)=B0(m)* Prob(i=1, j=1, k=1 / n=0)

Окончательно получаем следующую формулу для вычисления 0-наблюдаемости.

B0(n)=B0(m)\left [\cfrac{S(n)-C1(m)}{C0(n)}\right ]

Таким образом, 0-наблюдаемость входа n вычисляется, исходя из значений 0-наблюдаемости выхода m, значения счетчика активизации этого входа S(n) и двух значений управляемости C_{0}(l) и C_{1}(m) (0-управляемость и 1-управляемость выхода).

Аналогично можно получить формулы вычисления 0-, 1- наблюдаемости для:

вентиля ИЛИ


B1(n)=B_1(m) \left [\cfrac{S(l)-C0(m)}{C1(l)} \right ],\\ 
B0(n)=B_0(m) \cdot C0(m) / C1(n),

вентиля НЕ-И


B1(n)=B0(m)\cdot C0(m) / C1(n),\\
B0(l)=B1(m)\left [\cfrac{S(l)-C0(m)}{C0(n)} \right ],

вентиля НЕ-ИЛИ:


B1(n)=B0(m)\left [\cfrac{S(n)-C1(m)}{C1(n)} \right ], \\
B0(n)=B1(m)\cdot C1(m) / C0(n),

вентиля НЕ:


B1(n)=B0(m),\\
B0(n)=B1(m),

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

 Вычисление наблюдаемости для узла разветвления.

Рис. 15.4. Вычисление наблюдаемости для узла разветвления.

При этом известны значения 0- (1-) наблюдаемости на ветвях разветвления i, j. Требуется определить значение 0- (1-) наблюдаемости в узле n. Очевидно, так как линия n может наблюдаться только через линии i, j, то:

В1(n)>=B1(i), В1(n)>=B1(j) и B1(n)>=max[B1(i),B1(j)].

Если пути наблюдения линии n через линии i и j независимы, то:


В1(n)=B1(i)\cup В1(j)=B1(i)+ В1(j) - B_{1}(i)В_{1}(j).

В общем виде имеет место следующая оценка


max{[B_1(i);B_1(j)]}\le B_1(l)\le\bigcup\limits_{k=i,j}{B_1(i_k)}

Для многих ветвей разветвлении эта оценка имеет следующий вид


max{[B_1(i_k)]}\le B_1(l)\le\bigcup\limits_{k=1}^m{B_1(i_k)}

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

B_1(n)=(1-\alpha)max[B_1(j_k)]+\alpha[\bigcup\limits_{k=1}^{m}{B_1(j_k)}]

Здесь j_{k} обозначает ветвь разветвления узла n. При \alpha  =1 значение B1(n) наблюдается независимо через каждую ветвь разветвления и поэтому наблюдаемость определяется суммой значений наблюдаемости этих ветвей. При \alpha  =0 значение B1(n) наблюдается сходящиеся ветви разветвления и поэтому значение B1(n), по крайней мере, не меньше максимального значения наблюдаемости отдельной ветви.

До сих пор мы неявно предполагали, что обрабатываются комбинационные схемы. В последовательностных схемах при вычислении наблюдаемости есть проблемы с обработкой линий обратной связи. Они могут быть решены с применением полученных расчетных формул, но требуют дополнительных усилий [15.4,15.5].

Далее рассмотрим оценку вероятности обнаружения неисправности. Для проверки одиночной константной неисправности n=1 надо подать на эту линию значение 0 и обеспечить распространение влияния неисправности до внешнего выхода схемы. Поэтому вероятность проверки константной неисправности n \equiv 1 можно оценить с помощью совместной вероятности установки линии n в 0 и наблюдения на внешнем выходе:

D1(n)=C0(n)\cdot B0(n)

Аналогично для констатной неисправности n \equiv 0 вероятность ее проверки можно оценить с помощью

D0(n)=C1(n)\cdot B1(n)

Таким образом можно найти для каждой неисправности ее вероятность обнаружения на данном одном тестовом наборе. Далее необходимо оценить вероятность обнаружения неисправности на всех N наборах проверяющего теста. Пусть x обозначает вероятность проверки данной неисправности на одном тестовом наборе (определяется D1(n) или D0(n) в зависимости от типа неисправности). Тогда вероятности проверки этой неисправности на тестовой последовательности из N входных наборов можно оценить по известной формуле:

X(N)=1-(1-x)^N

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

W(x)=1-\cfrac{N-1}{6}\beta^2\cfrac{x}{1-x}

Здесь \beta - коэффициент пропорциональности, который определяется эмпирически. С учетом корректирующего фактора вероятность проверки неисправности x_{i  } тестовой последовательностью , содержащей N входных наборов, определяется следующим выражением:


f_i(N)=1-\prod\limits_{m=1}^{N}{\cfrac{(1-x_{im})}{W(x_{im})}}

Если вероятность проверки каждой неисправности на N наборах известна, то интегральная полнота для всех k неисправностей и N тестовых наборов можно определить следующей формулой


F(N)=\cfrac{1}{K}\sum\limits_{i=1}^{K}{f_i(N)}

Анализ этой процедуры показывает, что она имеет линейную сложность, т.е. сложность пропорциональна N, в отличие от предыдущих, со сложностью пропорциональной N^{2}. Этот метод является приближенным. Авторы данного метода провели экспериментальное сравнение с результатами детерминированного моделирования неисправностей [15.5] схемы 64-разрядного АЛУ с 4376 неисправностями. Проверяющий тест из 155 наборов согласно данным детерминированного моделирования с неисправностями дал полноту проверки неисправностей 75.09%. Затем было проведено статистическое моделирование неисправностей, по результатам которого неисправности ранжированы по значениям вероятности проверки. Исходя из полноты 75.09% 3286 неисправностей, имеющих большие значения вероятности проверки считались обнаруженными, а оставшиеся 1090 неисправностей признаны непроверенными. Из этих 1090 неисправностей 1036 неисправностей не проверялись и детерминированном моделировании. Из3286 неисправностей, проверяемых по данным STAFAN, все, кроме 46 неисправностей, проверялись и детерминированным методом. В експериментах использовались следующие значения параметров: \alpha  =1 (независимые пути разветвления) и \beta^2/6=5.0, которые дали хорошое совпадение с данными детерминированного моделирования.

< Лекция 14 || Лекция 15: 123 || Лекция 16 >
Дмитрий Медведевских
Дмитрий Медведевских

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

Андрей Баранов
Андрей Баранов
Донецк, Донецкий национальный технический университет, 2019
Андрей Чернов
Андрей Чернов
Россия, Ростов-на-Дону, Ростовский институт инженеров железнодорожного транспорта, 1993