diff --git a/noninvopamp/noninvopamp.tex b/noninvopamp/noninvopamp.tex index f9d7b83..2394f6f 100644 --- a/noninvopamp/noninvopamp.tex +++ b/noninvopamp/noninvopamp.tex @@ -415,6 +415,106 @@ back to their potential causes. \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) \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 for this purpose. +%\end{document} \ No newline at end of file diff --git a/noninvopamp/paper.tex b/noninvopamp/paper.tex index 2491464..c5565bc 100644 --- a/noninvopamp/paper.tex +++ b/noninvopamp/paper.tex @@ -5,6 +5,7 @@ \usepackage{fancyhdr} \usepackage{tikz} \usepackage{amsfonts,amsmath,amsthm} +\usetikzlibrary{shapes.gates.logic.US,trees,positioning,arrows} \input{../style} \usepackage{ifthen} \usepackage{lastpage} diff --git a/related_papers_books/andrews-fta-tutor.pdf b/related_papers_books/andrews-fta-tutor.pdf new file mode 100644 index 0000000..99a4952 Binary files /dev/null and b/related_papers_books/andrews-fta-tutor.pdf differ diff --git a/sw_model/paper.tex b/sw_model/paper.tex index 57c9947..7de9aad 100644 --- a/sw_model/paper.tex +++ b/sw_model/paper.tex @@ -3,7 +3,11 @@ \usepackage{graphicx} \usepackage{fancyhdr} \usepackage{tikz} + \usepackage{amsfonts,amsmath} +\usetikzlibrary{shapes,arrows} + +\usepackage{verbatim} \usepackage{ifthen} \newboolean{paper} diff --git a/sw_model/sw_model.tex b/sw_model/sw_model.tex index 72da36c..4fc784f 100644 --- a/sw_model/sw_model.tex +++ b/sw_model/sw_model.tex @@ -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 } From the automobile to the microwave oven, we increasingly rely on