• No results found

Aplikace ˇreˇs´ıc´ı spolehlivost syst´emu metodou stromu poruchov´ych stav˚u (FTA)

N/A
N/A
Protected

Academic year: 2022

Share "Aplikace ˇreˇs´ıc´ı spolehlivost syst´emu metodou stromu poruchov´ych stav˚u (FTA)"

Copied!
68
0
0

Loading.... (view fulltext now)

Full text

(1)

Aplikace ˇ reˇ s´ıc´ı spolehlivost syst´ emu metodou stromu poruchov´ ych stav˚ u (FTA)

Bakal´ aˇ rsk´ a pr´ ace

Studijn´ı program: B2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802R007 – Informaˇcn´ı technologie Autor pr´ace: Vlastimil Fengl

Vedouc´ı pr´ace: Ing.Josef Chudoba, Ph.D.

(2)

Application for system reliabilty evaluation using fault tree analysis

Bachelor thesis

Study programme: B2646 – Information technology Study branch: 1802R007 – Information technology

Author: Vlastimil Fengl

Supervisor: Ing.Josef Chudoba, Ph.D.

(3)
(4)
(5)

Abstrakt

Tato bakal´aˇrsk´a pr´ace se zab´yv´a metodou stromu poruchov´ych stav˚u a vytvoˇren´ı aplikace, kter´a tuto metodu implementuje. Jde o metodu pouˇz´ıvanou pro ohodnocen´ı spolehlivosti libovoln´eho syst´emu. Pr´ace se zamˇeˇruje na popis a postup metody stromu po- ruchov´ych stav˚u. Jsou zde uvedeny kr´atk´e reˇserˇse na jiˇz existuj´ıc´ı aplikace. Souˇc´ast´ı pr´ace je vytvoˇren´ı aplikace, kter´a metodu stromu poruchov´ych stav˚u vyuˇz´ıv´a. Je zde uveden v´yvoj t´eto aplikace, probl´emy pˇri v´yvoji a jejich ˇreˇsen´ı. V z´avˇeru pr´ace jsou uvedeny pˇr´ıklady budouc´ıho moˇzn´eho rozˇs´ıˇren´ı aplikace.

Kl´ıˇ cov´ a slova:

FTA, strom poruchov´ych stav˚u, bin´arn´ı rozhodovac´ı diagram, BDD, software, Java

Abstract

This bachelor thesis deals with the fault tree analysis and the cre- ation of an application that implements this method. This method is used to evaluate the reliability of any system. The thesis focuses on the description and process of the fault tree analysis. There are short reviews of existing applications. Part of the thesis deals with creation of an application that uses the fault tree analysis, pro- blems and their solution during the development. In the end of the thesis are given some examples of future possible extensions to the application.

Keywords:

FTA, fault tree analysis, binary decision diagram, BDD, software, Java

(6)

Podˇ ekov´ an´ı

Chtˇel bych podˇekovat vedouc´ımu pr´ace za veˇskerou pomoc s vypra- cov´an´ım bakal´aˇrsk´e pr´ace. D´ale bych chtˇel podˇekovat sv´e pˇr´ıtelkyni, ˇ

ze mˇela pevn´e nervy a velmi mi pomohla pˇri vytv´aˇren´ı t´eto pr´ace.

Nakonec bych chtˇel podˇekovat sv´emu vedouc´ımu v pr´aci, kter´y mˇel pochopen´ı a nech´aval mi dost ˇcasu na vypracov´av´an´ı t´eto pr´ace.

(7)

Obsah

Seznam zkratek . . . 10

1 Uvod´ 11 2 FTA - Anal´yza stromu poruchov´ych stav˚u 12 2.1 Uvod do FTA´ . . . 12

2.2 C´ıle a pouˇzit´ı FTA . . . 12

2.3 Term´ıny a definice v FTA . . . 13

2.4 Obecn´y popis FTA . . . 14

2.5 Pouˇz´ıvan´e znaˇcky v FTA . . . 15

2.6 Postup a vyhodnocen´ı FTA . . . 16

3 Reˇserˇse vybran´ych SW pro FTA 25 3.1 Program ALD Fault Tree Analyser . . . 25

3.2 Program ITEM Toolkit . . . 26

3.3 Program TopEvent FTA . . . 26

3.4 Program EMFTA . . . 27

4 V´yvoj aplikace 28 4.1 Poˇzadavky na aplikaci . . . 28

4.2 Pouˇzit´a technologie . . . 28

4.3 Datov´e struktury . . . 29

4.4 Reˇsen´ˇ e probl´emy v aplikaci . . . 31

5 Testov´an´ı aplikace 42 5.1 Prvn´ı testovac´ı strom poruch . . . 42

5.2 Druh´y testovac´ı strom poruch . . . 44

6 Popis aplikace 47 6.1 Hlavn´ı okno programu . . . 47

6.2 Okno ´upravy komponenty . . . 50

6.3 Okno v´ysledk˚u anal´yzy . . . 52

6.4 Gener´ator n´ahodn´eho stromu do CSV souboru . . . 52

7 Z´avˇer pr´ace 53

Pˇr´ıloha 56

(8)

A Obr´azky 56 A.1 Prostˇred´ı programu EMFTA . . . 56 A.2 Okno v´ysledk˚u . . . 57 A.3 Testovac´ı stromy poruch . . . 59

B Uk´azky k´odu 61

B.1 Vyhled´an´ı z´akladn´ıch ud´alost´ı pomoc´ı hled´an´ı do ˇs´ıˇrky . . . 61 B.2 Uk´azka metody textModify(String text) ve tˇr´ıdˇe PrimEventPane . . . 62 B.3 Metoda pro ukl´ad´an´ı strom poruch do souboru ve tˇr´ıdˇe ObjectFileO-

perator . . . 63

C N´avod k aplikaci 64

C.1 Instalace . . . 64 C.2 Popis uˇzivatelsk´eho rozhran´ı . . . 64

D Obsah CD 68

(9)

Seznam obr´ azk˚ u

2.1 Uk´azka mnoˇziny vˇsech minim´aln´ıch kritick´ych ˇrez˚u . . . 18

2.2 Pˇr´ıklad stromu poruchov´ych stav˚u. . . 19

2.3 Logick´e hradlo AND . . . 21

2.4 Logick´e hradlo OR . . . 21

2.5 Majoritn´ı hradlo (hradlo M/N) . . . 22

2.6 Strom poruchov´ych stav˚u pro kvantitativn´ı v´ypoˇcet . . . 22

3.1 Program ALD Fault Tree Analyser . . . 25

3.2 Program TopEvent FTA 2017 . . . 27

4.1 C´ˇast bin´arn´ıho rozhodovac´ıho diagramu. . . 38

4.2 Seˇrazen´y bin´arn´ıho rozhodovac´ı diagram funkce f = ac + bc . . . 39

4.3 Sjednocen´ı stejn´ych list˚u diagramu . . . 39

4.4 Nahrazen´ı uzlu BDD . . . 39

4.5 Sjednocen´ı duplicitn´ıch uzl˚u BDD . . . 40

4.6 Redukovan´y BDD funkce f = ac + bc . . . 40

4.7 Postup pro z´ısk´an´ı disjunktn´ı formy booleovsk´e funkce z BDD . . . . 40

5.1 Minim´aln´ı kritick´y ˇrez ˇc. 1 . . . 43

5.2 Minim´aln´ı kritick´y ˇrez ˇc. 2 . . . 43

5.3 V´ysledek kvantitativn´ı anal´yzy pomoc´ı aplikace . . . 44

5.4 V´ysledek kvalitativn´ı anal´yzy pomoc´ı aplikace pro druh´y test. strom . 45 6.1 Hlavn´ı okno aplikace . . . 47

6.2 Kontextov´e menu komponenty . . . 49

6.3 Okno pro zad´an´ı hodnoty pravdˇepodobnosti . . . 51

6.4 Okno ´upravy komponenty . . . 51

A.1 Program EMFTA . . . 56

A.2 Po kvalitativn´ı anal´yze stromu . . . 57

A.3 Neopraviteln´y syst´em po kvantitativn´ı anal´yze stromu . . . 57

A.4 Opraviteln´y syst´em po kvantitativn´ı anal´yze stromu . . . 58

A.5 Dalˇs´ı opraviteln´y syst´em po kvantitativn´ı anal´yze stromu . . . 58

A.6 Prvn´ı testovac´ı strom poruch. . . 59

A.7 Druh´y testovac´ı strom poruch . . . 60

C.1 Kontextov´e menu komponenty . . . 65

(10)

Seznam zkratek

FTA Fault tree analysis MKR Minim´aln´ı kritick´y ˇrez

SW Software

RIA Rich Internet Application

AADL Architecture analysis and design language

(11)

1 Uvod ´

Souˇcasn´a doba klade velk´y d˚uraz na uspokojov´an´ı potˇreb z´akazn´ık˚u. S t´ım jde ruku v ruce i zvyˇsov´an´ı v´yroby a kvality produkt˚u, kter´e si z´akazn´ıci pˇrej´ı. To se- bou nese ale i d˚uraz na zvyˇsov´an´ı bezpeˇcnosti tˇechto produkt˚u a pro firmy i snahu na sniˇzov´an´ı n´aklad˚u na v´yrobu. Existuj´ı i odvˇetv´ı pr˚umyslu, kde je ˇz´adouc´ı zna- lost spolehlivosti jejich produkt˚u ˇci velikost dopadu neˇz´adouc´ıch faktor˚u, kter´e tyto produkty mohou ovlivnit, dˇr´ıve neˇz tento produkt vytvoˇr´ı.

Sniˇzov´an´ı n´aklad˚u na v´yrobu pˇri zachov´an´ı kvality produktu lze dos´ahnout mini- malizac´ı neˇz´adouc´ıch stav˚u a chyb ve v´yrobn´ım procesu. Spolehlivost produktu lze zase dos´ahnout eliminac´ı vysok´e poruchovosti prvk˚u nebo ´upravou n´avrhu produktu.

Pro zaps´an´ı ˇc´ı odhalen´ı tˇechto probl´em˚u a vyhodnocen´ı jejich dopadu je potˇreba analytick´y n´astroj, kter´y dok´aˇze tyto probl´emy pˇrehlednˇe zaznamenat, vyhodnotit a pˇr´ıpadnˇe umoˇznit nalezen´ı ˇreˇsen´ı.

Jedn´ım z tˇechto n´astroj˚u, kter´e dok´aˇz´ı odhalit kritick´a m´ısta, je metoda anal´yzy stromu poruchov´ych stav˚u (Fault Tree Analysis). Tento n´astroj se bˇeˇznˇe vyuˇz´ıv´a napˇr´ıklad v letectv´ı, energetice nebo i v arm´adˇe. Tato metoda je podrobnˇeji pops´ana v kapitole2 t´eto pr´ace.

V kapitol´ach 2.3 aˇz 2.5 lze nal´ezt obecn´y popis metody stromu poruchov´ych stav˚u. Kapitola2.6popisuje zp˚usob sestaven´ı anal´yzy a zp˚usoby jej´ıho vyhodnocen´ı.

D´ale v kapitole 3 jsou pops´any nˇekolik existuj´ıc´ıch program˚u a zkuˇsenosti s jejich pouˇzit´ım. vytvoˇril jsem aplikaci, kter´a ˇreˇs´ı spolehlivost syst´emu pomoc´ı t´eto anal´yzy.

Kapitola4 popisuje v´yvoj aplikace v r´amci pr´ace a probl´emy s jejich ˇreˇsen´ım, kter´e nastaly bˇehem v´yvoje aplikace.

(12)

2 FTA - Anal´ yza stromu poruchov´ ych stav˚ u

2.1 Uvod do FTA ´

