j - Instytut Pojazdów Szynowych

Transkrypt

j - Instytut Pojazdów Szynowych
1
Andrzej Sowa
MACIERZOWA METODA GENEROWANIA TESTÓW
DIAGNOSTYCZNYCH
PRZY UŻYCIU PAKIETU MATHEMATICA
MATRIX METHOD OF DIAGNOSTIC TESTS GENERATION
BY MATHEMATICA SYSTEM
Streszczenie
W artykule przedstawiono sposób wykorzystania pakietu Mathematica do generowania testów
diagnostycznych pozwalających na ocenę poprawności funkcjonowania obiektu oraz na
lokalizację niezdatności w nim występujących. W tym celu określono sposób oceny cech
diagnostycznych i stanu technicznego elementów tworzących obiekt. Omówiono procedurę
określania zbioru sprawdzeń obu testów i sporządzono model funkcjonalny przekładni
hamulcowej wózka wagonu. Na podstawie tego modelu zbudowano tabelę prawdy, która
stanowiła dane wejściowe dla programu zrealizowanego za pomocą pakietu Mathematica i
użytego do określania zawartości testów diagnostycznych.
Słowa kluczowe: pojazdy szynowe, diagnostyka techniczna, modele obiektów diagnostyki,
metody oceny cech diagnostycznych, metody tworzenia testów diagnostycznych, wykorzystanie
pakietu Mathematica
Abstract
The article shows how to use the Mathematica system for diagnostic tests generation for
checking of object operation correctness and for fault location in the damaged object. For it
the evaluation method of diagnostic features and technical states of the object elements was
presented. In the article the creation procedure of both check sets was explained and the
functional model of the bogie wagon brake rigging was made. This model was the base of
truth table constructing. Subsequently that table was the input for the program written and
executed by the Mathematica system. This program was used for diagnostic tests generation.

dr inż. Andrzej Sowa, Instytut Pojazdów Szynowych, Wydział Mechaniczny, Politechnika
Krakowska
2
Key words: rail-vehicles, technical diagnostics, models of diagnostic object, evaluation
methods of diagnostic features, methods of diagnostic tests creation, Mathematica system use
1. Wprowadzenie
Jednym z ważniejszych zadań diagnostyki technicznej w systemie obsługi jest
lokalizacja niezdatności w złożonych układach pojazdów. Wymaga to zbadania i oceny
stanu technicznego obiektu, co odbywa się w dwu fazach. Pierwsza dotyczy kontroli
zdatności obiektu, druga lokalizacji uszkodzeń [3]. Należy do tego wytypować
odpowiednie zbiory sprawdzeń cech diagnostycznych (testy diagnostyczne [2]) opisujące
właściwości obiektu badanego. Mogą do tego celu być wykorzystane takie metody, jak [2]:
kolejnego wyboru sprawdzeń, macierzy boole’owskich, informacyjna, kontroli grupowej,
podziału połówkowego, równych prawdopodobieństw, najmniejszych kosztów kontroli,
„drzewa defektów”, czy też [5]: liczby charakterystycznej. Spośród tych wymienionych,
szczególnie interesującą jest metoda macierzy boole’owskich, którą można łatwo
adaptować do wykorzystania w automatycznych systemach diagnostyki technicznej, czyli
systemach generujących diagnozę bez udziału człowieka. W artykule, metoda ta jest
nazywana metodą macierzową, ponieważ jej metodyka tworzenia testów diagnostycznych
może być użyta również w przypadku trójwartościowej oceny stanu technicznego
elementów obiektu i jego cech diagnostycznych [5], a więc nie tylko przy binarnej ocenie.
Istotną pomocą podczas określania testów diagnostycznych tą metodą i równocześnie
niezbędnym elementem automatycznego systemu diagnostyki jest moduł generowania
rozwiązania na podstawie modelu obiektu badanego. Może nim być podprogram napisany
np. przy użyciu pakietu Mathematica. Tego rodzaju rozwiązanie będzie przedmiotem
niniejszego artykułu.
2. Macierzowa metoda tworzenia testów diagnostycznych
Macierzowa metoda tworzenia sprawdzeń cech diagnostycznych wymaga sporządzenia
graficznego modelu funkcjonalnego [2] obiektu analizowanego. Model ten prezentuje
zależności pomiędzy elementami składowymi obiektu przedstawianymi graficznie za
pomocą prostokątów. Na każdy z elementów modelu mogą oddziaływać określone cechy
wejściowe pochodzące z zewnątrz obiektu lub od innych elementów obiektu. Jednocześnie
każdy element posiada przynajmniej jedną cechę wyjściową. Dla potrzeb metody
macierzowej, graficzny model funkcjonalny obiektu należy przekształcić w model
macierzowy, który stanowi punkt wyjścia do dalszych operacji w ramach tej metody.
Model macierzowy może przyjąć formę tabeli prawdy [2] w przypadku binarnej oceny
stanu technicznego elementów składowych i cech diagnostycznych obiektu. Mogą być
wówczas wykorzystane dwuwartościowe funkcje o postaci [4]:
– dla oceny stanu technicznego elementów
1, gdy ek  so
Qk   2 ek   
0, gdy ek  s1
(1)
3
gdzie:
–
– wartość binarnej oceny stanu technicznego elementu o indeksie k ,
Qk
 2 ek  – dwuwartościowa funkcja oceny stanu technicznego elementu ek ,
