diff --git a/mybib.bib b/mybib.bib index e83b32f..277ad15 100644 --- a/mybib.bib +++ b/mybib.bib @@ -987,11 +987,18 @@ ISSN={1530-2059},} @MISC{gnuplot, author = "Various Open~source~Project", - title = "", + title = "Gnuplot: graph plotting utility", howpublished = "Available from http://www.gnuplot.info/", year = "2005" } - +@book{Janert:2009:GAU:1631269, + author = {Janert, Philipp K.}, + title = {Gnuplot in Action: Understanding Data with Graphs}, + year = {2009}, + isbn = {1933988398, 9781933988399}, + publisher = {Manning Publications Co.}, + address = {Greenwich, CT, USA}, +} @MISC{eulerviz, author = "Peter~Rodgers, John~Howse, Andrew~Fish", title = "Visualization of Euler Diagrams", diff --git a/submission_thesis/CH7_Evaluation/Makefile b/submission_thesis/CH7_Evaluation/Makefile index a1e839a..8772b12 100644 --- a/submission_thesis/CH7_Evaluation/Makefile +++ b/submission_thesis/CH7_Evaluation/Makefile @@ -6,7 +6,7 @@ DIA = components_81_euler.png -doc: $(DIA) +doc: $(DIA) xfmea_fmmd_comp.png # #bib: @@ -14,6 +14,9 @@ doc: $(DIA) # bibtex HR230003_combined_o2_co_sensor # +xfmea_fmmd_comp.png: + gnuplot < xfmea_comp.gpt + %.png:%.dia dia -t png $< diff --git a/submission_thesis/CH7_Evaluation/copy.tex b/submission_thesis/CH7_Evaluation/copy.tex index 07e3958..b7c3377 100644 --- a/submission_thesis/CH7_Evaluation/copy.tex +++ b/submission_thesis/CH7_Evaluation/copy.tex @@ -14,7 +14,14 @@ and then formulae are presented for calculating the complexity of applying FMEA to a group of components. % These formulae are then used for a hypothetical example, which is analysed by both FMEA and FMMD. -After analysing hypothetical examples, the FMMD examples from chapter~\ref{sec:chap5} are +% +%After analysing hypothetical examples, the +The hypothetical example gives a general formula, which shows that the reasoning distance +goes from a polynomial to a logarithmic order comparing XFMEA with FMMD. +% +%This means that for +% +The reasoning distances obtained from the FMMD examples (see chapter~\ref{sec:chap5}) are compared against {\XFMEA}. % Following on from the formal definitions, `unitary state failure modes' are defined. In short these @@ -209,7 +216,7 @@ $i$ for identification and a superscript for the $\alpha$~level (see section~\r For example the first {\fg} in a hierarchy containing base components only i.e. at the zero'th level of an FMMD hierarchy where $\alpha=0$, would have the superscript 0 and a subscript of 1: $FG^{0}_{1}$. % -The {\fg} representing the potential divider in section~\ref{sec:pd} +The {\fg} representing the potential divider in section~\ref{subsec:potdiv} has an $\alpha$ level of 0 (as it contains base components). The {\fg} with the potential divider and the operational amplifier has an $\alpha$ level of 1. %$$ @@ -303,8 +310,8 @@ process are by-hand/human activities. It can be seen that it is practically impo % % Next statement needs alot of justification % -It is the author's belief that FMMD reduces the comparison complexity enough to make -exhaustive checking (within {\fgs}) entirely feasible. +%It is the author's belief that FMMD reduces the comparison complexity enough to make +%exhaustive checking (within {\fgs}) entirely feasible. %\pagebreak[4] @@ -337,8 +344,9 @@ use the general formula for comparing the number of checks to make for % If we were to create an example by fixing the number of components in a {\fg} and the number of failure modes per component, we can derive formulae -to compare the number of checks to make from an FMMD hierarchy to {\XFMEA} applied to -all components in a system. +to compare the number of checks to make from an FMMD hierarchy to {\XFMEA}. +%applied to +%all components in a system. Consider $k$ to be the number of components in a {\fg} (i.e. $k=|{\FG}|$), $f$ is the number of failure modes per component (i.e. $f=|fm(c)|$), and @@ -437,6 +445,53 @@ $$ For FMMD (where within {\fgs} the analysis \textbf{is exhaustive}) we only require 720 reasoning paths. + + +\subsubsection{Plotting XFMEA and FMMD reasoning distance} + +Using the gnuplot utility~\cite{gnuplot,Janert:2009:GAU:1631269} and implementing equation~\ref{eqn:fmea_state_exp22} for +XFMEA and equation~\ref{eqn:anscen} for FMMD reasoning distances, we can (using a logarithmic axis for reasoning distance) +compare them graphically. The gnuplot script used to +produce figure~\ref{fig:xfmeafmmdcomp} may be found in section~\ref{sec:gnuplotxfmeafmmdcomp}. + +\begin{figure}[h] + \centering + \includegraphics[width=400pt]{./CH7_Evaluation/xfmea_fmmd_comp.png} + % xfmea_fmmd_comp.png: 640x480 pixel, 72dpi, 22.58x16.93 cm, bb=0 0 640 480 + \caption{XFMEA and FMMD reasoning distance comparison graph.} + \label{fig:xfmeafmmdcomp} +\end{figure} + +Looking at the graph in figure~\ref{fig:xfmeafmmdcomp} we see that the reasoning distance +for large numbers of components becomes extremely difficult to achieve +for FMEA. +% +It can be seen that the reasoning distance has gone from a polynomial to a logarithmic order. +% +By applying FMMD we have effectively decimated the large group for analysis into +a hierarchy of much smaller groups and applied FMEA {\em within} those. +% +In mathematical terms this means we have converted the polynomial order +to logarithmic by being able to convert exponentiation +to constants of integration. +% +This process can be viewed as similar to the order of processing +that occurs in the decimation in time FFT~\cite{fftoriginal} when +compared to the DFT algorithm. +% +%We have been able to successively take constants of integration +%out of the equations in the process of de-composition, resulting +%in a saving in the number of processing steps (here hand analysis FMEA stages). + + + + + + + + + + %\clearpage \subsection{Complexity Comparison applied to FMMD electronic circuits analysed in chapter~\ref{sec:chap5}.} @@ -1365,6 +1420,6 @@ It could be very easy to miss the side effect and include the component causing the side effect into the wrong {\fg}, or only one germane {\fg}. -\section{Evaluation} +%\section{Evaluation} -TO DO +%TO DO diff --git a/submission_thesis/CH7_Evaluation/xfmea_comp.gpt b/submission_thesis/CH7_Evaluation/xfmea_comp.gpt new file mode 100644 index 0000000..f46073c --- /dev/null +++ b/submission_thesis/CH7_Evaluation/xfmea_comp.gpt @@ -0,0 +1,48 @@ +## +# GNUPLOT SCRIPT to plot XFMEA FMMD reasoning distance +# comparisons. +# +# +# alway define fp in declaration, as in 'C' +# or gnuplot treats these as integers. +# +# number of failure modes per component +fm = 3.0 + +# number of components in each functional group +k = 3.0 + +# place the functional group size and failure mode per components +# size into a string to use as the graph title +# +tt = sprintf("reasoning distance comparison for |fg| = %d and |fm| = %d", k, fm) +set title tt + +a = 0.0 +b = 0.0 + +# formula for reasoning distance in one level of FMMD +# hierarchy (as given by ll) +# +fmmd(ll)=k**ll * k * fm * (k - 1) + +# set up iterative sum in gnuplot syntax +# to iterate over FMMD levels +# +sum(a,b) = (a > b) ? 0 : fmmd(a) + sum(a+1, b) +sig_fx(c) = sum(a,c) + +# reasoning distance for exhaustive case in FMEA +# where ll is the hierarchy level +xfmea(ll) = k**(ll+1) * ( k**(ll+1) -1 ) * fm + + +set xrange [0:1000] +set xlabel "Component count" +set ylabel "reasoning distance" +set logscale y + +set terminal png +set output 'xfmea_fmmd_comp.png' +plot sig_fx(x**(1/k)), xfmea(x**(1/k)) +#!sleep 20 diff --git a/submission_thesis/CH8_Conclusion/copy.tex b/submission_thesis/CH8_Conclusion/copy.tex index f4e2185..fc2e158 100644 --- a/submission_thesis/CH8_Conclusion/copy.tex +++ b/submission_thesis/CH8_Conclusion/copy.tex @@ -51,7 +51,7 @@ the FMMD process strictly enforced this throughout the hierarchy of a model. % Finally the FMMD process was described algorithmically using set theory in appendix~\ref{sec:algorithmfmmd}.%{app:alg}. -In conclusion then a new method of failure analysis has been devised which improves on established techniques in the following ways: +In conclusion then, a new method of failure analysis has been devised which improves on established techniques in the following ways: % \begin{itemize} % \item Must be able to analyse hybrid software/hardware systems, % \item no state explosion (which has rendered exhaustive analysis impractical), @@ -75,7 +75,7 @@ Under the following assumptions and constraints: \begin{itemize} \item Failure modes are available for all {\bcs}, \item Analysts are capable of finding suitable {\fgs} from electronic schematics, - \item Software is hierarchical and its elements (functions) can be modelled using contract programming, + \item Software is hierarchical and its elements (functions) can be modelled using contract programming. %\item \end{itemize} @@ -128,7 +128,8 @@ into its hierarchical model. %By way of example, the Pt100 analysis %example %from section~\{sec:pt100} has been used to demonstrate this. Because we can use an FMMD model to generate an FMEA report, with additional {\bc} failure mode statistics -we can therefore used FMMD to produce an FMEDA report. +we can %therefore +use FMMD to produce an FMEDA report. \subsection{Pt100 Example: Single Failures and statistical data}. %Mean Time to Failure} @@ -147,7 +148,7 @@ can give conservative reliability figures when applied to modern components}. % Using the MIL-HDBK-217F\cite{mil1991} specifications for resistor and thermistor -failure statistics, we calculate the reliability of the Pt100 example ( see section~\ref{sec:pt100}). +failure statistics, we calculate the reliability of the Pt100 example (see section~\ref{sec:Pt100}). \paragraph{Resistor FIT Calculations} @@ -367,7 +368,7 @@ the FMMD model. A system will be expected to perform in a given environment. % Environment in the context of this study -means external influences under which the System could be expected to work. % under. +means external influences under which the system could be expected to work. % under. % A typical data sheet for an electrical component will give a working temperature range: %, for instance. @@ -381,7 +382,7 @@ authorised human intervention takes place. A safety critical circuit may have a self test mode which could be operated externally: a micro-processor may have a SLEEP mode etc. % -To make FMMD compatible with FTA perational states and environmental conditions should %can %must +To make FMMD compatible with FTA operational states and environmental conditions should %can %must be factored into the UML model. % We may encounter a condition where we would want to inhibit some action of the system. @@ -399,7 +400,7 @@ Environmental influences will affect specific components in specific ways\footno affected by environmental conditions, in this case temperature, is the opto-isolator~\cite{tlp181} which is typically affected at around {60 \oc}. Most electrical components are more robust to temperature variations.}. Environmental analysis is thus applicable to components. -Environmental influences, such as over stress due to voltage +Environmental influences, such as over-stress due to voltage can be eliminated by down-rating components as discussed in section~\ref{sec:determine_fms}. With given environmental constraints, we can therefore eliminate some failure modes from the model. @@ -508,7 +509,7 @@ With the contracts in place for the software functions, we can then integrate th FMMD models both software and hardware; we can thus verify that all failure modes from the electronics module have been dealt -by the controlling software. +with by the controlling software. % If not they are an un-handled error condition relating to the software hardware interface. % diff --git a/submission_thesis/appendixes/detailed_analysis.tex b/submission_thesis/appendixes/detailed_analysis.tex index 1fe9165..4562da6 100644 --- a/submission_thesis/appendixes/detailed_analysis.tex +++ b/submission_thesis/appendixes/detailed_analysis.tex @@ -828,3 +828,58 @@ FMMD analysis tables from chapter~\ref{sec:chap6}. } \clearpage/pr +\subsection{Gnuplot script for hypothetical XFMEA FMMD reasoning distance comparision} +\label{sec:gnuplotxfmeafmmdcomp} + +\begin{verbatim} + ## +# GNUPLOT SCRIPT to plot XFMEA FMMD reasoning distance +# comparisons. +# +# +# alway define fp in declaration, as in 'C' +# or gnuplot treats these as integers. +# +# number of failure modes per component +fm = 3.0 + +# number of components in each functional group +k = 3.0 + +# place the functional group size and failure mode per components +# size into a string to use as the graph title +# +tt = sprintf("reasoning distance comparison for |fg| = %d and |fm| = %d", k, fm) +set title tt + +a = 0.0 +b = 0.0 + +# formula for reasoning distance in one level of FMMD +# hierarchy (as given by ll) +# +fmmd(ll)=k**ll * k * fm * (k - 1) + +# set up iterative sum in gnuplot syntax +# to iterate over FMMD levels +# +sum(a,b) = (a > b) ? 0 : fmmd(a) + sum(a+1, b) +sig_fx(c) = sum(a,c) + +# reasoning distance for exhaustive case in FMEA +# where ll is the hierarchy level +xfmea(ll) = k**(ll+1) * ( k**(ll+1) -1 ) * fm + + +set xrange [0:1000] +set xlabel "Component count" +set ylabel "reasoning distance" +set logscale y + +set terminal png +set output 'xfmea_fmmd_comp.png' +plot sig_fx(x**(1/k)), xfmea(x**(1/k)) +#!sleep 20 + +\end{verbatim} +