Simulator Improvements

Jul 11 2012, 10:00 PM PDT · 0 comments »

Our users have always been quick to test (and exceed!) the limits of the CircuitLab circuit simulation code, and while over the past few months we've quietly delivered small improvements such as revised MOSFET/BJT/JFET models, today we're happy to release our first major overhaul of our simulation engine. Since CircuitLab is a web-based application, no explicit update is necessary -- just launch the editor and you're automatically running the latest version!

A brief list of some issues we've addressed in this update:

  • Op-amp model convergence. Specifically, circuits built using the op-amp with voltage rails and positive feedback should no longer cause significant convergence problems in time-domain simulation.
  • Adaptive timesteps in transient solver. An initial timestep is still required, but the solver may now choose to "slow down" when convergence issues are detected.
  • Robust DC convergence solver. More aggressive algorithms to find DC solutions for high-feedback analog systems.
  • MOSFET model convergence
  • Frequency-domain solver issues relating to capacitors causing invalid matrices in rare situations.
  • Voltage-controlled switch parameter issues
  • Behavioral sources optimization for simple behavioral sources.
  • Simpler behavioral sources syntax. A behavioral expression can now use "V()" or "I()" (with no parameter inside the parentheses) to refer to the voltage across itself (similar to "(V(self.nA) - V(self.nB))"), or the current through itself (equal to "I(self.nA)"). This compact notation makes it easier to define non-linear sources and especially to copy and paste them for use in multiple places. For example, a behavioral current source might be "MAX(0, V()/10)" to become an ideal piecewise-linear diode, looking like an open circuit in reverse, and like a 10 ohm resistor forward.
  • Experimental "Behavioral Charge Store" allows specification of a Q=f(...) arbitrary function for modeling non-linear capacitors, etc. The default, Q = "1.0e-6 * V()" means that the device acts like an ideal 1uF capacitor.
  • Digital/mixed-mode DC solution issues
  • Digital T and JK flip flops
  • Darlington BJT symbols

If you've had simulation issues in the past, give your circuits another try and see how they do -- and please let us know on our forums.

While of course we'd prefer to release smaller updates more frequently, these changes required major surgery to our simulation engine. As usual, our entire mixed-mode simulation engine runs in client-side Javascript, providing a zero-install consistent circuit simulation experience to our academic, hobbyist, and professional engineering users across Windows, Mac OS X, Linux, and now iPad devices. With over a thousand people using the CircuitLab editor every day, and more than 21,000 unique saved circuits, we wanted to be sure everything was up to spec. Our team continues working to improve the capabilities and performance of our simulator. Thanks for your patience, and please give it a spin!


No comments yet. Be the first!

Leave a Comment

Please sign in or create an account to comment.

About CircuitLab

CircuitLab is an in-browser schematic capture and circuit simulation software tool to help you rapidly design and analyze analog and digital electronics systems.