s0 , s1 – stany techniczne odpowiednio: zdatności i niezdatności dowolnego,
pojedynczego elementu,
dla oceny cech wejściowych, zewnętrznych
1, gdy wi min  wi  wi max
vi   2 wi   
0, gdy wi wi min  wi wi max
gdzie:
vi
(2)
– wartość binarnej oceny zewnętrznej cechy wejściowej
o indeksie i ,
– dwuwartościowa funkcja oceny zewnętrznej cechy
 2 wi 
wejściowej wi ,
wi min , wi max – minimalna i maksymalna wartość cechy wi ,
– dla oceny cech wyjściowych z poszczególnych elementów obiektu

1, gdy  y j min  y j   y j max
z j   2 y j   

0, gdy y j  y j min  y j  y j max
(3)
gdzie:
– wartość binarnej oceny cechy wyjściowej o indeksie j ,
zj
 2 y j 
y  , y 
j min
– dwuwartościowa funkcja oceny cechy wyjściowej y j ,
j max
– minimalna i maksymalnie dopuszczalna wartość cechy y j .
Dla obiektu złożonego z k elementów, w przypadku gdy nie występują w nim
niezdatności wielu elementów jednocześnie, wprowadzić można przyporządkowanie:
  S ,e   S ,e   S ,...,e   S
0
w którym:
1
1
2
2
k
k
(4)

– pusty zbiór elementów niezdatnych w obiekcie,
– stan zdatności obiektu,
S0
S1 , S 2 ,...,S k – stany obiektu spowodowane niezdatnością poszczególnych
elementów obiektu, odpowiednio: e1 
, e2 ,...,ek  .
Przyporządkowania te pozwalają utworzyć zbiór SU k stanów podstawowych obiektu, z
których każdy odnosi się do jednego wiersza tabeli prawdy. Można go zapisać jako [6]:
SU k   S0 , S1 , S2 ,...,Sk 
(5)
4
Jeśli na wyjściu każdego elementu badana jest jedna reprezentatywna cecha, to
rozmiary tabeli prawdy będą wynosić k 1  k , a wypełnienie tej tabeli może być
określone przy użyciu funkcji (13).
Tabela prawdy jest podstawą do utworzenia macierzy testu zdatności i macierzy testu
lokalizującego przy użyciu dwuwartościowych funkcji oceny rozróżnialności stanów. Są to
[4]:
– funkcja oceny rozróżnialności stanu zdatności i dowolnego stanu niezdatności
 1, gdy z y j , S o   1  z y j , Si   1
zo ,i   2 S o , Si   
0, gdy z  y j , S o   z  y j , Si 
(6)
gdzie:
– zmienna logiczna oceny rozróżnialności stanu zdatności S o
z o ,i
i stanu niezdatności S i na podstawie oceny cechy y j ,
z  y j , So  – zmienna logiczna oceny cechy y j w stanie zdatności S o ,
z  y j , Si  – zmienna logiczna oceny cechy y j w stanie niezdatności S i .
– funkcja oceny rozróżnialności stanów niezdatności
 1, gdy z y j , Si   1  z y j , Sl   1
zi ,l   2 Si , Sl   
0, gdy z y j , Si   z y j , Sl 
w której:
z i ,l
z  y j , Si 
(7)
– zmienna logiczna oceny rozróżnialności stanów niezdatności
S i i S l na podstawie oceny cechy y j ,
– zmienna logiczna oceny cechy y j w stanie niezdatności S i ,
z  y j , Sl  – zmienna logiczna oceny cechy y j w stanie niezdatności S l .
Wartości uzyskiwane na podstawie funkcji (6) i (7) można otrzymać jako wynik
operacji dodawania modulo 2 odpowiednich wartości logicznych z tabeli prawdy. W tym
przypadku są to:
zo,i  zy j , So   z y j , Si 
zi ,l  zy j , Si   zy j , Sl 
przy czym:

(8)
(9)
– suma modulo 2.
Procedura wyboru cech dla testu zdatności polega na przeszukaniu macierzy tego testu i
znalezieniu wiersza lub wierszy zawierających tylko jedną wartość z o ,i równą 1. Kolumna
macierzy z tą wartością wskazuje cechę y j należącą do testu zdatności. Domknięcie
5
zbioru takich cech wymaga sprawdzenia, czy wybrane cechy zapewniają rozróżnienie
każdej pary stanów S o , Si . Praktycznie sprowadza się to do zbadania, czy dla każdego
wiersza analizowanej macierzy, w kolumnach cech wybranych w skład testu zdatności,
występuje przynajmniej jedna wartość 1. W zależności od schematu funkcjonalnego jest to
jedna lub więcej cech wyjściowych badanego obiektu i ich ocena zapewnia rozróżnienie
wszystkich par stanów wyszczególnionych w tej macierzy.
W podobny sposób przebiega procedura wyboru cech dla testu lokalizującego.
Poszukuje się wierszy zawierających tylko jedną wartość z i ,l równą 1, wybiera cechy
opisujące kolumny z takimi wartościami, a następnie sprawdza się możliwość rozróżnienia
wszystkich par stanów Si , Sl , na podstawie oceny tylko tych cech. Jeśli wynik takiego
sprawdzenia jest pozytywny, to zbiór cech można domknąć, a jeśli nie - wtedy musi być
wykonany drugi krok. Polega on na minimalizacji macierzy testu lokalizującego poprzez
wykreślenie z niej kolumn cech wybranych oraz wierszy z parami rozróżnialnymi. W
macierzy zminimalizowanej typuje się kolejno, w skład testu cechy dotychczas nie wybrane
i sprawdza rozróżnialność par nie rozróżnionych. Jako kryterium wyboru podczas
uzupełniania testu lokalizującego może być wykorzystana przynależność cech, opisujących
kolumny macierzy zminimalizowanej, do określonego wcześniej testu zdatności.
Minimalizacja macierzy testu lokalizującego ułatwia rozeznanie sytuacji przy „ręcznym”
określaniu zbioru sprawdzeń tego testu, ale komplikuje jego programowe określanie.
3. Przykład wykorzystania macierzowej metody tworzenia testów diagnostycznych
Metodykę macierzowej metody tworzenia testów diagnostycznych można przedstawić
na
przykładzie przekładni hamulcowej wagonu, której uproszczony schemat [1]
przedstawia Ryc. 1.
Przyjmując, że cechą wejściową dla obiektu jak na Ryc. 1. jest ciśnienie w cylindrze
hamulcowym oraz zastępując podpory wieszaka reakcjami w zamocowaniu do ramy
wózka, sporządzić można model funkcjonalny przekładni hamulcowej, który
przedstawiono na Ryc. 2. Pozwala on na sporządzenie tabeli prawdy (Tab. 1) dla
przypadku, gdy w obiekcie nie występują wielokrotne niezdatności oraz przy założeniu, że
zarówno wartości ciśnienia w cylindrze hamulcowym jak i wartości reakcji w
zamocowaniach wieszaków są w normie.
Na podstawie tabeli prawdy, zgodnie z opisanymi wcześniej zasadami, można
zbudować macierz testu zdatności o rozmiarze 22 21 oraz macierz testu lokalizującego.
Liczbę jej wierszy można obliczyć ze wzoru:
k 
k!
lw    
 2  2!k  2!
