starting to draw electric circuits in tex

This commit is contained in:
Robin Clark 2011-02-13 19:20:16 +00:00
parent c0e57b4513
commit 952bbf04ca
3 changed files with 271 additions and 3 deletions

220
nr/electComp.sty Normal file
View File

@ -0,0 +1,220 @@
% Electrical Circuits with pgf
% Author: bumesh AAATTT cedt [.] iisc . ernet . in
\NeedsTeXFormat{LaTeX2e}[1999/01/01]
\ProvidesPackage{electComp}[2008/03/12]
\RequirePackage{tikz}
\usepgflibrary{decorations.pathreplacing}
%:'e,'f move .
\pgfdeclaredecoration{recresistor}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance} % connector circle
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{0}} % lead
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.9\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.9\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength*0.5}}
\pgfpathlineto{\pgfpoint{0.1\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength*0.5}}
\pgfpathmoveto{\pgfpoint{0.9\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{1.0\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{sqWave}{initial}
{
\state{initial}[width=0.5cm]
{
\pgfpathlineto{\pgfpoint{0.25cm}{0cm}}
\pgfpathlineto{\pgfpoint{0.25cm}{0.25cm}}
\pgfpathlineto{\pgfpoint{0.5cm}{0.25cm}}
\pgfpathlineto{\pgfpoint{0.5cm}{0}}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{switch}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance} % lead of device
\pgfpathlineto{\pgfpoint{0.25\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{0.25\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.75\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathcircle{\pgfpoint{0.75\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{cell}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength}}
\pgfpathcircle{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{-0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{-0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0.5\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{capacitor}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.5\pgfdecoratedinputsegmentremainingdistance}{-\pgfdecorationsegmentlength}}
\pgfpathcircle{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{-1\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.6\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathmoveto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{diode}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{-1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.35\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0.75\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{-0.75\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{ground}{initial}
{
\state{initial}[width=+\pgfdecoratedinputsegmentremainingdistance]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{-1.0\pgfdecorationsegmentlength}}
\pgfpathlineto{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}
\pgfpathlineto{\pgfpoint{0.65\pgfdecoratedinputsegmentremainingdistance}{1.0\pgfdecorationsegmentlength}}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\pgfdeclaredecoration{inductor}{initial}
{
\state{initial}[switch if less than=%
1.5\pgfdecorationsegmentlength+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude to last,
width=+\pgfdecorationsegmentlength]
{
\pgfsetlinewidth{1pt}
\pgfpathcircle{\pgfpoint{0}{0}}{0.05\pgfdecoratedinputsegmentremainingdistance}
\pgfpathcurveto
{\pgfpoint@oncoil{0 }{ 0.555}{1}}
{\pgfpoint@oncoil{0.445}{ 1 }{2}}
{\pgfpoint@oncoil{1 }{ 1 }{3}}
\pgfpathcurveto
{\pgfpoint@oncoil{1.555}{ 1 }{4}}
{\pgfpoint@oncoil{2 }{ 0.555}{5}}
{\pgfpoint@oncoil{2 }{ 0 }{6}}
\pgfpathcurveto
{\pgfpoint@oncoil{2 }{-0.555}{7}}
{\pgfpoint@oncoil{1.555}{-1 }{8}}
{\pgfpoint@oncoil{1 }{-1 }{9}}
\pgfpathcurveto
{\pgfpoint@oncoil{0.445}{-1 }{10}}
{\pgfpoint@oncoil{0 }{-0.555}{11}}
{\pgfpoint@oncoil{0 }{ 0 }{12}}
}
\state{last}[width=.5\pgfdecorationsegmentlength+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude+%
\pgfdecorationsegmentaspect\pgfdecorationsegmentamplitude,next state=final]
{
\pgfpathcurveto
{\pgfpoint@oncoil{0 }{ 0.555}{1}}
{\pgfpoint@oncoil{0.445}{ 1 }{2}}
{\pgfpoint@oncoil{1 }{ 1 }{3}}
\pgfpathcurveto
{\pgfpoint@oncoil{1.555}{ 1 }{4}}
{\pgfpoint@oncoil{2 }{ 0.555}{5}}
{\pgfpoint@oncoil{2 }{ 0 }{6}}
\pgfpathcircle{\pgfpoint{\pgfdecoratedinputsegmentremainingdistance}{0}}%
{0.05\pgfdecoratedinputsegmentremainingdistance}
}
\state{final}
{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\def\pgfpoint@oncoil#1#2#3{%
\pgf@x=#1\pgfdecorationsegmentamplitude%
\pgf@x=\pgfdecorationsegmentaspect\pgf@x%
\pgf@y=#2\pgfdecorationsegmentamplitude%
\pgf@xa=0.083333333333\pgfdecorationsegmentlength%
\advance\pgf@x by#3\pgf@xa%
}

View File

@ -3,7 +3,13 @@
\ifthenelse {\boolean{paper}}
{
\begin{abstract}
This paper looks in detail a the generic `resistor'
as a component in safety critical designs and
how its potential failure modes are taken into
account in various safety design standards.
A `networked resistor' equivalent to single
resistors is proposed for highly safety critical measurement sensitive
designs, as it has two not three failure modes to consider.
\end{abstract}
}
{
@ -69,4 +75,46 @@ Assume resistors not from same batch.
Show how parameter change is cancelled out, use sum of squares statistics
to show by how much.
\begin{figure}
\begin{tikzpicture}[line width=1pt]
\draw (0,0) -- ++(0,1cm);
\draw[decorate, decoration=cell] (0,1cm) -- ++(0,1.5cm);
\draw (0,2.5cm) |- ++(1cm,1cm);
\draw[decorate, decoration=diode] (1cm,3.5cm) -- ++(1.5cm,0);
\draw (2.5cm,3.5cm) -- ++(2,0);
\draw (3.5cm,3.5cm) -- ++(0,-1);
\draw[decorate, decoration=switch] (3.5cm,2.5cm) -- ++(0,-1.5cm);
\draw[decorate,
decoration={inductor,amplitude=0.35cm, segment length=0.75cm}]
(4.5cm,3.5cm) -- ++(1.5cm,0);
\draw (6cm,3.5cm) -- ++(1,0);
\draw (7cm,3.5cm) -- ++(3,0);
\draw (8cm,3.5cm) -- ++(0,-1);
\draw[decorate, decoration=capacitor] (8cm,2.5cm) -- ++(0,-1.5cm);
\draw (0cm,0cm) -| ++(8cm,1cm);
\draw (3.5cm,0cm) -- ++(0cm,1cm);
\draw (10cm,3.5cm) -- ++(0,-1);
\draw[decorate, decoration=recresistor] (10cm,2.5cm) -- ++(0,-1.5cm);
%\draw[decorate, decoration=recresistor] (2.5cm,10cm) -- ++(0,-1.5cm);
\draw (8cm,0cm) -| ++(2cm,1cm);
\draw[decorate, decoration=ground] (5,0cm) -- ++(0,-1.5cm);
\end{tikzpicture}
\caption{a circuit}
\end{figure}
\begin{figure}
\begin{tikzpicture}[line width=1pt]
\draw (0,0) -- ++(1cm,1cm);
\draw[decorate, decoration=recresistor] (1cm,2cm) -- ++(0,-1.5cm);
\draw[decorate, decoration=recresistor] (2cm,2cm) -- ++(0,-1.5cm);
\draw[decorate, decoration=recresistor] (1cm,4cm) -- ++(0,-1.5cm);
\draw[decorate, decoration=recresistor] (2cm,4cm) -- ++(0,-1.5cm);
%\draw[decorate, decoration=recresistor] (2.5cm,10cm) -- ++(0,-1.5cm);
\draw (8cm,0cm) -| ++(2cm,1cm);
\draw[decorate, decoration=ground] (5,0cm) -- ++(0,-1.5cm);
\end{tikzpicture}
\caption{A `network resistor'}
\end{figure}

View File

@ -4,11 +4,11 @@
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage{amsfonts,amsmath,amsthm}
\usepackage{ifthen}
\newboolean{paper}
\setboolean{paper}{true} % boolvar=true or false
\usepackage{electComp}
\usetikzlibrary{decorations,decorations.pathmorphing,decorations.pathreplacing}
\input{../style}