resistance: Resistance for arbitrarily connected networks of resistors

Description Usage Arguments Details Note Author(s) References See Also Examples

Description

Given a resistance matrix, return the resistance between two specified nodes.

Usage

1
resistance(A, earth.node, input.node, current.input.vector=NULL, give.pots = FALSE)

Arguments

A

Resistance matrix

earth.node

Number of node that is earthed

input.node

Number of node at which current is put in: a nominal 1 Amp

current.input.vector

Vector of currents that are fed into each node. If supplied, overrides the value of input.node, and effectively sets give.pots to TRUE because if various currents are fed into the network at various points, the concept of “resistance” becomes meaningless.

Setting this argument to c(0,...,0,1,0,..0) (where the “1” is element jj) is equivalent to not setting current.input.vector and setting input.node to jj.

give.pots

Boolean, with TRUE meaning to return the potential of each node (out.node being at zero potential); and default FALSE meaning to return just the resistance between in.node and out.node.

Details

The function's connection to resistor physics is quite opaque. It is effectively a matrix version of Kirchoff's law, that the (algebraic) sum of currents into a node is zero.

Note

This function is essentially a newbie wrapper for circuit(), which solves a much more general problem. The function documented here, however, is clearer and (possibly) faster; it also gives an explicit resistance if give.pots is not set.

Use function currents() (or currents.matrix()) to calculate the currents flowing in the resistor array.

Author(s)

Robin K. S. Hankin

References

See Also

array.resistance

Examples

1
2
  resistance(cube(),earth.node=1, input.node=7) #known to be 5/6 ohm
  resistance(cube(),1,7, give=TRUE)

Example output

[1] 0.8333333
[1] 0.0000000 0.3333333 0.5000000 0.3333333 0.3333333 0.5000000 0.8333333
[8] 0.5000000

ResistorArray documentation built on May 2, 2019, 7:26 a.m.