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 (13). 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 zy j , So z y j , Si zi ,l zy j , Si zy 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,jLk,j++, For[ i=2,iLw,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,jLk,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,jns,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[ins,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,jLk,j++,ia:=1; For[i=2,iLw,i++,ib=i; For[i0=ib,i0Lw-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,jLk,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,jnl,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&&i2ns,vdl=True;AppendTo[Ndl,Nds[[i2]];i0++; For[i1=1,iLwl,i++,ia=0; For[j=1,ji0,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[inl,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.