An elegant circuitry simulation website.
Overall Status: Under Development
Using TypeScript and working on several parts:
-
Main Circuit Library:
Circuit
: Main wrapper for the circuit simulationCircuit.Unit
: Circuit grid system represented by circuit-unit to place different components or wireCircuit.Electronic
: Electronic component classCircuit.Electronic.Unit
: Electronic component unit mapping with respect to the grid circuit unitCircuit.Graph
: The graph data structure to represent the circuit (converted from grid ofCircuit.Unit
)Circuit.GaussianElimination
: Implementation of Gaussian Elimination method for determine the result of multi-variable equations by representing and solving the matrixCircuit.Equation
: Construct node-voltage equationCircuit.SimultaneousEquations
: Collection of node-voltage equations and solve by Gaussian EliminationCircuit.Simulation
: The circuit simulation algorithm part using Nodal Voltage Analysis which consists of several phases including:- Supernode Propagation - Propagates through the circuit graph generated from
Circuit.Graph
and convert voltage source relatedCircuit.Graph.Node
into a single super node with different biased voltage - Node-Voltage Matrix Derivation - Deriving the node voltage matrix to solve for each components' (represented by
Circuit.Graph.Edge
) current values (based on KCL from Kirchhoff's Circuit Law) - [TBD] Ending Phase - After deriving the current of the loads such resistors, scanning through the circuit and derive rest of the node-voltage and other underived component's current according to KVL and KCL
- Supernode Propagation - Propagates through the circuit graph generated from
-
Using Jest test framework to write Unit/Integration tests
-
[Will Implement After Completing the Circuit Library] Frontend UI: Using Next.JS framework, Redux (with TypeScript)
- Details will be planned on the future...