Metoda anal´yzy stromu poruchov´ych stav˚u (Fault tree analysis - FTA) byla vymyˇslena roku 1961 panem H. A. Watsonem ve firmˇe Bell Telephone Laboratories na zak´azku pro Letectvo Spojen´ych st´at˚u americk´ych. Zak´azka se t´ykala posouzen´ı odpalovac´ıho ˇr´ıd´ıc´ıho syst´emu pro balistickou stˇrelu Minuteman I. Nˇekolik ˇcl´ank˚u, kter´e vysvˇetlovaly v´yhody metody FTA, bylo prezentov´ano na Symposiu bezpeˇcnosti v Seattlu v roce 1965. Prezentace tˇechto ˇcl´ank˚u je oznaˇcov´ana za poˇc´atek ˇsirok´eho z´ajmu ve vyuˇz´ıv´an´ı metody FTA jako n´astroje pro bezpeˇcnost a spolehlivost velmi sloˇzit´ych syst´em˚u jako napˇr´ıklad jadern´y reaktory.[1]

Anal´yza stromu poruchov´ych stav˚u je metoda pro identifikaci a anal´yzu fak- tor˚u a podm´ınek, kter´e zp˚usobuj´ı nebo by potenci´alnˇe mohly zp˚usobovat v´yskyt ˇci pˇrisp´ıvat k v´yskytu pˇredem definovan´e takzvan´e vrcholov´e ud´alosti. Touto ud´alost´ı b´yv´a obvykle zhorˇsen´ı fungov´an´ı nebo ´upln´e selh´an´ı syst´emu ˇci sn´ıˇzen´ı bezpeˇcnosti nebo zhorˇsen´ı jin´ych atribut˚u d˚uleˇzit´ych pro provoz.[2]

2.2 C´ıle a pouˇ zit´ı FTA

Anal´yza metodou stromu poruchov´ych stav˚u je vhodn´a k anal´yze syst´em˚u skl´adaj´ıc´ı se z nˇekolika funkˇcnˇe souvisej´ıc´ıch nebo z´avisl´ych podsyst´em˚u. Bˇeˇzn´e vyuˇzit´ı tato metoda nach´az´ı napˇr´ıklad pˇri projektov´an´ı jadern´ych elektr´aren, dopravn´ıch a ko- munikaˇcn´ıch syst´em˚u, chemick´ych ˇci jin´ych pr˚umyslov´ych proces˚u, zdravotnick´ych syst´em˚u.[2]

Tato anal´yza se ˇcasto pouˇz´ıv´a jako n´astroj:

– ”k anal´yze syst´emu, urˇcen´ı jeho bezporuchovosti, identifikaci hlavn´ıch pˇrispˇevat- el˚u k jeho poruchovosti a k hodnocen´ı zmˇen n´avrhu.“[2]

– ”jako pomoc pˇri ´usil´ı vynaloˇzen´em pˇri pravdˇepodobnostn´ım posuzov´an´ı ri- zika.“[2]

– ”ke zkoum´an´ı syst´emu v pr˚ubˇehu jeho v´yvoje a pˇredv´ıd´an´ı a zabr´anˇen´ı vzniku ˇ

ci zm´ırnˇen´ı n´asledk˚u potenci´aln´ı pˇr´ıˇciny (pˇr´ıˇcin) neˇz´adouc´ı vrcholov´e ud´alosti.“[2]

(13)

Anal´yzu FTA je moˇzn´e vyuˇz´ıt ve vˇsech etap´ach n´avrhu produkt˚u jako analy- tick´y n´astroj pro identifikaci moˇzn´ych n´avrhov´ych probl´em˚u, dokonce i v ˇcasn´ych etap´ach, kdy nejsou ´upln´e informace o podrobnostech n´avrhu. Bˇehem anal´yzy FTA se tak´e identifikuj´ı moˇzn´e probl´emy, kter´e mohou m´ıt p˚uvod v nam´ah´an´ı produktu prostˇred´ım nebo provozem, ve fyzick´em n´avrhu produktu ˇci v z´avad´ach ve v´yrobn´ıch procesech, v provozn´ıch nebo ´udrˇzb´aˇrsk´ych postupech. Anal´yzu lze tak´e prov´adˇet nez´avisle na jin´ych anal´yz´ach bezporuchovosti nebo paralelnˇe s nimi.[2]

Anal´yza FTA se snaˇz´ı rozpoznat pˇr´ıˇciny nebo kombinace pˇr´ıˇcin, kter´e vedou k vr- cholov´e ud´alosti. Dalˇs´ım c´ılem anal´yzy FTA je vyhled´an´ı ud´alosti nebo kombinace ud´alost´ı, kter´e s nejvˇetˇs´ı pravdˇepodobnost´ı jsou pˇr´ıˇcinou vzniku vrcholov´e ud´alosti.

Posledn´ı ´ulohou je vypoˇc´ıt´an´ı pravdˇepodobnosti v´yskytu ud´alost´ı.[2]

2.3 Term´ıny a definice v FTA

v´ystup (outcome)

V´ystup je v´ysledek dan´e ud´alosti nebo jin´eho vstupu.

V´ystupem m˚uˇze b´yt ud´alost nebo stav.[2]

vrcholov´y v´ystup (top outcome)

V´ystup, kter´y je zkoum´an sestaven´ım stromu poruchov´ych stav˚u.[2]

koneˇcn´a ud´alost (final event)

Ud´alost jej´ıˇz v´ystup je koneˇcn´ym v´ysledek vˇsech vstupn´ıch ud´alost´ı nebo stav˚u.[2]

vrcholov´a ud´alost (top event)

Vrcholov´a ud´alost je ud´alost, kter´a je pˇredmˇetem z´ajmu cel´e anal´yzy. Je to v´ychoz´ı bod um´ıstˇen´y na vrcholku cel´eho stromu anal´yzy. Lze j´ı t´eˇz oznaˇcit za

”koneˇcnou ud´alost (final event)“.[2]

hradlo (gate) Znaˇcka pouˇz´ıvan´a ke zobrazen´ı vazby mezi vstupy a v´ystupn´ı ud´alost´ı. Znaˇcka hradla definuje logick´y vztah mezi vstupn´ımi ud´alostmi, aby doˇslo k v´ystupn´ı ud´alosti.[2]

kritick´y ˇrez (cut set)

Mnoˇzina ud´alost´ı, kter´e zp˚usobuj´ı pˇri souˇcasn´em v´yskytu v´yskyt vrcholov´e ud´alosti.[2]

minim´aln´ı kritick´y ˇrez

(minimal cut set)

Koneˇcn´a mnoˇzina z´akladn´ıch, d´ale nerozv´ıjen´ych ud´alost´ı, kter´e se nutnˇe mus´ı vyskytnout, aby zp˚usobily v´yskyt vr- cholov´e ud´alosti.[2]

ud´alost (event) V´yskyt urˇcit´e podm´ınky nebo dˇeje.[2]

z´akladn´ı ud´alost (basic event)

Ud´alost, kterou nelze d´ale rozv´ıjet.[2]

(14)

prim´arn´ı ud´alost (primary event)

Ud´alost nach´azej´ıc´ı se na nejniˇzˇs´ı ´urovni stromu poru- chov´ych stav˚u.[2]

mezilehl´a ud´alost (intermediate event)

Ud´alost, kter´a nen´ı ani vrcholov´a, ani prim´arn´ı. Vˇetˇsinou je v´ysledkem jedn´e nebo v´ıce prim´arn´ıch ud´alost´ı nebo jin´ych mezilehl´ych ud´alost´ı.[2]

nerozv´ıjen´a ud´alost

(undeveloped event)

Ud´alost neobsahuj´ıc´ı vstupn´ı ud´alosti. V anal´yze b´yv´a takto oznaˇcov´ana ud´alost bud’ z nedostatku podrobnˇejˇs´ıch in- formac´ı, nebo je tato ud´alost rozv´ıjen´a v jin´e anal´yze a v aktu´aln´ı anal´yze je oznaˇcena jako nerozv´ıjen´a.[2]

jednobodov´a porucha (single point failure)

Ud´alost, kter´a zp˚usob´ı vrcholovou ud´alost bez ohledu na ostatn´ı ud´alosti.[2]

opakovan´a

ud´alost (repeated event)

Ud´alost, kter´a je vstupem pro jin´e ud´alosti vyˇsˇs´ı ´urovnˇe.[2]

2.4 Obecn´ y popis FTA

Grafick´e zn´azornˇen´ı anal´yzy FTA je strom poruchov´ych stav˚u. Jde o organizo- vanou reprezentaci podm´ınek nebo jin´ych faktor˚u, kter´e zp˚usobuj´ı nebo pˇrisp´ıvaj´ı k v´yskytu hledan´e vrcholov´e ud´alosti. Strom poruchov´ych stav˚u je zobrazov´an jako diagram, kter´y vyobrazuje logick´e vztahy mezi vrcholovou ud´alost´ı a z´akladn´ımi ud´alostmi, kter´e mohou zp˚usobovat vrcholovou ud´alost. Strom poruch vyobraz´ı v´yvoj poruchy v syst´emu a odhal´ı vazby mezi jednotliv´ymi prvky syst´emu.[3]

2.4.1 Souˇ c´ asti diagramu FTA

Diagram FTA se skl´ad´a z tˇechto souˇc´ast´ı:

Hradla

Hradla zn´azorˇnuj´ı logick´e vztahy mezi vstupn´ımi ud´alostmi a v´ystupn´ımi ud´alostmi.

D´ale se dˇel´ı na statick´a a dynamick´a.[3]

• Statick´a hradla – v´ystup z tˇechto hradel nez´avis´ı na poˇrad´ı v´yskytu na vstupu.

• Dynamick´a hradla – v´ystup z tˇechto hradel je z´avisl´y na poˇrad´ı v´yskytu na vstupu.

(15)

Ud´alosti

Ud´alosti se nach´az´ı na nejniˇzˇs´ı ´urovni vstup˚u ve stromu poruchov´ych stav˚u. Do stromu poruchov´ych stav˚u je nutn´e zahrnout vˇsechny relevantn´ı ud´alosti vˇcetnˇe vlivu prostˇred´ı a ostatn´ı podm´ınky nam´ah´an´ı, kter´ym muˇze b´yt objekt vystaven.[3]

Je nutn´e zahrnout i takov´e ud´alosti, kter´e jsou bˇehem provozu moˇzn´e, ale i mimo specifikaci n´avrhu. Ud´alosti, kter´e jsou v anal´yze uvaˇzov´any, ale vylouˇceny z dalˇs´ı anal´yzy jako nepouˇziteln´e, maj´ı b´yt dokumentov´any ve zpr´avˇe anal´yzy, ale uˇz nemaj´ı b´yt zahrnuty v koneˇcn´em stromu poruchov´ych stav˚u.[2]

Ostatn´ı

Ostatn´ı grafick´e souˇc´asti diagramu FTA jsou:

• spojovac´ı ˇc´ary

• popis mezilehl´ych ud´alost´ı

• znaˇcky transferu dovnitˇr a ven

• znaˇcky prim´arn´ıch ud´alost´ı

2.5 Pouˇ z´ıvan´ e znaˇ cky v FTA

Z´akladn´ı ud´alost Basic event

Ud´alost nach´azej´ıc´ı se na nejniˇzˇs´ı ´urovni stromu.

Pro tuto ud´alost jsou k dispozici informace o bez- poruchovosti nebo pravdˇepodobnosti v´yskytu.[2]

Nerozv´ıjen´a ud´alost Undevelopment event

Prim´arn´ı ud´alost, kter´a pˇredstavuje dosud ne- rozv´ıjenou ˇc´ast syst´emu.[2]

Neaktivn´ı ud´alost Nonactive event

Prim´arn´ı ud´alost reprezentuj´ıc´ı neaktivn´ı poruchu.[2]

Podm´ınkov´a ud´alost Conditional

event

Ud´alost, kter´a je podm´ınkou v´yskytu dalˇs´ı ud´alosti. Mus´ı nastat obˇe ud´alosti, aby nastal v´ystup.[2]

Transfer Transfer

Hradlo, kter´e naznaˇcuje, ˇze je tato ˇc´ast syst´emu rozv´ıjena na jin´e stranˇe nebo v jin´e ˇc´asti diagramu.[2]

(16)

Hradlo AND AND Gate

V´ystupn´ı ud´alost hradla nastane pouze tehdy, jestliˇze nastanou vˇsechny vstupn´ı ud´alosti.[2]

Majoritn´ı hradlo Major Gate

V´ystupn´ı ud´alost hradla nastane pouze tehdy, jestliˇze nastane m nebo v´ıce vstupn´ıch ud´alost´ı z celkov´eho poˇctu n vstupn´ıch ud´alosti.[2]

Hradlo OR OR Gate

V´ystupn´ı ud´alost hradla nastane, jestliˇze nastane jak´akoliv ze vstupn´ıch ud´alost´ı.[2]

Hradlo XOR XOR Gate

V´ystupn´ı ud´alost hradla nastane, jestliˇze nastane pr´avˇe jedna z ud´alost´ı na vstupu hradla.[2]

Hradlo PAND PAND Gate

V´ystupn´ı ud´alost hradla nastane, jestliˇze nastanou vˇsechny vstupn´ı ud´alosti v poˇrad´ı zleva doprava.[2]

Hradlo INHIBIT INHIBIT Gate

V´ystupn´ı ud´alost hradla nastane jen tehdy, jestliˇze nastanou obˇe vstupn´ı ud´alosti, z nichˇz jedna je podm´ınkov´a ud´alost.[2]

Negace

NEGATION

V´ystupn´ı ud´alost nastane, jestliˇze nenastane vstupn´ı ud´alost.[2]

Pˇrep´ınaˇc ud´alost´ı SWITCH event

V´ystupn´ı ud´alost, kter´a se bud’ jistˇe stane nebo stala.[2]

2.6 Postup a vyhodnocen´ı FTA

Metoda stromu poruchov´ych stav˚u je deduktivn´ı metoda (strom se analyzuje od shora smˇerem dol˚u) a je zamˇeˇren´a na pˇresn´em urˇcen´ı pˇr´ıˇcin nebo kombinac´ı pˇr´ıˇcin, kter´e by mohly vyvolat vrcholovou ud´alost. Samotnou anal´yzu by mˇeli pro- v´adˇet pracovn´ıci, kteˇr´ı jsou jak vycviˇceni k pouˇzit´ı anal´yzy FTA nebo jin´e pˇr´ısluˇsn´e techniky modelov´an´ı bezporuchovosti, tak maj´ı podrobn´e znalosti analyzovan´eho syst´emu a jeho n´avrhov´ych rys˚u o provozu. Analytik by mˇel dok´azat vyhodnotit vlivy potencion´aln´ıch zp˚usob˚u poruch a logicky jednoznaˇcnˇe urˇcit moˇzn´e pˇr´ıˇciny nestandardn´ıho chov´an´ı.[2]

(17)

2.6.1 Postup sestaven´ı FTA

Pˇred zah´ajen´ım anal´yzy FTA je potˇreba cel´y syst´em vymezit tak, aby mohl b´yt reprezentov´an jako funkˇcn´ı bloky, kde mohou b´yt urˇceny technick´e parametry jed- notliv´ych prvk˚u. Z tohoto d˚uvodu b´yv´a pro anal´yzu FTA vytvoˇren t´ym odborn´ık˚u, kteˇr´ı s analyzovan´ym syst´emem pracuj´ı, maj´ı znalosti ˇci zkuˇsenosti s jednotliv´ymi ˇc´astmi analyzovan´eho syst´emu nebo budou aplikovat anal´yzu FTA. Z tˇechto zna- lost´ı se pak hledaj´ı vˇsechny moˇzn´e zp˚usoby poruch a pˇr´ıpadn´a nedostateˇcn´a zna- lost syst´emu neumoˇzn´ı odhalit vˇsechny moˇzn´e poruchy. D´ale je nutn´e sezn´amit se se vˇsemi souvislostmi a vazbami mezi jednotliv´ymi bloky syst´emu, u kter´ych m˚uˇze doch´azet k poruch´am, a je nutn´e je rozpoznat a zaznamenat do stromu.

Pak pˇrich´az´ı definice vrcholov´e ud´alosti. Tato ud´alost bude stav(porucha), kter´y je v syst´emu neˇz´adouc´ı a pro kter´y se budou hledat vˇsechny moˇzn´e pˇr´ıˇciny jeho vzniku.

Pˇri vytv´aˇren´ı stromu se postupuje od vrcholov´e ud´alosti, pˇres mezilehl´e ud´alosti, aˇz k prim´arn´ım ud´alostem, kter´e jsou prvotn´ı pˇr´ıˇcinou vzniku poruchy.[3]

Dalˇs´ım krokem je sestaven´ı stromu poruchov´ych stav˚u. Pro sestaven´ı stromu se pouˇz´ıvaj´ı v´yˇse definovan´e znaˇcky z kapitoly 2.5 Pouˇz´ıvan´e znaˇcky v FTA. Exis- tuj´ı dvˇe skupiny znaˇcek, ud´alosti a hradla. Vztahy mezi ud´alostmi jsou definov´any pomoc´ı znaˇcek hradel. V koneˇcn´em st´adiu v´yvoje vznikne diagram, ve kter´em jsou vˇsechny ud´alosti spojeny hradly a kaˇzd´e hradlo m´a jednu v´ystupn´ı a jednu ˇci v´ıce vstupn´ıch ud´alost´ı.[4]

Po sestaven´ı stromu poruch se m˚uˇze pˇrej´ıt k samotn´e anal´yze tohoto stromu. Exis- tuj´ı dva zp˚usoby vyhodnocen´ı stromu, bud’ kvalitativn´ı nebo kvantitativn´ı anal´yza.

Kvalitativn´ı anal´yza po vyhodnocen´ı vrac´ı mnoˇzinu z´akladn´ıch ud´alost´ı, kter´e pˇri souˇcasn´em vzniku vedou ke vzniku vrcholov´e ud´alosti. U kvantitativn´ı anal´yzy stromu dojde k pravdˇepodobnostn´ımu ohodnocen´ı vzniku vrcholov´e ud´alosti na z´akladˇe pravdˇepodobnostn´ıch ohodnocen´ı z´akladn´ıch ud´alost´ı.

Postup pˇri FTA

• vymezen´ı rozsahu anal´yzy

• sezn´amen´ı se s n´avrhem, funkcemi a provozem syst´emu

• definov´an´ı vrcholov´e ud´alosti

• vytvoˇren´ı stromu poruchov´ych stav˚u

• anal´yza logiky stromu poruchov´ych stav˚u (kvalitativn´ı nebo kvantitativn´ı)

• vytvoˇren´ı zpr´avy o v´ysledc´ıch anal´yzy

• posouzen´ı zlepˇsen´ı bezporuchovosti syst´emu

(18)

2.6.2 Kvalitativn´ı anal´ yza FTA

C´ılem t´eto anal´yzy je nalezen´ı vˇsech moˇzn´ych kombinac´ı faktor˚u, podm´ınek pro- stˇred´ı, chyb lidsk´eho faktoru a poruch komponent syst´emu, kter´e by mohly v´est ke vzniku vrcholov´e ud´alosti. Pˇresnˇeji anal´yza umoˇzˇnuje nal´ezt mnoˇzinu vˇsech mi- nim´aln´ıch kritick´ych ˇrez˚u.[4]

Kritick´y ˇrez stromu poruchov´ych stav˚u

Kritick´y ˇrez je takov´a mnoˇzina z´akladn´ıch, d´ale nerozv´ıjen´ych ud´alost´ı, kter´e, pokud nastanou souˇcasnˇe, vedou ke vzniku vrcholov´e ud´alosti.

Minim´aln´ı kritick´y ˇrez stromu poruchov´ych stav˚u

Minim´aln´ı kritick´y ˇrez (d´ale jen MKR) je takov´a mnoˇzina element´arn´ıch ud´alost´ı, kter´a je sama kritick´ym ˇrezem, ale souˇcasnˇe ˇz´adn´a jej´ı vlastn´ı podmnoˇzina kritick´ym ˇrezem nen´ı.

Jestliˇze je mnoˇzina vˇsech minim´aln´ıch kritick´ych ˇrez˚u MKRi (kde i = 0, 1, . . . j, . . . k, . . . n) zn´ama, lze logickou strukturu stromu poruchov´ych stav˚u pˇrekreslit na s´eriovˇe paraleln´ı blokov´y diagram, kde kaˇzd´a vˇetev diagramu pˇredstavuje jeden mi- nim´aln´ı kritick´y ˇrez (viz Obr. 2.1).[4]

Obr´azek 2.1: Uk´azka mnoˇziny vˇsech minim´aln´ıch kritick´ych ˇrez˚u

Algoritmus k vyhled´an´ı minim´aln´ıch kritick´ych ˇrez˚u

Jedn´ım z poˇzadavk˚u pˇri ˇreˇsen´ı stromu poruchov´ych stav˚u je nalezen´ı vˇsech mi- nim´aln´ıch kritick´ych ˇrez˚u. Nalezen´ı mnoˇziny vˇsech minim´aln´ıch kritick´ych ˇrez˚u umoˇz- n´ı pˇretvoˇrit logiku vˇsech variant poruchy syst´emu na jednoduchou s´eriovˇe-paraleln´ı blokovou strukturu, kterou lze ˇreˇsit standardn´ımi v´ypoˇcty.

(19)

Z´akladn´ı metodou pro nalezen´ı vˇsech minim´aln´ıch kritick´ych ˇrez˚u je Booleovsk´a redukce, kter´a je zaloˇzen´a na popisu logick´ych vazeb vyj´adˇren´ych stromem poru- chov´ych stav˚u. Tuto metodu lze pouˇz´ıt i pokud se objevuj´ı stejn´e ud´alosti na v´ıce m´ıstech ve stromˇe poruchov´ych stav˚u. Bohuˇzel tuto metodu nelze pouˇz´ıt pokud je vrcholov´a ud´alost ˇcasovˇe z´avisl´a na jevech nebo na posloupnosti jev˚u.

Metoda je zaloˇzen´a na postupn´em vyj´adˇren´ı vrcholov´e ud´alosti jako kombinace jednotliv´ych ud´alost´ı popsan´ych ve stromˇe poruchov´ych stav˚u. V prvn´ım kroku se vyj´adˇr´ı vrcholov´a ud´alost jako logick´a kombinace ud´alost´ı, kter´e bezprostˇrednˇe mo- hou zp˚usobovat vrcholovou ud´alost. V dalˇs´ıch kroc´ıch se stejn´ym zp˚usobem popisuj´ı ud´alosti na niˇzˇs´ıch ´urovn´ı stromu dokud vrcholov´a ud´alost nen´ı vyj´adˇrena jako lo- gick´a kombinace vˇsech z´akladn´ıch ud´alost´ı.

V´ysledn´y logick´y v´yraz se d´ale uprav´ı a zjednoduˇs´ı za pomoci Booleovy algebry tak, aby vyjadˇroval prost´e sjednocen´ı pr˚unik˚u z´akladn´ıch ud´alost´ı. Tyto pr˚uniky pak reprezentuj´ı minim´aln´ı kritick´e ˇrezy stromu poruchov´ych stav˚u.[4]

Obr´azek 2.2: Pˇr´ıklad stromu poruchov´ych stav˚u

Cel´y postup bude podrobnˇeji uk´az´an na pˇr´ıkladu. Je d´an strom poruchov´ych stav˚u, kter´y je vyobrazen na Obr.2.2. Nejprve je nutn´e vyj´adˇrit vrcholovou ud´alost G0 jako logickou kombinaci bezprostˇredn´ıch pˇr´ıˇcin t´eto ud´alosti:

G0 = G1+ G2+ A + G3 (2.1)

D´ale je potˇreba vyj´adˇrit jevy G1, G2a G3 jako logick´e kombinace jejich bezprostˇred- n´ıch pˇr´ıˇcin a tento bod opakovat dokud cel´a rovnice nen´ı vyj´adˇrena v´yhradnˇe jen element´arn´ımi jevy:

G0 = (G4· G5) + (E + F ) + A + (G6· B) (2.2) G0 = ((C · D) · (C + E)) + (E + F ) + A + ((C · E) · B) (2.3)

(20)

Potom v´yraz upravit tak, aby vyjadˇroval prost´e sjednocen´ı jev˚u:

