1005 lines
33 KiB
TeX
1005 lines
33 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 performance 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 from itself, 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, 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$, $FG^0_2 \rightarrow C^1_2$ and $FG^0_3 \rightarrow C^1_3$}
|
|
\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
|
|
|
|
|
|
|
|
\def\layersep{2.0cm}
|
|
|
|
|
|
\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);
|
|
|
|
|
|
\node[failure] (as1) at (\layersep*4,-2) {$a_{s1}$};
|
|
\node[failure] (bs2) at (\layersep*4,-3) {$b_{s2}$};
|
|
\path (DC-1) edge (as1);
|
|
\path (DC-1) edge (bs2);
|
|
|
|
\node[failure] (as3) at (\layersep*4,-5) {$a_{s3}$};
|
|
\node[failure] (bs4) at (\layersep*4,-6) {$b_{s3}$};
|
|
\node[failure] (cs5) at (\layersep*4,-7) {$c_{s3}$};
|
|
\path (DC-2) edge (as3);
|
|
\path (DC-2) edge (bs4);
|
|
\path (DC-2) edge (cs5);
|
|
|
|
\node[failure] (as6) at (\layersep*4,-12) {$a_{s6}$};
|
|
\node[failure] (bs7) at (\layersep*4,-13) {$b_{s7}$};
|
|
\node[failure] (cs8) at (\layersep*4,-14) {$c_{s8}$};
|
|
\path (DC-3) edge (as6);
|
|
\path (DC-3) edge (bs7);
|
|
\path (DC-3) edge (cs8);
|
|
|
|
|
|
\node[symptom] (s9) at (\layersep*5,-5) {s9};
|
|
\node[symptom] (s10) at (\layersep*5,-10) {s10};
|
|
\node[symptom] (s11) at (\layersep*5,-13) {s11};
|
|
|
|
\path (bs2) edge (s9);
|
|
|
|
|
|
\path (as1) edge (s10);
|
|
\path (as3) edge (s10);
|
|
\path (bs4) edge (s10);
|
|
\path (as6) edge (s10);
|
|
\path (bs7) edge (s10);
|
|
|
|
% Single component failures causing same error in tree
|
|
\path (cs5) edge (s11);
|
|
\path (cs8) edge (s11);
|
|
|
|
\node[component,right of=s10] (DC2-1) {$C^2_1$};
|
|
\path (s9) edge (DC2-1);
|
|
\path (s10) edge (DC2-1);
|
|
\path (s11) edge (DC2-1);
|
|
|
|
\node[failure] (as9) at (\layersep*7,-9) {$a_{s9}$};
|
|
\node[failure] (as10) at (\layersep*7,-10) {$b_{s12}$};
|
|
\node[failure] (as11) at (\layersep*7,-11) {$c_{s11}$};
|
|
|
|
\path (DC2-1) edge (as9);
|
|
\path (DC2-1) edge (as10);
|
|
\path (DC2-1) edge (as11);
|
|
|
|
% 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 Components};
|
|
\node[annot,right of=dcl](dcf) {Derived Component Failure Modes};
|
|
\node[annot,right of=dcf](S2s) {Symptoms};
|
|
\node[annot,right of=S2s](DC2) {Derived Components};
|
|
\node[annot,right of=DC2](dc2f) {Derived Component Failure Modes};
|
|
|
|
\end{tikzpicture}
|
|
% End of code
|
|
\caption{DAG representing failure modes and symptoms $FG^1_1 \rightarrow C^2_1$}
|
|
\label{fig:dag3}
|
|
\end{figure}
|
|
|
|
|
|
\section{Directed Acyclic Graph}
|
|
|
|
Show how the hierarchy can be represented as a DAG
|
|
|
|
draw a dag
|
|
|
|
\subsection{Inhibit Conditions represented in the DAG}
|
|
|
|
Inhibit node type. Octagon (to follow example from FTA).
|
|
|
|
a -> OCT
|
|
|
|
inhibitcond--
|
|
|
|
|
|
\subsection{Failure Mode Conjuction Conditions represented in the DAG}
|
|
|
|
White filled node with an \& in it.
|
|
|
|
\subsection{Traversing the datamodel}
|
|
|
|
Show how we can find multiple causes for a SYSTEM level error.
|
|
Constrast this to the bottom-up approaches of FMEA, FMECA and FMEDA where
|
|
without necessarily knowing complex interactions between
|
|
functionally adjacent components, we must take each component failure
|
|
mode and tie to to a SYSTEM level failure.
|
|
|
|
\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
|