Hi rapidcoder, yes - partly I agree, however, not in total. But I think it is an interesting discussion and perhaps some beginners can learn something from it. Therefore, some comments from my side:
Most of "Timestep too small" or "No Convergence in DC analysis" errors are caused by the engine using non-globally convergent algorithm, not the user. People just got used to them, and learned how to overcome those problems by changing settings, circuit topology etc. But just because you can often use some hackery to solve the problem, it doesn't mean the problem does not exist. There is no such thing like "no convergence" in reality. Lack of convergence guarantee is a failure of simulator, not the user.
May be I should say 98% or 95% (instead of 99%) are user-relevant? I agree, that indeed you have listed some cases (no convergence) where the program itself is the cause of some problems. On the other hand - I am involved in simulation activities since more than 20 years - and I must confess that I have noticed not very often the error message "No convergence". And, more than that, sometimes it was me who was responsible for this error due to some entry failures.
Quote LvW: But note: This way is neither logical nor gives it correct results because in reality no circuit starts signal processing from exactly zero volts. No transistor amplifier will give reasonable simulation results after disabling the bias point calculation.
Quote rapidcoder:Huh? So how come I always disable this option and get very accurate results of the TRAN analysis? Just as in the OP problem - disabling DC causes the results to be correct?
You are obviously wrong. If the circuit was unconnected from the power supply for long enough, and assuming it has no batteries inside or other power sources, it starts exactly from zero when connected to power supply.
Please read carefully my wording: I did not speak about power switch-on but about "signal processing". Obviously, this means: Desired action (amplification, filtering etc). Of course, if you like to watch the transient behaviour due to power switch-on you can cancel the dc bias calculation. But who wants this?
The operating point is reached long long after that. DC bias point calculation is a hack for getting bias point faster. It only saves you from running TRAN from zero initial condition and waiting (probably for a very long time) until the circuit stabilizes. .
I am afraid we speak about different modes of operation. Of course, you can disable dc point calculation and immediately start TRAN analyses - if you want to do this! This means: If you are interested to see how and when the circuit stabilizes.
But if I am interested in signal processing properties only (and this is normally the case) I think the dc bias option is the best and quickest option.
However, DC bias point calculation can get you totally incorrect results in some circuits, because it ignores dynamic behaviour of the circuit
I don't understand this statement. Please, can you give an example? Dynamic behaviour is time dependent, correct?
Do you speak about time dependent unit or parts?
Try to calculate DC bias point for a transistor amplifier powered from an AC voltage source, rectified by any diode rectifier (simulated together as a one circuit). You will get incorrect results - the DC analysis will tell you the output voltage from the rectifier is 0, therefore the operating point of the aplifier is also 0, which is obviously much different from what you get when you build the circuit in reality.
Good point. I think, this is a good example for my claim that the user often is the source of errors.
Of course, I must not command a dc analysis if the main supply is not a dc source. It's clearly a user fault.
BTW: Probably the main misconception about SPICE is that it is a simulation program. It is not (at least not a real-time simulation program like e.g. iCircuit). It is a circuit analysis program. It is extremely useful when you know how each analysis is defined mathematically and what it does. However if you are not careful, you can easily ask it to calculate something that has no physical meaning.
Agreed to 100%.
E.g. DC point calculation algorithm is non-physical. No real circuit reaches the operating point by "disconnecting capacitors and short-circuiting inductors" and SPICE does exactly that.
You are right - it is not physical insofar as it neglects the time. On the other hand - don`t forget that we are doing the same by hand calculation of the dc properties. We neglect C and L. Is this wrong? Not a suitable example, for my opinion.
Generations of engineers have done this before PC's were available. I think the human brain is capable enough to extrapolate how the status will be after all power switch-on transients have disappeared. As an example, in control electronics we very often use the "final value theorem" that does exactly the same. It is a very effective tool.
The same about AC analysis - it is just response of the linearised circuit - its results are ok as long the circuit obeys some assumptions about linearity, otherwise they are totally wrong.
No, the results are not "wrong" - this sounds to me as if the simulator did something wrong.
The user is faulty if he applies the (correct!) simulator results to a circuit that does not comply with the assumptions that were the basis for the simulation results (linearity).
Finally, I think you again have presented another good example for blaming the program although the user has made an error.
________________
Regards
LvW