G0 = A + C · C · D + C · D · E + E + F + B · C · E (2.4) Tento v´yraz lze d´ale zjednoduˇsit, protoˇze v Boolovˇe algebˇre plat´ı, ˇze:

C · C · D = C · D (2.5)

C · D + C · D · E = C · D (2.6)

E + B · C · E = E (2.7)

V´ysledn´y logick´y v´yraz m´a po zjednoduˇsen´ı tvar:

G0 = A + C · D + E + F (2.8)

Pro uk´azkov´y strom poruchov´ych stav˚u byly nalezeny ˇctyˇri minim´aln´ı kritick´e ˇrezy:

XMKR = {A}, {C · D}, {E}, {F } (2.9)

V´yˇse uveden´y postup je velice jednoduch´y a vede k jednoznaˇcn´emu urˇcen´ı vˇsech minim´aln´ıch kritick´ych ˇrez˚u. Avˇsak pˇri vysok´em poˇctu element´arn´ıch jev˚u je tento postup velmi obt´ıˇzn´e ruˇcnˇe zvl´adnout, proto na ˇradu pˇrich´azej´ı specializovan´e soft- warov´e produkty.[4]

Hodnocen´ı z´avaˇznosti minim´aln´ıch kritick´ych ˇrez˚u

Strom poruchov´ych stav˚u m˚uˇze b´yt kvalitativnˇe posouzen na z´akladˇe rozboru minim´aln´ıch kritick´ych ˇrez˚u podle r˚uzn´ych krit´erii z´avaˇznosti. Jedn´ım z d˚uleˇzit´ych krit´eri´ı z´avaˇznosti je ˇr´ad ˇrezu. ˇR´ad ˇrezu minim´aln´ıho kritick´eho ˇrezu ud´av´a poˇcet element´arn´ıch jev˚u, kter´e tento ˇrez obsahuje. Minim´aln´ı kritick´y ˇrez prvn´ıho ˇr´adu je vˇetˇsinou z´avaˇznˇejˇs´ı neˇz ˇrezy vyˇsˇs´ıch ˇr´ad˚u, protoˇze takov´y ˇrez se sest´av´a pouze z jednoho element´arn´ıho jevu a pˇri vzniku tohoto jevu doch´az´ı i k vrcholov´e ud´alosti.

U vyˇsˇs´ıch ˇr´ad˚u nast´av´a vrcholov´a ud´alost jen pokud nastanou vˇsechny element´arn´ı jevy ˇrezu souˇcasnˇe.[4]

2.6.3 Kvantitativn´ı anal´ yza FTA

Jestliˇze jsou urˇceny parametry spolehlivosti element´arn´ıch jev˚u, lze prov´est kvan- titativn´ı anal´yzu stromu poruchov´ych stav˚u. Tato anal´yza umoˇzˇnuje urˇcen´ı cel´e ˇrady ukazatel˚u, kter´e charakterizuj´ı vrcholovou ud´alost. Zde je v´yˇcet nˇekter´ych ukazatel˚u:

• pravdˇepodobnost v´yskytu vrcholov´e ud´alosti v zadan´em intervalu provozu syst´emu

• stˇredn´ı doba do prvn´ıho nastoupen´ı vrcholov´e ud´alosti

(21)

Tato pr´ace se bude d´ale zab´yvat jen stanoven´ım pravdˇepodobnosti v´yskytu vr- cholov´e ud´alosti. Vˇsechny metody v´ypoˇct˚u stromu poruchov´ych stav˚u jsou velmi sloˇzit´e v z´avislosti na rozvˇetvenosti stromu. Proto se ve vˇetˇsinˇe pˇr´ıpad˚u pouˇz´ıvaj´ı softwarov´e programy vyv´ıjen´e ve specializovan´ych softwarov´ych firm´ach zab´yvaj´ıc´ı se v oblasti spolehlivost´ı.[4]

Nejˇcastˇeji pouˇz´ıvan´e metody pˇri v´ypoˇctech stromu poruchov´ych stav˚u:

• metoda pˇr´ım´eho v´ypoˇctu

• metoda minim´aln´ıch kritick´ych ˇrez˚u

• simulaˇcn´ı metody (Monte Carlo) Metoda pˇr´ım´eho v´ypoˇctu

Tato metoda spoˇc´ıv´a ve v´ypoˇctu pravdˇepodobnosti vzniku ud´alosti na hradle, kter´e definuje vztahy mezi element´arn´ımi ud´alostmi na vstupu hradla. Tuto metodu lze pouˇz´ıt pouze u stromu poruchov´ych stav˚u, kde se nach´az´ı kaˇzd´a element´arn´ı ud´alost pouze jednou. Tohoto stavu lze dos´ahnout ´upravou logick´eho v´yrazu vrcho- lov´e ud´alosti na disjunktn´ı formu.

Obr´azek 2.3: Logick´e hradlo AND Obr´azek 2.4: Logick´e hradlo OR

Pravdˇepodobnost ud´alosti G u hradla AND (viz Obr.2.3) se vypoˇc´ıt´a podle vzorce:

P (G) =

n

Y

i=1

P (Ai) (2.10)

U hradla OR (viz Obr.2.4) se pravdˇepodobnost ud´alosti G vypoˇc´ıt´a:

P (G) = 1 −

n

Y

i=1

[1 − P (Ai)] (2.11)

(22)

Obr´azek 2.5: Majoritn´ı hradlo (hradlo M/N)

Pravdˇepodobnost ud´alosti G na hradle M/N (viz Obr. 2.5) se pˇri shodn´ych pravdˇe- podobnostech potomk˚u vypoˇc´ıt´a:

P (G) =

n

X

i=m

n i



· Pi· (1 − P )n−i (2.12) kde P je pravdˇepodobnost potomk˚u. Pokud jsou pravdˇepodobnosti potomk˚u odliˇsn´e, vypoˇc´ıt´a se jako souˇcet souˇcin˚u pravdˇepodobnost´ı vˇsech n-tic potomk˚u, kde alespoˇn m potomk˚u z n jsou porouchan´e.

Pravdˇepodobnost vrcholov´e ud´alosti stromu poruchov´ych stav˚u se dopoˇc´ıt´a tak, ˇze za pomoci zn´am´ych vzorc˚u se postupnˇe urˇc´ı pravdˇepodobnost jev˚u od nejniˇzˇs´ı

´

urovnˇe aˇz k vrcholov´e ud´alosti. Strom se proch´az´ı postupnˇe odspodu po vˇsech hradlech a podle jejich typu se urˇc´ı pravdˇepodobnost vzniku jev˚u, kter´e jsou tˇemito hradly definov´any. Postupnou aplikac´ı vzorc˚u (2.10) a (2.11) se urˇcuj´ı pravdˇepodob- nosti vˇsech neelement´arn´ıch jev˚u (mezilehl´ych ud´alost´ı).[4]

Obr´azek 2.6: Strom poruchov´ych stav˚u pro kvantitativn´ı v´ypoˇcet

(23)

Postup v´ypoˇctu pravdˇepodobnosti vrcholov´e ud´alosti bude uk´az´an na pˇr´ıkladu.

Je d´an strom poruchov´ych stav˚u uk´azan´y na Obr. 2.6. Pravdˇepodobnosti v´yskytu chyb jednotliv´ych element´arn´ıch ud´alost´ı nab´yvaj´ı n´asleduj´ıc´ıch hodnot:

• Ud´alost A – P (A) = 0.1

• Ud´alost B – P (B) = 0.02

• Ud´alost C – P (C) = 0.25

• Ud´alost D – P (D) = 0.03

• Ud´alost E – P (E) = 0.125

• Ud´alost F – P (F ) = 0.02

Nejprve se vypoˇc´ıt´a pravdˇepodobnost na hradlech, jejichˇz potomci jsou element´arn´ı ud´alosti. V pˇr´ıkladu to jsou hradla G1 a G3. Pravdˇepodobnost v´yskytu chyby na hradle G1 se vypoˇc´ıt´a pomoc´ı vzorce (2.11) n´asledovnˇe:

P (G1) = 1 − [(1 − P (C)) · (1 − P (D))]

P (G1) = 1 − [(1 − 0.25) · (1 − 0.03)]

P (G1) = 0.2725

(2.13)

Obdobnˇe se vypoˇc´ıt´a pravdˇepodobnost v´yskytu chyby na hradle G3, ale pouˇzije se k tomu vzorec (2.10), protoˇze se jedn´a o hradlo AND:

P (G3) = P (F ) · P (E) P (G3) = 0.02 · 0.125 P (G3) = 0.0025

(2.14)

D´ale je potˇreba vypoˇc´ıtat pravdˇepodobnost v´yskytu chyby na hradle G2, aby bylo moˇzno dopoˇc´ıtat pravdˇepodobnost na vrcholov´e ud´alosti G0. Pro v´ypoˇcet pravdˇepo- dobnosti na hradle G2 se vyuˇzije vzorec (2.10):

P (G2) = P (G3) · P (B) P (G2) = 0.0025 · 0.02 P (G2) = 0.00005

(2.15)

Pravdˇepodobnost v´yskytu vrcholov´e ud´alosti G0se vypoˇc´ıt´a za pomoci vzorce (2.11), protoˇze se jedn´a o hradlo OR. V´ypoˇcet vrcholov´e ud´alosti vypad´a n´asledovnˇe:

P (G0) = 1 − [(1 − P (G1)) · (1 − P (A)) · (1 − P (G2))]

P (G0) = 1 − [(1 − 0.2725) · (1 − 0.1) · (1 − 0.00005)]

P (G0) .

= 0.34528

(2.16)

Vrcholov´a ud´alost G0 podle v´ypoˇctu v pˇr´ıkladu (2.16) nastane s pravdˇepodobnost´ı P (G0) .

= 0.34528 (zaokrouhleno na pˇet desetinn´ych m´ıst).

(24)

Metoda minim´aln´ıch kritick´ych ˇrez˚u

Pˇredpokladem pouˇzit´ı t´eto metody je nalezen´ı mnoˇziny vˇsech minim´aln´ıch kri- tick´ych ˇrez˚u stromu poruchov´ych stav˚u. Pokud mnoˇzina vˇsech minim´aln´ıch kri- tick´ych ˇrez˚u je zn´ama, m˚uˇze b´yt strom transformov´an na s´eriovˇe paraleln´ı blo- kov´y diagram, kde kaˇzd´a vˇetev reprezentuje jeden minim´aln´ı kritick´y ˇrez. Jestliˇze se nach´az´ı kaˇzd´y element´arn´ı jev v tomto blokov´em diagramu jen jednou, lze vypo- ˇc´ıtat pravdˇepodobnost vrcholov´e ud´alosti tak, ˇze vypoˇc´ıt´ame nejprve pravdˇepodob- nost jednotliv´ych vˇetv´ı a pak cel´eho diagramu. Jinak se mus´ı blokov´y diagram pˇrepsat do logick´e formy a n´aslednˇe tento v´yraz upravit do disjunktn´ı formy, ze kter´e lze uˇz vypoˇc´ıtat pravdˇepodobnost vrcholov´e ud´alosti.[4]

(25)

3 Reˇ serˇ se vybran´ ych SW pro FTA

Tato kapitola se bude zab´yvat jiˇz existuj´ıc´ımi softwarov´ymi n´astroji pro vytv´aˇren´ı a vyhodnocen´ı stromu poruchov´ych stav˚u. Bude zde kr´atk´a zm´ınka o firmˇe, kter´a za v´yvojem dan´eho softwaru stoj´ı. D´ale bude obecnˇe pops´an jejich produkt a z´akladn´ı popis orientace v prostˇred´ı jejich aplikace.

3.1 Program ALD Fault Tree Analyser

Tento n´astroj byl vytvoˇren spoleˇcnost´ı Advanced Logistics Developments. Jedn´a se o izraelskou spoleˇcnost a v´yvojov´e studio, kter´e od roku 1984 pracuje v oblasti spo- lehlivosti a jej´ı anal´yzy (Reliability Engineering and Analysis), anal´yzy bezpeˇcnosti a ˇr´ızen´ı bezpeˇcnosti, kvality a zajiˇstˇen´ı kvality (Quality Engineering and Quality Assurance).[5]

