electricalnetwork function

electric network symbols

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(...)

Arguments

  • 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 text
  • vert: if TRUE then vertically arranged
  • gate: 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.

Author(s)

Karline Soetaert karline.soetaert@nioz.nl.

Note

enResistor is synonymous for en.Resistor (to trick the builder in adding this help file to the package)

Examples

## ============================================================================= ## 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))

Details

Created for drawing the electrical network in the book Soetaert Karline, Jeff Cash and Francesca Mazzia. Solving differential equations in R. Springer.

See Also

textdiamond, textellipse, textempty, texthexa, textmulti, textplain, textround

  • Maintainer: Karline Soetaert
  • License: GPL (>= 2)
  • Last published: 2020-09-30

Useful links