Robin_PHD/fmmd_data_model/fmmd_data_model.tex
Robin Clark 6b75033e8c .
2010-12-01 09:06:27 +00:00

787 lines
26 KiB
TeX

\ifthenelse {\boolean{paper}}
{
\abstract{
%% What I have done
%%
This paper presents a simple two level Failure Mode Modular De-Composition (FMMD)
model of a theoretical system.
Firstly a UML model is presented and the class relationships described.
Secondly the theoretical model is developed and analysed.
This model is then represented as a Directed Acyclic Graph (DAG),
showing the data relationships between the {\fg}s
components and failure modes.
% What I have found
%%
From traversing the DAG, minimal cut sets (component level combinations
that cause system level failures) are revealed.
Common mode failure modes and same component dependencies
can also be automatically determined.
%% Sell it
%%
By having an FMMD data model, we can derive failure mode models
for the traditional methodologies (such as FMEA, FMECA, FMEDA and FTA).
Also, with statistical data, we can use the minimal cut set results
to determine the likelihood of particular system failures, even
if they have multiple causes.
%
} % abstract
} % ifthenelse
{
%%% CHAPTER INTO NEARLT THE SAME AS ABSTRACT
\section{Introduction}
This chapter
presents a simple two stage FMMD % Failure Mode Modular De-Composition (FMMD)
model of a theoretical system.
The Analysis model is then represented as a Directed Acyclic Graph (DAG), of the {\fg}s
components and failure modes represented in it.
% What I have found
%%
From traversing the DAG, minimal cut sets (component level combinations
that cause system level failures) are revealed.
Common mode failure modes and same component dependencies
can also be automatically determined.
%% Sell it
%%
By having an FMMD data model, we can derive failure mode models
for the traditional methodologies (such as FMEA, FMECA, FMEDA and FTA).
Also, with statistical data, we can use the minimal cut set results
to determine the likelihood of particular system failures, even
if they have multiple causes.
}
%{ \huge This might become a chapter in its own right after fmmdset }
\section{From UML Model to Object Model}
Let us consider a theoretical FMMD model. For the sake of simplicity
consider that all base~components have %only
two failure modes that
we will label $a$ and $b$.
We can start with some base components, of types C and K say, $\{ C_1, C_2, C_3, K_4, C_5, C_6, K_7 \}$.
\input{./shortfm}
\paragraph{Determining Failure Mode collections.}
Thus applying the function $fm$ to any of the components
gives error modes identified by a or b.
As each component has two failure
modes $a$ and $b$. So the function $fm$ applied to
$C_1$ yields $C_{1 a}$ and $C_{1 b}$:
i.e. $fm(C_1) = \{ C_{1 a}, C_{1 b} \}$.
%HOW UML OBJECT MODEL OF COMPONENT AND ITS ERROR MODES
\ifthenelse {\boolean{paper}}
{
We can organise these into functional groups (where the superscript
represents the FMMD hierarchy level, or $\alpha$ value, thus:
}
{
We can organise these into functional groups (where the superscript
represents the $\alpha$ value, or FMMD hierarchy level, see section \ref{alpha}), thus:
}
$$ FG^0_1 = \{C_1, C_2\},$$
$$ FG^0_2 = \{C_1, C_3, K_4\},$$
$$ FG^0_3 = \{C_5, C_6, K_7\}.$$
Note that in this model the base~component $C_1$ has been used in two separate functional groups.
This could be a component that they
both commonly use. A real world example of a component included in
more than one {\fg} could
be a power-supply or DCDC\footnote{A DCDC (direct current to direct current)
converter, is a common feature in modern PCBs, used to provide isolation
and/or voltage supplies at a different EMF from the source of power.}
converter shared to power
the functional groups $FG^0_1$ and $FG^1_1$.
Also note that the component type $K$ has been used by
two different functional groups.
For the sake of example, let our temperature environment
for the SYSTEM be ${{0}\oc}$ to ${{125}\oc}$, but let the component
type `K' have a de-graded performance
\footnote{ A real world example of
degraded performace with temperature is the isolating opto coupler.
These can typically only cope with lower baud rate ranges
at high temperatures \cite{tlp181}.}
failure mode between
${{80}\oc}$ and ${{125}\oc}$.
We can term this
degraded performance of component `K' as failure mode `d'.
\paragraph{Symptom Extraction.}
A process of symptom extraction is now applied to the functional groups.
Again for the sake of example, let us say that each functional
group has one or two symptoms again subscripted by $a$ and $b$.
%Applying symptom abstraction to $FG^0_1$ i.e. $\bowtie fm ( FG^0_1 ) = \{ FG^0_{1 a}, FG^0_{1 b} \} $
%We can now create a new derived component, $C^1_1$, whose failure
%modes are the symptoms of $FG^0_1 $ thus $ fm ( {C}^1_1 ) = \{ FG^0_{1 a}, FG^0_{1 b} \} $.
\paragraph{Building the Object Model}
Using the UML model in figure \ref{fig:cfg2fmmd_data}, we apply FMMD analysis stages
to build a hierarchy representing the whole system.
We shall begin with the $FG^0$ level functional groups $ FG^0_1, FG^0_2 $ and $FG^0_3$ defined above.
\begin{figure}[h]
\centering
\includegraphics[width=400pt,bb=0 0 702 464,keepaspectratio=true]{./fmmd_data_model/cfg2.jpg}
% cfg2.jpg: 702x464 pixel, 72dpi, 24.76x16.37 cm, bb=0 0 702 464
\caption{UML Class model for FMMD}
\label{fig:cfg2fmmd_data}
\end{figure}
The UML model shows the relationships between data types (or classes) that
are used in the FMMD process.
The purpose of failure mode analysis, is to tie SYSTEM level failures
to their possible causes in the base components.
By doing this accurate statistics can be obtained for SYSTEM level
failures, and an insight into how we can make the system safer
can be determined.
In order to do this, we need to be able to trace the component
failure modes from the functional groups, to the symptoms
they cause, and to the failure modes in the {\dcs}.
We can use graph theory to represent this.
As it would make no sense for a derived component to
derive failure modes form itsself, we can apply an acyclic constraint
to the graph. This means the graph must be a Directed Acylic
Graph (DAG).
% %\begin{figure}[h]
% \centering
% \includegraphics[width=400pt,keepaspectratio=true]{./fmmd_data_model/cfg2.jpg}
% % cfg2.jpg: 702x464 pixel, 72dpi, 24.76x16.37 cm, bb=0 0 702 464
% \caption{Complete UML diagram}
% \label{fig:cfg2fmmd_data}
% \end{figure}
\pagebreak[4]
\subsection{Find Failure Modes}
Consider the SYSTEM environment with its temperature range of ${{0}\oc}$ to ${{125}\oc}$.
We must check this against all components used.
For our example, we component `K' which has an extra
failure mode for degraded performance `d'. Thus applying the function $fm$
to component type `K' under these temperature range conditions
gives the following failure modes, $fm{K} =\{ K^0_a, K^0_b, K^0_d \}$.
Were our system specified for a ${{0}\oc}$ to ${{80}\oc}$ range
we could say $fm{K} =\{ K^0_a, K^0_b \}$.
\pagebreak[3]
\paragraph{Get the failure modes from the functional groups.}
Applying the function $fm$ to our functional groups, with the SYSTEM environmental
constraint applied to component type `K', yields
%%//$$ FG^0_1 = \{C_1, C_2\},$$
%%$$ FG^0_2 = \{C_1, C_3, K_4\},$$
%%$$ FG^0_3 = \{C_5, C_6, K_7\}.$$
$$ fm(FG^0_1) = \{C^0_{1 a}, C^0_{1 b}, C^0_{2 a}, C^0_{2 b}\},$$
$$ fm(FG^0_2) = \{C^0_{1 a}, C^0_{1 b}, C^0_{3 a}, C^0_{3 b}, K^0_{4 a}, K^0_{4 b}, K^0_{4 d}\},$$
$$ fm(FG^0_3) = \{C^0_{5 a}, C^0_{5 b}, C^0_{6 a}, C^0_{6 b}, K^0_{7 a}, K^0_{7 b}, K^0_{7 d}\}.$$
The next stage is to look at the failure modes from the perspective of
the functional groups, rather than the components.
We can call these failures modes `symptoms'.
As this is a theoretical example, we shall have to skip this step\footnote{
In a real analysis this would involve evaluating the effect of each components failure mode, (or combinations of)
on the performance of the {\fg}.}.
The next stage is to collect the common symptoms, or the symptoms that
are the same {\em from the perspective of a user of the {\fg}}.
We can define this stage as the function $\bowtie$ which has a set of failure modes as
its range and {\dc} as its domain.
For the sake of example let us determine some arbitary collections
into symptoms. Let us group the symptoms from $ FG^0_1 $ as the following
$ s1 = \{ C^0_{1 a}, C^0_{2 b} \}$ and $ s2 = \{ C^0_{1 b}, C^0_{2 a} \}$.
We can represent the relationships between the failure modes, and desired failure modes or symptoms
as a DAG (see figure \ref{fig:dag0}).
\def\layersep{2.5cm}
\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};
% 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);
%\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};
\path (C-2b) edge (s1);
\path (C-1a) edge (s1);
\path (C-2a) edge (s2);
\path (C-1b) edge (s2);
%\node[component, right of=s1] (DC) {$C^1_1$};
%\path (s1) edge (DC);
%\path (s2) edge (DC);
% 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 of $FG^0_1$}
\label{fig:dag0}
\end{figure}
%%%\begin{figure}[h]
%%% \centering
%%% \includegraphics[width=300pt,bb=0 0 466 270,keepaspectratio=true]{./fmmd_data_model/dag0.jpg}
%%% % dag0.jpg: 466x270 pixel, 72dpi, 16.44x9.52 cm, bb=0 0 466 270
%%% \caption{DAG reprsenting the failure modes from $FG^0_1$.}
%%% \label{fig:dag0}
%%%\end{figure}
We can now create a new {\dc}. This will have an $\alpha$ value higher
than the any of the components in the {\fg} that it was derived from.
In this case all components were base components and therefore have an $\alpha$ value of zero.
Our derived component can thus take an $\alpha$ value of one.
Our newly derived component can be
$$ C^1_1 = \bowtie fm(FG^0_1) .$$
Applying $fm$ to our new derived component will give us our symptoms from functional group $ FG^0_1 $
thus
$$ fm(C^1_1) = \{s1, s2 \}.$$
We can represent $ C^1_1 $ as an addition to the DAG (see figure \ref{fig:dag1}).
%%%\begin{figure}[h]
%%% \centering
%%% \includegraphics[width=300pt,bb=0 0 466 270,keepaspectratio=true]{./fmmd_data_model/dag1.jpg}
%%% % dag0.jpg: 466x270 pixel, 72dpi, 16.44x9.52 cm, bb=0 0 466 270
%%% \caption{DAG reprsenting the failure modes from $FG^0_1$ and $ DC^1_0 $.}
%%% \label{fig:dag1}
%%%\end{figure}
\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};
% 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);
%\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};
\path (C-2b) edge (s1);
\path (C-1a) edge (s1);
\path (C-2a) edge (s2);
\path (C-1b) edge (s2);
\node[component, right of=s1] (DC) {$C^1_1$};
\path (s1) edge (DC);
\path (s2) edge (DC);
% 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 C^1_1$}
\label{fig:dag1}
\end{figure}
\clearpage
\subsection{ Creating Derived components from $FG^0_2$ and $FG^0_3$ }
Applying the FMMD process for $FG^0_2$ and $FG^0_3$.
\paragraph{Applying FMMD $ \bowtie fm(FG^0_2) $:}
The failure modes $fm(FG^0_2) = \{C^0_{1 a}, C^0_{1 b}, C^0_{3 a}, C^0_{3 b}, K^0_{4 a}, K^0_{4 b}, K^0_{4 d}\}.$
Let us say new symptom s3 can be caused by failure modes $\{C^0_{1 a}, C^0_{3 b}, K^0_{4 b} \}$
, let us say new symptom s4 can be caused by failure modes $\{C^0_{1 b}, C^0_{3 a}, K^0_{4 d} \}$
and let us say new symptom s5 can be caused by failure mode $\{K^0_{4 a} \}$.
We can create a derived component $C^1_2$ using
$\bowtie fm(FG^0_2) = C^1_2$.
Applying $fm$ to our {\dcs} gives $fm(C^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 C^1_1$ and $FG^0_2 \rightarrow C^1_2$}
\label{fig:dag2}
\end{figure}
%/\clearpage
\paragraph{Applying FMMD $\bowtie fm(FG^0_3) $ :}
Let us say new symptom s6 can be caused by failure modes $\{C_{5 a}, C_{6 b}, K_{4 b} \}$
, let us say new symptom s7 can be caused by failure modes $\{C_{5 b}, C_{6 a}, K_{7 d} \}$
and let us say new symptom s8 can be caused by failure mode $\{K_{7 a} \}$.
We can create a derived component $C^1_3$ using
$\bowtie fm(FG^0_3) = C^1_3$
where $fm(C^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}.
\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,-14) {a};
\node[failure] (K-7b) at (\layersep,-15) {b};
\node[failure] (K-7d) at (\layersep,-16) {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 C^1_1$ and $FG^0_2 \rightarrow C^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(C^1_1) = \{ a_{s1}, b_{s2} \}, $$
$$ fm(C^1_2) = \{ a_{s3}, b_{s4}, c_{s5} \}, $$
$$ fm(C^1_3) = \{ a_{s6}, b_{s7}, c_{s8} \}. $$
In order to determine SYSTEM level symptoms, we need to
use the derived components to form a higher level functional
group and analyse that.
For the sake of example, let us assume that we
can use all three derived components to
create a top~level functional group.
Let
$ FG^1_1 = \{ C^1_1, C^1_1, C^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) = C^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
draw a dag
\subsection{Traversing the datamodel}
Show how we can find multiple causes for a SYSTEM level error
\subsubsection{Common mode failure detection}
Describe what a common mode failure is.
show how common mode failures can be detected by using the parts list (same components can all have their
error modes turned on, and the effect can be seen on the system, automatically tracing
common mode failures.
\subsubsection{Common dependency detection}
The same component can be relied on by different functional groups within a system
For instance a power supply spur (i.e. supplying a particular isolated voltage say)
could have many functional groups depending or linked to its failure modes.
Show how FMMD makes this tracable
% clear the page if its a paper to keep the diagram out of the references
\ifthenelse {\boolean{paper}}
{
\clearpage
}
{
}
\section{Current Static Failure Mode Methodologies}
\ifthenelse {\boolean{paper}}
{
paper
}
{
chapter
}
\vspace{60pt}
\today