NicklasVraa ELABorate Save

A pure symbolic circuit analyzer.

Project README

ELABorate

ELABorate is a circuit analysis tool capable of pure symbolic analysis, as well as partial or complete numerical evaluation. Currently written and run in MATLAB. ELABorate is geared towards circuit analysis and design, but has applications for any general system analysis, such as controller design. The plan is to either move to a standalone application, when MATLAB coder gains support for the symbolic math toolbox, or move to Python and the SymPy library.

See the Wiki for a run-down of the program's features, or check out my bachelor's thesis for all the details.

Download

How is it different?

Contrary to other circuit analysis software, like all SPICE-based programs, ELABorate does not need numerical values, and will tell you how a circuit behaves for ANY numerical value, by returning circuit equations, rather than a number. Doing symbolic calculations allow for much broader understanding of a circuit. A couple of 'symbolic-spice' programs have been emerging very recently, but all are in the demo stage or abandoned and none seem that usable.

How does it work?

The most basic functionality is: give the program a netlist, and it will return the circuit equations. These equations contain all the information one needs to understand the behavior of the circuit.

Future Additions

  • Supporting larger structures like ideal-opamps, basic common amplifiers.
  • Subcircuit functionality, where you can package a netlist as a single component to be used in other netlists.
  • Transfer-function-to-circuit functionality where you define a transfer function and get a netlist in return.
  • Image-to-netlist function, using MATLAB computer vision library.

Examples

Below are links to handful of printouts of MATLAB livescripts, that showcase some of the features of ELABorate, as it currently is.

See more examples here.

Adding elements

To add an element, have the element class inherit from the Element class. Make sure to update the Circuit class, especially the functions relating to updating element arrays.


LEGAL NOTICE: This repository, including any and all of its forks and derivatives, may NOT be used in the development or training of any machine learning model of any kind, without the explicit permission of the owner of the original repository.

Open Source Agenda is not affiliated with "NicklasVraa ELABorate" Project. README Source: NicklasVraa/ELABorate
Stars
26
Open Issues
1
Last Commit
1 year ago
License

Open Source Agenda Badge

Open Source Agenda Rating