Electronic – software program that calculates the Transfer Function for a given circuit?

circuit analysissoftware

I'm asking for a program (either freeware or not) where you can draw your circuit as the input, as it happens in PSPice, Multisim, LTSpice etc.., then specify two nodes of reference, say \$ V_{out} \$ and \$V_{in}\$, or \$V_1\$ and \$I_2\$ and then the program outputs the transfer function e.g. \$ V_{out}(s)/V_{in}(s) \$ (preferably in the s-plane), or some impedance function \$V_{in}(s)/I_{in}(s)\$ or any function accordingly. In my opinion this would be the perfect program to check your circuit analysis on the s-plane.

For example if you draw this Sallen-key circuit in the following picture

enter image description here

and specify your nodes of reference \$ V_{out} \$ and \$V_{in}\$, it will output the transfer function above (in terms of the circuit components not the values they have, just like in the picture). Thanks in advance.

Best Answer

If you're looking for software that gives you the symbolic (i.e. formula) result, none of those mentioned in the comments can do that, as far as I know. What you're looking for is called a symbolic (as opposed to numerical) circuit analysis software.

In practical terms, there's free, education-oriented piece of software which does it, well there's two of them in fact

  • the original SapWin, free but not open source
  • and the open source variant/successor/reimplementation QSapecNG

Both have usability/interface quirks but are basically usable and save time in some cases of more complex non-standard networks.

There's also a non-free Mathematica plugin called Analog Insydes which can do this and is the Cadillac version basically because it can make use of Mathematica's formula simplification engine etc., which helps in some more hairy cases; they have a 30-day demo version freely available.

The list above in non-exhaustive, but stuff I've used occasionally and know to work. Besides those, supposedly TINA v10 (this is not the v9 free TI version) can do it too but I've not tried it. Also Syrup for Maple is a free add-on but not terribly well maintained. MATLAB by itself has no built-in function for this as far as I know; well, I found a free add-on for it called SCAM just now, but I haven't tried it.