Bartłomiej Piekarski 76 Data utworzenia:.6.r. Łukasz Tkacz 73 Łukasz Przywarty 78 Zadanie projektowe: Niezawodność i diagnostyka układów cyfrowych Temat: Ocena niezawodności systemu pomiarowego typu 'z3' z zawodnym układem diagnostyki Prowadzący: dr inż. Kazimierz Kapłon Strona
Spis treści I. Szczegółowy opis zadania projektowego...........................................3 II. Koncepcja symulacji.......................................................... 3 a) Wykresy czasowe....................................................... 4 b) Tabela stanów.......................................................... 5 c) Graf stanów............................................................6 d) Schemat blokowy....................................................... 7 III. Implementacja programowa modelu symulacyjnego w środowisku Matlab............ 9 a) Listing kodu........................................................... b) Wyniki symulacji....................................................... 6 IV. Szacowanie charakterystyk niezawodnościowych................................. 7 V. Podsumowanie i wnioski....................................................... 4 VI. Bibliografia................................................................ 5 Strona
I. Szczegółowy opis zadania projektowego W projekcie należy określić charakterystyki niezawodnościowe systemu pomiarowego, który składa się z trzech elementów pomiarowych (czujników) i układu diagnostyki i przełączania. Czujniki są funkcjonalne i niezawodnościowo takie same. Do poprawnej pracy systemu pomiarowego konieczna jest sprawność co najmniej dwóch czujników. System wykonuje swoją pracę w sposób ciągły. W ujęciu niezawodnościowym wszystkie elementy są zawodne i naprawialne. Znane są: rozkład prawdopodobieństwa czasu poprawnej pracy czujnika do uszkodzenia F c (t) i układu diagnostyki F d (t) oraz rozkłady G c (t) i odpowiednio G d (t) czasu do zakończenia naprawy. Elementy systemu są naprawiane przez K ekip remontowych. Ponadto: układ diagnostyki i przełączania czujników w stanie uszkodzenia nie zakłóca pracy czujników (tzn. następuje utrata zdolności do wykrywania uszkodzeń i przełączania elementów, ale jeśli co najmniej z 3 czujników są w stanie sprawności, to system nadal poprawnie wykonuje pomiary), czasy do uszkodzenia elementu τ c, τ d mają rozkłady wykładnicze o parametrach λ c, λ d czasy naprawy Θ c, Θ d mają rozkłady normalne obcięte (Θ > ) o parametrach μ c, σ c, μ d, σ d (wartości dobrać indywidualnie) W ramach projektu należy: opracować model symulacyjny działania systemu uwzględniający występowanie uszkodzeń i napraw elementów (przedstawić ten model w postaci schematu blokowego) opracować implementację programową modelu symulacyjnego w środowisku Matlab, dla wybranych wartości parametrów wykonać na modelu niezbędną liczbę eksperymentów na podstawie otrzymanych wyników oszacować charakterystyki niezawodności badanego systemu II. Koncepcja symulacji Zadanie polega na utworzeniu modelu symulacyjnego systemu 'z3' z zawodnym układem diagnostyki. Szczegółowe założenia projektowe zawarte są w punkcie I. niniejszej pracy. Na samym początku należy przyjrzeć się zachowaniu systemu w poszczególnych chwilach czasu. Zakładając, że dostępny jest jeden konserwator, w jednej chwili czasu może on naprawiać tylko jeden element systemu. W momencie gdy uszkodzi się inny element, a konserwator będzie zajęty, element pozostaje uszkodzony i czeka na naprawę. Szczególnie traktujemy układ diagnostyki: naprawiamy go w pierwszej kolejności (gdy jest dostępny konserwator, który taką naprawę może Strona 3
wykonać. W przeciwnym razie układ naprawiany jest zaraz po ukończeniu naprawy innego elementu). a) Wykresy czasowe Przedstawimy teraz przykładowe wykresy czasowe, zakładając, że korzystamy z usług jednego konserwatora a stany elementów systemu oznaczone są następująco: sprawny - uszkodzony w naprawie uszkodzony bez naprawy Na rysunku poniżej c, c, c 3, oznaczają kolejne czujniki, natomiast D układ diagnostyki Rysunek : Wykresy czasowe dla rozpatrywanego systemu Jak można zauważyć na Rys. uzyskaliśmy wstępne wyniki symulacji dla konkretnych zdarzeń Strona 4
(uszkodzeń i napraw). Oznaczyliśmy literą Q czasy naprawy, natomiast literą τ czasy między uszkodzeniami. b) Tabela stanów Pomocne będzie rozpatrzenie wszystkich kombinacji stanów poszczególnych elementów wraz z uwzględnieniem stanu całego systemu. Niestety, wiele z kombinacji jest niemożliwych, tzn., że nie spełniają warunków określonych w treści zadania projektowego. Kombinacje stanów przedstawimy w postaci tabeli. Kolorem szarym zaznaczono niemożliwe kombinacje stanów poszczególnych elementów., wyróżniono natomiast stany możliwe. Zakładamy, że K =. Stan S sys Stan elementu Stan systemu Stan S sys Stan elementu D S S S3 D S S S3 Stan systemu S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S Strona 5
Stan S sys Stan elementu Stan systemu Stan S sys Stan elementu S S Stan systemu S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S Tabela : Tabela stanów systemu Okazuje się, że większość kombinacji jest niepoprawna. Możliwe zestawienia stanów elementów są mniej liczne. Nasz system, przy założeniu, że korzystamy z usług jednego konserwatora przez większa część czasu pozostaje niesprawny. Stan sprawności systemu zachodzi tylko w przypadkach. c) Graf stanów Aby lepiej zobrazować zachowanie systemu w momencie naprawy lub uszkodzenia elementu przedstawimy graf stanów. Graf stanów przedstawia tylko możliwe stany systemu, oznaczone kółkiem, w którym widnieje nazwa stanu. Poszczególne przejścia między stanami oznaczone są strzałkami. Adnotacje przy strzałkach (n i lub u i ) oznaczają naprawę lub uszkodzenie poszczególnych elementów. Stan sprawności całego systemu wyróżniono pogrubieniem stanów. Stany niesprawności zaznaczono przerywaną linią. Strona 6
Rysunek : Graf stanów Zależności między stanami są dość skomplikowane, ale jednoznaczne. W momencie uszkodzenia lub naprawy elementu przechodzimy do kolejnego stanu. Procedura ta powtarza się przez cały czas trwania symulacji. c) Schemat blokowy algorytmu symulacji W tym miejscu możemy skupić się na algorytmie symulacji w postaci schematu blokowego. Schemat blokowy zawiera wyczerpujące dane na temat działania systemu. Strona 7
Rysunek 3: Model symulacyjny systemu - schemat blokowy Strona 8
Lega: F c (t) oraz F d (t) - rozkład prawdopodobieństwa czasu poprawnej pracy do uszkodzenia czujnika oraz układu diagnostyki G c (t) oraz G d (t) - rozkład prawdopodobieństwa czasu naprawy czujnika i układu diagnostyki K liczba konserwatorów T sym całkowity czas symulacji L sym liczba symulacji T, T, T 3 oraz T d moment uszkodzenia poszczególnych czujników oraz układu diagnostyki T x czas najbliższego uszkodzenia (wydarzenia) S x oraz S d stany czujników i układu diagnostyki L liczba oczekujących na naprawę Opiszemy pokrótce algorytm działania systemu. Na samym początku określamy niezbędne parametry, takie jak rozkłady prawdopodobieństw, liczba symulacji itd. Losujemy czasy poprawnej pracy i wybieramy minimum z tych czasów. W momencie gdy uszkodzeniu uległ konkretny element systemu naprawiamy go, zakładając, ze są dostępni konserwatorzy. Priorytet (jeśli chodzi o kolejność wykonywanych napraw) ma układ diagnostyki. Czas naprawy jest również parametrem losowym. Gdy nie ma dostępnych konserwatorów zwiększamy liczbę oczekujących na naprawę i staramy się o rozpoczęcie naprawy w innym momencie czasu. Jeśli wszystkie elementy zostały naprawione zwiększamy czas od startu symulacji i zmniejszamy czasy uszkodzeń. Wyniki poszczególnych prób zapisujemy w postaci plików wyjściowych o konkretnym numerze. Wszystkie kroki powtarzamy do momentu aż przekroczymy maksymalny czas symulacji i maksymalną ilość symulacji. Dokładny opis działania symulatora znajduje się w punkcie IV niniejszej pracy. IV. Implementacja programowa modelu symulacyjnego w środowisku Matlab Program symulacyjny oprócz tego, że generuje losowe zdarzenia (uszkodzenia, naprawy) będzie także obliczał następujące miary niezawodnościowe: TTF czas do uszkodzenia, TTR czas do naprawy, MTBF średni czas między uszkodzeniami, Strona 9
MTTF średni czas do uszkodzenia, MTTR średni czas do naprawy. a) Listing kodu Opiszemy działanie symulatora na podstawie dołączonych fragmentów kodu. Na samym początku ustalamy maksymalny czas symulacji oraz liczbę tych symulacji. Dobieramy również rozkłady prawdopodobieństwa dla czasów poprawnej pracy i czasów naprawy. clear Tsym = 5; Lsym = ; F = 3; G = ; Listing : Podstawowe parametry Ustalamy ścieżki zapisu plików zawierających czasy do uszkodzenia TTF oraz czasy do naprawy TTR. W tych plikach przechowywać będziemy obliczone w dalszej części programu wartości. sciezka_ttf = sprintf('wyniki\\ttf.txt'); [file_ttf, message] = fopen(sciezka_ttf,'w'); %Sprawdzenie poprawności otwarcia if file_ttf == - disp(wiadomosc) return; ; sciezka_ttr = sprintf('wyniki\\ttr.txt'); [file_ttr, wiadomosc] = fopen(sciezka_ttr,'w'); if file_ttr == - disp(wiadomosc) return; ; Listing : Ścieżki zapisu plików ttf i ttr W tym miejscu możemy zaimplementować schemat blokowy działania systemu w postaci kilku zagnieżdżonych pętli 'for'. Definiujemy zmienne i losujemy momenty uszkodzenia for L = :Lsym %Inicjalizacja zmiennych. K = ; %liczba konserwatorów Strona
T = ; %czas symulacji tx = ; %bieżąca chwila (minimum z wylosowanych momentów) LO = ; %liczba oczekujących na naprawę S = [,,,]; %stany poszczególnych elementów systemu - pierwszy układ %diagnostyki, następnie czujniki Tx = [,,3,]; %czasy uszkodzenia (najbliższego wydarzenia) %Losowanie momentów uszkodzenia for i = :4 Tx(i) = exprnd(f); Listing 3: Zmienne i momenty uszkodzenia Sprawdzimy również czy system jest sprawny. Wykorzystamy do tego celu dodatkową zmienną sprawne, która będzie przechowywała liczbę elementów sprawnych. %Zmienna przechowująca ilość elementów sprawnych sprawne = ; for i = :4 %Jeśli stan elementu jest równy (jest sprawny) zwiększamy %zmienną sprawne o if S(i) == sprawne = sprawne + ; %W przypadku gdy liczba czujników sprawnych jest równa przynajmniej %cały system jest sprawny (zasada 'z3') if sprawne > stan = ; %w przeciwnym wypadku układ jest niesprawny else stan = ; Listing 4: Sprawdzenie stanu systemu Mając stany poszczególnych elementów jak i całego systemu możemy zapisać wyniki do pliku. Definiujemy ścieżkę zapisu pliku i wpisujemy do niego wartości: Strona
%Ustalenie ścieżki zapisu dla plików wynikowych symulacji sciezka_proba = sprintf('wyniki\\sym%d.txt',l); [file_proba, wiadomosc] = fopen(sciezka_proba,'w'); if file_proba == - disp(wiadomosc) return; ; %Zapisujemy wyniki do pliku w postaci: stan systemu, stan układu %diagnostyki, stany czujników, czas od momentu startu symulacji. fprintf(file_proba,'%d\t%d\t%d\t%d\t%d\t%f\r\n', stan, S(), S(), S(3), S(4),T); Listing 5: Zapis stanów elementów i systemu do pliku Dochodzimy do najważniejszej części programu symulacji. Dopóki czas jest mniejszy od maksymalnego czasu symulacji wykonujemy procedury zobrazowane w schemacie blokowym. Rozpoczynamy od wyszukania minimum z czasów uszkodzeń. while T < Tsym %zwiększamy bieżącą chwilę tx = * Tsym; %Szukamy minimum z czasów uszkodzeń for i = :4 if Tx(i) < tx x = i; tx = Tx(i); Listing 6: Szukanie minimum z czasów uszkodzeń Następnie sprawdzamy czy urządzenie w chwili tx_ było sprawne. Jeśli tak sprawdzamy czy układ diagnostyki był sprawny i czy liczba konserwatorów jest większa od. W przypadku uzyskania twierdzącej odpowiedzi wiemy, że urządzenie uległo uszkodzeniu, musimy je więc naprawić. Zmniejszamy liczbę dostępnych konserwatorów i losujemy czas naprawy. Zaznaczamy stan elementu jako (w naprawie). W przeciwnym razie zwiększamy liczbę oczekujących na naprawę i oznaczamy stan elementu jako (czekający na naprawę). if S(x) == if S() == && K> Strona
K = K-; Tx(x) = exprnd(g) + tx; S(x) = ; else Tx(x) = 5 * Tsym; LO = LO + ; S(x) = ; Listing 7: Sprawdzenie sprawności w chwili tx_ Jeśli element w chwili tx_ był uszkodzony losujemy czas poprawnej pracy, zwiększamy liczbę konserwatorów i oznaczamy stan elementu jako (sprawny) else K = K+; Tx(x) = exprnd(f) + tx; S(x) = ; Listing 8: Sprawdzenie sprawności w chwili tx_ c.d. Szczególnie traktujemy układ diagnostyki. Jeśli układ ten oczekuje na naprawę i są dostępni konserwatorzy naprawiamy go w pierwszej kolejności. if S() == && K > K = K - ; Tx() = exprnd(g) + tx; S() = ; LO = LO - ; Listing 8: Próba naprawy układu diagnostyki Nie tylko układ diagnostyki ulega uszkodzeniu. Podobnie dzieje się z czujnikami, dopóki liczba oczekujących na naprawę czujników jest większa od, układ diagnostyki jest sprawny i są dostępni konserwatorzy, naprawiamy poszczególne elementy w kolejności -wszy, -gi, 3-ci czujnik. i = ; while LO > && S() == && K > if S(i) == K = K - ; Tx(i) = exprnd(g) + tx; S(i) = ; Strona 3
LO = LO - ; i = i + ; Listing 9: Naprawa poszczególnych czujników systemu Możemy teraz zwiększyć czas od startu systemu a także zmniejszyć czasy najbliższego wydarzenia i kolejny raz policzyć ile elementów jest sprawnych. Określenie liczby sprawnych elementów systemu wygląda identycznie jak w Listingu 4, więc pominiemy ten fragment kodu. Wyniki zapisujemy do pliku w sposób zaprezentowany w końcowej części Listingu 5. %Zwiększamy czas od startu systemu T = T + tx; %Zmniejszamy czasy najbliższego wydarzenia for i = :4 Tx(i) = Tx(i) - tx; Listing : Korekta czasów Nasz symulator wygenerował do tej pory uszkodzenia i naprawy a także czasy tych zdarzeń. Mając do dyspozycji te dane jesteśmy w stanie obliczyć parametry TTF oraz TTR. Rezultaty zapisujemy do plików tekstowych. %Otwieramy plik z wynikami konkretnej próby [file_proba, wiadomosc] = fopen(sciezka_proba,'r'); if file_proba == - disp(wiadomosc) return; %Z pliku zczytujemy wartości do tablicy tab = fscanf(file_proba,'%d%d%d%d%d%f',[ 6 inf ]); fclose(file_proba); tab = tab'; rozmiar = size(tab,); ostatnistan = tab(,); %Pierwszy stan systemu ostatnirazsprawny = ; %Moment ostatniej sprawności ostatnirazuszkodzony = ;%Moment ostatniego uszkodzenia %W tym miejscu obliczymy poszczególne czasy do uszkodzenia i czasy do Strona 4
%naprawy - TTF oraz TTR for i = :rozmiar %Zczytujemy czas od momentu startu symulacji czas = tab(i,6); %oraz stan systemu stan = tab(i,); %Jeśli ostatni odczytany stan różni się od bieżącego sprawdzamy czy %jest równy jeśli tak zapisujemy do pliku obliczoną wartość TTF. %W przeciwnym razie - wartość TTR if ostatnistan ~= stan if stan == czassprawnego = (czas - ostatnirazsprawny); ostatnirazuszkodzony = czas; fprintf(file_ttf,'%f\r\n', czassprawnego); else czasuszkodzonego = (czas - ostatnirazuszkodzony); ostatnirazsprawny = czas; fprintf(file_ttr,'%f\r\n', czasuszkodzonego); ostatnistan = stan; fclose(file_ttf); fclose(file_ttr); Listing : Obliczenie parametrów TTF i TTR Aby umożliwić późniejszą analizę wyników umieścimy wartości TTF oraz TTR w tablicach: %Otwieramy pliki z wartościami TTF oraz TTR sciezka_ttf = sprintf('wyniki\\ttf.txt'); [file_ttf, wiadomosc] = fopen(sciezka_ttf,'r'); if file_ttf == - disp(wiadomosc) return; ; sciezka_ttr = sprintf('wyniki\\ttr.txt'); [file_ttr, wiadomosc] = fopen(sciezka_ttr,'r'); if file_ttr == - disp(wiadomosc) Strona 5
; return; %Zapisujemy wartości TTF oraz TTR w tablicy ttf = fscanf(file_ttf,'%f', [ inf ]); ttf = ttf'; ttr = fscanf(file_ttr,'%f',[ inf ]); ttr = ttr'; fclose(file_ttf); fclose(file_ttr); Listing : Zapis wartości TTF i TTR w tablicach Na samym końcu obliczamy pozostałe parametry MTBF, MTTF, MTTR fprintf('mtbf: %f\n',mean(ttf) + mean(ttr)); fprintf('mttf: %f\n',mean(ttf)); fprintf('mttr: %f\n',mean(ttr)); Listing 3: Obliczenie pozostałych parametrów niezawodnościowych. b) Wyniki symulacji Uruchamiając program uzyskaliśmy pliki wynikowe, których fragmenty przedstawiono w Tabeli. Stan układu Stan diagnostyki Stan. czujnika Stan. czujnika Stan 3. czujnika Tabela : Fragment plików wynikowych Czas od początku symulacji. 7.68755 8.7864 9.834445 9.86459 7.49966 9.3457 3.566749 37.8637 37.9655 44.64937 55.3484 56.988 58.8368 66.5 7.36735 TBF MTBF MTTF MTTR - - - - - 7.49966 - - 9.7957.675488 6.68779 -.649.76 8.43843 3.8464 36.8799 8.776564 8.94354 Strona 6
IV. Szacowanie charakterystyk niezawodnościowych Podsumujmy nasze dotychczasowe działania: analizując treść zadania projektowego utworzyliśmy schemat blokowy działania systemu. Na tej podstawie napisaliśmy program w środowisku Matlab. Program symuluje działanie systemu, zapisuje wyniki do poszczególnych plików i oblicza wartości TTF oraz TTR. Wykorzystamy je do szacowania charakterystyk niezawodnościowych. Aby ukazać z jaką częstością pojawiają się kolejne wartości TTF i TTR wykorzystamy histogramy. Histogram w programie Matlab można utworzyć wydając polecenie: hist(dane). Jeśli w miejsce danych podstawimy ttf uzyskamy wykres: Rysunek 4: Histogram częstości wystąpień wartości TTF Postępując podobnie w przypadku ttr wyświetlimy drugi histogram: Rysunek 5: Histogram częstości wystąpień wartości TTR Strona 7
Z Rys. 4 oraz Rys. 5 wynika, że zdecydowanie częściej występują małe wartości TTF oraz TTR. Im większa wartość tym rzadziej ona występuje. Wiedząc jak wyglądają histogramy wartości TTF i TTR możemy przystąpić do właściwej części zadania dopasowywania rozkładów. W trakcie poszukiwań informacji na temat dopasowywania rozkładów do zmiennych losowych natrafiliśmy na bardzo pomocne narzędzie zaimplementowane w programie Matlab dfittool. Na podstawie danych (w naszym przypadku tablic z wartościami TTF oraz TTR) generuje histogramy, do których można dopasować funkcje rozkładu np. Weibulla, gamma, normalnego. Narzędzie korzysta z odrębnego graficznego interfejsu użytkownika, wszystkie operacje wykonujemy za pomocą dostępnych przycisków. Dfittool automatycznie generuje wykresy oraz potrzebne parametry np. dla rozkładu Weibulla parametr skali oraz kształtu (odpowiednio a i b w programie Matlab). Użycie narzędzia jest bardzo proste wystarczy wpisać (np. w oknie poleceń): dfittool(dane) w naszym przypadku: dfittool(ttf) lub dfittool(ttr) Po uruchomieniu narzędzia otwiera się osobne okno przedstawione na Rys. 6. Okno to zawiera kilka ważnych elementów. Najistotniejsze dla nas są przyciski znajdujące się nad wykresem. Aby zaimportować zbiór danych należy skorzystać z przycisku Data. Kolejny raz wyświetli się nowe okno, które pozwala wybrać, do których zmiennych dopasowywać będziemy rozkłady. Operacje dodawania danych akceptujemy przyciskiem Create data set. Przycisk New Fit... pozwala dodać nowe dopaso- Rysunek 6: Główne okno narzędzia dfittool wanie. Podobnie jak w przypadku tworzenia zbioru zmiennych korzystamy z odrębnego okna wyboru, które umożliwia nazwanie konkretnego dopasowania (Fit name) oraz zdefiniowanie pożądanego rozkładu (Distribution). Warto zaznaczyć, że do jednego wykresu możemy dodać wiele dopasowań, pozwala to łatwiej określić, który rozkład jest najbardziej odpowiedni. Przyciski Manage fits... służą do zarządzania dopasowaniami, natomiast Evaluate... Strona 8
oraz Exclude... kolejno do badania konkretnych zmiennych oraz wykluczania wartości, których nie chcemy obejmować dopasowywaniem. Ważnym elementem okna narzędzia dfittol jest również pole Display type. Pozwala ono wybrać sposób wyświetlania wykresów np. Density oznacza wyświetlanie w postaci funkcji gęstości prawdopodobieństwa natomiast Cumulative probability funkcji rozkładu prawdopodobieństwa. Spróbujemy teraz dopasować histogram wartości TTF oraz TTR do kilku rozkładów. Uznaliśmy, że najodpowiedniejsze będą rozkłady: normalny, eksponencjalny, Weibulla. Uzyskaliśmy następujące rezultaty (w postaci funkcji gęstości prawdopodobieństwa): Rysunek 7: Dopasowania rozkładów do wartości TTF Z analizy przeprowadzonego doświadczenia (Rys. 7 oraz Rys. 8) wynika, że najlepiej dopasowany do histogramu jest rozkład eksponencjalny. Rozkład normalny kompletnie nie pasuje, natomiast rozkład Weibulla osiąga zbyt duże gęstości. Strona 9
Rysunek 8: Dopasowania rozkładów do wartości TTR Narzędzie dfittol wygenerowało dla rozkładów następujące parametry: dla rozkładu normalnego: mu (średnia μ) 8.77656 sigma (odchylenie standardowe σ) 9.4885 dla rozkładu Weibulla a (parametr skali λ) 8.45563 b (parametr kształtu k) -.9366 dla rozkładu eksponencjalnego mu (parametr λ) 8.77656 Niestety tylko na podstawie dopasowań do histogramów nie możemy jednoznacznie określić, który rozkład najlepiej pasuje do naszych wartości. Przedstawimy więc te same dane i rozkłady na wykresie funkcji prawdopodobieństwa. W tym celu w polu Display type narzędzia dfittol wybieramy opcję Probability plot. Strona
Rysunek 9: Wykres probabilistyczny dla wartości TTF i rozkładu eksponencjalnego Rysunek : Wykres probabilistyczny dla wartości TTR i rozkładu eksponencjalnego Widzimy, że o ile dla wartości TTF rozkład eksponencjalny jest dość dobrze dopasowany to dla wartości TTR nie (linia czerwona oznacza dopasowanie idealne). Porównamy więc wyniki z pozostałymi rozkładami. Strona
Rozkład normalny: Rysunek : Wykres probabilistyczny dla wartości TTF i rozkładu normalnego Rysunek : Wykres probabilistyczny dla wartości TTR i rozkładu normalnego Podobnie jak w przypadku dopasowania do histogramu rozkład normalny odrzucamy, ze względu na to, że zdecydowanie odbiega od ideału (Rys. oraz Rys ) Strona
Rozkład Weibulla: Rysunek 3: Wykres probabilistyczny dla wartości TTF i rozkładu Weibulla Rysunek 4: Wykres probabilistyczny dla wartości TTR i rozkładu Weibulla W tym momencie pojawia się problem. Z analizy dopasowań do histogramu wynika, że nasz rozkład najlepiej przybliża rozkład eksponencjalny. Zaprzeczeniem tego są wykresy Strona 3
probabilistyczne, na których jednoznacznie widać, że najbardziej dopasowany jest rozkład Weibulla (Rys. oraz Rys. 3). Uznajemy więc, że rozkład Weibulla będzie najlepszym wyborem. V. Podsumowanie i wnioski W ramach projektu opracowaliśmy model symulacyjny systemu uwzględniający występowanie uszkodzeń i napraw elementów. Model ten został przedstawiony w postaci schematu blokowego. Na tej podstawie utworzyliśmy implementację programową modelu w środowisku Matlab. Poszczególne zdarzenia uszkodzenia i naprawy wygenerowaliśmy funkcjami programu Matlab. Symulator tworzy pliki wynikowe z rezultatami, które są następnie opracowywane w postaci histogramów i wykresów a także miar niezawodnościowych TTF, TTR, MTBF, MTTF, MTTR. Szacowanie charakterystyk niezawodnościowych pozwoliło określić, że najlepiej dopasowanym rozkładem jest rozkład Weibulla. Funkcje rozkładów prawdopodobieństwa liczone są według następujących wzorów: dla rozkładu eksponencjalnego: f x = e x, dla x f x =, dla x dla rozkładu normalnego gdzie: λ - parametr f x = x e, dla x f x =, dla x dla rozkładu Weibulla gdzie μ średnia, σ odchylenie standardowe f x = k x p e x k, f x =, dla x dla x gdzie λ parametr skali, k parametr kształtu Uwaga : W pracy często pojawia się pojęcie 'uszkodzenia' systemu. Przypominamy: system jest niesprawny gdy nie działa więcej niż jeden czujnik lub układ diagnostyki jest niesprawny. Niesprawność systemu oznaczaliśmy zawsze cyfrą, sprawność. Uwaga : Kod w postaci pliku Matlab`owego oraz sprawozdanie w wersji elektronicznej są zawarte na dołączonej do projektu płycie CD. Strona 4
VI. Bibliografia Podczas tworzenia niniejszego projektu korzystaliśmy z następujących źródeł:. Jarnicki J. Wykład o estymacji rozkładów zmiennych losowych. Praca zbiorowa, Niezawodność i eksploatacja systemów, pod redakcją W. Zamojskiego, Wrocław 98 3. Pratap R., Matlab 7 dla naukowców i inżynierów, Warszawa 6 Miejsce na płytę CD Strona 5