From 7d0532fdf2049236bf047ab9c85c93cefb89bc35 Mon Sep 17 00:00:00 2001 From: Robin Clark Date: Tue, 30 Nov 2010 19:32:00 +0000 Subject: [PATCH] ... --- fmmd_data_model/fmmd_data_model.tex | 304 +++++++++++++++++++++++++++- 1 file changed, 300 insertions(+), 4 deletions(-) diff --git a/fmmd_data_model/fmmd_data_model.tex b/fmmd_data_model/fmmd_data_model.tex index aca66b0..bfca813 100644 --- a/fmmd_data_model/fmmd_data_model.tex +++ b/fmmd_data_model/fmmd_data_model.tex @@ -399,6 +399,125 @@ and let us say new symptom s5 can be caused by failure mode $\{K_{4 a} \}$. We can create a derived component $DC^1_2$ using $\bowtie fm(FG^0_2) = DC^1_2$. Applying $fm$ to our {\dcs} gives $fm(DC^1_2) = \{ s3,s4,s5 \}$. +We can respresent this in the DAG in figure \ref{fig:dag2}. + + +% +% DAG INCLUDING DC^1_2 +% + + + + \begin{figure} + \centering + \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep] + \tikzstyle{every pin edge}=[<-,shorten <=1pt] + \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt] + \tikzstyle{component}=[fmmde, fill=green!50]; + \tikzstyle{failure}=[fmmde, fill=red!50]; + \tikzstyle{symptom}=[fmmde, fill=blue!50]; + \tikzstyle{annot} = [text width=4em, text centered] + + % Draw the input layer nodes + %\foreach \name / \y in {1,...,4} + % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4} + % \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {}; + + \node[component] (C-1) at (0,-1) {$C^0_1$}; + \node[component] (C-2) at (0,-3) {$C^0_2$}; + \node[component] (C-3) at (0,-5) {$C^0_3$}; + \node[component] (K-4) at (0,-8) {$K^0_4$}; + %\node[component] (C-5) at (0,-10) {$C^0_5$}; + %\node[component] (C-6) at (0,-12) {$C^0_6$}; + %\node[component] (K-7) at (0,-15) {$K^0_7$}; + + % Draw the hidden layer nodes + %\foreach \name / \y in {1,...,5} + % \path[yshift=0.5cm] + \node[failure] (C-1a) at (\layersep,-1) {a}; + \node[failure] (C-1b) at (\layersep,-2) {b}; + \node[failure] (C-2a) at (\layersep,-3) {a}; + \node[failure] (C-2b) at (\layersep,-4) {b}; + \node[failure] (C-3a) at (\layersep,-5) {a}; + \node[failure] (C-3b) at (\layersep,-6) {b}; + \node[failure] (K-4a) at (\layersep,-7) {a}; + \node[failure] (K-4b) at (\layersep,-8) {b}; + \node[failure] (K-4d) at (\layersep,-9) {d}; + + % Draw the output layer node + + % Connect every node in the input layer with every node in the + % hidden layer. + %\foreach \source in {1,...,4} + % \foreach \dest in {1,...,5} + \path (C-1) edge (C-1a); + \path (C-1) edge (C-1b); + \path (C-2) edge (C-2a); + \path (C-2) edge (C-2b); + \path (C-3) edge (C-3a); + \path (C-3) edge (C-3b); + \path (K-4) edge (K-4a); + \path (K-4) edge (K-4b); + \path (K-4) edge (K-4d); + + %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {}; + \node[symptom, right of=C-1a] (s1) {s1}; + \node[symptom, right of=C-2a] (s2) {s2}; + \node[symptom, right of=C-3a] (s3) {s3}; + \node[symptom, right of=C-3b] (s4) {s4}; + \node[symptom, right of=K-4b] (s5) {s5}; + + + + \path (C-2b) edge (s1); + \path (C-1a) edge (s1); + + \path (C-2a) edge (s2); + \path (C-1b) edge (s2); + + \path (C-1a) edge (s3); + \path (C-3b) edge (s3); + \path (K-4b) edge (s3); + + \path (C-1b) edge (s4); + \path (C-3a) edge (s4); + \path (K-4d) edge (s4); + + \path (K-4a) edge (s5); + + \node[component, right of=s1] (DC-1) {$C^1_1$}; + \node[component, right of=s4] (DC-2) {$C^1_2$}; + + \path (s1) edge (DC-1); + \path (s2) edge (DC-1); + + \path (s3) edge (DC-2); + \path (s4) edge (DC-2); + \path (s5) edge (DC-2); + + + + + + % Connect every node in the hidden layer with the output layer + %\foreach \source in {1,...,5} + % \path (H-\source) edge (O); + + % Annotate the layers + \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes}; + \node[annot,left of=hl] {Base Components}; + \node[annot,right of=hl](s) {Symptoms}; + \node[annot,right of=s](dcl) {Derived Component}; + \end{tikzpicture} + % End of code + \caption{DAG representing failure modes and symptoms $FG^0_1 \rightarrow DC^1_1$ and $FG^0_2 \rightarrow DC^1_2$} + \label{fig:dag2} + \end{figure} + + + + + \paragraph{Applying FMMD $\bowtie fm(FG^0_3) $ :} @@ -410,16 +529,193 @@ We can create a derived component $DC^1_3$ using $\bowtie fm(FG^0_3) = DC^1_3$ where $fm(DC^1_3) = \{ s6,s7,s8 \}$. +We can now represent the first stage of FMMD, all base component +failure modes analysed and our first set of derived components determined. +This is shown in the DAG in figure \ref{fig:dag3}. -\pagebreak[4] + + \begin{figure} + \centering + \begin{tikzpicture}[shorten >=1pt,->,draw=black!50, node distance=\layersep] + \tikzstyle{every pin edge}=[<-,shorten <=1pt] + \tikzstyle{fmmde}=[circle,fill=black!25,minimum size=17pt,inner sep=0pt] + \tikzstyle{component}=[fmmde, fill=green!50]; + \tikzstyle{failure}=[fmmde, fill=red!50]; + \tikzstyle{symptom}=[fmmde, fill=blue!50]; + \tikzstyle{annot} = [text width=4em, text centered] + + % Draw the input layer nodes + %\foreach \name / \y in {1,...,4} + % This is the same as writing \foreach \name / \y in {1/1,2/2,3/3,4/4} + % \node[component, pin=left:Input \#\y] (I-\name) at (0,-\y) {}; + + \node[component] (C-1) at (0,-1) {$C^0_1$}; + \node[component] (C-2) at (0,-3) {$C^0_2$}; + \node[component] (C-3) at (0,-5) {$C^0_3$}; + \node[component] (K-4) at (0,-8) {$K^0_4$}; + \node[component] (C-5) at (0,-10) {$C^0_5$}; + \node[component] (C-6) at (0,-12) {$C^0_6$}; + \node[component] (K-7) at (0,-15) {$K^0_7$}; + + % Draw the hidden layer nodes + %\foreach \name / \y in {1,...,5} + % \path[yshift=0.5cm] + \node[failure] (C-1a) at (\layersep,-1) {a}; + \node[failure] (C-1b) at (\layersep,-2) {b}; + \node[failure] (C-2a) at (\layersep,-3) {a}; + \node[failure] (C-2b) at (\layersep,-4) {b}; + \node[failure] (C-3a) at (\layersep,-5) {a}; + \node[failure] (C-3b) at (\layersep,-6) {b}; + \node[failure] (K-4a) at (\layersep,-7) {a}; + \node[failure] (K-4b) at (\layersep,-8) {b}; + \node[failure] (K-4d) at (\layersep,-9) {d}; + + + \node[failure] (C-5a) at (\layersep,-10) {a}; + \node[failure] (C-5b) at (\layersep,-11) {b}; + \node[failure] (C-6a) at (\layersep,-12) {a}; + \node[failure] (C-6b) at (\layersep,-13) {b}; + \node[failure] (K-7a) at (\layersep,-15) {a}; + \node[failure] (K-7b) at (\layersep,-16) {b}; + \node[failure] (K-7d) at (\layersep,-17) {d}; + + % Draw the output layer node + + % Connect every node in the input layer with every node in the + % hidden layer. + %\foreach \source in {1,...,4} + % \foreach \dest in {1,...,5} + \path (C-1) edge (C-1a); + \path (C-1) edge (C-1b); + \path (C-2) edge (C-2a); + \path (C-2) edge (C-2b); + \path (C-3) edge (C-3a); + \path (C-3) edge (C-3b); + \path (K-4) edge (K-4a); + \path (K-4) edge (K-4b); + \path (K-4) edge (K-4d); + + \path (C-5) edge (C-5a); + \path (C-5) edge (C-5b); + \path (C-6) edge (C-6a); + \path (C-6) edge (C-6b); + \path (K-7) edge (K-7a); + \path (K-7) edge (K-7b); + \path (K-7) edge (K-7d); + + %\node[symptom,pin={[pin edge={->}]right:Output}, right of=C-1a] (O) {}; + \node[symptom, right of=C-1a] (s1) {s1}; + \node[symptom, right of=C-2a] (s2) {s2}; + + \node[symptom, right of=C-3a] (s3) {s3}; + \node[symptom, right of=C-3b] (s4) {s4}; + \node[symptom, right of=K-4b] (s5) {s5}; + + + \node[symptom, right of=C-5a] (s6) {s6}; + \node[symptom, right of=C-6b] (s7) {s7}; + \node[symptom, right of=K-7b] (s8) {s8}; + + \path (C-2b) edge (s1); + \path (C-1a) edge (s1); + + \path (C-2a) edge (s2); + \path (C-1b) edge (s2); + + \path (C-1a) edge (s3); + \path (C-3b) edge (s3); + \path (K-4b) edge (s3); + + \path (C-1b) edge (s4); + \path (C-3a) edge (s4); + \path (K-4d) edge (s4); + + \path (K-4a) edge (s5); + + + + \path (C-5a) edge (s6); + \path (C-6b) edge (s6); + \path (K-7b) edge (s6); + + \path (C-5b) edge (s7); + \path (C-6a) edge (s7); + \path (K-7d) edge (s7); + + \path (K-7a) edge (s8); + + + \node[component, right of=s1] (DC-1) {$C^1_1$}; + \node[component, right of=s4] (DC-2) {$C^1_2$}; + \node[component, right of=s7] (DC-3) {$C^1_3$}; + + \path (s1) edge (DC-1); + \path (s2) edge (DC-1); + + \path (s3) edge (DC-2); + \path (s4) edge (DC-2); + \path (s5) edge (DC-2); + + \path (s6) edge (DC-3); + \path (s7) edge (DC-3); + \path (s8) edge (DC-3); + + + % Connect every node in the hidden layer with the output layer + %\foreach \source in {1,...,5} + % \path (H-\source) edge (O); + + % Annotate the layers + \node[annot,above of=C-1a, node distance=1cm] (hl) {Failure modes}; + \node[annot,left of=hl] {Base Components}; + \node[annot,right of=hl](s) {Symptoms}; + \node[annot,right of=s](dcl) {Derived Component}; + \end{tikzpicture} + % End of code + \caption{DAG representing failure modes and symptoms $FG^0_1 \rightarrow DC^1_1$ and $FG^0_2 \rightarrow DC^1_2$} + \label{fig:dag3} + \end{figure} + + + + +\clearpage +%\pagebreak[4] \subsection{Using Derived Components in Functional Groups} +The DAG we have in figure \ref{fig:dag3} does not yet give us SYSTEM or `top~level' +failure modes. +We can apply $fm$ to the derived components and +this returns the failure modes. We can notate +these with $a$ and $b$ etc as before, but can give them +a subscript representing the symptom they were sourced from thus: +$$ fm(DC^1_1) = \{ a_{s1}, b_{s2} \}, $$ +$$ fm(DC^1_2) = \{ a_{s3}, b_{s4}, c_{s5} \}, $$ +$$ fm(DC^1_3) = \{ a_{s6}, b_{s7}, c_{s8} \}. $$ -HERE show how the hierarchy is built, how the inheritance works etc +In order to determine SYSTEM level symptoms, we need to +use the derived components to form a higher level functional +group and analyse that. -HAVE an example. totally theoretical. HAVE Common mode failure detection AND Common dependency detection +For the sake of example, let us assume that we +can use all three derived components to +create a top~level functional group. -\subsection{Directed Acyclic Graph} +Let +$ FG^1_1 = \{ DC^1_1, DC^1_1, DC^1_1 \} $. + +Applying $fm(FG^1_1) = \{ a_{s1}, b_{s2}, a_{s3}, b_{s4}, c_{s5}, a_{s6}, b_{s7}, c_{s8} \}$. +To get our system level derived component we can apply $ \bowtie fm(FG^1_1) = DC^2_1 $. + +NOW THINK ABOUT THIS + +NEED INTERESTING FAULTS + +TO RACE BACK DOWN THE DAG + + + +\section{Directed Acyclic Graph} Show how the hierarchy can be represented as a DAG