Předmětem semestrální práce by měl být modul pro výpočet spolehlivostních charakteristik pro elektronický katalog intenzit poruch prvků letadlových soustav. Tento katalog obsahuje informace o intenzitách poruch, střední délce života a další údaje o více než 500 prvcích devíti letadlových soustav malého dopravního letadla.
Od výpočetního modulu očekáváme následující funkce:
Postup řešení: Vytvořit nástroj, který převede zadání formulované specifickým jazykem (viz dále) do vnitřní formy s následným výpočtem včetně možnosti vykreslení grafů spolehlivostních charakteristik (doby do poruchy, funkce přežití).
Sériový systém prvků. Předpokládejme, že prvky A a B jsou zapojeny do série, prvek A má intenzitu poruchy λA, prvek B má intenzitu poruchy λB. Za předpokladu, že doby do poruchy každého z obou prvků jsou nezávislé, s distribučními funkcemi FA(t), resp. FB(t), bude distribuční funkce doby do poruchy sériového systému
Paralelní systém prvků: Předpokládejme, že prvky C a D jsou zapojeny paralelně, prvek C má intenzitu poruchy λC, prvek D má intenzitu poruchy λD. Za předpokladu, že doby do poruchy každého z obou prvků jsou nezávislé, s distribučními funkcemi FC(t), resp. FD(t), bude distribuční funkce doby do poruchy paralelního systému
Pokud jsou rozdělení doby do poruchy obou prvků exponenciální, je
Sériově-paralelní systém: Program umožní „skládat“ prvky do sériově-paralelních struktur. Prvky by mělo být možné postupně přidávat k již vybrané skupině prvků nebo k jednotlivým vybraným prvkům. Při výběru uživatel stanoví způsob připojení: sériově nebo paralelně. Tímto způsobem bude možno vytvářet poměrně složité struktury. Modul by měl vytvořenou strukturu zobrazit ve formě schématu podobného níže uvedenému obrázku a poskytnout uživateli možnost editace již vytvořené struktury (odebrání/přidání prvku, změnu paralelního zapojení na sériové a opačně a podobně)
Literatura: Podrobnosti lze nalézt v kapitole 4 (Network modelling and evaluation of simple systems) v knize Billinton R., Allan R. N.: Reliability Evaluation of engineering systems. Plenum Publ. Co., New York, 1992.
Program umí počítat pro proměnné v souvislém rozsahu, dosazovat do konstant výrazy. Do budoucna bych ho chtěl ještě rozšířit o kreslení grafů a nákresů rozložení statistických funkcí.
Gramatiku lze rozšířit o další prvky. Např. logaritmy, derivace, goniometrické funkce.
pravidla | FIRST | FOLLOW |
GLOBAL:=[VYRAZ][DEFINICE] | (,-,x,y,z,t,R,1,2,3,4,5,6,7,8,9,0, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,s,u,v,w |
ε |
DEFINICE:=;[KONST]=[VYRAZ][DEFINICE] | ; | ε |
DEFINICE:=ε | ε | |
KONST:={a,b,c,d,f,g,h,i,j,k,l,m,n,o,p,q,s,u,v,w} | a,b,c,d,f,g,h,i,j,k,l,m,n,o,p,q,r,s,u,v,w | ),+,-,*,/,^,; |
KONST:=e | e | |
VYRAZ:=[VYRAZ][VYRAZ2] | (,-,x,y,z,t,R,1,2,3,4,5,6,7,8,9,0, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,s,u,v,w |
),+,-,*,/,^,; |
VYRAZ:=([VYRAZ]) | ( | |
VYRAZ:=-[VYRAZ] | - | |
VYRAZ:={x,y,z,t} | x,y,z,t | |
VYRAZ:=[CCISLO][DCISLO] | 1,2,3,4,5,6,7,8,9,0 | |
VYRAZ:=[KONST] | a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,s,u,v,w | |
VYRAZ:=[LAMBDA] | (,L | |
VYRAZ2:=-[VYRAZ] | - | ),+,-,*,/,^,; |
VYRAZ2:=+[VYRAZ] | + | |
VYRAZ2:=/[VYRAZ] | / | |
VYRAZ2:=*[VYRAZ] | * | |
VYRAZ2:=^[VYRAZ] | ^ | |
LAMBDA:=([LAMBDA]) | ( | ),+,-,*,/,^,; |
LAMBDA:=R([VYRAZ])[LAMBDA2] | R | |
LAMBDA2:=$[LAMBDA] | $ | ),+,-,*,/,^,; |
LAMBDA2:=&[LAMBDA] | & | |
LAMBDA2:=ε | ε | |
DCISLO:=.[NCISLO] | . | ),+,-,*,/,^,; |
DCISLO:=,[NCISLO] | , | |
DCISLO:=ε | ε | |
CCISLO:=[CISLICE][NCISLO] | 1,2,3,4,5,6,7,8,9 | ),+,-,*,/,^,;,,,. |
CCISLO:=0 | 0 | |
NCISLO:=[CCISLO] | 1,2,3,4,5,6,7,8,9,0 | ),+,-,*,/,^,;,,,. |
NCISLO:=0[NCISLO] | 1,2,3,4,5,6,7,8,9,0 | |
NCISLO:=ε | ε | |
CISLICE:={1,2,3,4,5,6,7,8,9} | 1,2,3,4,5,6,7,8,9 | ),+,-,*,/,^,;,,,., 1,2,3,4,5,6,7,8,9,0 |
neterm | ( | - | {x,y,z,t} | R | {1..9} | 0 | {a..w}`e`R`t | e | ) | + | * | / | ^ | ; | , | . | ε | $ | & |
GLOBAL | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | x | x | x | x | x | x | x | x | x | x | x |
DEFINICE | x | x | x | x | x | x | x | x | x | x | x | x | x | 2 | x | x | 3 | x | x |
KONST | x | x | x | x | x | x | 4 | 5 | x | x | x | x | x | x | x | x | x | x | x |
VYRAZ | 6,7,10 | 8 | 9 | 10 | 11 | 11 | 12 | 12 | x | x | x | x | x | x | x | x | x | x | x |
VYRAZ2 | x | 15 | x | x | x | x | x | x | 13 | 14 | 16 | 17 | 18 | 13 | x | x | 13 | x | x |
LAMBDA | 19 | x | x | 20 | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
LAMBDA2 | x | 23 | x | x | x | x | x | x | 23 | 23 | 23 | 23 | 23 | 23 | x | x | x | 21 | 22 |
DCISLO | x | 26 | x | x | x | x | x | x | 26 | 26 | 26 | 26 | 26 | 26 | 25 | 24 | x | x | x |
CCISLO | x | x | x | x | 27 | 28 | x | x | x | x | x | x | x | x | x | x | x | x | x |
NCISLO | x | 32 | x | x | 31 | 30 | x | x | 32 | 32 | 32 | 32 | 32 | 32 | 32 | 32 | x | x | x |
CISLICE | x | x | x | x | 33 | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
Na semestrální práci jsem si osvěžil znalost automatů a lexikálních analyzátorů. Zároveň má semestrální práce i své praktické využití.