js-circuit-solver
v1.0.12
Published
Lightweight library aimed at solving/simulating simple electrical circuits
Downloads
24
Readme
js-circuit-solver
Lightweight library aimed at solving/simulating simple electrical circuits
Install
Available as js-circuit-solver on npm.
Run:
npm install js-circuit-solver
Functions
This library currently provides a single function to solve simple resistive circuits. It takes in a circuit object and returns a solved circuit object. \
solveResistiveCircuit
function solveResistiveCircuit(circuit, groundNode, sourceNode, sourceVoltage)
Usage:
- circuit: Object containing circuit information. Array where element at index i is the array of the connections that node i has with other nodes.
- groundNode: Node to be considered as ground
- sourceNode: Node to be considered as source
- sourceVoltage: Voltage of the source node
circuit Object
The following is an example circuit consisting of the source and ground nodes connected by 3 parallel branches each having 2 resistors. Example circuit diagram:
|---R1---R2---|
| |
S---R3---R4---G
| |
|---R5---R6---|
Since the circuit only contains resistors, we can solve it using the function solveResistiveCircuit(circuit, groundNode, sourceNode, sourceVoltage)
.
We want to set the source node (node 0) at 1V and ground node (node 1) at 0V. We can represent this circuit as the following circuit object:
[
[
{
to: 2,
resistance: 1
},
{
to: 3,
resistance: 1
},
{
to: 4,
resistance: 1
}
],
[
{
to: 2,
resistance: 1
},
{
to: 3,
resistance: 1
},
{
to: 4,
resistance: 1
}
],
[
{
to: 0,
resistance: 1
},
{
to: 1,
resistance: 1
}
],
[
{
to: 0,
resistance: 1
},
{
to: 1,
resistance: 1
}
],
[
{
to: 0,
resistance: 1
},
{
to: 1,
resistance: 1
}
]
]
We get in return the following result, which is an array of objects specifying the i-th node's voltage and current flowing to each connected node:
[
{
voltage: 1,
connections: [
{
to: 2,
current: 0.5
},
{
to: 3,
current: 0.5
},
{
to: 4,
current: 0.5
}
]
},
{
voltage: 0,
connections: [
{
to: 2,
current: -0.5
},
{
to: 3,
current: -0.5
},
{
to: 4,
current: -0.5
}
]
},
{
voltage: 0.5,
connections: [
{
to: 0,
current: -0.5
},
{
to: 1,
current: 0.5
}
]
},
{
voltage: 0.5,
connections: [
{
to: 0,
current: -0.5
},
{
to: 1,
current: 0.5
}
]
},
{
voltage: 0.5,
connections: [
{
to: 0,
current: -0.5
},
{
to: 1,
current: 0.5
}
]
}
]