diff --git a/symptom_ex_process/algorithm.tex b/symptom_ex_process/algorithm.tex index 281747f..8c20d81 100644 --- a/symptom_ex_process/algorithm.tex +++ b/symptom_ex_process/algorithm.tex @@ -61,36 +61,36 @@ verification checks in the process are stated formally. The first stage is to find the failure modes to consider for analysis. -From the earlier definition of the function `FM': +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 flat set components $\mathcal{FG}$ and returns a set of failure modes $\mathcal{F}$. -$$ FM: \mathcal{FG} \rightarrow \mathcal{F}$$ +$$ fm: \mathcal{FG} \rightarrow \mathcal{F}$$ %Let $FG$ be the set of components in the functional group under analysis, and $c$ %be components that are members of it. This function returns a flat set of failure modes $F$. given by -$$FM(FG) = F$$ +$$fm(FG) = F$$ %% %% Algorithm 1 %% \begin{algorithm}[h+] ~\label{alg1} -\caption{Determine Failure Modes: FM( $FG$ )} \label{alg11} +\caption{Determine Failure Modes: fm( $FG$ )} \label{alg11} \begin{algorithmic}[1] \REQUIRE {FG is a set of components (a functional~group)} \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} \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$ } \ENDFOR -\STATE {let $F=FM(FG)$ be a set of all failure modes to consider for the functional~group $FG$} +\STATE {let $F=fm(FG)$ be a set of all failure modes to consider for the functional~group $FG$} \RETURN { $F$ } @@ -100,7 +100,7 @@ $$FM(FG) = F$$ \end{algorithmic} \end{algorithm} -Algorthim \ref{alg11} has taken a functional~group $FG$ and returned a set of failure~modes $F=FM(FG)$ +Algorthim \ref{alg11} has taken a functional~group $FG$ and returned a set of failure~modes $F=fm(FG)$ (given that each component has a known set of failure~modes). The next task is to formulate `test cases'. These are a collection of combinations of these failure~modes and will be used in the analysis stages. @@ -118,11 +118,11 @@ The test cases are collections of failure modes. 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$. -$$ DTC: \mathcal{F} \rightarrow \mathcal{TC} $$ +$$ dtc: \mathcal{F} \rightarrow \mathcal{TC} $$ given by -$$ DTC(F) = TC $$ +$$ dtc(F) = TC $$ %% %% Algorithm 2 @@ -131,7 +131,7 @@ $$ DTC(F) = TC $$ \begin{algorithm}[h+] ~\label{alg2} -\caption{Determine Test Cases: DTC: (F) } \label{alg22} +\caption{Determine Test Cases: dtc: (F) } \label{alg22} \begin{algorithmic}[1] \REQUIRE {F is a flat set of failure modes } @@ -184,7 +184,7 @@ $$ DTC(F) = TC $$ \end{algorithmic} \end{algorithm} -Algorithm \ref{alg22} has taken the set of failure modes $ F=FM(FG) $ and returned a set of test cases $TC$. +Algorithm \ref{alg22} has taken the set of failure modes $ F=fm(FG) $ and returned a set of test cases $TC$. The next stage is to analyse the effect of each test case on the functional group. @@ -202,13 +202,13 @@ The next stage is to analyse the effect of each test case on the functional grou The test cases are now analysed for their impact on the behaviour of the functional~group. Let $R$ be a set of test case analysis results, indexed by $j$ (the same index used to identify the test cases $tc_{j}$). -$$ ATC: \mathcal{TC} \rightarrow \mathcal{R} $$A +$$ atc: \mathcal{TC} \rightarrow \mathcal{R} $$A given by -$$ ATC(TC) = R $$ +$$ atc(TC) = R $$ \begin{algorithm}[h+] ~\label{alg3} -\caption{Analyse Test Cases: ATC(TC) } \label{alg33} +\caption{Analyse Test Cases: atc(TC) } \label{alg33} \begin{algorithmic}[1] \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} @@ -268,19 +268,19 @@ That is to say, each result in a symptom set, from the perspective of the functi has the same failure symptom. Let set $SP$ be the family of symptom sets for the functional group $FG$. -$$FCS: \mathcal{R} \rightarrow \mathcal{SP} $$ +$$fcs: \mathcal{R} \rightarrow \mathcal{SP} $$ given by -$$ FCS(R) = SP $$ +$$ fcs(R) = SP $$ \begin{algorithm}[h+] ~\label{alg4} -\caption{Find Common Symptoms: FCS($R$)} \label{alg44} +\caption{Find Common Symptoms: fcs($R$)} \label{alg44} \begin{algorithmic}[1] - %\REQUIRE {All failure modes for the components in $fm_i = FM(fg_i)$} + %\REQUIRE {All failure modes for the components in $fm_i = fm(fg_i)$} \STATE {Let $sp_l$ be a set of `test cases results' where $l$ is an index set $L$} \STATE {Let $SP$ be a set whose members are the indexed `symptoms' $sp_l$} \COMMENT{ $SP$ is the set of `fault symptoms' for the sub-system} @@ -357,16 +357,16 @@ This derived component may now be used to build new functional groups at higher levels of fault abstraction. Let $DC$ be a derived component with its own set of failure~modes. -$$ CDC: \mathcal{SP} \rightarrow \mathcal{DC} $$ +$$ cdc: \mathcal{SP} \rightarrow \mathcal{DC} $$ given by -$$ CDC(SP) = DC $$ +$$ cdc(SP) = DC $$ \begin{algorithm}[h+] ~\label{alg5} -\caption{Create Derived Component: CDC(SP) } \label{alg55} +\caption{Create Derived Component: cdc(SP) } \label{alg55} \begin{algorithmic}[1] @@ -377,7 +377,7 @@ $$ CDC(SP) = DC $$ \STATE { $DC := DC \cup f_l$ } \COMMENT{ this is saying place $f_l$ into $DC$'s collection of failure modes} \ENDFOR - \ENSURE { $FM(DC) \neq \emptyset$ } \COMMENT{Ensure that DC has a known set of failure modes} + \ENSURE { $fm(DC) \neq \emptyset$ } \COMMENT{Ensure that DC has a known set of failure modes} \RETURN DC %\hline @@ -400,11 +400,11 @@ $$ \bowtie: \mathcal{FG} \mapsto \mathcal{DC} $$ \begin{algorithmic}[1] - \STATE {F = FM (FG)} \COMMENT{ collect all component failure modes }%from the from the components in the functional~group } - \STATE {TC = DTC (F)} \COMMENT{ determine all test cases } %to apply to the functional group } - \STATE {R = ATC (TC)} \COMMENT{ analyse the test cases }%, for failure mode behaviour of the functional~group } - \STATE {SP = FCS (R)} \COMMENT{ find common symptoms }%of failure for the functional group } - \STATE {DC = CDC (SP)} \COMMENT{ create a derived component } + \STATE {F = fm (FG)} \COMMENT{ collect all component failure modes }%from the from the components in the functional~group } + \STATE {TC = dtc (F)} \COMMENT{ determine all test cases } %to apply to the functional group } + \STATE {R = atc (TC)} \COMMENT{ analyse the test cases }%, for failure mode behaviour of the functional~group } + \STATE {SP = fcs (R)} \COMMENT{ find common symptoms }%of failure for the functional group } + \STATE {DC = cdc (SP)} \COMMENT{ create a derived component } \RETURN $DC$ diff --git a/symptom_ex_process/introduction.tex b/symptom_ex_process/introduction.tex index c9ec4de..1498932 100644 --- a/symptom_ex_process/introduction.tex +++ b/symptom_ex_process/introduction.tex @@ -21,7 +21,8 @@ of a system can be built from the bottom~up. This process can continue until there is a complete hierarchy representing the failure mode behaviour of the entire system under analysis. %FMMD hierarchy -Using the FMMD technique the hierarchy is built from the bottom up to ensure complete failure mode coverage. +Using the FMMD technique the hierarchy is built from the bottom up to +ensure complete failure mode coverage. Because the process is bottom-up, syntax checking and tracking can ensure that no component failure mode can be overlooked. Once a hierarchy is in place, it can be converted into a fault data model. diff --git a/symptom_ex_process/process.tex b/symptom_ex_process/process.tex index 7583660..2ca3e54 100644 --- a/symptom_ex_process/process.tex +++ b/symptom_ex_process/process.tex @@ -4,14 +4,13 @@ % TO DO: separate these two: \paragraph{Symptom Extraction Objective} - The objective of `symptom abstraction' is to analyse the functional~group and find how it can fail when specified components within it fail. Once we know how a functional~group can fail, we can treat it as a component or sub-system 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 that we have to consider are all the failure modes of its components. Each failure mode (or combination of) investigated is termed a `test case'. @@ -62,14 +61,16 @@ To sumarise: \item Choose a set of components to form a functional group. % \item Obtain the list of components in the functional group \item Collect the failure modes of each component into a flat set. - \item Choose all single instances and selected combinations of the failure modes to + \item Choose all single instances (and optional selected combinations\footnote{ +Some specific combinations of failure modes might be included, or with EN298 \cite{en298} +all possible double failure mode conditions} of the failure modes to form `test cases'. % \item Draw these as contours on a diagram % \item Where si,ultaneous failures are examined use overlapping contours % \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. + \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 Collect common~symptoms. i.e. determine 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 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 A new `derived component' can now be created where each common~symptom, or lone test case is a failure~mode of this new component. \end{itemize} @@ -83,7 +84,7 @@ Consider a functional group $FG$ with components $C_1$, $C_2$ and $C_3$. $$ FG = \{ C_1 , C_2 , C_3 \} $$ Each component has a set of related fault modes (i.e. ways in which it can fail to operate correctly). -Let us define the following failure modes for each component, defining a function $FM()$ +Let us define the following failure modes for each component, defining a function $fm()$ that is passed a component and returns the set of failure modes associated with it \footnote{Base component failure modes are defined, often with statistics and evironmental factors in a variety of sources. \cite{mil1991} @@ -92,7 +93,7 @@ statistics and evironmental factors in a variety of sources. \cite{mil1991} \ifthenelse {\boolean{paper}} { -\subsection{Define Failure mode function FM} +\subsection{Define Failure mode function fm} } { To re-cap from the definitions chapter \ref{chap:definitions}. @@ -101,44 +102,44 @@ To re-cap from the definitions chapter \ref{chap:definitions}. Let the set of all possible components be $\mathcal{C}$ 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} -{FM} : \mathcal{C} \mapsto \mathcal{P}\mathcal{F} +{fm} : \mathcal{C} \mapsto \mathcal{P}\mathcal{F} \end{equation} defined by (where $C$ is a component and $F$ is a set of failure modes): -$$ FM ( C ) = F $$ +$$ fm ( C ) = F $$ %\\ e.g. %And for this example: -$$ FM(C_1) = \{ a_1, a_2, a_3 \} $$ -$$ FM(C_2) = \{ b_1, b_2 \} $$ -$$ FM(C_3) = \{ c_1, c_2 \} $$ +$$ fm(C_1) = \{ a_1, a_2, a_3 \} $$ +$$ fm(C_2) = \{ b_1, b_2 \} $$ +$$ fm(C_3) = \{ c_1, c_2 \} $$ \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. -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: -$$ FunctionalGroupAllFailureModes = \bigcup_{j \in \{1...n\}} FM(C_j) $$ +$$ FunctionalGroupAllFailureModes = \bigcup_{j \in \{1...n\}} fm(C_j) $$ -We can actually overload the notation for the function FM +We can actually 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: \begin{equation} -FM : FG \mapsto \mathcal{F} +fm : FG \mapsto \mathcal{F} \end{equation} Applied to the functional~group $FG$ in the example above: \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} This can be seen as all the failure modes that can affect the failure mode group $FG$. @@ -146,7 +147,7 @@ This can be seen as all the failure modes that can affect the failure mode group \subsection{Analysis of the functional group failure modes} For this example we shall consider single failure modes. -%For each of the failure modes from $FM(FG)$ we shall +%For each of the failure modes from $fm(FG)$ we shall %create a test case ($g_i$). Next each test case is examined/analysed %and its effect on the functional group determined. @@ -213,13 +214,13 @@ The next stage of the process could be applied automatically. Each common symptom becomes a failure mode of a newly created derived component. Let $DC$ be the newly derived component. This is assigned the failure modes that were derived from the functional~group. -We can thus apply the function $FM$ on this newly derived component thus: +We can thus apply the function $fm$ on this newly derived component thus: -$$ FM(DC) = \{ SP1, SP2, SP3 \} $$ +$$ fm(DC) = \{ SP1, SP2, SP3 \} $$ 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. -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!}! % \ifthenelse {\boolean{paper}} @@ -252,12 +253,12 @@ $$ % \bowtie(FG_{cfm}) = DC %\end{equation} % -%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: \begin{equation} - \bowtie(FM(FG)) = DC + \bowtie(fm(FG)) = DC \end{equation} diff --git a/symptom_ex_process/topbot.tex b/symptom_ex_process/topbot.tex index dd27a39..a1c8d9d 100644 --- a/symptom_ex_process/topbot.tex +++ b/symptom_ex_process/topbot.tex @@ -59,9 +59,10 @@ Top down fault isolation/finding techniques are described in \ref{NETWORKDECOMPO %% FMEA and FTA and safety engineering people used the term SUB_SYSTEM ALOT %% this study needs to use this term to keep the interested/in context. The term `sub-system' is typically used in top down methodologies. -It has two equivalents in FMMD. The initial phase, where it is called -a functional~group, and the analysed phase where it is called a derived~component. -The term sub-system will be used alongside both functional~group and derived~component where necessary. +It has two equivalents in FMMD. +Both {\fg} and {\dc} correspond to the top doiwn concept of a `sub-system'. +In FMMD a {\fg} becomes a {\dc} after analysis. +The term sub-system will be used alongside both {\fg} and {\dc} where necessary. \subsection{Top-Down System De-Composition} @@ -104,10 +105,10 @@ of the components. \subsection{Systems, functional groups, sub-systems and failure modes} -It is helpful here to define some terms, `system', `functional~group', `component', `base~component', `symptom' and `derived~component/sub-system'. +It is helpful here to define the terms, `system', `functional~group', `component', `base~component', `symptom' and `derived~component/sub-system'. These are listed in table~\ref{tab:symexdef}. -A System, is really any coherent entity that would be sold as a product. % safety critical product. +A System, is any coherent entity that would be sold as a product. % safety critical product. A sub-system is a system that is part of some larger system. For instance a stereo amplifier separate is a sub-system. The whole Sound System, consists perhaps of the following `sub-systems': @@ -116,7 +117,7 @@ CD-player, tuner, amplifier~separate, loudspeakers and ipod~interface. %Thinking like this is a top~down analysis approach %and is the way in which FTA\cite{nucfta} analyses a System %and breaks it down. - +\paragraph{Sub-systems, {\fgs} and components} A sub-system will be composed of components, which may themselves be sub-systems. However each `component' will have a fault/failure behaviour and it should @@ -132,10 +133,10 @@ component failure modes. Using the reasoning that working from the bottom up forces the consideration of all possible -component failures (which can be missed in a top~down approach) +component failures (which can be missed in a top~down approach \cite{faa}[Ch.9]) we are presented with a problem. Which initial collections of base components should we choose? -For instance in the CD~player example; to start at the bottom; we are presented with +For instance in the CD~player example; if we start at the bottom, we are presented with a massive list of base~components, resistors, motors, user~switches, laser~diodes, all sorts! Clearly, working from the bottom~up, we need to pick small collections of components that work together in some way. @@ -143,7 +144,7 @@ These are termed `functional~groups'. For instance the circuitry that powers th to illuminate the CD might contain a handful of components, and as such would make a good candidate to be one of the base level functional~groups. - +\paragraph{{\fg} to {\dc} process outline} In choosing the lowest level (base component) sub-systems we would look for the smallest `functional~groups' of components within a system. We can define a functional~group as a set of components that interact @@ -172,7 +173,7 @@ The symptoms are the failure modes of this new `derived component'. Electrical components have detailed datasheets associated with them. A useful extension of this could be failure modes of the component, with environmental factors and MTTF statistics. -Currently this sort of failure mode information is generally only available for generic component types\cite{mil1991}. +Currently this sort of failure mode information is generally only available for generic component types \cite{mil1991}. %\vspace{0.3cm} \begin{table}[h]