(10)
co dla rozważanego przypadku daje l w  210 . Z tego powodu w rozwiązaniu zadania
uzyskanym za pomocą pakietu Mathematica postać tej macierzy oraz nieistotne odpowiedzi
systemu zostaną pominięte.
6
Ryc. 1. Schemat przekładni hamulcowej [1]: 1- cylinder hamulcowy, 2 – tłoczysko, 3 – dźwignia
przycylindrowa prawa, 4 – łącznik zmieniacza siły hamowania, 5 – dźwignia przycylindrowa lewa,
6 – trójkąt hamulcowy, 7 – dźwignia, 8 – obsada klocka, 9 – cięgło poziome, 10 – wieszak
Fig. 1. Scheme of brake transmission [1]: 1- brake cylinder, 2 – piston rod, 3 – right lever of brake
cylinder, 4 – bond of braking force changer , 5 – left lever of brake cylinder, 6 – brake triangle,
7 – lever, 8 – brake-shoe, 9 – horizontal rod, 10 – brake-shoe holder
Tablica 1
Tabela prawdy dla obiektu jak na Ryc. 1
SUk
S0
S1
S2
S3
S4
S5
S6
S7
S8
S9
S10
S11
S12
S13
S14
S15
S16
S17
S18
S19
S20
S21
y1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
y2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
y3
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
y4
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
y5
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
y6
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
y7
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
y8
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
zj
y9 y10 y11 y12 y13 y14 y15 y16 y17 y18 y19 y20 y21
1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 1 1 1 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1 1 1 1 1 1
1 1 1 0 0 0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0 0 1 1 1 1
1 1 1 1 1 1 0 1 1 1 1 1 1
1 1 1 1 1 1 1 0 0 1 1 1 1
1 1 1 1 1 1 1 1 0 1 1 1 1
1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 1 1 0 1 1
1 1 1 1 1 1 1 1 1 1 1 0 0
1 1 1 1 1 1 1 1 1 1 1 1 0
7
y5
e5
y4
e4
w2
y6
e6
e3
y9
y8
e8
w3
e10
e1
y1
e2
y10
e11
e14
e13
y15
y14
w4
e16
y12
y11
y2
e15
e12
y7
y3
e9
w1
e7
y16
e17
y17
y13
e19
e18
y19
y18
w5
e20
y20
e21
y21
Ryc. 2. Model funkcjonalny przekładni hamulcowej: e1  e21 – elementy układu jak na Ryc. 1,
w1 – ciśnienie na wejściu cylindra hamulcowego, w2  w5 – reakcje w zamocowaniach wieszaka,
y1  y21 – siły w przykładni hamulcowej
Fig. 2. Functional model of the brake transmission: e1  e21 – elements of the system such as Fig. 1,
w1 – pressure at brake cylinder inlet, w2  w5 – reactions in handles hanger,
y1  y21 – forces in the brake rigging
4. Rozwiązanie zadania za pomocą pakietu Mathemtica
Wygenerowanie testów diagnostycznych za pomocą pakietu Mathematica wymaga
wykorzystania szeregu poleceń tworzących pewien program, dla którego danymi
wejściowymi są wartości zapisane w tabeli prawdy. Dane te muszą być podane w formie
tablicy dwuwymiarowej. Polecenia składające się na program generujący testy
diagnostyczne, przedstawione poniżej pogrubioną czcionką, stanowią treść komórek
8
wejściowych. Dla lepszego ich zrozumienia, w tekście niniejszego artykułu dodano
niezbędne objaśnienia. Wyniki przedstawiono czcionką pochyloną.
Wejściowe polecenie, definiujące tabelę prawdy jest następujące:
Tp={{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
{1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}}
Cztery kolejne polecenia dotyczą wyświetlenia tabeli prawdy w formie macierzy,
rozpoznania jej wymiarów oraz inicjacji macierzy testu zdatności wartością „0”:
MatrixForm[Tp]
Ltp=Dimensions[Tp]
Lw=Ltp[[1]]
Lk=Ltp[[2]]
Mtds=Table[0,{i,Lw-1},{j,Lk}]
Z następnych poleceń - pierwsze wypełnienia macierz testu zdatności, poprzez
wielokrotne wykorzystanie (w podwójnej pętli) operacji suma modulo 2, a późniejsze
wyświetlają wynik w formie macierzy kwadratowej i deklarują zbiór pusty tego testu:
For[ j=1,jLk,j++,
For[ i=2,iLw,i++,Mtds[[i-1,j]]=Mod[Tp[[1,j]]+Tp[[i,j]],2] ]
]
MatrixForm[Mtds]
Nds={}
Kolejne polecenie, dzięki użyciu podwójnej pętli i dwu instrukcji warunkowych,
rozpoznaje wiersze zawierające jedną jedynkę w wierszu macierzy testu zdatności,
9
identyfikuje pozycję kolumny zawierającej tę jedynkę oraz wpisuje indeks tej kolumny do
tablicy jednowymiarowej. Tablica ta jest podstawą do określenia zbioru wynikowego tego
testu. Następne polecenie wyświetla tę tablicę:
For[i=1,i<Lw,i++,i1=0;Ti1={};
For[j=1,jLk,j++,i1+=Mtds[[i,j]];If[i1==1,AppendTo[Ti1,j]] ];
If[i1==1,AppendTo[ Nds,Ti1[[1]] ] ]
]
Nds
{5,7,9,11,15,17,19,21}
Sprawdzenie rozróżnialności wszystkich par stanów z macierzy testu zdatności wymaga
rozpoznania liczności wyświetlonego zbioru oraz zbadania czy w każdym wierszu tej
macierzy znajduje się przynajmniej jedna jedynka. To ostatnie dotyczy tylko w tych
kolumn, których indeksy zostały wybrane do określonej wcześniej tablicy. W poleceniu
występuje więc instrukcja sprawdzająca warunek rozróżnialności par stanów z
poszczególnych wierszy tej macierzy. W tym przypadku jest on spełniony, co widać z
odpowiedzi systemu:
ln=Dimensions[Nds]
ns=ln[[1]]
{8}
j=0
vds=True
For[i=1,i<Lw,i++,ia=0,
For[j=1,jns,j++,j0=Nds[[j]];ia+=Mtds[[i,j0]] ];
If[ia<1,vds=False]
]
vds
True
Zbiór sprawdzeń testu zdatności uzyskuje się dodając indeksy wytypowanych kolumn
do przyjętego oznaczenia literowego cech diagnostycznych:
Tds={}
i=1
While[ins,AppendTo[Tds,StringForm[”y``”,Nds[[i]]]];i++ ]
Tds
{y5,y7,y9,y11,y15,y17,y19,y21}
Przed rozpoczęciem wypełniania macierzy testu lokalizującego, wartościami ocen
rozróżnialności par stanów niezdatności, należy określić ilość jej wierszy, a następnie
zainicjować ją:
Lwl=Lk!/(2!(Lk-2)!)
Mtdl=Table[0,{i,Lwl},{j,Lk}]
Wypełnienie macierzy testu lokalizującego uzyskuje się, podobnie jak poprzednio,
poprzez wielokrotne wykorzystanie operacji suma modulo 2, ale tym razem w potrójnej
10
pętli. Pozostałe polecenia z poniższego fragmentu programu wyświetlają uzyskany wynik
w formie macierzy kwadratowej i deklarują zbiór pusty tego testu:
For[j=1,jLk,j++,ia:=1;
For[i=2,iLw,i++,ib=i;
For[i0=ib,i0Lw-1,i0++,
Mtdl[[ia,j]]=Mod[Tp[[ib,j]]+Tp[[i0+1,j]],2];ia++];
]
]
MatrixForm[Mtdl]
Ndl={}
Polecenie kolejne, przy użyciu podwójnej pętli i dwu instrukcji warunkowych,
rozpoznaje wiersze zawierające jedna jedynkę w wierszu macierzy testu lokalizującego,
identyfikuje pozycję kolumny zawierającej tę jedynkę oraz wpisuje indeks tej kolumny do
tablicy jednowymiarowej. Na podstawie tej tablicy określony zostanie zbiór wynikowy
tego testu. Drugie polecenie wyświetla tę tablicę:
For[i=1,i<Lwl,i++,i1=0;Ti1={};
For[j=1,jLk,j++,i1+=Mtdl[[i,j]];If[i1==1,AppendTo[Ti1,j]] ];
If[i1==1,AppendTo[ Ndl,Ti1[[1]] ] ]
]
Ndl
{1,2,6,10,12,16,20}
Sprawdzenie rozróżnialności wszystkich par stanów z macierzy testu lokalizującego
przebiega podobnie jak w przypadku testu zdatności. Wymaga to rozpoznania liczności
wyświetlonego zbioru oraz sprawdzenia czy w każdym wierszu macierzy, w tych
kolumnach, których indeksy zostały wybrane do określonej ostatnio tablicy, znajduje się
przynajmniej jedna jedynka. Warunek ten kontroluje instrukcja występująca w zewnętrznej
pętli polecenia. W tym przypadku nie jest on spełniony:
ln=Dimensions[Ndl]
nl=ln[[1]]
j=0
vdl=True
For[i=1,i<Lwl,i++,ia=0,
For[j=1,jnl,j++,j0=Ndl[[j]];ia+=Mtdl[[i,j0]] ];
If[ia<1,vdl=False]
]
vdl
False
Negatywny wynik sprawdzenia wymaga przeprowadzenia minimalizacji macierzy testu
lokalizującego, zgodnie z procedurą opisaną w punkcie 2 niniejszego artykułu. Aby tego
uniknąć, ale także doprowadzić do spełnienia sprawdzanego warunku, zbiór indeksów testu
lokalizującego można kolejno uzupełnić wartościami ze zbioru indeksów testu zdatności.
Po każdym uzupełnieniu sprawdzany jest warunek rozróżnialności par stanów niezdatności
11
występujących w wierszach macierzy. Jeśli wynik jest negatywny – zostanie wykryty
wiersz z nierozróżnialną parą – wówczas pobierany jest następny indeks kolumny ze zbioru
indeksów testu zdatności. Rozpoczyna się wtedy ponowne sprawdzanie warunku, na
podstawie zawartości powiększonej ilości indeksów kolumn. Pozytywny wynik
sprawdzenia kończy działanie tego polecenia, a następne wyświetla zbiór wynikowy
indeksów testu lokalizującego:
i2=1
If[!vdl,
While[!vdl&&i2ns,vdl=True;AppendTo[Ndl,Nds[[i2]];i0++;
For[i1=1,iLwl,i++,ia=0;
For[j=1,ji0,j++,j0=Ndl[[j]];ia+=Mtdl[[i,j0]]];
If[ia<1,vdl=False]
];
i2++]
]
vdl
True
Ndl
{1,2,6,10,12,16,20,5,7,9,11,15,17,19}
Po uzupełnieniu zbioru indeksów testu lokalizującego konieczne jest ponowne
rozpoznanie liczności tego zbioru. Postać ostateczną zbioru sprawdzeń testu lokalizującego
uzyskuje się dodając indeksy wytypowanych kolumn do przyjętego oznaczenia literowego
cech diagnostycznych:
ln=Dimensions[Ndl]
nl=ln[[1]]
{14}
Tdl={}
i=1
While[inl,AppendTo[Tdl,StringForm[”y``”,Ndl[[i]]]];i++ ]
Tdl
{y1,y2,y6,y10,y12,y16,y20,y5,y7,y9,y11,y15,y17,y19}
Uzyskane w efekcie rozwiązanie umożliwia zlokalizowanie dowolnego niezdatnego
elementu obiektu przedstawionego na Rys. 2, który w tym przypadku posłużył do
przedstawienia metody generowania testów diagnostycznych. Z tego, teoretycznego
rozwiązania wynika, że podczas całego badania diagnostycznego łącznie należy wykonać
15 sprawdzeń. Jest to następstwem ustalonej kolejności prowadzania testów. Pierwszy jest
wykonywany test zdatności, a w przypadku jego negatywnego wyniku sprawdzone muszą
być cechy z testu lokalizującego, ale tylko te, które nie zostały wcześniej zbadane. Ilość
sprawdzeń wykonanych podczas lokalizacji niezdatności wynika z sumy zbiorów Tds i
Tdl.
12
Podsumowanie
Przedstawiony w artykule program, wykorzystujący pakiet Mathematica jest
skutecznym i łatwym w użyciu narzędziem generowania zawartości zbiorów sprawdzeń
testów diagnostycznych. Wymaga on tylko przygotowania danych wejściowych w postaci
tablicy dwuwymiarowej reprezentującej tabelę prawdy. Dla jej określenia niezbędna jest
znajomość zależności pomiędzy elementami obiektu diagnozowanego. Zależności te w
najlepszy sposób przedstawia model funkcjonalny sporządzony dla diagnozowanego
obiektu. Testy uzyskane metodą macierzową są testami bezwarunkowymi o stałej długości.
Niezależnie od położenia elementu niezdatnego w obiekcie zawsze sprawdzane są wartości
każdej cechy należącej do testu zdatności i jeśli ogólny wynik tego testu jest negatywny sprawdzeniu podlegają wszystkie cechy należące do różnicy zbiorów Tdl i Tds.
Literatura
[1] G ą s o w s k i W ., Wagony kolejowe. Konstrukcja i badania. WKŁ, Warszawa 1988.
[2] H e b d a M., N i z i ń s k i S., P e l c H., Podstawy diagnostyki pojazdów mechanicz-
nych. WKŁ, Warszawa 1980.
[3] N i z i ń s k i St., Elementy eksploatacji obiektów technicznych. Wydawnictwo
Uniwersytetu Warmińsko-Mazurskiego, Olsztyn 2000.
[4] S o w a A., Koncepcja modelu logicznego układu pneumatycznego hamulca pojazdu
szynowego. Praca doktorska. Politechnika Krakowska Wydział Mechaniczny, Kraków
1990.
[5] S o w a A., Ocena rozróżnialności stanów technicznych złożonych obiektów
diagnostyki metodą liczby charakterystycznej. Materiały V Krajowej Konferencji
Diagnostyka Techniczna Urządzeń i systemów. Ustroń 13-17.10.2003 (wersja skrócona
– materiały drukowane str. 387-388, wersja pełna - CD).
[6] S o w a A., Identyfikacja niezdatności w obiektach technicznych o złożonej strukturze.
Problemy Eksploatacji z.4/2001, ITE Radom 2001, 313-320.