Program je naps´an jako webov´a aplikace a je tedy volnˇe dostupn´y na str´ank´ach http://www.fault-tree-analysis-software.com/fault-tree-analysis. Pro je- ho vyuˇz´ıv´an´ı je potˇreba b´yt zaregistrov´an. Aplikace umoˇzˇnuje pouze kvantitativn´ı vyhodnocen´ı stromu. D´ale umoˇzˇnuje uloˇzen´ı/naˇcten´ı stromu ze souboru, uloˇzit strom jako obr´azek, zobrazen´ı duplicitn´ıch element´arn´ıch jev˚u, zobrazen´ı listu vˇsech ele- ment´arn´ıch jev˚u nebo vˇsech mezilehl´ych ud´alost´ı.

Obr´azek 3.1: Program ALD Fault Tree Analyser

(26)

Prostˇred´ı aplikace se skl´ad´a ze dvou ˇc´ast´ı, menu (viz Obr.3.1ˇc´ıslo (1)) a pracovn´ı plocha(viz Obr. 3.1 ˇc´ıslo (2)). Jednotliv´e komponenty se pˇrid´avaj´ı pomoc´ı kontex- tov´eho menu (viz Obr. 3.1 ˇc´ıslo (3)), kter´e je vyvolan´e prav´ym kliknut´ım myˇsi na komponentu, ke kter´e ji chceme pˇripojit. Vzhled ud´alosti v programu je vyobrazen na Obr.3.1 ˇc´ıslo (4).

3.2 Program ITEM Toolkit

ITEM Toolkit byl vyvinut spoleˇcnost´ı ITEM Software, kter´a s´ıdl´ı ve Velk´e Brit´anii.

Tato spoleˇcnost se zab´yv´a v´yvojem softwar˚u v oblasti spolehlivosti, anal´yzy bezpeˇc- nosti a vyhodnocen´ı rizik.[6]

ITEM Toolkit je klasick´a desktopov´a aplikace, kter´a je zpoplatnˇen´a, avˇsak firma nab´ız´ı plnˇe funkˇcn´ı 30denn´ı zkuˇsebn´ı verzi. Aplikace se skl´ad´a z nˇekolika modul˚u, kter´e je moˇzn´e si vyzkouˇset ˇci koupit zvl´aˇst’ podle potˇreby. FTA modul umoˇzˇnuje jak kvalitativn´ı tak i kvantitativn´ı vyhodnocen´ı stromu poruch. D´ale umoˇzˇnuje vytv´aˇret v´ıce strom˚u v r´amci jednoho projektu, kop´ırovat ud´alosti mezi projekty, vygenerovat uˇzivatelsky nadefinovan´e zpr´avy k projektu a dalˇs´ı.[7]

Uˇzivatelsk´e prostˇred´ı se skl´ad´a z menu, panelu n´astroj˚u (zde lze nal´ezt jednot- liv´e komponenty pro vytv´aˇren´ı stromu poruch), projektov´eho a syst´emov´eho okna.

Projektov´e okno zobrazuje jednotliv´e projekty, kter´e jsou moment´alnˇe otevˇren´e.

Projekty se skl´adaj´ı z jednotliv´ych syst´em˚u (anal´yz), kter´e se v projektu prov´ad´ı.

V syst´emov´em oknˇe se pak vytv´aˇr´ı samotn´y strom poruchov´ych stav˚u. Jednotliv´e komponenty stromu se pˇrid´avaj´ı jejich v´ybˇerem z panelu n´astroj˚u.

3.3 Program TopEvent FTA

TopEvent FTA je tak´e desktopov´a aplikace. Firma Reliotech nab´ız´ı tento program ve ˇctyrech verz´ıch (Expert, Starter, Standart, Professional). Verze se mezi sebou liˇs´ı moˇzn´ym poˇctem pouˇzit´ych komponent ve stromˇe poruch a zp˚usoby vyhodnocen´ı stromu1. Verze Expert je z´akladn´ı a zadarmo.

Na obr´azku3.2 je vyobrazeno uˇzivatelsk´e prostˇred´ı programu. V horn´ı ˇc´asti okna se nach´az´ı menu (viz ˇc´ıslo (1) na obr´azku 3.2). Pomoc´ı tohoto menu se sestavuje strom poruch tak, ˇze se oznaˇc´ı komponenta na pracovn´ı ploˇse a pak se z menu vybere komponenta, kter´e m´a b´yt pˇripojena k oznaˇcen´e komponentˇe. V lev´e ˇc´asti obrazovky se nach´az´ı pr˚uzkumn´ık projektu, kter´y zobrazuje vˇsechny stromu poruch vytvoˇren´e v r´amci projektu a v´ysledky vyhodnocen´ı (viz ˇc´ıslo (2) na obr´azku 3.2).

C´ıslo (3) na obr´ˇ azku 3.2 ukazuje na tlaˇc´ıtko pro nastaven´ı ud´alosti nebo hradla.

Obecnˇe se d´a nastavit n´azev a popis komponenty. Pokud je nastavov´ana ud´alost je tam moˇznost nastaven´ı pravdˇepodobnosti v´yskytu poruchy, intenzitu poruchy,

1V´ıce informac´ı na adrese https://www.fault-tree-analysis.com/pricing

(27)

stˇredn´ı dobu do poruchy a dalˇs´ı. Pomoc´ı tlaˇc´ıtka oznaˇcen´eho na obr´azku3.2 ˇc´ıslem (4) se spouˇst´ı vyhodnocen´ı vˇsech strom˚u poruchov´ych stav˚u v projektu. Pˇred vy- hodnocen´ım se program zept´a jak m´a strom vyhodnotit, jestli kvalitativnˇe nebo kvalitativnˇe a kvantitativnˇe, a jak´ym zp˚usobem.

Obr´azek 3.2: Program TopEvent FTA 2017

3.4 Program EMFTA

Jedn´a se o open source2 program, kter´y je vytvoˇren jako rozˇs´ıˇren´ı pro existuj´ıc´ı editor OSATE3. OSATE je program postaven´y na jiˇz existuj´ıc´ım editoru Eclipse, kter´y se pro sv˚uj otevˇren´y k´od hojnˇe vyuˇz´ıv´a pro modifikace na editor na m´ıru podle potˇreby.[9]

Aˇckoliv se jedn´a o volnˇe ˇsiˇriteln´y software, nem˚uˇzou ho vyuˇz´ıvat nezkuˇsen´ı uˇzivatel´e jako to bylo u pˇredchoz´ıch program˚u. Nejprve je nutn´e si nainstalovat OSATE program. Do nˇej je potˇreba doinstalovat rozˇs´ıˇren´ı EMFTA. N´avod na instalaci a staˇzen´ı rozˇs´ıˇren´ı je uvedeno na str´ance https://github.com/cmu-sei/emfta.

Po samotn´em nastaven´ı programu lze koneˇcnˇe vytv´aˇret strom poruch. Ovl´ad´an´ı programu nen´ı intuitivn´ı, vˇetˇsinu ˇcasu se str´av´ı hled´an´ım v manu´alu. Pˇredeˇsl´e pro- gramy oproti tomuto mˇely snadn´e ovl´ad´an´ı, bylo zˇrejm´e jak vytvoˇrit strom poruch a jak ho vyhodnotit. Uk´azka programu EMFTA je na obr´azkuA.1.

2Open source program znamen´a, ˇze jsou k programu volnˇe dostupn´e zdrojov´e k´ody a je volnˇe ˇsiˇriteln´y.

3OSATE je editor vytvoˇren´y pro anal´yzu a design architektury. Vyuˇz´ıv´a pro sv´e modelov´an´ı AADL jazyk.

(28)

4 V´ yvoj aplikace

V kapitole V´yvoj aplikace bude pops´an v´yvoj grafick´eho editoru pro konstrukci stromu poruchov´ych stav˚u a jeho vyhodnocen´ı. N´ıˇze budou pops´any poˇzadavky na syst´em, technologii pouˇzitou pro v´yvoj aplikace a d˚uleˇzit´e ˇc´asti k´odu programu.

4.1 Poˇ zadavky na aplikaci

Syst´em m´a b´yt vytv´aˇren jako aplikace s grafick´ym rozhran´ım. Mˇel by umoˇzˇnovat uˇzivateli pouˇz´ıvat z´akladn´ı znaˇcky (viz kapitola 2.5 Pouˇz´ıvan´e znaˇcky v FTA) pro grafickou tvorbu stromu poruchov´ych stav˚u. D´ale by syst´em mˇel umoˇzˇnovat nasta- ven´ı n´azvu, popisu a pravdˇepodobnosti prvk˚u, propojov´an´ı, maz´an´ı ˇci duplikov´an´ı prvk˚u. Tak´e i uloˇzen´ı pr´ace a nahr´avan´ı uloˇzen´e pr´ace.

Syst´em by mˇel umoˇzˇnovat vyhodnocen´ı stromu jak kvalitativnˇe, tak kvantitativnˇe.

Pˇri kvantitativn´ım vyhodnocen´ı stromu by mˇel syst´em vyobrazit do grafu, kde je pravdˇepodobnost z´avisl´a na ˇcase. Zad´an´ı ˇcasov´ych hodnot by mˇelo b´yt uˇzivateli umoˇznˇeno.

4.2 Pouˇ zit´ a technologie

4.2.1 Java 8 SE

Java je jeden z nejrozˇs´ıˇrenˇejˇs´ıch a nejpouˇz´ıvanˇejˇs´ıch programovac´ıch jazyk˚u na svˇetˇe a to d´ıky pˇrenositelnosti k´odu mezi r˚uzn´ymi platformami. Jedn´a se o platformy od ˇcteˇcek ˇcipov´ych karet, pˇres desktopy, vestavˇen´e syst´emy aˇz k distribuovan´ym syst´em˚um. Jedn´a se o objektovˇe orientovan´y programovac´ı jazyk, kter´y byl vy- tvoˇren spoleˇcnost´ı Sun Microsystems v roce 1995 a pozdˇeji d´ale udrˇzov´an a rozv´ıjen spoleˇcnost´ı Oracle.[10]

Program je naps´an v tomto programovac´ım jazyku, protoˇze byla snaha o vytvoˇren´ı multiplatformn´ı aplikace. Java verze 8 byla vybr´ana, protoˇze je to posledn´ı verze, kter´a obsahuje knihovny JavaFX. N´asleduj´ıc´ı verze uˇz tuto knihovnu nemaj´ı a je nutn´e pouˇz´ıvat pro v´yvoj grafick´eho rozhran´ı knihovny tˇret´ıch stran.

(29)

4.2.2 JavaFX

Jedn´a se o sadu knihoven pro tvorbu grafick´eho rozhran´ı v prostˇred´ı Java. Slouˇz´ı pˇredevˇs´ım pro v´yvoj RIA aplikac´ı, coˇz jsou webov´e aplikace, kter´e maj´ı nˇekter´e vlastnosti desktopov´ych aplikac´ı.[11]

Byla zde i moˇznost pouˇz´ıt starˇs´ı knihovnu Swing, kter´a je st´ale pouˇz´ıv´ana ve vˇetˇsinˇe desktopov´ych aplikac´ı psan´ych v jazyce Java. Knihovna Swing nebyla vybr´ana, protoˇze je oproti JavaFX knihovnˇe sloˇzitˇejˇs´ı pro pouˇzit´ı v k´odu a v knihovnˇe JavaFX se snadnˇeji vytv´aˇr´ı vzhled okna programu.

4.2.3 JavaFX Scene Builder

JavaFX Scene Builder je n´astroj pro rychl´e a snadn´e vytv´aˇren´ı n´avrhu uˇzivatelsk´e- ho rozhran´ı JavaFX aplikac´ı. Jednoduch´y editor, ve kter´em se pomoc´ı

”drag &

drop“ poskl´adaj´ı jednotliv´e uˇzivatelsk´e komponenty na pracovn´ı plochu, uprav´ı se jejich vlastnosti dle potˇreb. V´ysledkem je pak FXML soubor, kter´y m˚uˇze b´yt pouˇzit v JavaFX projektu.[12]

4.2.4 IntelliJ IDEA

V´yvojov´e prostˇred´ı, kter´e umoˇzˇnuje ps´at aplikace v programovac´ım jazyce Java, Scala, Kotlin a jin´e. Tento produkt byl vytvoˇren firmou JetBrains. Existuje ve dvou verz´ıch, komunitn´ı a komerˇcn´ı.[13]

Existuj´ı i jin´e v´yvojov´e prostˇred´ı (napˇr. NetBeans ˇci BlueJ), ale IntelliJ IDEA byla vybr´ana z d˚uvodu vynikaj´ıc´ı orientace v tomto programu a dlouholet´e zkuˇsenosti s n´ım.

4.2.5 Inkscape

Inkscape je grafick´y editor pro vytv´aˇren´ı vektorov´e grafiky. Je to svobodn´y a volnˇe ˇsiˇriteln´y program pod licenc´ı GPL. Tento program byl pouˇzit na vytvoˇren´ı obr´azk˚u pro tlaˇc´ıtka v programu a tak´e obr´azk˚u zde v pr´aci.[14]

4.3 Datov´ e struktury

Strom poruchov´ych stav˚u je v aplikaci reprezentov´an jako datov´a struktura strom skl´adaj´ıc´ı se uzl˚u datov´eho typu IFTANode, kter´y je d´ale v textu pops´an. D´ale bylo tˇreba implementovat bin´arn´ı rozhodovac´ı diagram (jeho v´yznam a pouˇzit´ı bude vysvˇetleno v kapitole4.4.5 Kvantitativn´ı vyhodnocen´ı FTA) a je reprezentov´an tak´e jako datov´a struktura strom, ale skl´ad´a se z uzl˚u datov´eho typu BddNode.

D´ale v t´eto podkapitole budou struˇcnˇe pops´any vybran´e datov´e typy a struktury aplikace, kter´e byly bˇehem v´yvoje vytvoˇreny.

(30)

4.3.1 IFTANode

Rozhran´ı IFTANode popisuje z´akladn´ı spoleˇcn´e metody, kter´e mus´ı jednotliv´e komponenty stromu poruchov´ych stav˚u implementovat. Mezi tyto metody patˇr´ı:

• z´ısk´an´ı a nastaven´ı n´azvu komponenty

• z´ısk´an´ı a nastaven´ı podrobnˇejˇs´ıho popisu komponenty

• z´ısk´an´ı a nastaven´ı pravdˇepodobnosti v´yskytu ud´alosti

• z´ısk´an´ı a nastaven´ı intenzity poruchy ud´alosti

• vyhodnocen´ı komponenty

• vyj´adˇren´ı komponenty pomoc´ı booleovsk´e funkce

4.3.2 AEvent

Abstraktn´ı tˇr´ıda AEvent reprezentuje v aplikaci libovolnou ud´alost stromu poru- chov´ych stav˚u. Implementuje rozhran´ı IFTANode. Tato tˇr´ıda si ukl´ad´a n´azev, popis a pravdˇepodobnost v´yskytu komponenty a odkaz na potomka typu IFTANode, jehoˇz je pˇredkem. Z t´eto tˇr´ıdy dˇed´ı jednotliv´e tˇr´ıdy, kter´e reprezentuj´ı ud´alosti stromu po- ruchov´ych stav˚u.

4.3.3 AGate

Abstraktn´ı tˇr´ıda AGate reprezentuje v aplikaci libovoln´e hradlo stromu poru- chov´ych stav˚u. Tak´e implementuje rozhran´ı IFTANode. Udrˇzuje si informace o n´azvu, popisu a pravdˇepodobnosti v´yskytu komponenty a odkazy na potomky typu IFTA- Node, jej´ıˇz je pˇredkem. Tˇr´ıdy, kter´e reprezentuj´ı hradla stromu poruchov´ych stav˚u, dˇed´ı z t´eto tˇr´ıdy.

4.3.4 BddNode

Tˇr´ıda BddNode reprezentuje jeden uzel bin´arn´ıho rozhodovac´ıho diagramu. Tato tˇr´ıda m´a deklarovan´e promˇenn´e:

• znak, kter´y reprezentuje promˇennou v boolovsk´e funkci

• odkazy na dva potomky datov´eho typu BddNode

4.3.5 BddTree

Tˇr´ıda BddTree m´a reprezentovat cel´y bin´arn´ı rozhodovac´ı diagram. Bin´arn´ı roz- hodovac´ı diagram se graficky vyjadˇruje jako bin´arn´ı strom, tˇr´ıda BddTree obsahuje tedy odkaz na koˇren tohoto stromu a m´a implementovan´y funkce pro vytvoˇren´ı takov´eho stromu z booleovsk´e funkce ˇci transformov´an´ı bin´arn´ıho rozhodovac´ıho diagramu na redukovanou verzi.

(31)

4.4 Reˇ ˇ sen´ e probl´ emy v aplikaci

4.4.1 Vizualizace FTA komponent v programu

Jednou z podstatn´ych ˇc´ast´ı programu bylo vymyslet grafick´e zobrazen´ı stromu poruchov´ych stav˚u pro uˇzivatele. Bylo tˇreba vytvoˇrit objekt, kter´y bude zastupovat komponentu ze stromu poruchov´ych stav˚u, lze graficky vyobrazit, zobraz´ı i n´azev definovan´y uˇzivatelem a bude snadn´e tento objekt posouvat po pracovn´ı ploˇse.

Grafick´e zn´azornˇen´ı komponenty

Z knihovny JavaFX byla pro v´yˇse zm´ınˇen´e ´uˇcely pouˇzita tˇr´ıda Pane. Jedn´a se o z´akladn´ı tˇr´ıdu, kterou dˇed´ı skoro vˇsechny kontejnery, a lze j´ı nastavit pozici v nadˇrazen´em kontejneru (v tomto pˇr´ıpadˇe je nadˇrazen´y kontejner pracovn´ı plocha).

Kontejner v JavaFX je komponenta, do kter´e se umist’uj´ı komponenty JavaFX jako napˇr. tlaˇc´ıtko, textov´e pole, obr´azek, graf, jin´e kontejnery atd. Pro kaˇzdou znaˇcku pouˇz´ıvanou v FTA (viz kapitola 2.5 Pouˇz´ıvan´e znaˇcky v FTA) byla vytvoˇrena tˇr´ıda, kter´a dˇed´ı z Pane a slouˇz´ı jako kontejner pro jednotliv´e ˇc´asti znaˇcky, ze kter´ych se skl´ad´a, a pro popisov´y blok znaˇcky. Jednotliv´e tˇr´ıdy se v projektu nach´az´ı v bal´ıˇcku panes.

Uprava n´´ azvu komponenty

Kaˇzd´a komponenta FTA m´a popisov´y blok, ve kter´em by mˇel b´yt naps´an kr´atk´y n´azev komponenty. Ovˇsem n´azvy delˇs´ı neˇz 12 znak˚u uˇz nejsou jednoˇr´adkov´e a je proto nutn´e popisov´y blok komponenty pˇrekreslit na vˇetˇs´ı. Z tˇechto d˚uvod˚u bylo vytvoˇreno rozhran´ı TextModification, kter´e definuje metody pro zmˇenu textu a pro z´ısk´an´ı textu z popisov´eho bloku komponenty. Toto rozhran´ı implementuj´ı vˇsechny tˇr´ıdy popsan´e v podkapitole 4.4.1 Grafick´e zn´azornˇen´ı komponenty. Uk´azku imple- mentace lze nal´ezt v pˇr´ıloze B.2 Uk´azka metody textModify(String text) ve tˇr´ıdˇe PrimEventPane.

Propojen´ı komponent ˇc´arami mezi sebou

Jednotliv´e znaˇcky FTA v diagramu jsou mezi se propojeny spojovac´ımi ˇc´arami (viz. kapitola 2.4 Obecn´y popis FTA). Na rozd´ıl od pap´ıru v aplikaci lze jednot- liv´e komponenty posunovat po pracovn´ı ploˇse. Aby byl zachov´an stejn´y v´yznam diagramu pˇri posunut´ı komponenty (spojovac´ı ˇc´ara bude st´ale spojovat posunu- tou komponentu s jej´ım pˇredkem), bylo zapotˇreb´ı pˇri zmˇenˇe souˇradnic komponenty pˇrepoˇc´ıtat i souˇradnice zaˇc´atku nebo konce spojovac´ı ˇc´ary.

V JavaFX knihovnˇe je tˇr´ıda Line, pomoc´ı kter´e lze vykreslit ˇc´aru. Pro vytvoˇren´ı ˇc´ary v JavaFX postaˇc´ı vytvoˇrit instanci tˇr´ıdy Line a zadat j´ı souˇradnice zaˇc´atku a konce ˇc´ary. Tyto souˇradnice jsou v t´eto tˇr´ıdˇe reprezentov´any pomoc´ı JavaFX obalovac´ı tˇr´ıdy DoubleProperty. V´yhodou t´eto obalovac´ı tˇr´ıdy je, ˇze umoˇzˇnuje pro- pojen´ı s jinou tˇr´ıdou tohoto typu tak, ˇze zmˇena hodnoty v jedn´e z nich se ihned

(32)

projev´ı v t´e druh´e. D´ıky t´eto funkci tˇr´ıdy DoubleProperty bylo vytvoˇreno rozhran´ı PossitionConnector, kter´e implementuj´ı tˇr´ıdy popsan´e v podkapitole 4.4.1 Grafick´e zn´azornˇen´ı komponenty. Toto rozhran´ı definuje ˇctyˇri metody (viz k´od 4.1 Rozhran´ı PossitionConnector):

• getTopX()

• getTopY()

• getBottomX()

• getBottomY()

K´od 4.1: Rozhran´ı PossitionConnector p u b l i c i n t e r f a c e P o s i t i o n C o n n e c t o r {

// V r a c i x - ovou s o u r a d n i c i bodu v p u l c e h o r n i h r a n y k o m p o n e n t y

p u b l i c D o u b l e P r o p e r t y g e t T o p X () ;

// V r a c i y - ovou s o u r a d n i c i bodu v p u l c e h o r n i h r a n y k o m p o n e n t y

p u b l i c D o u b l e P r o p e r t y g e t T o p Y () ;

// V r a c i x - ovou s o u r a d n i c i bodu v p u l c e s p o d n i h r a n y k o m p o n e n t y

p u b l i c D o u b l e P r o p e r t y g e t B o t t o m X () ;

// V r a c i y - ovou s o u r a d n i c i bodu v p u l c e s p o d n i h r a n y k o m p o n e n t y

p u b l i c D o u b l e P r o p e r t y g e t B o t t o m Y () ; }

4.4.2 Ukl´ ad´ an´ı a naˇ c´ıt´ an´ı

Uloˇzen´ı projektu v aplikaci znamen´a uloˇzit jak strom poruchov´ych stav˚u, tak i jeho vizu´aln´ı reprezentaci. Z poˇc´atku byla snaha ukl´adat data do XML dokumentu (viz k´od 4.2 N´avrh XML souboru). Jednotliv´e komponenty mˇely b´yt reprezentov´any stejnojmenn´ymi znaˇckami. Kaˇzd´a tato znaˇcka mˇela obsahovat znaˇcku vyjadˇruj´ıc´ı pozici komponenty na pracovn´ı ploˇse v aplikaci, pravdˇepodobnost poruchy na dan´e komponentˇe a potomky, kter´e jsou k t´eto komponentˇe pˇripojeny.

Bˇehem n´avrhu podoby XML dokumentu se nakonec doˇslo k z´avˇeru, ˇze tento zp˚usob ukl´ad´an´ı dat nen´ı dostateˇcnˇe univerz´aln´ı a dostateˇcnˇe popisuj´ıc´ı. Pokud by doˇslo v programu ke zmˇenˇe struktury napˇr´ıklad tˇr´ıdy implementuj´ıc´ı rozhran´ı IFTANode muselo by doj´ıt nejen k ´upravˇe podoby XML dokumentu, ale i k ´upravˇe

(33)

algoritmu, kter´y by mˇel za ´ukol transformovat projekt do tohoto XML dokumentu.

D´ale by bylo sloˇzit´e znovu rekonstruovat spr´avnˇe strom poruch, kter´y by obsahoval duplicitn´ı z´akladn´ı ud´alosti.

K´od 4.2: N´avrh XML souboru

< fta >

< root >

< p o s i t i o n >

< x > < \ x >

< y > < \ y >

< \ p o s i t i o n >

< p r o b a b i l i t y > < \ p r o b a b i l i t y >

< c h i l d r e n >

< and >

< p o s i t i o n >

< x > < \ x >

< y > < \ y >

< \ p o s i t i o n >

< p r o b a b i l i t y > < \ p r o b a b i l i t y >

< c h i l d r e n >

...

< \ c h i l d r e n >

< \ and >

< \ c h i l d r e n >

< / root >

< / fta >

Pˇreˇslo se tedy ke zp˚usobu ukl´ad´an´ı dat do bin´arn´ıho souboru1. Vyuˇzilo se vlast- nosti jazyka Java, kter´y dok´aˇze vˇsechny sv´e objekty, kter´e implementuj´ı rozhran´ı Serializable2, uloˇzit do souboru a ze souboru tyto objekty zase naˇc´ıst. Rozhran´ı IFTANode implementuje Serializable a t´ım p´adem je serializovateln´e a i vˇsechny tˇr´ıdy, kter´e toto rozhran´ı IFTANode implementuj´ı. Knihovna JavaFX ovˇsem nem´a serializovateln´e tˇr´ıdy, proto byla vytvoˇrena pomocn´a tˇr´ıda SerializablePane, kter´a je serializovateln´a a nese informace o pozici grafick´e komponenty, jak´y typ komponenty je a s k´ym byla grafick´a komponenta pˇr´ıpadnˇe spojen´a ˇc´arou (viz k´od4.3 Tˇr´ıda Seri- alizablePane). D´ale se jen vytvoˇrit list komponent, kaˇzd´a vyj´adˇrena tˇr´ıdou Serializa- blePane, tento list je pˇred´an metodˇe save(...) (viz pˇr´ıloha B.3 Metoda pro ukl´ad´an´ı strom poruch do souboru ve tˇr´ıdˇe ObjectFileOperator) ve tˇr´ıdˇe ObjectFileOperator , kter´a se nach´az´ı v bal´ıˇcku utils.manipulator.

1Reprezentace dat do bin´arn´ıho souboru znamen´a, ˇze tento soubor nen´ı pro lidi ˇciteln´y.

2Rozhran´ı Serializable je souˇast´ı jazyka Java.

(34)

K´od 4.3: Tˇr´ıda SerializablePane

p u b l i c c l a s s S e r i a l i z a b l e P a n e i m p l e m e n t s S e r i a l i z a b l e { // uzel r e p r e z e n t u j i c i j e d n u k o m p o n e n t u FTA

p r i v a t e I F T A N o d e node ;

// typ k o m p o n e n t y , k t e r a je r e p r e z e n t o v a n a u z l e m node p r i v a t e T r e e P a n e s type ;

// p o z i c e k o m p o n e n t y na p r a c o v n i p l o s e p r i v a t e d o u b l e posX , posY ;

// uzel , k t e r e m u je tato k o m p o n e n t a p r i p o j e n a p r i v a t e S e r i a l i z a b l e P a n e l i n e T o ;

// K o n s t r u k t o r

p u b l i c S e r i a l i z a b l e P a n e ( I F T A N o d e node , d o u b l e posX , d o u b l e posY , T r e e P a n e s type ) {

this. node = node ; this. posX = posX ; this. posY = posY ; this. type = type ; this. l i n e T o = null; }

...

}

Naˇc´ıt´an´ı ze souboru funguje v podstatˇe inverzn´ım zp˚usobem k ukl´ad´an´ı. Program si nejprve ze souboru naˇcte vˇsechny objekty typu SerializablePane a d´ale jeden objekt po druh´em pˇreˇcte a sestav´ı vizu´alnˇe podle nich cel´y strom poruchov´ych stav˚u.

4.4.3 Majoritn´ı hradlo (Hradlo M/N)

Na tomto hradle nastane porucha jen tehdy pokud vzniknou poruchy na m po- tomk˚u tohoto hradla z celkov´ych n. Pokud je toto hradlo pouˇzito v aplikaci, lze na takov´emto stromˇe vykon´avat pouze kvantitativn´ı anal´yzu, protoˇze pro kvalitativn´ı anal´yzu se pak mus´ı pouˇz´ıvat mnohem komplexnˇejˇs´ı metody neˇz jsou pouˇzity v t´eto aplikaci3. V´ypoˇcet pravdˇepodobnos-ti v´yskytu ud´alosti na tomto hradle se v aplikaci poˇc´ıt´a pomoc´ı vzorc˚u (4.1), kde

• m je minim´aln´ı poˇcet potomk˚u, na kter´ych nastala porucha

• n je poˇcet potomk˚u hradla

• Pi je pravdˇepodobnost v´yskytu i-t´eho potomka hradla

3Pro hradlo 3 z 5, kde potomci hradla jsou A, B, C, D, E, by vˇsechny minim´aln´ı kritick´y ˇrezy byly: ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, BDE, CDE.

(35)

• Pprum je pr˚umˇern´a pravdˇepodobnost vˇsech potomk˚u hradla

• Phradlo je pravdˇepodobnost v´yskytu ud´alosti na hradle Pprum =

Pn i=1Pi

n Phradlo =

n

X

i=m

n i



· Pprumi · (1 − Pprum)n−i

(4.1)

Tento zp˚usob v´ypoˇctu pravdˇepodobnosti v´yskytu ud´alosti na tomto hradle nen´ı

´

uplnˇe pˇresn´y. Nepˇresnost v´ypoˇctu touto metodou bude uk´az´ano d´ale.

Nepˇresnost v´ypoˇctu na majoritn´ım hradle

Pˇri v´ypoˇctu pravdˇepodobnosti ud´alosti na tomto hradle vznik´a probl´em, pokud se vypoˇc´ıt´av´a z neshodn´ych pravdˇepodobnost´ı jeho pˇr´ım´ych potomk˚u. Proto byl zvo- len jednoduˇsˇs´ı pˇr´ıklad, kdy pravdˇepodobnosti tˇechto potomk˚u byly zpr˚umˇerov´any.

Proto je nutn´e stanovit chybu tohoto zjednoduˇsen´ı. V´ypoˇcet chyby je proveden na nejˇcastˇejˇs´ım syst´emu dva ze tˇr´ı.

Jsou definov´any tˇri ud´alosti s konstantn´ımi pravdˇepodobnostmi P1, P2 a P3, kde P1 < P2 < P3. Necht’ tyto tˇri ud´alosti jsou potomkem majoritn´ıho hradla. V´yskyt poruchy na tomto hradle nastane tehdy pokud nastala porucha alespoˇn na dvou ze tˇr´ı jeho potomk˚u. To znamen´a, ˇze se jedn´a o hradlo dva ze tˇr´ı.

Pˇri v´ypoˇctu pravdˇepodobnosti na majoritn´ım hradle se pouˇz´ıv´a vzorce (4.1).

Skuteˇcn´a hodnota pravdˇepodobnosti na majoritn´ım hradle dva ze tˇr´ı se vypoˇc´ıt´a n´asledovnˇe:

Phradlo = P1· P2· P3+ P1· P2· (1 − P3)

+ P1· (1 − P2) · P3+ (1 − P1) · P2 · P3 (4.2) Necht’ pravdˇepodobnost P2 je rovna pr˚umˇeru hodnot vˇsech pravdˇepodobnost´ı po- tomk˚u na hradle:

P2 = R = P1+ P2+ P3

3 (4.3)

D´ale lze vyj´adˇrit P1 jako P1 = P2− ∆ a P3 jako P3 = P2+ ∆, kde ∆ = P2− P1

∆ = P3− P2. Potom mus´ı platit:

R3+ 3 · R2· (1 − R) ≈ (R − ∆) · R · (R + ∆) + (R − ∆) · R · (1 − (R + ∆)) + (R − ∆) · (1 − R) · (R + ∆) + (1 − (R − ∆)) · R · (R + ∆)

(4.4)

(36)

Nyn´ı nˇekolik ´uprav prav´e strany rovnice:

R3+ 3 · R2· (1 − R) ≈ R · (R2− ∆2) + (R2− R∆) · (1 − R − ∆) + (1 − R) · (R2− ∆2)

+ (1 − R + ∆) · (R2+ R∆)

(4.5)

R3+ 3 · R2 · (1 − R) ≈ R3− R∆2+ R2− R∆

− R3+ R2∆ − R2∆ + R∆2 + R2− ∆2− R3+ R∆2

+ R2+ R∆ − R3− R2∆ + R2∆ + R∆2

(4.6)

R3+ 3 · R2· (1 − R) ≈ −2 · R3+ 2 · R · ∆2+ 3 · R2− ∆2 (4.7) Nyn´ı se provedou koneˇcn´e ´upravy lev´e a prav´e strany rovnice:

3 · R2− 2 · R3 ≈ 3 · R2− 2 · R3+ (2 · R − 1) · ∆2 (4.8) V rovnici (4.8) se prav´a strana od lev´e strany liˇs´ı o (2 · R − 1) · ∆2. To znamen´a, ˇze v´ypoˇcet pravdˇepodobnosti na majoritn´ım hradle je s chybou druh´eho ˇr´adu. Ale vzhledem k tom, ˇze ∆ je rozd´ıl re´aln´e hodnoty pravdˇepodobnosti od pr˚umˇern´e hod- noty (hodnoty ∆ se pohybuj´ı pouze v desetinn´ych ˇc´ıslech), je chybovost v´ypoˇctu pravdˇepodobnosti na hradle v aplikaci zanedbateln´a.

4.4.4 Kvalitativn´ı vyhodnocen´ı FTA

Pro kvalitativn´ı vyhodnocen´ı stromu poruchov´ych stav˚u se nejprve muselo vˇsem z´akladn´ım ud´alostem pˇriˇradit p´ısmeno z abecedy, aby je bylo moˇzno prezentovat jako promˇenn´e v booleovsk´e funkci. Pro hled´an´ı z´akladn´ıch ud´alost´ı byl strom pro- hled´av´an do ˇs´ıˇrky4. T´ım se zajistilo, ˇze p´ısmena se budou pˇriˇrazovat tˇemto ud´alostem od nejv´yˇse poloˇzen´ych ve stromˇe aˇz po nejn´ıˇze poloˇzen´e. Uk´azku k´odu hled´an´ı z´akladn´ıch ud´alost´ı pomoc´ı prohled´av´an´ı stromu do ˇs´ıˇrky je v pˇr´ılozeB.1 Vyhled´an´ı z´akladn´ıch ud´alost´ı pomoc´ı hled´an´ı do ˇs´ıˇrky.

Booleovsk´a funkce, kter´a reprezentuje strom poruchov´ych stav˚u, byla z´ısk´ana po- moc´ı pr˚uchodu stromu do hloubky. Metoda getBoolExpression(), kter´a je definov´ana v rozhran´ı IFTANode, je implementov´ana ve vˇsech tˇr´ıd´ach reprezentuj´ıc´ı kompo- nenty stromu poruch. Metoda je rekurzivn´ı a vrac´ı booleovskou funkci vyjadˇruj´ıc´ı strom poruch.

4Prohled´av´an´ı do ˇs´ıˇrky je grafov´y algoritmus pro postupn´e proch´azen´ı stromu po patrech.

(37)

Uprava booleovsk´´ e funkce

Booleovsk´a funkce obdrˇzen´a od metody getBoolExpression() je potˇreba pˇrev´est na disjunktn´ı norm´aln´ı formu. Pro tuto potˇrebu byla naps´ana tˇr´ıda BracketsSolver, kter´a dok´aˇze rozn´asobit z´avorky vyskytuj´ıc´ı se v booleovsk´e funkci.

Pro pouˇzit´ı metody na minimalizaci booleovsk´e funkce je potˇreba funkci pˇrepsat na tvar souˇctu minterm˚u. Pro tyto ´uˇcely byla vytvoˇrena tˇr´ıda TruthTable, kter´a dok´aˇze pˇrepsat jakoukoliv booleovskou funkci v disjunktn´ı norm´aln´ı formˇe na prav- divostn´ı tabulku. Souˇcet minterm˚u se zapisuje jako ˇc´ısla ˇr´adk˚u pravdivostn´ı tabulky, ve kter´ych tabulka nab´yv´a hodnoty ’1’.

Minimalizace booleovsk´e funkce

K dokonˇcen´ı nalezen´ı mnoˇziny vˇsech minim´aln´ıch kritick´ych ˇrez˚u je potˇreba mi- nimalizovat booleovskou funkci. Booleovsk´a funkce se minimalizuje pomoc´ı boole- ovsk´e redukce, Karnaughov´ych map nebo pomoc´ı Quine-McCluskeyho algoritmu.

Pro minimalizaci funkce je pouˇzita metoda Quine-McCluskey, protoˇze se tato me- toda snadnˇeji implementuje na stroj´ıch neˇz metoda pomoc´ı Karnaughov´ych map.

Jiˇz naimplementovanou Quine-McCluskeyho algoritmus v jazyce Java byl nalezen na internetu z d˚uvodu n´aroˇcnosti implementace. Autorem tohoto k´odu je pan Ahmed Yakout, kter´y poskytl k´od volnˇe ˇsiˇriteln´y pod licenc´ı MIT. K´od algoritmu byl nale- zen na str´ancehttps://github.com/yakout/quine-mccluskey. Tomuto programu byla pˇred´ana mnoˇzina minterm˚u a zp´atky vr´acena je minimalizovan´a booleovsk´a funkce. Podle t´eto funkce bylo pak moˇzn´e zobrazit z´akladn´ı ud´alosti, kter´e patˇr´ı do mnoˇziny minim´aln´ıch kritick´ych ˇrez˚u.

4.4.5 Kvantitativn´ı vyhodnocen´ı FTA

U kvantitativn´ıho hodnocen´ı stromu poruch se muselo nejprve vyˇreˇsit jestli se ve stromˇe poruchov´ych stav˚u vyskytuj´ı duplicitn´ı z´akladn´ı ud´alosti. Pokud ve stromˇe neexistovaly duplicity, mohlo b´yt pouˇzita pˇr´ım´a metoda pro vyhodnocen´ı stromu po- ruch. Tato metoda pro vyhodnocen´ı stromu je definovan´a uˇz v rozhran´ı IFTANode a jej´ı implementace se liˇs´ı podle komponenty, ve kter´e je implementov´ana. Pokud komponenta dˇedila ze tˇr´ıdy AEvent, metoda vracela pˇr´ımo hodnotu pravdˇepodobnos- ti v´yskytu ud´alosti nadefinovanou uˇzivatelem. Jestliˇze komponenta byla potomkem tˇr´ıdy AGate, metoda byla implementov´ana podle vzorce pro dan´e hradlo z kapitoly 2.6.3 Kvantitativn´ı anal´yza FTA.

Ovˇsem pokud se vyskytovaly duplicitn´ı z´akladn´ı ud´alosti ve stromˇe poruchov´ych stav˚u mus´ı b´yt pouˇzita metoda v´ypoˇctu pomoc´ı minim´aln´ıch kritick´ych ˇrez˚u. Nej- prve byl vyhodnocen strom poruchov´ych stav˚u kvalitativnˇe. Z´ıskan´a mnoˇzina mi- nim´aln´ıch kritick´y ˇrez˚u byla pot´e transformov´ana zpˇet do booleovsk´e funkce.

(38)

Binarn´ı rozhodovac´ı diagram

Funkce byla d´ale pˇrevedena do disjunktn´ı formy za pomoci bin´arn´ıho rozhodo- vac´ıho diagramu. Bin´arn´ı rozhodovac´ı diagram je datov´a struktura, kter´a se pouˇz´ıv´a pro reprezentaci booleovsk´e funkce v informatice. Jedn´a se o datovou strukturu bin´arn´ı strom, kde jednotliv´e uzly reprezentuj´ı promˇenn´e booleovsk´e funkce a listy tohoto stromu nab´yvaj´ı logick´ych hodnot. Lev´y potomek uzlu reprezentuje funkci, kde za promˇennou reprezentovanou t´ımto uzlem lze dosadit ve funkci logickou ’0’.

Prav´y potomek uzlu zas reprezentuje funkci, kde promˇenn´a ve funkci nab´yv´a hod- noty logick´a ’1’. Listy tohoto stromu jsou uzle, kter´e representuj´ı logickou ’1’ nebo ’0’.

Pro nalezen´ı disjunktn´ı formy funkce je tˇreba bin´arn´ı rozhodovac´ı diagram pˇrev´est nejprve na seˇrazen´y bin´arn´ı rozhodovac´ı diagram a pot´e na redukovan´y seˇrazen´y bin´arn´ı rozhodovac´ı diagram. Seˇrazen´y bin´arn´ı rozhodovac´ı diagram je takov´y dia- gram, kde uzly mezi sebou pˇrech´az´ı v poˇrad´ı, kter´e urˇcuje seˇrazen´y list promˇenn´ych vyskytuj´ıc´ıch se v dan´e funkci. To znamen´a, ˇze pokud by v listu ˇsly po sobˇe promˇenn´y A, B, C, tak v diagramu nesm´ı nastat, ˇze uzel reprezentuj´ıc´ı promˇennou B bude m´ıt mezi potomky uzel reprezentuj´ıc´ı promˇennou A.

Necht’ je definov´ana booleovsk´a funkce f = ac + bc. Pro sestaven´ı bin´arn´ıho rozho- dovac´ıho diagramu z t´eto funkce se pouˇzije tzv. dekompozice booleovsk´e funkce. De- kompozice funkce spoˇc´ıv´a v pˇreps´an´ı funkce na souˇcet dvou nov´ych funkc´ı, u kter´ych je vyj´adˇrena jedna z promˇenn´ych. Pˇr´ıklad (4.9) zn´azorˇnuje dekompozici funkce f = ac + bc pro promˇennou ’a’.

f = ac + bc fa = f(a=0)= bc fa = f(a=1)= c + bc

f = a · fa+ a · fa

(4.9)

Jestliˇze g = bc a h = c + bc potom bin´arn´ı rozhodovac´ı diagram funkce f = ac + bc vypad´a jako na obr´azku 4.1, kde lev´y potomek uzlu A je roven funkci g a prav´y potomek je roven funkci h.

Obr´azek 4.1: ˇC´ast bin´arn´ıho rozhodovac´ıho diagramu

Pokud se pokraˇcuje v dekompozici d´ale, vznikne bin´arn´ı rozhodovac´ı diagram zob- razen´y na obr´azku 4.2.

(39)

Obr´azek 4.2: Seˇrazen´y bin´arn´ıho rozhodovac´ı diagram funkce f = ac + bc Redukovan´y seˇrazen´y bin´arn´ı rozhodovac´ı diagram vznikne vykon´an´ım ´uprav nad seˇrazen´ym bin´arn´ım rozhodovac´ım diagramem v pˇredepsan´em poˇrad´ı:

1) Sjednotit listy reprezentuj´ıc´ı stejn´e hodnoty do jednoho listu (viz obr´azek4.3).

Obr´azek 4.3: Sjednocen´ı stejn´ych list˚u diagramu

2) Pokud lev´y potomek uzlu je stejn´y jako prav´y potomek tohoto uzlu, nahrad´ı se tento uzel jeho potomkem (viz obr´azek 4.4).

Obr´azek 4.4: Nahrazen´ı uzlu BDD

3) Existuj´ı-li dva uzle reprezentuj´ıc´ı stejnou promˇennou funkce, jejichˇz lev´y po- tomek je jeden a ten sam´y a prav´y potomek takt´eˇz, sjednot´ıme tyto uzly do jednoho (viz obr´azek4.5).

Postup 2) a 3) se opakuje tak dlouho aˇz uˇz nelze uplatnit na diagramu ani jedna

´

uprava a v´ysledn´y diagram je redukovan´y seˇrazen´y bin´arn´ı rozhodovac´ı diagram.

V´ysledn´y rozhodovac´ı diagram po redukci je vyobrazen na obr´azku 4.6.[15]

(40)

Obr´azek 4.5: Sjednocen´ı duplicitn´ıch uzl˚u BDD

Obr´azek 4.6: Redukovan´y BDD funkce f = ac + bc

Bin´arn´ı rozhodovac´ı diagram byl podle v´yˇse uveden´eho popisu naprogramov´an do tˇr´ıdy BddTree. Po pˇred´an´ı booleovsk´e funkce si tˇr´ıda automaticky vytvoˇr´ı seˇrazen´y bin´arn´ı rozhodovac´ı diagram. D´ale staˇc´ı na strom zavolat metodu minimizedBdd(), kter´a transformuje diagram na redukovan´y. Pro z´ısk´an´ı disjunktn´ı formy booleovsk´e funkce byl prohled´an strom do hloubky a byly hled´any vˇsechny cesty, kter´e konˇcili v listˇe s logickou hodnotou ’1’. Disjunktn´ı forma booleovsk´e funkce z v´yˇse uveden´eho pˇr´ıkladu m´a pˇredpis f = abc + ac, kde k z´ısk´an´ı sˇc´ıtance abc zn´azorˇnuje ˇcerven´a ˇsipka a k z´ısk´an´ı sˇc´ıtance ac zn´azorˇnuje zelen´a ˇsipka na obr´azku 4.7. Kaˇzd´a cesta

Obr´azek 4.7: Postup pro z´ısk´an´ı disjunktn´ı formy booleovsk´e funkce z BDD byla pˇreps´ana na souˇcin promˇenn´ych, pˇres kter´e cesta vedla. Pokud v urˇcit´em uzlu pˇri pr˚uchodu cestou se muselo j´ıt d´ale pˇres jeho lev´eho potomka, vyjadˇruje se tento uzel ve funkci jako negace promˇenn´e, kterou reprezentuje.

References

Related documents

Diskr´ etn´ı wavelet transformace (DWT) nal´ ez´ a vyuˇ zit´ı pˇri potlaˇ cov´ an´ı ˇsumu v obrazu.. Opaˇ cn´ y postup se naz´ yv´ a rekonstrukce, kdy pˇri nezmˇ enˇ

Nicm´ enˇ e v t´ eto pr´ aci byla vyuˇ zita pouze jej´ı element´ arn´ı funkˇ cnost, tedy zazn´ amen´ av´ an´ı pohybu prstu po vymezen´ em prostoru bez moˇ znosti

Pˇredloˇ zen´ a disertaˇ cn´ı pr´ ace se zab´ yv´ a adaptac´ı existuj´ıc´ıho syst´ emu automatick´ eho rozpozn´ av´ an´ı ˇreˇ ci (ASR) pro dalˇs´ı jazyky.. Zamˇ eˇruje

Kromˇ e fin´ aln´ı verze, kter´ a komplexnˇ e zpracov´ av´ a veˇsker´ e dan´ e poˇ zadavky, vzni- kala souˇ casnˇ e i verze, kter´ a fungovala bez pouˇ zit´ı detektoru

Na obr´ azku 4.35 je zobrazeno porovn´ an´ı akustick´ eho tlaku nad nosn´ıkem uni- morf (bez elektrod i s elektrodami vych´ az´ı nad nosn´ıkem velice podobn´ y akustick´ y

Uveden´ a simulace je zaloˇ zena, jak jiˇ z bylo zm´ınˇ eno, na opakovan´ em gene- rov´ an´ı n´ ahodn´ ych dat, na kter´ ych se prov´ ad´ı dan´ y algoritmus a jsou

Bˇ ehem procesu repasov´ an´ı se z´ısk´ av´ a velk´ e mnoˇ zstv´ı dat, kter´ e je nutn´ e ukl´ adat kv˚ uli zpˇ etn´ e kontrole procesu.. nice v libovoln´ em okamˇ

D´ ale byly definov´ any poˇ zadovan´ e vlastnosti jednotliv´ ych souˇ c´ ast´ı inteligentn´ıho domovn´ıho syst´ emu, kter´ ymi jsou domovn´ı syst´ em, desktopov´ a,