The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Simulators >> RF Simulators >> Signal exceeds blowup quantity https://designers-guide.org/forum/YaBB.pl?num=1284463608 Message started by .matteo on Sep 14th, 2010, 4:26am |
Title: Signal exceeds blowup quantity Post by .matteo on Sep 14th, 2010, 4:26am Hi, I'm trying to simulate a lumped element balun but when I run the tran analysis I get this error: Code:
My network is passive. I also added huge res to ground to all the floating (and some of the not-floating) nodes and the DC value of all the inductance as initial condition. I realized that the voltage blows up when the derivative of the sin at the input is maximum. How can I solve this problem? Also, I tried to set the blowup parameter by creating a blow.txt file with Code:
but I get the error Code:
thanks .matteo |
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 14th, 2010, 8:28am I suspect that Spectre is confused by your quantity statement because you have given it in a Spice netlist, and the Spice parser is treating it as a voltage source. And it is odd that you are using the quantity statement to set the blowup limit to 1GV when the limit is 1GV by default. But you may be trying to treat the symptom rather than the cause of your problem. Do you expect your circuit to produce such large voltages? If not, you should inspect the offending signal and look for the classic pattern of exponential growth. If you see it, then your circuit is not passive. You can create a non-passive circuit using only resistors, capacitors, and inductors if you use a negative component value. You can use the info statement to have Spectre print the the largest and smallest value specified for each component parameter, which makes looking for negative values easy. However, there is another common situation that could cause this problem. If you are using a coupled inductor, you will need to assure that the inductance matrix is positive definite. -Ken |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 14th, 2010, 8:31am Show me netlists. I will check stability of your circuit by eigen values using Agilent GoldenGate. |
Title: Re: Signal exceeds blowup quantity Post by .matteo on Sep 14th, 2010, 8:50am Ken Kundert wrote on Sep 14th, 2010, 8:28am:
I was going to set another value if I got it working. It looks like you're right, it seems its treating it as a voltage source. I tried to put it in the ocean script but it gives the same error. Can you teach me how to check for the smallest/largerst voltage in the circuit using the info statement? I dont know how to do it, even a reference is fine pancho_hideboo wrote on Sep 14th, 2010, 8:31am:
I attached my netlist, thanks |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 14th, 2010, 8:59am Run transient analysis with sinephase=0 not 45. .matteo wrote on Sep 14th, 2010, 8:50am:
|
Title: Re: Signal exceeds blowup quantity Post by .matteo on Sep 14th, 2010, 9:02am pancho_hideboo wrote on Sep 14th, 2010, 8:59am:
I did it, it doesn't change anything. (I set it to 45 to check for the derivative position, but nothing interesting unfortunately.) |
Title: Re: Signal exceeds blowup quantity Post by .matteo on Sep 14th, 2010, 9:04am Quote:
That's great, thank you a lot. Can I do it somehow using Agilend ADS? I dont have Agilent GoldenGate |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 14th, 2010, 9:18am I think increasing "blowup parameter" results in completely vain. See http://www.designers-guide.org/Forum/YaBB.pl?num=1284058751/4#4 .matteo wrote on Sep 14th, 2010, 9:04am:
Then evaluate K-factor. You could get some informations unless unstability poles of your circuit are canceled by zeros. Even if unstability poles of your circuit are canceled by zeros, transient behavior could be unstable. This is known as "Internal Unstability". See http://www.designers-guide.org/Forum/YaBB.pl?num=1190272820/18#18 |
Title: Re: Signal exceeds blowup quantity Post by .matteo on Sep 14th, 2010, 9:32am pancho_hideboo wrote on Sep 14th, 2010, 9:18am:
That's what I did before posting and K is always more than one. Ok, I think I should wait for the results of your stability test. Meanwhile I'll look for the info statement thing to try to understand what's going on. Thanks |
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 14th, 2010, 11:34am For information on the info statement, run "spectre -h info". You probably need ... Code:
|
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 14th, 2010, 11:50am Don't bother with the info statement, there are no negative values. I am certain the problem is with your mutual inductor. To confirm this you should build the inductance matrix and feed it into Matlab or Octave and check to see if it is positive definite, and I am pretty confident that it is not. Once you confirm that the inductance matrix is not positive definite, then you will need to modify it to make it so. It is generally sufficient to make it diagonally dominant (see http://en.wikipedia.org/wiki/Diagonally_dominant_matrix). You will probably need to reduce the size of the couplings. Check that. You will need to reduce the size of your couplings. The couplings of 1 will definitely have to go. Cutting them all by a factor of 2 allows the simulation to complete. -Ken |
Title: Re: Signal exceeds blowup quantity Post by RFICDUDE on Sep 15th, 2010, 3:26am To debug the problem, you probably want to start by removing the mutual coupling (k=1) to the eddy current loss model components. If that does not stop the DC convergence issue, then remove all the mutual coupling. You certainly need the coupling between windings to represent the physical coupling, but I'm not sure how you go about verifying that the eddy current loss model is correct and physically accurate. |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 15th, 2010, 8:09am Code:
(1) Stability Judgement by Eigen Values using Agilent GoldenGate. It reports this circuit is stable. (2) HB Analysis can converge even if Ka=1.0. (3) Transient Analaysis of Cadence Spectre can complete without "Blowup" if we reduce Ka to 0.4. (4) Transient Analaysis of Agilent GoldenGate can complete without "internal time step is too small" if we reduce Ka to 0.45. (5) Transient Analaysis of Synopsys HSPICE can complete without "internal time step is too small" even if we set Ka=1.0. Here amplitudes of "s1" and "s2" for (3) and (4) are same as amplitudes of result (2). Amplitudes of (5) are completely same as result (2). |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 15th, 2010, 8:19am The reason why HSPICE gave half results compared to HB results is that I was not adding "'" in ".param" statments. Code:
If I adds "'" in ".param" statement, Transient results of HSPICE can give completely same results as HB analysis of Agilent GoldenGate. "Netlist for HSPICE" Quote:
|
Title: Re: Signal exceeds blowup quantity Post by .matteo on Sep 15th, 2010, 9:02am @pancho_hideboo Thank you very much for spending time on simulting / helping me out understanding this issue. @ken,RFICDUDE Yes, I tried to decrease the coupling factor and (as pancho_hideboo found out) my circuit converges for Ka<=3.9 ..even if now its not the same balun of before (and I think I've to go back to ADS and fit it again) I'm still confused though. pancho_hideboo, you checked for stability with Agilent GoldenGate and I guess you found the inductance matrix positive definite == all the eigenvalues greater than zero, right? So, why for ka=1 is still not converging? Am I messing up two different kind of stabilities? |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 15th, 2010, 9:09am .matteo wrote on Sep 15th, 2010, 9:02am:
Total energy stored in inductors with coupling is negative for your circuits with your parameters. This is "Non-Physical". This situation is similar to "Non-Causal-System" which is also "Non Physical". There is no problem in pure frequency domain HB Analysis for handling "Non-Causal-System". But it is not true for time domain analysis. |
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 15th, 2010, 12:21pm Let me try to clear a few things up. First, this is not a convergence problem, and it is not a Spectre problem. Your circuit is unstable and Spectre is right to issue the blow up message because the resulting waveforms do shoot off to infinity. Your circuit is unstable because your inductance matrix is not positive definite. I know this because I converted your netlist into a python script that constructed and analyzed the eigenvalues of your inductance matrix. That script is: Code:
It computed the eigenvalues as Code:
Several of the eigenvalues are negative, meaning that the inductance matrix is not positive definite, meaning that your coupled inductor is not passive. So this leaves three questions to be answered. 1. Why does ADS eigenanalysis report the circuit as being stable? I don't know why. Perhaps Pancho Hideboo accidentally modified the circuit, or perhaps there is a bug in ADS. A pole-zero analysis by Spectre reports RHP poles. 2. Why does harmonic balance analysis give a bounded result (even with k=1)? Like DC analysis, HB analysis computes a steady-state solution regardless of whether that solution is stable. In a very real sense, this is a problem with HB analysis because it can lead you to believe your circuit is working properly when it is really unstable. 3. Why do HSpice results remain bounded? I believe that this is because HSpice is using too large a timestep. It is a known problem with transient simulators that like HB simulators they too can sometimes ignore instabilities if they take too large a timestep. Forcing them to take smaller timesteps will eventually cause them to properly produce waveforms that exhibit the instability. One final comment. In his last post, Pancho Hideboo seems to suggest that the fact that HB simulators are capable of simulating non-physical systems is a good thing. In fact it is not. It can lead designers to into a false sense of security. For example, in this case if you were using only a harmonic balance simulator, you might have missed the fact that your inductor model is fundamentally flawed. -Ken |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 15th, 2010, 8:31pm Ken Kundert wrote on Sep 15th, 2010, 12:21pm:
Even if I set "delmax" fairly small, results are same. |
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 15th, 2010, 10:06pm Pancho Hideboo, Please post the full HSpice netlist. -Ken |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 16th, 2010, 8:15am Ken Kundert wrote on Sep 15th, 2010, 10:06pm:
"matteo.spi" Quote:
Top Netlist for HSPICE is http://www.designers-guide.org/Forum/YaBB.pl?num=1284463608/13#13. Here I add ".pz" statement. The following is a Top Netlist for Cadence Spectre Quote:
|
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 16th, 2010, 9:46am Ken Kundert wrote on Sep 15th, 2010, 12:21pm:
Quote:
First, I use Agilent GoldenGate not Agilent ADSsim. Even if total energy stored in inductors with coupling is negative, this circult as total system could be stable since it includes many resistors. So there can be stable for steady state. Pole-Zero Analysis of Synopsys HSPICE also reports no RHP pole like followings. "Results of PZ Analysis of Synopsys HSPICE" Quote:
"Results of Stability Analysis of Agilent GoldenGate" Quote:
|
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 16th, 2010, 10:01am "Results of PZ Analysis of Cadence Spectre" Quote:
(1) Results of poles and zeros are different from results of HSPICE especially for zeros. (2) Why perfect real axis RHP pole could be reported for this circuit which include R, L and C ? If circuit is composed of R>0 and L<0 without C, all poles are located on perfect real axis in RHP. (3) If I set Ka=0.41, 0.42, 0.43, 0.44 and 0.45, Cadence Spectre's PZ Analysis does not report any RHP pole. However transient Analysis of Cadence Spectre still fail due to "blowup". On the other hand, Transient Analysis of Agilent GoldenGate can complete even if I set Ka=0.45. Transient Analysis of Synopsys HSPICE can complete even if I set Ka=1.0. Even if total system is stable, I think transient analysis could diverge if partial unstabilities are included. But this could be dependent on algorithm of Transient Analysis. Ken Kundert wrote on Sep 15th, 2010, 12:21pm:
As well, we never must not believe only one specific vendor's simulator. |
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 16th, 2010, 12:59pm Pancho Hideboo, What a mess. It does not seem like any of the simulators are doing all that well. I am deeply sceptical of the HSpice results. I have shown that the coupled inductor is not passive, and your argument that the resistors in the circuit might somehow make the circuit stable is dubious. If you combine a resistor with an negative inductor, the resulting circuit is unstable regardless of how large the resistor is. The only way make such a circuit stable is to add a positive inductor in such a way as it swamps out the negative inductor, and that cannot happen here. What size time step did you use when you simulated the circuit in HSpice transient analysis? To be convinced that HSpice transient analysis really believed the circuit was stable, I would want to perform the simulation with the maximum time step set well below 100fs and I would want to whack the circuit with a very rapid pulse to see if I could excite the unstable response. -Ken |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 16th, 2010, 8:08pm Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
But this circuit include R, L and C. So why this circuit could create perfect real axis RHP pole ? Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
Anyway results of Cadence Spectre's PZ Analysis are very suspicious. |
Title: Re: Signal exceeds blowup quantity Post by sheldon on Sep 17th, 2010, 5:04am Greetings, Spectre actually converges when ka=0.75 when using the Liberal error preset and method=euler. So it seems that convergence is improved with relaxed accuracy tolerance and lossy integration. Best Regards, Sheldon |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 17th, 2010, 7:20am I ran Synopsys HSPICE until 100nsec with setting delmax=10fsec. As you can see, results of HSPICE don't show any symptom of "blowup", even if I set Ka=1.0. The following is a Top Netlist for Synopsys HSPICE Quote:
|
Title: Re: Signal exceeds blowup quantity Post by sheldon on Sep 17th, 2010, 7:50am Greetings, BTW, Spectre also converges for ka=1, if you loosen the tolerances enough: Liberal error preset, Euler integration, lteratio=10. Best Regards, Sheldon |
Title: Re: Signal exceeds blowup quantity Post by .matteo on Sep 17th, 2010, 7:59am sheldon wrote on Sep 17th, 2010, 7:50am:
I think I should never use a Liberal error preset, I don't think is the right way to solve the problem. (What if it really oscillates then? ...) |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 17th, 2010, 8:07am sheldon wrote on Sep 17th, 2010, 7:50am:
Compare the following two. http://www.designers-guide.org/Forum/Attachments/aho.png http://www.designers-guide.org/Forum/Attachments/ka_1.png I can accept results of former. But in latter, why amplitude of p1 is same as amplitudes of s1 and s2 ? On the other hand, results of Transient Analysis of Synopsys HSPICE can give completely same amplitude as HB Analysis of Agilent GoldenGate even if I set Ka=1.0. |
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 17th, 2010, 8:48am Sheldon, You are going the wrong way. The circuit is unstable. It should blow up. By using loose tolerances, you are exploiting the tendency of all circuit simulators to suppress time constants that are much smaller than the time step to hide the instability. Pancho Hideboo, I am convinced that the circuit contains a negative inductor and so is unstable. The fact that HSpice results do not exhibit the instability even with a very small time step suggests that it has a serious bug. However, there also seems to be problems in the other simulators as well. In both Spectre and GoldenGate the eigen analyses (pole-zero or stability) disagree with the transient analysis on the presence of unstable poles for at least some values of Ka. .matteo The take away for you is that your inductor is poorly modeled. In general, using a coupling factor of 1 is almost always wrong. Once you come up with a new model for you inductor, you should build the inductance matrix and assure that it is positive definite (or at least diagonally dominant). As far as your choice of simulator, you are probably okay with either Spectre or GoldenGate transient analysis, but I'd be very sceptical of mutual inductors in HSpice and the eigen analyses in Spectre or GoldenGate. -Ken |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 17th, 2010, 8:55am Ken Kundert wrote on Sep 17th, 2010, 8:48am:
This is "Internal Unstability" problem. http://www.designers-guide.org/Forum/YaBB.pl?num=1190272820/18#18 You always never admit defect and weak points of Cadence Spectre. Anyway Cadence Spectre very tends to diverge esepecially in Shooting-Newton. http://www.designers-guide.org/Forum/YaBB.pl?num=1284058751/4#4 Ken Kundert wrote on Sep 17th, 2010, 8:48am:
I always set K < 0.99 even for pure frequency domain analysis such as AC and SP Analyses. |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 17th, 2010, 9:10am When Rp=0.1ohm, no RHP poles are reported. But this is not canceling of RHP pole by zero. This is simply short of negative inductor. |
Title: Re: Signal exceeds blowup quantity Post by pancho_hideboo on Sep 17th, 2010, 9:11am Attached is a result of Transient Analysis of Cadence Spectre. Here it results in "blowup" after 30nsec for Rp=1.0ohm. "Rp=0.1ohm" never results in "blowup". Synopsys HSPICE gives completely same result regarding Transient Analysis. But results of Pole-Zero analysis are completely different between Cadence Spectre and Synopsys HSPICE. Pole-Zero analysis of HSPICE have very long history. On the other hand, Cadence Spectre don't have much history regarding Pole-Zero Analysis. I also don't think Agilent GoldenGate is reliable since originally it has been developed by Xpedion. |
Title: Re: Signal exceeds blowup quantity Post by sheldon on Sep 17th, 2010, 10:16am Matteo, It probably was discussed earlier and I just missed it. Could you explain why L7, K2/L5/R10, and L8, K3/L7/R7, have eddy current loss but L6 and L9 do not have eddy current loss? Also are all the mutual inductances included, there is no L0/L8 or L1/L9 inductance? Best Regards, Art Schaldenbrand |
Title: Re: Signal exceeds blowup quantity Post by Ken Kundert on Sep 17th, 2010, 11:40am Quote:
Pancho Hideboo, In this case I am defending Spectre's transient analysis because I believe it is giving the right answer. The circuit contains a negative inductance, of course the circuit is unstable. Spectre correctly reports that instability, and HSpice does not. Your argument that you can somehow make the circuit stable by using either a very large or very small resistor is incorrect. Even the circuit you give to prove your point is unstable, as you will see if you simulate it for 1us (when you reduce the value of the resistor you increase the time constant of the LR circuit, so you have to simulate for longer to see the waveform explode). -Ken |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |