Friday, October 16, 2009

4. NL="Never Lies". Why?

There are two sorts of "lie" in simulation world.

Number one is "not intentional": simulator "thinks" it does everything right, but due to many reasons the result is not correct. The reasons could be: approximation error of numerical integration method, arithmetic rounding errors, wrong simulation time step or other simulation parameters, etc. The only way to determine if the result is correct is to know upfront, or at least approximately expect, what correct result is, based on your knowledge, practical experience, and even common sense. Not a big deal for many engineers, but could be a real trouble for students. Of course, it would be not honest declaring NL5 "never lies" that way. However, many problems common for Spice do not exist, or significantly reduced in NL5. 1) Basically, except very rare situations, calculation step is the only simulation parameter user should set up. If result is in question, just run simulation several times (it's fast!) with different steps: repeatable and stable result is most likely right. 2) Most of wrong results happen at switching points, where voltages and currents are rapidly changing and very often show erroneous oscillations and overshoots. In NL5, with true instant switching of ideal components, this almost never happens. 3) It is much easier to predict how correct result should look like for a schematic with ideal components rather than complex "real" models.

Number two is "intentional". Due to limitations of Spice algorithm, it is not able to simulate arbitrary schematic with arbitrary component parameters. For instance, many simulators do not allow capacitors connected in parallel, inductors connected in series, floating schematics, etc. To solve the problem, some very small or very high resistors are added into schematic, and those "hidden" features are not indicated on the schematic. This might be OK as long as those additions do not affect results much, or you are familiar with the tool and know what to expect (and where in the program all the settings are located). Otherwise you may have a hard time to find out why results do not correspond to schematic. NL5 does not add anything into schematic and simulates exactly what you ask for: "what you see is what you get".

I've probably exaggerated those problems a bit... But I believe that for efficient and fast design everything you do must be clear and "transparent". There should be nothing "hidden" your have to remember or always keep in mind, especially if it is critical to simulation process. Any "hidden" thing is a potential source of error and misinterpreting, and if it may happen, some time it will.

1 comment: