non inv op amp now has conditional compilation for dag or pld

This commit is contained in:
Robin Clark 2011-05-15 13:51:30 +01:00
parent 169761ae0f
commit 51d46d452c
3 changed files with 355 additions and 36 deletions

View File

@ -1,4 +1,5 @@
\def\layersep{2.5cm}
\ifthenelse {\boolean{paper}}
{
@ -62,6 +63,7 @@ amplifier determined.
A standard non inverting op amp (from ``The Art of Electronics'' ~\cite{aoe}[pp.234]) is shown in figure \ref{fig:noninvamp}.
\begin{figure}[h]
\centering
\includegraphics[width=200pt,keepaspectratio=true]{./noninvopamp/noninv.png}
@ -77,6 +79,9 @@ They operate as a potential divider and program the minus input on the op-amp
to balance them against the positive input, giving the voltage gain ($G_v$)
defined by $ G_v = 1 + \frac{R2}{R1} $ at the output.
A functional group, is an ideally small in number collection of components,
that interact to provide
a function or task within a system.
@ -84,16 +89,42 @@ As the resistors work to provide a specific function, that of a potential divide
we can treat them as a functional group. This functional group has two members, $R1$ and $R2$.
Using the EN298 specification for resistor failure ~\cite{en298}[App.A]
we can assign failure modes of $OPEN$ and $SHORT$ to the resistors.
\ifthenelse {\boolean{dag}}
{
We can now represent a resistor in terms of its failure modes as a directed acyclic graph (DAG)
(see figure \ref{fig:rdag}).
\begin{figure}[h+]
\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=30pt,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]
\node[component] (R) at (0,-3) {$R$};
\node[failure] (RSHORT) at (\layersep,-2) {$R_{SHORT}$};
\node[failure] (ROPEN) at (\layersep,-4) {$R_{OPEN}$};
\path (R) edge (RSHORT);
\path (R) edge (ROPEN);
\end{tikzpicture}
\caption{DAG representing a reistor and its failure modes}
\label{fig:rdag}
\end{figure}
}
{
}
Thus $R1$ has failure modes $\{R1\_OPEN, R1\_SHORT\}$ and $R2$ has failure modes $\{R2\_OPEN, R2\_SHORT\}$.
\clearpage
%\clearpage
\section{Failure Mode Analysis of the Potential Divider}
\ifthenelse {\boolean{pld}}
{
Modelling this as a functional group, we can draw a simple closed curve
to represent each failure mode, taken from the components R1 and R2,
in the potential divider, shown in figure \ref{fig:fg1}.
\begin{figure}[h]
\centering
\includegraphics[width=200pt,keepaspectratio=true]{./noninvopamp/fg1.png}
@ -101,12 +132,68 @@ in the potential divider, shown in figure \ref{fig:fg1}.
\caption{potential divider `functional group' failure modes}
\label{fig:fg1}
\end{figure}
}
{
}
\ifthenelse {\boolean{dag}}
{
Modelling this as a functional group, we can draw this as a directed graph
failure modes, taken from the components R1 and R2,
in the potential divider, shown in figure \ref{fig:fg1dag}.
\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=30pt,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]
\node[component] (R1) at (0,-4) {$R_1$};
\node[component] (R2) at (0,-6) {$R_2$};
\node[failure] (R1SHORT) at (\layersep,-2) {$R1_{SHORT}$};
\node[failure] (R1OPEN) at (\layersep,-4) {$R1_{OPEN}$};
\node[failure] (R2SHORT) at (\layersep,-6) {$R2_{SHORT}$};
\node[failure] (R2OPEN) at (\layersep,-8) {$R2_{OPEN}$};
\path (R1) edge (R1SHORT);
\path (R1) edge (R1OPEN);
\path (R2) edge (R2SHORT);
\path (R2) edge (R2OPEN);
% Potential divider failure modes
%
%\node[symptom] (PDHIGH) at (\layersep*2,-4) {$PD_{HIGH}$};
%\node[symptom] (PDLOW) at (\layersep*2,-6) {$PD_{LOW}$};
%\path (R1OPEN) edge (PDHIGH);
%\path (R2SHORT) edge (PDHIGH);
%\path (R2OPEN) edge (PDLOW);
%\path (R1SHORT) edge (PDLOW);
\end{tikzpicture}
\caption{DAG representing the functional group `Potential Divider'}
\label{fig:fg1dag}
\end{figure}
}
{
}
We can now look at each of these base component failure modes,
and determine how they will affect the operation of the potential divider.
%Each failure mode scenario we look at will be given a test case number,
%which is represented on the diagram, with an asterisk marking
%which failure modes is modelling (see figure \ref{fig:fg1a}).
\ifthenelse {\boolean{pld}}
{
Each labelled asterisk in the diagram represents a failure mode scenario.
The failure mode scenarios are given test case numbers, and an example to clarify this follows
in table~\ref{pdfmea}.
@ -118,8 +205,76 @@ in table~\ref{pdfmea}.
\caption{potential divider with test cases}
\label{fig:fg1a}
\end{figure}
}
{
}
\ifthenelse {\boolean{dag}}
{
For this example we can look at single failure modes only.
For each failure mode in our {\fg} `potential~divider'
we can assign a test case number (see table \ref{pdfmea}).
Each test case is analysed to determine the `symptom'
on the potential dividers' operation. For instance
were the resistor $R_1$ to go open, the circuit would not be grounded and the
voltage output from it would be the +ve supply rail.
This would mean the symptom of the failed potential divider, would be that it
gives an output high voltage reading. We can now consider the {\fg}
as a component in its own right, and its symptoms as its failure modes.
From table \ref{pdfmea} we can see that resistor
failures modes lead to common symptoms.
By drawing connecting lines in the graph
we can represent them.
The {\fg} can now be considered a derived component.
This is represented in the DAG in figure \ref{fig:fg1adag}.
\begin{figure}[h+]
\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=30pt,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]
\node[component] (R1) at (0,-4) {$R_1$};
\node[component] (R2) at (0,-6) {$R_2$};
\node[failure] (R1SHORT) at (\layersep,-2) {$R1_{SHORT}$};
\node[failure] (R1OPEN) at (\layersep,-4) {$R1_{OPEN}$};
\node[failure] (R2SHORT) at (\layersep,-6) {$R2_{SHORT}$};
\node[failure] (R2OPEN) at (\layersep,-8) {$R2_{OPEN}$};
\path (R1) edge (R1SHORT);
\path (R1) edge (R1OPEN);
\path (R2) edge (R2SHORT);
\path (R2) edge (R2OPEN);
% Potential divider failure modes
%
\node[symptom] (PDHIGH) at (\layersep*2,-4) {$PD_{HIGH}$};
\node[symptom] (PDLOW) at (\layersep*2,-6) {$PD_{LOW}$};
\path (R1OPEN) edge (PDHIGH);
\path (R2SHORT) edge (PDHIGH);
\path (R2OPEN) edge (PDLOW);
\path (R1SHORT) edge (PDLOW);
\end{tikzpicture}
\caption{Failure symptoms of the `Potential Divider'}
\label{fig:fg1adag}
\end{figure}
}
{
}
\begin{table}[ht]
\caption{Potential Divider: Failure Mode Effects Analysis: Single Faults} % title of Table
\centering % used for centering table
@ -139,15 +294,13 @@ in table~\ref{pdfmea}.
\label{pdfmea}
\end{table}
\ifthenelse {\boolean{pld}}
{
We can now collect the symptoms of failure. From the four base component failure modes, we now
have two symptoms, where the potential divider will give an incorrect low voltage (which we can term $LowPD$)
or an incorrect high voltage (which we can term $HighPD$).
We can represent the collection of these symptoms by drawing connecting lines between
the test cases and naming them (see figure \ref{fig:fg1b}).
\begin{figure}[h+]
\centering
\includegraphics[width=200pt,keepaspectratio=true]{./noninvopamp/fg1b.png}
@ -155,10 +308,10 @@ the test cases and naming them (see figure \ref{fig:fg1b}).
\caption{Collection of potential divider failure mode symptoms}
\label{fig:fg1b}
\end{figure}
%\clearpage
We can now make a `derived component' to represent this potential divider.
This can be named \textbf{PD}.
This {\dc} will have two failure modes.
We can use the symbol $\bowtie$ to represent taking the analysed
{\fg} and creating from it, a {\dc}.
@ -171,6 +324,40 @@ We can use the symbol $\bowtie$ to represent taking the analysed
\caption{From functional group to derived component}
\label{fig:dc1}
\end{figure}
}
{
}
\ifthenelse {\boolean{dag}}
{
We can now represent the potential divider as a {\dc}.
Because have its symptoms or failure mode behaviour,
we can treat these as the failure modes of a a new {\dc}.
We can represent it now as a DAG (see \ref{fig:dc1dag}).
\begin{figure}[h+]
\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=30pt,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]
\node[component] (PD) at (0,-3) {$PD$};
\node[symptom] (PDHIGH) at (\layersep,-2) {$PD_{HIGH}$};
\node[symptom] (PDLOW) at (\layersep,-4) {$PD_{LOW}$};
\path (PD) edge (PDHIGH);
\path (PD) edge (PDLOW);
\end{tikzpicture}
\caption{DAG representing a Potential Divider (PD) its failure symptoms}
\label{fig:dc1dag}
\end{figure}
}
{
}
Because the derived component is defined by its failure modes and
the functional group used to derive it, we can use it
@ -184,11 +371,11 @@ Let use now consider the op-amp. According to
FMD-91~\cite{fmd91}[3-116] an op amp may have the following failure modes:
latchup(12.5\%), latchdown(6\%), nooperation(31.3\%), lowslewrate(50\%).
\ifthenelse {\boolean{pld}}
{
We can represent these failure modes on a diagram (see figure~\ref{fig:op1}).
\begin{figure}[h+]
\centering
\includegraphics[width=200pt,keepaspectratio=true]{./noninvopamp/op1.png}
@ -196,22 +383,59 @@ We can represent these failure modes on a diagram (see figure~\ref{fig:op1}).
\caption{Op Amp failure modes}
\label{fig:op1}
\end{figure}
}
{
}
\ifthenelse {\boolean{dag}}
{
We can represent these failure modes on a DAG (see figure~\ref{fig:op1dag}).
\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=30pt,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]
\node[component] (OPAMP) at (0,-4) {$OPAMP$};
\node[failure] (OPAMPLU) at (\layersep,-0) {latchup};
\node[failure] (OPAMPLD) at (\layersep,-2) {latchdown};
\node[failure] (OPAMPNP) at (\layersep,-4) {noop};
\node[failure] (OPAMPLS) at (\layersep,-6) {lowslew};
\path (OPAMP) edge (OPAMPLU);
\path (OPAMP) edge (OPAMPLD);
\path (OPAMP) edge (OPAMPNP);
\path (OPAMP) edge (OPAMPLS);
\end{tikzpicture}
% End of code
\caption{DAG representing failure modes of an Op-amp}
\label{fig:op1dag}
\end{figure}
}
{
}
%\clearpage
\section{Bringing the OP amp and the potential divider together}
We can now consider bringing the OP amp and the potential divider together to
for an amplifier. We have the failure modes of the functional group for the potential divider,
model the non inverting amplifier. We have the failure modes of the functional group for the potential divider,
so we do not need to consider the individual resistor failure modes that define its behaviour.
We can make a new functional group to represent the amplifier, by bringing the component \textbf{opamp}
and the component potential divider into a new functional group.
and the component potential divider \textbf{PD} into a new functional group.
\ifthenelse {\boolean{pld}}
{
This functional group has the failure modes from the op-amp component, and the failure modes
from the potential divider {\dc} to analyse represented by figure~\ref{fig:fgamp}.
from the potential divider {\dc}, represented by figure~\ref{fig:fgamp}.
\begin{figure}[h+]
\centering
@ -232,6 +456,20 @@ regions) see figure~\ref{fig:fgampa}.
\caption{Amplifier Functional Group with Test Cases}
\label{fig:fgampa}
\end{figure}
}
{
}
\ifthenelse {\boolean{dag}}
{
We can now represent the {\fg} for the non-inverting amplifier
by bringing together the failure modes from \textbf{opamp} and \textbf{PD}.
Each of these failure modes will be given a test case for analysis,
and this is represented in table \ref{ampfmea}.
}
{
}
\clearpage
@ -264,11 +502,9 @@ TC2 and TC6 can be considered as low output from the OPAMP for the application
in hand (say milli-volt signal amplification).
For this amplifier configuration we have three failure modes, $AMPHigh, AMPLow, LowPass$.%see figure~\ref{fig:fgampb}.
\ifthenelse {\boolean{pld}}
{
We can now derive a `component' to represent this amplifier configuration (see figure ~\ref{fig:noninvampa}).
\begin{figure}[h+]
\centering
\includegraphics[width=200pt,keepaspectratio=true]{./noninvopamp/noninvampa.png}
@ -276,16 +512,85 @@ We can now derive a `component' to represent this amplifier configuration (see f
\caption{Non Inverting Amplifier Derived Component}
\label{fig:noninvampa}
\end{figure}
}
{
}
\ifthenelse {\boolean{dag}}
{
\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=30pt,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]
\node[component] (OPAMP) at (0,-4) {$OPAMP$};
\node[failure] (OPAMPLU) at (\layersep,-0) {latchup};
\node[failure] (OPAMPLD) at (\layersep,-2) {latchdown};
\node[failure] (OPAMPNP) at (\layersep,-4) {noop};
\node[failure] (OPAMPLS) at (\layersep,-6) {lowslew};
\path (OPAMP) edge (OPAMPLU);
\path (OPAMP) edge (OPAMPLD);
\path (OPAMP) edge (OPAMPNP);
\path (OPAMP) edge (OPAMPLS);
\node[component] (PD) at (0,-9) {$PD$};
\node[symptom] (PDHIGH) at (\layersep,-8) {$PD_{HIGH}$};
\node[symptom] (PDLOW) at (\layersep,-10) {$PD_{LOW}$};
\path (PD) edge (PDHIGH);
\path (PD) edge (PDLOW);
\node[symptom] (AMPHIGH) at (\layersep*4,-3) {$AMP_{HIGH}$};
\node[symptom] (AMPLOW) at (\layersep*4,-5) {$AMP_{LOW}$};
\node[symptom] (AMPLP) at (\layersep*4,-7) {$LOWPASS$};
\path (PDLOW) edge (AMPHIGH);
\path (OPAMPLU) edge (AMPHIGH);
\path (PDHIGH) edge (AMPLOW);
\path (OPAMPNP) edge (AMPLOW);
\path (OPAMPLD) edge (AMPLOW);
\path (OPAMPLS) edge (AMPLP);
\end{tikzpicture}
% End of code
\caption{DAG representing failure modes and symptoms of the Non Inverting Op-amp Circuit}
\label{fig:noninvdag0}
\end{figure}
}
{
}
%failure mode contours).
%\clearpage
\clearpage
\section{Failure Modes from non inverting amplifier as a Directed Acyclic Graph (DAG)}
\ifthenelse {\boolean{pld}}
{
We can now represent the FMMD analysis as a directed graph, see figure \ref{fig:noninvdag0}.
With the information structured in this way, we can trace the high level failure mode symptoms
back to their potential causes.
}
{
}
\ifthenelse {\boolean{dag}}
{
We can now expand the $PD$ {\dc} and now have a full FMMD failure mode model
drawn as a DAG, which we can use to traverse to determine the possible causes to
the three high level symptoms, or failure~modes of the non-inverting amplifier.
Figure \ref{fig:noninvdag0} shows a fully expanded DAG, from which we can derive information
to assist in building models for FTA, FMEA, FMECA and FMEDA failure mode analysis methodologies.
}
{
}
\begin{figure}
\centering
@ -421,7 +726,10 @@ in the FTA diagram. Tracing back from the top level event $AMP Low$ we are lead
the $OPAMP latch down$ and $OP amp Noop$. These two events can cause the symptom $AMP Low$.
We can also trace back down to the symptom $PD High$. Thus we have three
possible cause for $AMP LOW$, and so we can draw a three input
`or' gate below $AMP Low$, to which $OPAMP latch down$, $OP amp Noop$ and $PD High$ connect to from below.
`xor' gate below $AMP Low$, to which $OPAMP latch down$, $OP amp Noop$ and $PD High$
connect to from below\footnote{XOR is used here, because we are considering single failures only.
This is a weakness in FTA diagrams, as it is clumsy to represent
conjunction and dis-junction sourced from the same failure modes}.
$OPAMP latch down$ and $OP amp Noop$ are base level or component events, and so we cannot
trace them down any further.
$PD High$ is a symptom, and can be traced further.
@ -435,7 +743,7 @@ The FTA diagram directly derived from the FMMD DAG is shown in figure \ref{fig:n
% Gates and symbols style
and/.style={and gate US,thick,draw,fill=blue!40,rotate=90,
anchor=east,xshift=-1mm},
or/.style={or gate US,thick,draw,fill=blue!40,rotate=90,
or/.style={xor gate US,thick,draw,fill=blue!40,rotate=90,
anchor=east,xshift=-1mm},
be/.style={circle,thick,draw,fill=white!60,anchor=north,
minimum width=0.7cm},
@ -517,16 +825,10 @@ The FTA diagram directly derived from the FMMD DAG is shown in figure \ref{fig:n
\label{fig:noninvfta}
\caption{Example FTA Derived from the DAG for symptom `Amp Low'}
\end{figure}
%\clearpage
%\clearpage
%show an example fault tree, showing the causes and logical (only OR's here)
\subsection{Information missing in FTA}
to expand: Each FTA deals only with one symptom.

View File

@ -14,6 +14,13 @@
\newboolean{paper}
\setboolean{paper}{true} % boolvar=true or false
\newboolean{pld}
\setboolean{pld}{false} % boolvar=true or false : draw analysis using propositional logic diagrams
\newboolean{dag}
\setboolean{dag}{true} % boolvar=true or false : draw analysis using directed acylic graphs
\def\layersep{2.5cm}
%\newtheorem{definition}{Definition:}

View File

@ -100,17 +100,27 @@ notation using logic symbols, that guides the analysis.
This methodology was designed for
experienced engineers sitting around a large diagram and discussing the safety aspects.
Also the nature of a large rocket with red wire, and remote detonation
failsafes meant that the objective was to iron out common failures
fail-safes meant that the objective was to iron out common failures
not to rigorously detect all possible failures.
Consequently it was not designed to guarantee to covering all component failure modes,
and has no rigorous in-built safeguards to ensure coverage of all possible
system level outcomes~\cite{nasafta}[Section 1.2].
\paragraph{FTA: Potential to miss a large proportion of base compoenet failure modes}
FTA, like all top~down methodologies introduces the very serious problem
of missing component failure modes~\cite{faa}[Ch.9].
of potentially missing base component failure modes~\cite{faa}[Ch.9].
\paragraph{FTA: difficulty in modelling multiple/simultaneous failure modes}
FTA does not lend its self to modelling multiple failure modes.
Or conditions are often used where the cases for combinations
of the or'd failure modes occurring simultaneously are not defined.
It would be more correct, but less intuitive to use XOR gates instead.
NEED to FORMALISE EACH OF THESE TECHNIQUES AND SHOW THE WEAKNESSES AT EACH STAGE.
\paragraph{Outline of FTA Methodology}
FTA works by taking an undesireable event
FTA works by taking an undesirable event
(or SYSTEM level failure mode or TOP level failure)
and deciding top-down, what sub-systems it depends upon, and which
failure events of those sub-systems could cause the top level failure.