electric network symbols
Adds a resistor, capacitator, node, amplifier, ... to a diagrom
en.Resistor (mid, width = 0.05, length = 0.1, lab = NULL, pos = 0, dtext = 0., vert = TRUE, ...) en.Capacitator (mid, width = 0.025, length = 0.1, lab = NULL, pos = 2.5, dtext = 0.04, vert = TRUE, ...) en.Transistor (mid, gate, drain, source, r = 0.05, lab = NULL, pos = 0, dtext = 0, ...) en.Node(mid, cex = 1, lab = NULL, pos = 2.5, dtext = 0.025, ...) en.Amplifier(mid, r = 0.05, lab = NULL, pos = 0, dtext = 0, ...) en.Signal(mid, r = 0.03, lab = NULL, pos = 0, dtext = 0.025, ...) en.Ground(mid, width = 0.075, length = 0.1, n = 4, dx = 0.2, ...) enResistor(...)
mid
: midpoint (x,y) of the symbol.width
: width of the symbol.length
: length of the symbol.lab
: one label to be added in the symbol.pos
: position of the label in the symbol; 1 = below; 2 = left; 3 = upper, 4 = right; 1.5 = below-left, ...dtext
: shift in x- and/or y-direction for the textvert
: if TRUE
then vertically arrangedgate
: position (x,y) of the gate terminal of the en.Transistor
.drain
: position (x,y) of the drain terminal of the en.Transistor
.source
: position (x,y) of the source terminal of the en.Transistor
.r
: radius of en.Signal
and en.Amplifier
cex
: size of node pch (en.Node
)n
: number of horizontal lines in (en.Ground
)dx
: size reduction of horizontal lines in (en.Ground
)...
: other arguments passed to functions.Karline Soetaert karline.soetaert@nioz.nl.
enResistor is synonymous for en.Resistor (to trick the builder in adding this help file to the package)
## ============================================================================= ## en.Capacitator ## ============================================================================= emptyplot(main = "en.Capacitator") straightarrow(c(0.5, 0.9), c(0.5, 0.1), arr.pos = 0.3, arr.length = 0.25, arr.type = "triangle") en.Capacitator(c(0.5, 0.5), width = 0.075, length = 0.5, vert = TRUE) text(0.4, 0.65, "i", font = 3, cex = 2) straightarrow(c(0.8, 0.3), c(0.8, 0.77), arr.pos = 1, arr.length = 0.25, arr.type = "triangle", lwd = 1) text(0.925, 0.65, "v", font = 3, cex = 2) text(0.15, 0.5, "C", font = 3, cex = 2) box(col = "grey") ## ============================================================================= ## en.Resistor ## ============================================================================= emptyplot(main = "en.Resistor") straightarrow(c(0.5, 0.9), c(0.5, 0.1), arr.pos = 0.2, arr.length = 0.25, arr.type = "triangle", lwd = 1) text(0.4, 0.85, "i", font = 3, cex = 2) en.Resistor(c(0.5, 0.5), width = 0.25, length = 0.35 ) straightarrow(c(0.8, 0.3), c(0.8, 0.77), arr.pos = 1, arr.length = 0.25, arr.type = "triangle", lwd = 1) text(0.925, 0.65, "v", font = 3, cex = 2) text(0.5, 0.5, "R", font = 3, cex = 2) box(col = "grey") ## ============================================================================= ## en.Signal ## ============================================================================= emptyplot(main = "voltage source, en.Signal") lines(c(0.5, 0.5), c(0.1, 0.9)) en.Signal(c(0.5, 0.5), r = 0.15) straightarrow(c(0.8, 0.3), c(0.8, 0.77), arr.pos = 1, arr.length = 0.25, arr.type = "triangle", lwd = 1) text(0.925, 0.65, "v", font = 3, cex = 2) box(col = "grey") ## ============================================================================= ## en.Ground ## ============================================================================= emptyplot(main = "en.Ground") straightarrow(c(0.5, 0.7), c(0.5, 0.25), arr.pos = 1.0, arr.length = 0.25, arr.type = "triangle", lwd = 1) en.Ground(c(0.5, 0.65), width = 0.25, length = 0.35 ) box(col = "grey") ## ============================================================================= ## en.Node ## ============================================================================= emptyplot(main = "en.Node") rect(0.2, 0.2, 0.8, 0.8) en.Node(c(0.2, 0.2), lab = "N1" , pos = 1.5) en.Node(c(0.2, 0.8), lab = "N2" , pos = 2.5) en.Node(c(0.8, 0.8), lab = "N3" , pos = 3.5) en.Node(c(0.8, 0.2), lab = "N2" , pos = 4.5) box(col = "grey") ## ============================================================================= ## en.Amplifier example ## ============================================================================= emptyplot(main = "en.Amplifier") en.Amplifier(c(0.5, 0.5), r = 0.15) box(col = "grey") ## ============================================================================= ## en.Transistor example ## ============================================================================= emptyplot(main = "enTransistor") gate <- c(0.1, 0.5) mid <- c(0.5, 0.5) drain <- c(0.9, 0.9) source <- c(0.9, 0.1) en.Transistor(mid = mid, gate = gate, drain = drain, source = source, r = 0.15) text(0.2, 0.4, "Gate", font = 3) text(0.8, 0.9, "Drain", font = 3, adj = 1) text(0.8, 0.1, "Source", font = 3, adj = 1) box(col = "grey") ## ============================================================================= ## position of text examples ## ============================================================================= mf <- par (mfrow = c(2, 2)) openplotmat(main = "pos") segments(0, 0.5, 1, 0.5) for (i in 4:0) en.Resistor( mid = c(0.5, 0.5), width = 0.25, length = 0.25, lab = i, pos = i, dtext = 0.2) openplotmat(main = "pos") segments(0, 0.5, 1, 0.5) for (i in 1:4) en.Resistor( mid = c(0.5, 0.5), width = 0.25, length = 0.25, lab = i+0.5, pos = i+0.5, dtext = 0.25) openplotmat(main = "vert = TRUE") segments(0.5, 0, 0.5, 1) for (i in 1:4) en.Resistor( mid = c(0.5, i/5), width = 0.075, length = 0.125, lab = substitute(R[i], list(i = i) )) openplotmat(main = "vert = FALSE") segments(0, 0.5, 1, 0.5) for (i in 1:4) en.Resistor( mid = c(i/5, 0.5), width = 0.075, length = 0.125, lab = substitute(R[i], list(i = i) ), vert = FALSE) par(mfrow = mf) ## ============================================================================= ## A small transistor example ## ============================================================================= par(lwd = 1.5) par(mar = c(0, 0, 2, 0)) emptyplot(main = "transistor Amplifier", ylim = c(-0.1, 1), xlim = c(-0.1, 1.1), asp = FALSE) x1 <- 0; x2 <- 0.2; x3 <- 0.4; x4 <- 0.6; x5 <- 0.8; x6 <- 1; y1 <- 0.05; y2 <- 0.4; y3 <- 0.5; y4 <- 0.6; y5 <- 0.95 x23 <- (x2 + x3)/2 x56 <- (x5 + x6)/2 lines(c(x2, x6, x6, x2, x2, x1, x1, x23, x3, x3), c(y1, y1, y5, y5, y1, y1, y3, y3, y4, y5)) lines(c(x3, x3), c(y2, y1)) lines(c(x3, x4, x4), c(y2, y2, y1)) lines(c(x3, x5, x5), c(y4, y4, y1)) en.Transistor(mid = c(x23, y3), gate = c(x2, y3), drain = c(x3,y4), source = c(x3,y2), r = 0.035) en.Signal(c(x1, 0.2), lab = expression("U"["in"])) en.Signal(c(x6, y2), lab = expression("U"["b"])) straightarrow(c(x1 - 0.05, 0.23), c(x1 - 0.05, 0.17), arr.pos =1, arr.type = "triangle", lwd = 1) straightarrow(c(x6 + 0.05, y2 + 0.03), c(x6 + 0.05, y2 - 0.03), arr.pos = 1, arr.type = "triangle", lwd = 1) en.Node(c(x1, y3), lab = "u1") en.Node(c(x2, y3), lab = "u2") en.Node(c(x3, y2), lab = "u3", pos = 1.5) en.Node(c(x3, y4), lab = "u4", pos = 2.5) en.Node(c(x5, y4), lab = "u5") en.Capacitator(c(0.5*(x1 + x2),y3), lab = "C1", vert = FALSE) en.Capacitator(c(x4, y4), lab = "C3", vert = FALSE) en.Capacitator(c(x4, 0.5*(y1+y2)), lab = "C2", vert = TRUE) en.Resistor(c(x1, y2), lab = "R0") en.Resistor(c(x2, 0.5*(y1+y2)), lab = "R1") en.Resistor(c(x2, 0.5*(y4+y5)), lab = "R2") en.Resistor(c(x3, 0.5*(y4+y5)), lab = "R4") en.Resistor(c(x3, 0.5*(y1+y2)), lab = "R3") en.Resistor(c(x5, 0.5*(y1+y2)), lab = "R5") en.Ground(c(1.0, 0.05))
Created for drawing the electrical network in the book Soetaert Karline, Jeff Cash and Francesca Mazzia. Solving differential equations in R. Springer.
textdiamond
, textellipse
, textempty
, texthexa
, textmulti
, textplain
, textround
Useful links