Merge branch 'master' of dev:/home/robin/git/thesis
This commit is contained in:
commit
4abf1b73ee
@ -163,7 +163,7 @@ and let the set of all possible failure modes be $\mathcal{F}$.
|
|||||||
We can define a function $fm$
|
We can define a function $fm$
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
fm : \mathcal{C} \mapsto \mathcal{P}\mathcal{F}
|
fm : \mathcal{C} \rightarrow \mathcal{P}\mathcal{F}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
defined by, where C is a component and F is a set of failure modes.
|
defined by, where C is a component and F is a set of failure modes.
|
||||||
@ -219,20 +219,25 @@ Consider a simple {\fg} $ FG^0_1 $ derived from two base components $C^0_1,C^0_
|
|||||||
We can apply $\bowtie$ to the {\fg} $FG$
|
We can apply $\bowtie$ to the {\fg} $FG$
|
||||||
and it will return a {\dc} at abstraction level 1 (with an index of 1 for completeness)
|
and it will return a {\dc} at abstraction level 1 (with an index of 1 for completeness)
|
||||||
|
|
||||||
$$ \bowtie( FG^0_1 ) = C^1_1 $$
|
$$ \bowtie fm(( FG^0_1 )) = C^1_1 $$
|
||||||
|
|
||||||
to look at this analysis process in more detail.
|
to look at this analysis process in more detail.
|
||||||
|
|
||||||
By way of exqample applying ${fm}$ to obtain the failure modes $f_N$
|
By way of example applying ${fm}$ to obtain the failure modes $f_N$
|
||||||
|
|
||||||
|
|
||||||
$$ {fm}(C^0_1) = \{ f_1, f_2 \} $$
|
$$ {fm}(C^0_1) = \{ f_1, f_2 \} $$
|
||||||
$$ {fm}(C^0_2) = \{ f_3, f_4, f_5 \} $$
|
$$ {fm}(C^0_2) = \{ f_3, f_4, f_5 \} $$
|
||||||
|
|
||||||
|
And overloading $fm$ to find the flat set of failure modes from a {\fg}
|
||||||
|
|
||||||
The analyst now considers failure modes $f_{1..5}$ in the context of the {\fg}.
|
$$ {fm}{FG^0_1} = \{ s_6, s_7, s_8 \} $$
|
||||||
|
|
||||||
|
The symptom extraction process is now applied
|
||||||
|
i.e. the analyst now considers failure modes $f_{1..5}$ in the context of the {\fg}
|
||||||
|
and determines the failure modes of the {\fg}..
|
||||||
The result of this process will be a set of derived failure modes.
|
The result of this process will be a set of derived failure modes.
|
||||||
Let these be $ \{ s_6, s_7, s_8 \} $.
|
For this example, let these be $ \{ s_6, s_7, s_8 \} $.
|
||||||
We can now create a {\dc} $C^1_1$ with this set of failure modes.
|
We can now create a {\dc} $C^1_1$ with this set of failure modes.
|
||||||
|
|
||||||
Thus:
|
Thus:
|
||||||
|
@ -5,6 +5,12 @@
|
|||||||
|
|
||||||
% $Id: mybib.bib,v 1.3 2009/11/28 20:05:52 robin Exp $
|
% $Id: mybib.bib,v 1.3 2009/11/28 20:05:52 robin Exp $
|
||||||
|
|
||||||
|
@ARTICLE{caninauto,
|
||||||
|
AUTHOR = "H. Zeltwanger",
|
||||||
|
TITLE = "Single Processor implementation of the CANopen Safety Protocol",
|
||||||
|
JOURNAL = "CAN in Automation (CiA)",
|
||||||
|
YEAR = "2008"
|
||||||
|
}
|
||||||
|
|
||||||
@ARTICLE{valueoflife,
|
@ARTICLE{valueoflife,
|
||||||
AUTHOR = "W.K. Viscusi",
|
AUTHOR = "W.K. Viscusi",
|
||||||
|
@ -47,6 +47,28 @@ Impact of boiler going down, no CO2 primary coolant available, possible reactor
|
|||||||
For the Brewery, safety is of the highest importance.
|
For the Brewery, safety is of the highest importance.
|
||||||
For the Nuclear power station
|
For the Nuclear power station
|
||||||
|
|
||||||
|
|
||||||
|
\section{Terms and Concepts in \\ Safety Critical Engineering}
|
||||||
|
|
||||||
|
\subsection{Safety Relevant Data Object}
|
||||||
|
A Safety Relevant Data Object (SRDO)\cite{caninauto}, is a data structure describing the status of
|
||||||
|
a particular feature or attribute of a safety critical system.
|
||||||
|
For instance, in a burner this could be a flame signal value, or in a nuclear powerstation
|
||||||
|
the measure neutron flux.
|
||||||
|
\subsection{Safety relevant Object Validation Time}
|
||||||
|
Safety times can be given for SRDO's; these are termed Safety Related Object Validation Times (SROVT's)\cite{caninauto}. For instance were
|
||||||
|
a flame to fail in operation in a gas burner
|
||||||
|
standards state \cite{en298} that the gas may not continue to be fed into the
|
||||||
|
furnace for more than three seconds.
|
||||||
|
We can say that the SROVT for a flame signal in a gas burner is 3 seconds.
|
||||||
|
\subsection{Single and Double Failure Modes}
|
||||||
|
A Safety critical system must self check within the relevant SROVT's.
|
||||||
|
On detecting a failure mode it must react appropriately.
|
||||||
|
Consider the case though where two failures occurr within the
|
||||||
|
time windows of their SROVT's. We can term this a double simultaneous failure mode.
|
||||||
|
To take an extreme example, were the checking function/mechanism and the object under supervision
|
||||||
|
to fail within the SROVT, it may be impossible to detect the failure.
|
||||||
|
|
||||||
\section{Interfacing}
|
\section{Interfacing}
|
||||||
|
|
||||||
Mech - elec - sw
|
Mech - elec - sw
|
||||||
|
@ -15,11 +15,16 @@ and converts it to a derived~component/sub-system $DC$.
|
|||||||
Note that
|
Note that
|
||||||
$DC$ is a derived component at a higher level of fault analysis abstraction
|
$DC$ is a derived component at a higher level of fault analysis abstraction
|
||||||
than the functional~group it was derived from.
|
than the functional~group it was derived from.
|
||||||
However, it can still be treated
|
Thus, it can be treated
|
||||||
as a component with a known set of failure modes.
|
as a component with a known set of failure modes.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\paragraph{Enumerating abstraction levels}
|
\paragraph{Enumerating abstraction levels}
|
||||||
We can assign an attribute of abstraction level to
|
We can assign an attribute of abstraction level $\alpha$ to
|
||||||
components $\alpha$, where $\alpha$ is a natural number, ($\alpha \in \mathbb{N}_0$).
|
components, where $\alpha$ is a natural number, ($\alpha \in \mathbb{N}_0$).
|
||||||
For a base component let the abstraction level be zero.
|
For a base component let the abstraction level be zero.
|
||||||
If we apply the symptom abstraction process $\bowtie$
|
If we apply the symptom abstraction process $\bowtie$
|
||||||
the resulting derived~component will have an $\alpha$ value
|
the resulting derived~component will have an $\alpha$ value
|
||||||
@ -65,7 +70,7 @@ From the earlier definition of the function `fm':
|
|||||||
|
|
||||||
The function $fm$ applied to a component returns the failure modes for that component.
|
The function $fm$ applied to a component returns the failure modes for that component.
|
||||||
|
|
||||||
The function $fm$ takes a flat set components $\mathcal{FG}$ and returns a set of failure modes $\mathcal{F}$.
|
The function $fm$ takes a functional group $\mathcal{FG}$ and returns a set of failure modes $\mathcal{F}$.
|
||||||
|
|
||||||
$$ fm: \mathcal{FG} \rightarrow \mathcal{F}$$
|
$$ fm: \mathcal{FG} \rightarrow \mathcal{F}$$
|
||||||
|
|
||||||
@ -86,11 +91,13 @@ $$fm(FG) = F$$
|
|||||||
|
|
||||||
\STATE { Let $FG$ be a set of components } \COMMENT{The functional group should be chosen to be minimally sized collections of components that perform a specific function}
|
\STATE { Let $FG$ be a set of components } \COMMENT{The functional group should be chosen to be minimally sized collections of components that perform a specific function}
|
||||||
|
|
||||||
|
\STATE { $ F := \emptyset $} \COMMENT{Clear the set of failure modes}
|
||||||
\FORALL { $c \in FG $ }
|
\FORALL { $c \in FG $ }
|
||||||
\REQUIRE{ Each component $c \in FG $ has a known set of failure modes i.e. $ \forall c \in FG \; such \; that\; fm(c) \neq \emptyset$ }
|
\REQUIRE{ Each component $c \in FG $ has a known set of failure modes i.e. $ \forall c \in FG \; such \; that\; fm(c) \neq \emptyset$ }
|
||||||
|
\STATE{ $F:= F \cup fm(c)$ } \COMMENT{Collect the failure modes from the component `c' and append them to $F$ }
|
||||||
\ENDFOR
|
\ENDFOR
|
||||||
|
|
||||||
\STATE {let $F=fm(FG)$ be a set of all failure modes to consider for the functional~group $FG$}
|
\COMMENT {$F=fm(FG)$ is the set of all failure modes to consider for the functional~group $FG$}
|
||||||
|
|
||||||
|
|
||||||
\RETURN { $F$ }
|
\RETURN { $F$ }
|
||||||
@ -116,7 +123,7 @@ From the failure modes associated with the functional~group
|
|||||||
we now need to determine test cases.
|
we now need to determine test cases.
|
||||||
The test cases are collections of failure modes.
|
The test cases are collections of failure modes.
|
||||||
These could be formed from single failure modes or failure modes in combination.
|
These could be formed from single failure modes or failure modes in combination.
|
||||||
Let $TC$ be the set of test cases associated with the functional group $FG$.
|
Let $TC$ be the set of test cases, which hold combinations of failure modes $F$ (associated with the functional group $FG$).
|
||||||
|
|
||||||
$$ dtc: \mathcal{F} \rightarrow \mathcal{TC} $$
|
$$ dtc: \mathcal{F} \rightarrow \mathcal{TC} $$
|
||||||
|
|
||||||
@ -129,6 +136,11 @@ $$ dtc(F) = TC $$
|
|||||||
%%
|
%%
|
||||||
|
|
||||||
|
|
||||||
|
%%
|
||||||
|
%% Maybe need to iterate through each failure mode, adding a new test case
|
||||||
|
%% this would build up all single fault test cases.
|
||||||
|
%%
|
||||||
|
|
||||||
\begin{algorithm}[h+]
|
\begin{algorithm}[h+]
|
||||||
~\label{alg2}
|
~\label{alg2}
|
||||||
\caption{Determine Test Cases: dtc: (F) } \label{alg22}
|
\caption{Determine Test Cases: dtc: (F) } \label{alg22}
|
||||||
@ -136,45 +148,82 @@ $$ dtc(F) = TC $$
|
|||||||
|
|
||||||
\REQUIRE {F is a flat set of failure modes }
|
\REQUIRE {F is a flat set of failure modes }
|
||||||
|
|
||||||
\STATE { All test cases are now chosen by the investigating engineer(s). Typically all single
|
\STATE { All test cases are chosen by the investigating engineer(s). Typically all single
|
||||||
component failures are investigated
|
component failures are investigated
|
||||||
with some specially selected combination faults}
|
with some specially selected combination faults}
|
||||||
|
|
||||||
\STATE { Let $TC$ be a set of test cases }
|
\STATE { Let $TC$ be the set of test cases }
|
||||||
\STATE { Let $tc_j$ be set of component failure modes where $j$ is an index of $J$}
|
\STATE { Let $tc_j$ be set of component failure modes where $j$ is an index of $J$}
|
||||||
\COMMENT { Each set $tc_j$ is a `test case' }
|
\COMMENT { Each set $tc_j$ is a `test case' }
|
||||||
%\STATE { $ \forall j \in J | tc_j \in TC $ } \COMMENT {Ensure the test cases are complete and unique}
|
%\STATE { $ \forall j \in J | tc_j \in TC $ } \COMMENT {Ensure the test cases are complete and unique}
|
||||||
|
|
||||||
|
\STATE { $ TC := \emptyset $ } \COMMENT{Initialise set of test cases}
|
||||||
|
\STATE { $ j := 1 $ } \COMMENT{Initialise index of test cases}
|
||||||
|
|
||||||
|
\FORALL { $ f \in F $ }
|
||||||
|
\STATE{$ tc_j := f $} \COMMENT{ Assign one test case per single fault mode }
|
||||||
|
\STATE{ $ j := j + 1 $}
|
||||||
|
\ENDFOR
|
||||||
|
|
||||||
|
\STATE { Let $ptc$ be a provisional test case } \COMMENT{ Determine Test cases with simultaneous failure modes }
|
||||||
|
|
||||||
|
\IF{DoubleFaultChecking}
|
||||||
|
|
||||||
|
\STATE { Let $ptc$ be a provisional test case }
|
||||||
|
\FORALL { $ f1,f2 \in F $ }
|
||||||
|
\STATE { $ ptc := \{ f1,f2 \} $ } \COMMENT{Make a provisional test case}
|
||||||
|
%\STATE { FINDING ERRORS IN LATEX SOURCE IS FUCKING ANNOYING}
|
||||||
|
%% OK maybe you can't have comments after IF: half an hour wasted...
|
||||||
|
\IF { $ \mathcal{ISUNITARYSTATE}(ptc) $ } % \COMMENT{Ensure the chosen failure mode set is unitary state compliant}
|
||||||
|
\STATE{ $ j := j + 1 $} % latex bug hunt game what fun ! #2
|
||||||
|
\STATE { $ tc_j := ptc $}
|
||||||
|
\STATE { $ TC := TC \cup tc_j $ }
|
||||||
|
\ENDIF
|
||||||
|
\ENDFOR
|
||||||
|
\ENDIF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\FORALL { $ ptc \in \mathcal{P}(F) $ } %%\mathcal{P} F $ }
|
||||||
|
%%\STATE { $ ptc \in \mathcal{P} F $ } \COMMENT{Make a provisional test case}
|
||||||
|
\IF { $\mathcal{CHOSEN}(ptc) \wedge ptc \not\in TC \wedge \mathcal{ISUNITARYSTATE}(ptc)$ } %%% \COMMENT{IF this combination of faults is chosen as an additional Test case include it in TC}
|
||||||
|
\STATE{ $ j := j + 1 $} % latex bug hunt game #1
|
||||||
|
\STATE { $ tc_j := ptc $}
|
||||||
|
\STATE { $ TC := TC \cup tc_j $ }
|
||||||
|
\ENDIF
|
||||||
|
\ENDFOR
|
||||||
|
|
||||||
\FORALL { $tc_j \in TC$ }
|
\FORALL { $tc_j \in TC$ }
|
||||||
%\ENSURE {$ tc_j \in \bigcap FG_{cfm} $}
|
%\ENSURE {$ tc_j \in \bigcap FG_{cfm} $}
|
||||||
\ENSURE {$ tc_j \in \mathcal{P}(F))$}
|
\ENSURE {$ tc_j \in \mathcal{P}(F) $ } % \mathcal{P}(F)$}
|
||||||
\COMMENT { require that the test case is a member of the powerset of $F$ }
|
\COMMENT { require that the test case is a member of the powerset of $F$ }
|
||||||
%\ENSURE { $ \forall \; j2 \; \in J ( \forall \; j1 \; \in J | tc_{j1} \neq tc_{j2} \; \wedge \; j1 \neq j2 ) $}
|
%\ENSURE { $ \forall \; j2 \; \in J ( \forall \; j1 \; \in J | tc_{j1} \neq tc_{j2} \; \wedge \; j1 \neq j2 ) $}
|
||||||
\ENSURE { $\forall j1,j2 \in J \; such\; that\; tc_{j1} \neq tc_{j2} \; \wedge \; j1 \neq j2 $}
|
\ENSURE { $\forall j1,j2 \in J \; such\; that\; tc_{j1} \neq tc_{j2} \; \wedge \; j1 \neq j2 $}
|
||||||
\COMMENT { Test cases must be unique }
|
\COMMENT { Test cases must be unique }
|
||||||
\ENDFOR
|
\ENDFOR
|
||||||
|
%
|
||||||
|
% \IF{Single fault checking}
|
||||||
\IF{Single fault checking}
|
% \STATE { let $f$ represent a component failure mode }
|
||||||
\STATE { let $f$ represent a component failure mode }
|
% %\ENSURE { That all failure modes are represented in at least one test case }
|
||||||
%\ENSURE { That all failure modes are represented in at least one test case }
|
% \ENSURE { $ \forall f \;such\;that\; (f \in F)) \wedge (f \in \bigcup TC) $ }
|
||||||
\ENSURE { $ \forall f \;such\;that\; (f \in F)) \wedge (f \in \bigcup TC) $ }
|
% \COMMENT { This corresponds to checking that at least each failure mode is considered at
|
||||||
\COMMENT { This corresponds to checking that at least each failure mode is considered at
|
% least once in the analysis; more rigorous cardinality constraint
|
||||||
least once in the analysis; more rigorous cardinality constraint
|
% checks may be required for some safety standards}
|
||||||
checks may be required for some safety standards}
|
% \ENDIF
|
||||||
\ENDIF
|
%
|
||||||
|
% \IF{Double fault checking}
|
||||||
\IF{Double fault checking}
|
% \STATE { let $f1,f2$ represent component failure modes, and $c$ any component in the functional group }
|
||||||
\STATE { let $f1,f2$ represent component failure modes, and $c$ any component in the functional group }
|
% %\ENSURE { That all failure modes are represented in at least one test case }
|
||||||
%\ENSURE { That all failure modes are represented in at least one test case }
|
% \ENSURE { $ \forall f1,f2 \;where\; (f1,f2) \not\in c\;such\;that\; (f1,f2 \in F)) \wedge ( \{f1,f2\} \in \bigcup TC) $ }
|
||||||
\ENSURE { $ \forall f1,f2 \;where\; (f1,f2) \not\in c\;such\;that\; (f1,f2 \in F)) \wedge ( \{f1,f2\} \in \bigcup TC) $ }
|
% \COMMENT { This corresponds to checking that each possible double failure mode is considered
|
||||||
\COMMENT { This corresponds to checking that each possible double failure mode is considered
|
% as a test case; more rigorous cardinality constraint
|
||||||
as a test case; more rigorous cardinality constraint
|
% checks may be required for some safety standards. Note if both failure modes
|
||||||
checks may be required for some safety standards. Note if both failure modes
|
% in the check are sourced from the same component $c$, the test case is impossible
|
||||||
in the check are sourced from the same component $c$, the test case is impossible
|
% under unitary state failure mode conditions}
|
||||||
under unitary state failure mode conditions}
|
% \ENDIF
|
||||||
\ENDIF
|
%
|
||||||
|
|
||||||
\RETURN $TC$
|
\RETURN $TC$
|
||||||
% some european standards
|
% some european standards
|
||||||
% imply checking all double fault combinations\cite{en298} }
|
% imply checking all double fault combinations\cite{en298} }
|
||||||
@ -211,7 +260,7 @@ $$ atc(TC) = R $$
|
|||||||
\caption{Analyse Test Cases: atc(TC) } \label{alg33}
|
\caption{Analyse Test Cases: atc(TC) } \label{alg33}
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\STATE { let r be a `test case result'}
|
\STATE { let r be a `test case result'}
|
||||||
\STATE { Let the function $Analyse : tc \mapsto r $ } \COMMENT { This analysis is a human activity, examining the failure~modes in the test case and determining how the functional~group will fail under those conditions}
|
\STATE { Let the function $Analyse : tc \rightarrow r $ } \COMMENT { This analysis is a human activity, examining the failure~modes in the test case and determining how the functional~group will fail under those conditions}
|
||||||
\STATE { $ R $ is a set of test case results $r_j \in R$ where the index $j$ corresponds to $tc_j \in TC$}
|
\STATE { $ R $ is a set of test case results $r_j \in R$ where the index $j$ corresponds to $tc_j \in TC$}
|
||||||
\FORALL { $tc_j \in TC$ }
|
\FORALL { $tc_j \in TC$ }
|
||||||
\STATE { $ rc_j = Analyse(tc_j) $} \COMMENT {this is Fault Mode Effects Analysis (FMEA) applied in the context of the functional group}
|
\STATE { $ rc_j = Analyse(tc_j) $} \COMMENT {this is Fault Mode Effects Analysis (FMEA) applied in the context of the functional group}
|
||||||
@ -392,7 +441,7 @@ to form functional~groups at higher levels of failure~mode~abstraction.
|
|||||||
|
|
||||||
\section{Linking all five stages}
|
\section{Linking all five stages}
|
||||||
|
|
||||||
$$ \bowtie: \mathcal{FG} \mapsto \mathcal{DC} $$
|
$$ \bowtie: \mathcal{FG} \rightarrow \mathcal{DC} $$
|
||||||
|
|
||||||
\begin{algorithm}[h+]
|
\begin{algorithm}[h+]
|
||||||
|
|
||||||
|
@ -11,23 +11,26 @@ Once we know how a functional~group can fail, we can treat it as a component or
|
|||||||
with its own set of failure modes.
|
with its own set of failure modes.
|
||||||
|
|
||||||
\paragraph{FMEA applied to the Functional Group}
|
\paragraph{FMEA applied to the Functional Group}
|
||||||
As the functional~group is a set of components, the failure~modes
|
As the functional~group contains a set of components, the failure~modes
|
||||||
that we have to consider are all the failure modes of its components.
|
that we have to consider are all the failure modes of its components, as
|
||||||
Each failure mode (or combination of) investigated is termed a `test case'.
|
developed in the function definition $fm : \;\mathcal{FG} \rightarrow \mathcal{F}$.
|
||||||
Each `test case' is analysed.
|
The aim here is to build `test cases', combinations of failure~modes
|
||||||
|
to use as failure~mode analysis scenarios.
|
||||||
|
%Each failure mode (or combination of) investigated is termed a `test case'.
|
||||||
|
%Each `test case' is analysed.
|
||||||
%
|
%
|
||||||
The component failure modes in each test case
|
The component failure modes in each test case
|
||||||
are examined with respect to their effect on the functional~group.
|
are examined with respect to their effect on the functional~group.
|
||||||
%
|
%
|
||||||
The aim of this analysis is to find out how the functional~group reacts
|
The aim of this analysis is to find out how the functional~group fails given
|
||||||
to each of the test case conditions.
|
the test case conditions, defined in each test case.
|
||||||
The goal of the process is to produce a set of failure modes from the perspective of the functional~group.
|
The goal of the process is to produce a set of failure modes from the perspective of the functional~group.
|
||||||
|
%
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
\paragraph{Symptom Identification}
|
\paragraph{Symptom Identification}
|
||||||
When all `test~cases' have been analysed, a second phase is applied.
|
When all `test~cases' have been analysed, a second phase can be actioned. % applied.
|
||||||
%
|
%
|
||||||
This looks at the results of the `test~cases' as symptoms
|
This looks at the results of the `test~cases' as symptoms
|
||||||
of the sub-system.
|
of the sub-system.
|
||||||
@ -42,10 +45,16 @@ will both cause the same failure; $no\_sound$ !
|
|||||||
|
|
||||||
|
|
||||||
\paragraph{Collection of Symptoms}
|
\paragraph{Collection of Symptoms}
|
||||||
The common symptoms of failure and lone~component failure~modes are identified and collected.
|
Looking at the functional group perspective failure modes, we can collect
|
||||||
We can now consider the functional~group as a component and the common symptoms as its failure modes.
|
some of these into common `symptoms'. Some test cases may cause
|
||||||
|
unique failure modes at the functional group level. These can be termed
|
||||||
|
lone symptoms.
|
||||||
|
The common symptoms of failure and lone~symptoms are identified and collected.
|
||||||
|
We can now consider the functional~group as a component and the symptoms as its failure modes.
|
||||||
Note that here, because the process is bottom up, we can ensure that all failure modes
|
Note that here, because the process is bottom up, we can ensure that all failure modes
|
||||||
associated with a functional~group have been handled.
|
from the components in a functional~group have been handled\footnote{Software can check that all
|
||||||
|
failure modes have been included in at least one test case, and modelled individually. For Double
|
||||||
|
Simultaneous fault mode checking, all valid double failure modes can be checked for coverage as well}.
|
||||||
Were failure~modes missed, any failure mode model could be dangerously incomplete.
|
Were failure~modes missed, any failure mode model could be dangerously incomplete.
|
||||||
It is possible here for an automated system to flag unhandled failure modes.
|
It is possible here for an automated system to flag unhandled failure modes.
|
||||||
\ref{requirement at the start}
|
\ref{requirement at the start}
|
||||||
@ -70,10 +79,12 @@ form `test cases'.
|
|||||||
% \item Draw these as contours on a diagram
|
% \item Draw these as contours on a diagram
|
||||||
% \item Where si,ultaneous failures are examined use overlapping contours
|
% \item Where si,ultaneous failures are examined use overlapping contours
|
||||||
% \item For each region on the diagram, make a test case
|
% \item For each region on the diagram, make a test case
|
||||||
\item Using the `test cases' determine their effects on the failure~mode behaviour of the functional group. This is a human process involving detailed analysis of the failure modes oin the test case on the operation of the {\fg}.
|
\item Using the `test cases' as scenarios to examine the effects of component failures
|
||||||
\item Collect common~symptoms. i.e. determine which test cases produce the same fault symptoms {\em from the perspective of the functional~group}.
|
we determine failure~mode behaviour of the functional group.
|
||||||
|
This is a human process involving detailed analysis of the failure modes in the test case on the operation of the {\fg}.
|
||||||
|
\item Collect common~symptoms by determining which test cases produce the same fault symptoms {\em from the perspective of the functional~group}.
|
||||||
\item The common~symptoms are now the fault mode behaviour of the {\fg}. i.e. given the {\fg} as a `black box' the symptoms are the ways in which it can fail.
|
\item The common~symptoms are now the fault mode behaviour of the {\fg}. i.e. given the {\fg} as a `black box' the symptoms are the ways in which it can fail.
|
||||||
\item A new `derived component' can now be created where each common~symptom, or lone test case is a failure~mode of this new component.
|
\item A new `derived component' can now be created where each common~symptom, or lone symptom is a failure~mode of this new component.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
@ -107,7 +118,7 @@ and let the set of all possible failure modes be $\mathcal{F}$.
|
|||||||
We can define a function $fm$
|
We can define a function $fm$
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
{fm} : \mathcal{C} \mapsto \mathcal{P}\mathcal{F}
|
{fm} : \mathcal{C} \rightarrow \mathcal{P}\mathcal{F}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
defined by (where $C$ is a component and $F$ is a set of failure modes):
|
defined by (where $C$ is a component and $F$ is a set of failure modes):
|
||||||
@ -122,26 +133,27 @@ $$ fm(C_1) = \{ a_1, a_2, a_3 \} $$
|
|||||||
$$ fm(C_2) = \{ b_1, b_2 \} $$
|
$$ fm(C_2) = \{ b_1, b_2 \} $$
|
||||||
$$ fm(C_3) = \{ c_1, c_2 \} $$
|
$$ fm(C_3) = \{ c_1, c_2 \} $$
|
||||||
|
|
||||||
|
where $a_n,b_n,c_n$ are component failure modes.
|
||||||
|
|
||||||
\paragraph{Finding all failure modes within the functional group}
|
\paragraph{Finding all failure modes within the functional group}
|
||||||
|
|
||||||
For fmMD failure mode analysis, we need to consider the failure modes
|
For fmMD failure mode analysis, we need to consider the failure modes
|
||||||
from all the components in the functional group as a flat set.
|
from all the components in the functional group as a flat set.
|
||||||
This can be found by applying function $fm$ to all the components
|
This can be found by applying function $fm$ to all the components
|
||||||
in the functional~group and taking the union of them thus:
|
in the functional~group and taking the union of them (where F is the set of all failure modes for all components in the functional group) thus:
|
||||||
|
|
||||||
$$ FunctionalGroupAllFailureModes = \bigcup_{j \in \{1...n\}} fm(C_j) $$
|
$$ F = \bigcup_{j \in \{1...n\}} fm(C_j) $$
|
||||||
|
|
||||||
We can actually overload the notation for the function fm
|
We overload the notation for the function $fm$
|
||||||
and define it for the set components within a functional group $FG$ (i.e. where $FG \subset \mathcal{C} $) thus:
|
and define it for the set components within a functional group $FG$ (i.e. where $FG \subset \mathcal{C} $) thus:
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
fm : FG \mapsto \mathcal{F}
|
fm : FG \rightarrow \mathcal{F}
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
Applied to the functional~group $FG$ in the example above:
|
Applied to the functional~group $FG$ in the example above:
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
fm(FG) = \{a_1, a_2, a_3, b_1, b_2, c_1, c_2 \}
|
fm(FG) = \{a_1, a_2, a_3, b_1, b_2, c_1, c_2 \}.
|
||||||
\end{equation}
|
\end{equation}
|
||||||
|
|
||||||
This can be seen as all the failure modes that can affect the failure mode group $FG$.
|
This can be seen as all the failure modes that can affect the failure mode group $FG$.
|
||||||
@ -178,12 +190,13 @@ $c\_2$ & $fs\_7$ & $g_{7}$ & SP2\\ \hline
|
|||||||
Table~\ref{tab:fexsymptoms} shows the analysis process.
|
Table~\ref{tab:fexsymptoms} shows the analysis process.
|
||||||
As we are only looking at single fault possibilities for this example each failure mode
|
As we are only looking at single fault possibilities for this example each failure mode
|
||||||
is represented by a test~case.
|
is represented by a test~case.
|
||||||
The Component failure modes become test cases\footnote{The test case stage is necessary because for more complex analysis we have to consider the effects of combinations of component failure modes}.
|
Chosen combinations of Component failure modes become test cases\footnote{The test case stage is necessary because for more complex analysis we have to consider the effects of combinations of component failure modes}.
|
||||||
The test cases are analysed w.r.t. the functional~group.
|
The test cases are analysed w.r.t. the functional~group.
|
||||||
These become functional~group~failure~modes ($g$'s).
|
These become functional~group~failure~modes ($g$'s).
|
||||||
The functional~group~failure~modes are how the functional group fails for the test~case, rather than how the components failed.
|
The functional~group~failure~modes are how the functional group fails for the test~case, rather than how the components failed.
|
||||||
|
|
||||||
For the sake of example, let us consider the fault symptoms of $\{g_2, g_4, g_5\}$ to be
|
For the sake of example, let us consider the fault symptoms of the {\fg} $FG$ to be $\{g_2, g_4, g_5\}$
|
||||||
|
As failure modes, these
|
||||||
identical from the perspective of the functional~group.
|
identical from the perspective of the functional~group.
|
||||||
That is to say, the way in which functional~group fails if $g_2$, $g_4$ or $g_5$ % failure modes
|
That is to say, the way in which functional~group fails if $g_2$, $g_4$ or $g_5$ % failure modes
|
||||||
occur, is going to be the same.
|
occur, is going to be the same.
|
||||||
@ -191,7 +204,7 @@ For example, in our CD player example, this could mean the common symptom `no\_s
|
|||||||
No matter which component failure modes, or combinations thereof cause the problem,
|
No matter which component failure modes, or combinations thereof cause the problem,
|
||||||
the failure symptom is the same.
|
the failure symptom is the same.
|
||||||
It may be of interest to the manufacturers and designers of the CD player why it failed, but
|
It may be of interest to the manufacturers and designers of the CD player why it failed, but
|
||||||
as far as we the users are concerned, it has only one symptom,
|
as far as we, the users, are concerned it has only one symptom,
|
||||||
`no\_sound'!
|
`no\_sound'!
|
||||||
We can thus group these component failure modes into a common symptom, $SP1$, thus
|
We can thus group these component failure modes into a common symptom, $SP1$, thus
|
||||||
$ SP1 = \{g_2, g_4, g_5\}$.
|
$ SP1 = \{g_2, g_4, g_5\}$.
|
||||||
@ -203,13 +216,13 @@ but as a `lone' symptom it can be assigned its own symptom set $SP3 = \{g_6\}$.
|
|||||||
|
|
||||||
We now have in $SP1$, $SP2$ and $SP3$ the three ways in which this functional~group can fail.
|
We now have in $SP1$, $SP2$ and $SP3$ the three ways in which this functional~group can fail.
|
||||||
In other words we have derived failure modes for this functional~group.
|
In other words we have derived failure modes for this functional~group.
|
||||||
We can place these in a set of symptoms, $SP$.
|
We can place these in a set of symptoms.
|
||||||
%
|
%
|
||||||
$$ SP = \{ SP1, SP2, SP3 \} $$
|
$$ SP = \{ SP1, SP2, SP3 \}. $$
|
||||||
%
|
%
|
||||||
%
|
%
|
||||||
These three symptoms can be considered the set of failure modes for the functional~group, and
|
These three symptoms can be considered the set of failure modes for the functional~group, if
|
||||||
we can treat it as though it were a {\em black box}
|
we treat it as though it were a {\em black box}
|
||||||
or a {\em component} to be used in higher level designs.
|
or a {\em component} to be used in higher level designs.
|
||||||
%
|
%
|
||||||
The next stage of the process could be applied automatically.
|
The next stage of the process could be applied automatically.
|
||||||
@ -223,7 +236,10 @@ $$ fm(DC) = \{ SP1, SP2, SP3 \} $$
|
|||||||
Note that $g_6$ has \textbf{not dissappeared from the analysis process}.
|
Note that $g_6$ has \textbf{not dissappeared from the analysis process}.
|
||||||
Were the designer to have overlooked this test case, it would appear as a failure mode of the derived component.
|
Were the designer to have overlooked this test case, it would appear as a failure mode of the derived component.
|
||||||
i.e. were it not to have been grouped in $SP3$, $ fm(DC)$ would have been $ \{ SP1, SP2, g_6 \}$.
|
i.e. were it not to have been grouped in $SP3$, $ fm(DC)$ would have been $ \{ SP1, SP2, g_6 \}$.
|
||||||
This is rather like a child not eating his lunch and being served it cold for dinner\footnote{Although I was only ever threatened with a cold dinner once, my advice to all nine year olds faced with this dilemma, it is best to throw the brussel sprouts out of the dining~room window while the adults are not watching!}!
|
Because the process can be computerised, we can easily flag symptoms that have not been
|
||||||
|
included a derived component.
|
||||||
|
% Aw boring ! no jokes ?
|
||||||
|
% This is rather like a child not eating his lunch and being served it cold for dinner\footnote{Although I was only ever threatened with a cold dinner once, my advice to all nine year olds faced with this dilemma, it is best to throw the brussel sprouts out of the dining~room window while the adults are not watching!}!
|
||||||
%
|
%
|
||||||
\ifthenelse {\boolean{paper}}
|
\ifthenelse {\boolean{paper}}
|
||||||
{
|
{
|
||||||
@ -244,11 +260,13 @@ consider DC as being in the set of components i.e. $DC \in \mathcal{C}$
|
|||||||
\subsection{Defining the analysis process \\ as a function}
|
\subsection{Defining the analysis process \\ as a function}
|
||||||
|
|
||||||
It is useful to define this analysis process as a function.
|
It is useful to define this analysis process as a function.
|
||||||
Defining the function `$\bowtie$' to represent the {\em symptom abstraction} process, we may now
|
Defining the function `$\bowtie$' to represent the {\em symptom abstraction} process,
|
||||||
|
and DCFM to represent derived component failure modes, we may now
|
||||||
write
|
write
|
||||||
|
|
||||||
$$
|
$$
|
||||||
\bowtie : SubSystemComponentFaultModes \mapsto DerivedComponent
|
%\bowtie : SubSystemComponentFaultModes \rightarrow DerivedComponent
|
||||||
|
\bowtie : DCFM \rightarrow DerivedComponent
|
||||||
$$
|
$$
|
||||||
%
|
%
|
||||||
%\begin{equation}
|
%\begin{equation}
|
||||||
@ -257,7 +275,9 @@ $$
|
|||||||
%
|
%
|
||||||
%or applying the function $fm$ to obtain the $FG_{cfm}$ set
|
%or applying the function $fm$ to obtain the $FG_{cfm}$ set
|
||||||
%
|
%
|
||||||
Where DC is a derived component, and FG is a functional group:
|
To put this in context, where DC is a derived component, and FG is a functional group,
|
||||||
|
we may state the process of extracting a set of failure modes from a functional
|
||||||
|
group thus:
|
||||||
|
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
\bowtie(fm(FG)) = DC
|
\bowtie(fm(FG)) = DC
|
||||||
|
Loading…
Reference in New Issue
Block a user