This commit is contained in:
Robin Clark 2011-05-09 15:32:06 +01:00
parent b473241065
commit 1177cc335c
5 changed files with 196 additions and 0 deletions

View File

@ -415,6 +415,106 @@ back to their potential causes.
\section{Extracting Fault Trees form the DAG} \section{Extracting Fault Trees form the DAG}
% \node (g1) [event] {No flow to receiver}
% child{node (g2) {No flow from Component B}
% child {node (g3) {No flow into Component B}
% child {node (g4) {No flow from Component A1}
% child {node (t1) {No flow from source1}}
% child {node (b2) {Component A1 blocks flow}}
% }
% A simple fault tree
% % Author: Zhang Long, Mail: zhangloong[at]gmail.com
% % \def\pgfsysdriver{pgfsys-dvipdfm.def}
% % \documentclass{minimal}
% % \usepackage{tikz}
% % \usetikzlibrary{shapes.gates.logic.US,trees,positioning,arrows}
% % \begin{document}
\begin{figure}
\begin{tikzpicture}[
% 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,
anchor=east,xshift=-1mm},
be/.style={circle,thick,draw,fill=white!60,anchor=north,
minimum width=0.7cm},
tr/.style={buffer gate US,thick,draw,fill=white!60,rotate=90,
anchor=east,minimum width=0.8cm},
% Label style
label distance=3mm,
every label/.style={blue},
% Event style
event/.style={rectangle,thick,draw,fill=yellow!20,text width=2cm,
text centered,font=\sffamily,anchor=north},
% Children and edges style
edge from parent/.style={very thick,draw=black!70},
edge from parent path={(\tikzparentnode.south) -- ++(0,-1.05cm)
-| (\tikzchildnode.north)},
level 1/.style={sibling distance=7cm,level distance=1.4cm,
growth parent anchor=south,nodes=event},
level 2/.style={sibling distance=7cm},
level 3/.style={sibling distance=6cm},
level 4/.style={sibling distance=3cm}
%% For compatability with PGF CVS add the absolute option:
% absolute
]
%% Draw events and edges
\node (g1) [event] {No flow to receiver}
child{node (g2) {No flow from Component B}
child {node (g3) {No flow into Component B}
child {node (g4) {No flow from Component A1}
child {node (t1) {No flow from source1}}
child {node (b2) {Component A1 blocks flow}}
}
child {node (g5) {No flow from Component A2}
child {node (t2) {No flow from source2}}
child {node (b3) {Component A2 blocks flow}}
}
}
child {node (b1) {Component B blocks flow}}
};
%% Place gates and other symbols
%% In the CVS version of PGF labels are placed differently than in PGF 2.0
%% To render them correctly replace '-20' with 'right' and add the 'absolute'
%% option to the tikzpicture environment. The absolute option makes the
%% node labels ignore the rotation of the parent node.
\node [or] at (g2.south) [label=-20:G02] {};
\node [and] at (g3.south) [label=-20:G03] {};
\node [or] at (g4.south) [label=-20:G04] {};
\node [or] at (g5.south) [label=-20:G05] {};
\node [be] at (b1.south) [label=below:B01] {};
\node [be] at (b2.south) [label=below:B02] {};
\node [be] at (b3.south) [label=below:B03] {};
\node [tr] at (t1.south) [label=below:T01] {};
\node [tr] at (t2.south) [label=below:T02] {};
%% Draw system flow diagram
% \begin{scope}[xshift=-7.5cm,yshift=-5cm,very thick,
% node distance=1.6cm,on grid,>=stealth',
% block/.style={rectangle,draw,fill=cyan!20},
% comp/.style={circle,draw,fill=orange!40}]
% \node [block] (re) {Receiver};
% \node [comp] (cb) [above=of re] {B} edge [->] (re);
% \node [comp] (ca1) [above=of cb,xshift=-0.8cm] {A1} edge [->] (cb);
% \node [comp] (ca2) [right=of ca1] {A2} edge [->] (cb);
% \node [block] (s1) [above=of ca1] {Source1} edge [->] (ca1);
% \node [block] (s2) [right=of s1] {Source2} edge [->] (ca2);
% \end{scope}
\end{tikzpicture}
\caption{Example FTA for a Gas Supply with two Shutoff Valves}
\end{figure}
\clearpage
\clearpage
show an example fault tree, showing the causes and logical (only OR's here) show an example fault tree, showing the causes and logical (only OR's here)
\section{Extracting FMEA Analysis from the DAG} \section{Extracting FMEA Analysis from the DAG}
@ -439,3 +539,4 @@ statistical literature is available ~\cite{mil1991}~\cite{fmd91}.
Software used to edit these diagrams, keeps the model in a directed acyclic graph data structure Software used to edit these diagrams, keeps the model in a directed acyclic graph data structure
for this purpose. for this purpose.
%\end{document}

View File

@ -5,6 +5,7 @@
\usepackage{fancyhdr} \usepackage{fancyhdr}
\usepackage{tikz} \usepackage{tikz}
\usepackage{amsfonts,amsmath,amsthm} \usepackage{amsfonts,amsmath,amsthm}
\usetikzlibrary{shapes.gates.logic.US,trees,positioning,arrows}
\input{../style} \input{../style}
\usepackage{ifthen} \usepackage{ifthen}
\usepackage{lastpage} \usepackage{lastpage}

Binary file not shown.

View File

@ -3,7 +3,11 @@
\usepackage{graphicx} \usepackage{graphicx}
\usepackage{fancyhdr} \usepackage{fancyhdr}
\usepackage{tikz} \usepackage{tikz}
\usepackage{amsfonts,amsmath} \usepackage{amsfonts,amsmath}
\usetikzlibrary{shapes,arrows}
\usepackage{verbatim}
\usepackage{ifthen} \usepackage{ifthen}
\newboolean{paper} \newboolean{paper}

View File

@ -125,6 +125,96 @@ This analysis and symptom collection process is described in detail in the Sympt
%\begin{comment}
%
%:Title: Control system principles
%
%:Tags: Block diagrams
%
%
%
%An example of a control system with a feedback loop. Block diagrams like this
%
%are quite time consuming to create by hand. The relative node placement feature
%
%makes it a bit easier, but it works best when the nodes have equal widths.
%
%However, the results are quite pleasing and hopefully worth the effort.
%
%You can probably speed up the process by creating custom macros.
%
%\end{comment}
%
%
%\tikzstyle{block} = [draw, fill=blue!20, rectangle,
%
% minimum height=3em, minimum width=6em]
%
%\tikzstyle{sum} = [draw, fill=blue!20, circle, node distance=1cm]
%
%\tikzstyle{input} = [coordinate]
%
%\tikzstyle{output} = [coordinate]
%
%\tikzstyle{pinstyle} = [pin edge={to-,thin,black}]
%
%
%
%% The block diagram code is probably more verbose than necessary
%
%\begin{tikzpicture}[auto, node distance=2cm,>=latex']
%
% % We start by placing the blocks
%
% \node [input, name=input] {};
%
% \node [sum, right of=input] (sum) {};
%
% \node [block, right of=sum] (controller) {Controller};
%
% \node [block, right of=controller, pin={[pinstyle]above:Disturbances},
%
% node distance=3cm] (system) {System};
%
% % We draw an edge between the controller and system block to
%
% % calculate the coordinate u. We need it to place the measurement block.
%
% \draw [->] (controller) -- node[name=u] {$u$} (system);
%
% \node [output, right of=system] (output) {};
%
% \node [block, below of=u] (measurements) {Measurements};
%
%
%
% % Once the nodes are placed, connecting them is easy.
%
% \draw [draw,->] (input) -- node {$r$} (sum);
%
% \draw [->] (sum) -- node {$e$} (controller);
%
% \draw [->] (system) -- node [name=y] {$y$}(output);
%
% \draw [->] (y) |- (measurements);
%
% \draw [->] (measurements) -| node[pos=0.99] {$-$}
%
% node [near end] {$y_m$} (sum);
%
%\end{tikzpicture}
%
\section{ Modern Devices } \section{ Modern Devices }
From the automobile to the microwave oven, we increasingly rely on From the automobile to the microwave oven, we increasingly rely on