Эксперименты по распознаванию неисправностей линейных автоматов
В процессе эксплуатации в цифровых устройствах могут возникнуть различные неисправности. Для обеспечения правильного функционирования этих устройств необходимо проводить их проверку с целью обнаружения возможных неисправностей. Один из способов обнаружения неисправностей заключается в прерывании режима штатной работы устройства и подачи на него специально построенной входной последовательности, называемой тестом. Тест должен обладать следующим свойством: реакция проверяемых устройств на него должна быть различной в зависимости от того, является ли это устройство исправным или содержит неисправность. Следовательно, процесс обнаружения неисправностей представляет собой эксперимент, проводимый над устройством.
Эта лекция посвящена проблеме обнаружения неисправностей в цифровых системах, описываемых моделями линейных автоматов. Ранее известные методы построения тестов для ЛА, описанные в работах [2], [27], содержали жесткие требования, касающиеся как наличия информации о начальном состоянии, так и схемной реализации. Заметим, что эти требования почти никогда не выполняются.
Предлагаемые ниже методы не требуют выполнения упомянутых жестких ограничений и являются менее трудоемкими. Далее предполагается, что в ЛА могут возникать неисправности, приводящие к изменению его характеристических матриц, но не увеличивающие числа его состояний и не выводящие исходное устройство из класса ЛА.
Предполагается также, что неисправность, возникнув в ЛА в некоторый момент, сохраняется в нем и во все последующие моменты времени. Последнее означает, что из рассмотрения исключаются только сбои и перемежающиеся неисправности, которые представляют собой кратковременные самоустраняющиеся неисправности одного и того же типа, появляющиеся в устройстве через некоторые не обязательно равные промежутки времени. Что же касается "неисчезающих" неисправностей, то рассматриваемое разнообразие их видов предельно широко. В самом деле, любые из встречающихся на практике неисправностей, например, типа константных, перепутывания связей, коротких замыканий, изменения реализуемой вентилем функции и т. п., в конечном счете, если они являются существенными, приводят только к изменениям характеристических матриц ЛА.
Ниже рассматривается следующая задача. Пусть задан ЛА и некоторая его неисправная модификация из множества допустимых неисправных модификаций. Требуется построить такую входную последовательность (тест), которая эту неисправность обнаруживает.
Входную последовательность назовем тестом, обнаруживающим заданную неисправность, если независимо от начальных состояний исправного ЛА и его неисправной модификации их входные реакции на эту последовательность различны.
Построенные предложенными ниже методами тесты используются для проведения экспериментов по распознаванию (обнаружению) неисправностей. Тесты подаются на вход ЛА, фиксируется реакция проверяемого устройства на этот тест и по этой реакции делается заключение об исправности или неисправности устройства.
Синтез тестов для стационарных линейных автоматов
Напомним вначале некоторые понятия, которые понадобятся в дальнейшем.
Говорят, что ЛА имеет конечную память глубины
, если в любой момент времени
выход
однозначно определяется входом в этот же момент и предыдущими
входами и
выходами, т. е. для всех
справедливо соотношение
![\bar y(t)=f(\bar u(t), \bar (t-1), \dots, \bar u(t- \mu), \bar y(t-1), \dots, \bar y(t-\mu))](/sites/default/files/tex_cache/7829ea04b6e2287766592ffa50903fcf.png)
Содержательно это означает, что реакция такого ЛА в произвольный момент времени может быть предсказана только на основе знания входной последовательности и соответствующей реакции ЛА в предшествующие моментов времени.
Из теории ЛА известно [19], что каждый ЛА имеет конечную память глубины , где
(
- размерность ЛА).
Говорят, что ЛА является
- определенным, если его выход
в любой момент времени
зависит лишь от предыдущих
входов, т. е. справедливо соотношение
![\bar y(t)=f(\bar u(t), \bar u(t-1), \dots, \bar u(t - \mu))](/sites/default/files/tex_cache/1e844ba3faad2c04145cc3ff81803746.png)
Перейдем теперь к описанию методов построения тестов. Пусть - характеристические матрицы ЛА
, являющегося неисправной модификацией исходного ЛА
.
Рассмотрим случай, когда как исходный ЛА , так и неисправный ЛА
являются
-определенными, однако значения параметра
для них необязательно совпадают. Пусть
(
,
), где
и
- значения параметра
для ЛА
и
соответственно. В [19] доказано, что необходимым и достаточным условием
-определенности ЛА является выполнение соотношения
. Отсюда следует, что
и
для всех
.
Если на исправный и неисправный ЛА подана одна и та же входная последовательность , то с учетом только что приведенных равенств и формулы (1.4) полной реакции ЛА независимо от начальных состояний автоматов
и
соответствующие реакции имеют вид
![\bar y(\mu)=CA^{\mu -1}B \bar u(0)+CA^{\mu-2} B\bar u(1)+ \dots +CB \bar u(\mu-1)+D\bar u(\mu),\\
\bar {y_1}=C_1A_1^{\mu -1}B_1 \bar u(0)+C_1A_1^{\mu -2}B_1 \bar u(1)+ \dots + C_1B_1 \bar u(\mu -1)+D_1 \bar u(\mu)](/sites/default/files/tex_cache/31deb401ff6236a2feaad6fc16159857.png)
Произведя вычитание, получим
![]() |
( 14.1) |
Понятно, что заданная неисправность будет обнаружена входной последовательностью (тестом) , если и только если реакции
и
различаются, т. е.
.
Соотношение (14.1) будем рассматривать как СЛАУ относительно неизвестных, являющихся координатами вектора
![]() |
( 14.2) |
и на ее основе организуем процедуру построения теста. Обозначим через матрицу системы (14.1); тогда (14.1) перепишется в виде
![]() |
( 14.3) |
где - некоторый
-мерный ненулевой вектор.
Обозначим через множество всех тестов, обнаруживающих заданную неисправность. Для поиска множества
необходимо варьировать правую часть системы (14.3) и при каждой конкретной правой части находить решение системы, если оно существует.
Легко сообразить, что число всевозможных правых частей системы (14.3) равно величине , которая даже при сравнительно небольших значениях параметров
,
и
достаточно велика. По этой причине предлагаемый метод довольно трудоемок и мы рассмотрим другой, более эффективный метод.
Суть его состоит в том, что вместо неоднородной системы (14.3) будет рассматриваться соответствующая ей однородная система
![]() |
( 14.4) |
множество решений которой обозначим через . Если
- множество всевозможных векторов вида (14.2), то очевидно, что множество
является искомым множеством
тестов. Таким образом, при такой организации построения тестов все свелось к решению единственной однородной системы уравнений.
Пусть ранг матрицы равен
. Если
, то из алгебры известно, что нулевое решение будет единственным решением однородной системы (2.4), а при
система имеет ненулевые решения, метод поиска которых известен.
Проиллюстрируем предложенный метод на примере. Пусть ЛА над полем задан следующими характеристическими матрицами (
):
![A=
\left [
\begin {matrix}
0&0&0&0\\
1&0&0&0\\
1&1&0&0\\
1&1&1&0
\end {matrix}
\right ],\\
B=
\left [
\begin {matrix}
1&1\\
1&1\\
1&1\\
1&1
\end {matrix}
\right ],\\
C=
\left [
\begin {matrix}
1&1&0&0\\
1&0&0&0
\end {matrix}
\right ],\\
D=
\left [
\begin {matrix}
1&1\\
1&1
\end {matrix}
\right ]](/sites/default/files/tex_cache/5410ebaeb8bdadfe557843e8d4e6cca9.png)
Пусть неисправный автомат задан матрицами
![A_1=
\left [
\begin {matrix}
1&1&1&1\\
1&1&1&1\\
1&0&0&0\\
1&0&0&0\\
\end {matrix}
\right ],\\
B_1=B,\\
C_1=
\left [
\begin {matrix}
1&1&0&0\\
0&0&1&1
\end {matrix}
\right ],\\
D_1=D](/sites/default/files/tex_cache/e22d4ffa4d59fd5c4179eedf0ad1d6bf.png)
Легко проверить, что и
, т. е. оба ЛА являются
-определенными (
).
По формуле полной реакции имеем следующие результаты:
![\bar u(2)=CAB \bar u(0) \oplus CB\bar u(1) \oplus D\bar u(2),\\
\bar {y_1}(2)=C_1A_1B \bar u(0) \oplus C_1B \bar u(1) \oplus D \bar u(2)](/sites/default/files/tex_cache/f43382b4ee95cf4f6c1130454a62fe00.png)
Отсюда получаем однородную линейную систему вида (14.4):
![[CAB \oplus C_1A_1B]\bar u(0) \oplus [CB \oplus C_1B]\bar u(1)=[0]](/sites/default/files/tex_cache/88aa0fbaafdf8253825bafee33d4f0bf.png)
Выполнив соответствующие вычисления, придем к следующей однородной системе уравнений в координатной форме:
![u_1(0) \oplus u_2(0)=0;\\
u_1(0) \oplus u_2(1)=0](/sites/default/files/tex_cache/4bfa2f971c9db0665eb56a6e4bbf4447.png)
Легко проверить, что ранг матрицы последней системы , т. е. он меньше числа неизвестных (
. Отсюда следует, что система имеет ненулевое решение. Считая, например, переменные
и
свободными, выразим через них оставшиеся переменные
![]() |
( 14.5) |
Отметим, что в рассматриваемой системе переменные и
отсутствуют в силу специфики самой системы, т. е. выступают здесь в роли фиктивных переменных. Из сказанного вытекает, что решениями этой однородной системы являются всевозможные значения
, удовлетворяющие соотношениям (14.5), а также произвольные значения переменных
.
Зная множество решений рассмотренной однородной системы, построим множество
всех тестов, обнаруживающих заданную неисправность, как дополнение множества
до множества всех
штук двоичных входных наборов
длины 6. Таким образом, искомое множество
составляют всевозможные двоичные входные наборы указанного типа, у которых
и
.
Обратимся теперь к методу построения тестов для синхронизируемых автоматов. В соответствии с приведенным ранее критерием синхронизируемости для любого синхронизируемого ЛА существует такое целое число , что
, но тогда справедливо и равенство
при любой матрице
. Отсюда вытекает справедливость следующего утверждения.
Теорема 14.1. Каждый синхронизируемый ЛА является одновременно и -определенным.
Понятно, что эта теорема обосновывает возможности применения описанного выше метода построения тестов к синхронизируемым ЛА.
Предложенный метод построения тестов предполагает, что неисправные ЛА должны сохранять свойства -определенности или синхронизируемости. Заметим, что это требование не является слишком ограничительным. Так, оно заведомо выполняется, если возникающие в автомате неисправности сказываются только на характеристических матрицах
и
. Однако не всякое изменение матрицы
указанные свойства будет сохранять.
Перейдем теперь к описанию метода построения тестов для произвольного ЛА, а не обязательно -определенного либо синхронизируемого. Этот метод базируется на том факте, что любой ЛА является автоматом с конечной памятью.
Предположим, что исправный (неисправный) ЛА имеет глубину памяти и пусть
). Из теории ЛА известно [19], что функции выходов ЛА
и
соответственно можно представить в виде:
![]() |
( 14.6) |
где - матрицы соответствующей размерности. Способ приведения функции выхода ЛА к виду (14.6) описан в [19], и мы не будем здесь на нем останавливаться.
Очевидно, что входная последовательность является минимальным по длине тестом, если выходные реакции исправного и неисправного автоматов для всех
совпадают, т. е.
, а на последнем такте
. С учетом сказанного, произведя вычитание выражений в (14.6), получим
![]() |
( 14.7) |
Приравняв выражение (14.7) некоторому ненулевому вектору , мы получим СЛАУ относительно неизвестных, являющихся координатами вектора
![u=[u_1(t- \mu), \dots, u_1(t- \mu), \dots, u_1(t), \dots, u_1(t)]'](/sites/default/files/tex_cache/a091a6fb94052b092dfd95698fe5770a.png)
Если через обозначим матрицу полученной СЛАУ, то в этом обозначении она примет вид
![Qu=y](/sites/default/files/tex_cache/e50c6ab5b5eda258a558e8248abf3b54.png)
Заметим, что все сказанное выше относительно поиска решений системы (14.3) остается справедливым и для последней системы. Таким образом, построение множества всех тестов для произвольных ЛА, так же как для -определенных и синхронизируемых ЛА, сводится к решению системы линейных уравнений.
Проиллюстрируем предложенный метод на примере ЛА над полем с характеристическими матрицами
![A=
\left [
\begin {matrix}
0&1&0&0\\
1&1&0&0\\
0&0&0&1\\
0&1&0&1
\end {matrix}
\right ],\\
B=
\left [
\begin {matrix}
1\\
1\\
1\\
0
\end {matrix}
\right ],\\
C=
\left [
\begin {matrix}
0&1&0&1
\end {matrix}
\right ],
D=[1]](/sites/default/files/tex_cache/2d68f1953c7134d2da718c227dec76ff.png)
Найдем представление функции выхода этого ЛА в виде (14.6). Поскольку минимальный многочлен матрицы есть
, получаем
![CA^2 \bar s(0)=C \bar s(0)+CA \bar s(0)](/sites/default/files/tex_cache/38554652db07fbc888a06dd0d5e4110d.png)
Тогда, используя формулы полной реакции ЛА и только что полученное равенство, вычислим
![y(2)=CA^2 \bar s (0)+CABu(0)+CBu(1)+Du(0)=\\
=C\bar s(0)+CA\bar s(0)+CABu(0)+CBu(1)+Du(1)=\\
=[y(0)+Du(0)]+[y(1)+CBu(0)+Du(1)]+CABu(0)+CBu(1)+Du(1).](/sites/default/files/tex_cache/5731ce6123862df7743a252e6b3b8bca.png)
После преобразований получаем
![y(2)=u(2)+u(0)+u(0)+y(1)+y(0),](/sites/default/files/tex_cache/a4527338b40908c47991f569621d00b2.png)
откуда для любого
![y(t)=u(t)+u(t-2)+y(t-1)+y(t-2).](/sites/default/files/tex_cache/52ef16d46f3d6b5822f044873751412d.png)
Пусть неисправный ЛА задан следующими характеристическими матрицами:
![A_1=A, B_1=B, C_1=[1 0 1 0], D_1=D.](/sites/default/files/tex_cache/400560922c4613ccba71ac716f1b098d.png)
Проведя аналогичные вычисления для неисправного ЛА, получим
![y_1(t)=u(t)+u(t-1)+y_1(t-1)+y_1(t-2).](/sites/default/files/tex_cache/9b1606cfdf93e88f871613466aed22a0.png)
Упоминавшаяся выше СЛАУ для нашего примера примет вид
![y(t)-y_1(t)=u(t-1) \oplus u(t-2)](/sites/default/files/tex_cache/672d23c634785e1d813ce305cbf83687.png)
Понятно, что для получения множества всех тестов, обнаруживающих заданную неисправность, необходимо найти все решения СЛАУ
![u(t-1) \oplus u(t-2)=1](/sites/default/files/tex_cache/af840911b32a26f0acc30401fe3e1539.png)
Отсюда получаем, что
![u(t-1)=1 \oplus u(t-2)=\overline {u(t-2)}](/sites/default/files/tex_cache/d44b0674065db21e5e30c314960b628f.png)
Таким образом, множество всех искомых тестов составляют такие тройки двоичных наборов , у которых
может иметь произвольное значение, а величины
и
должны быть инверсными.
Отметим следующий важный факт: предложенный метод строит тест длины , где
- глубина памяти ЛА. Поскольку, как известно,
, где
- размерность ЛА, такой метод дает возможность строить достаточно короткие по длине тесты.