Re-posting an old music-electronic forum discussion from awhile back…
As promised, here are my attempt at drawing the composite graphs for the Ampeg SVT 6550A. Sorry the graphs aren’t annotated, if you have questions, please let me know. In any case, here is a brief description of what you are looking at:
Note: The following results assume zero power supply sag, zero voltage drop due to screen resistors, ideal OPT with purely resistive load. The actual circuit performance may be quite different.
– Class A and Class B load lines (light blue and dark blue), note the Class B line is largely covered by the Class AB1 load line;
– Class AB1 load lines (turquoise), you can see it extends to the saturation voltage of the other side (Min Ep);
– Point A – quiescent point at 700V, 16mA (nearly Class B bias!)
– Point B – Max Ia, Min Ep1, tube at saturation;
– Point B’ – the other tube at cut off;
– Point C – tube at saturation, corresponds to Point B;
– Point C’ – the other tube at cut off, corresponds to Point B’.
From the above graphs, we can see that for the 5k load, Epmax = 1400-73.3 = 1326.7V and for the 10k load, Epmax = 1400-27.8 = 1372.2V, so not that much of a difference really. But the screen grid dissipation is a different story as I shown in my earlier post.
Also found this at diyaudio. If you follow his formula, then the 6550A ought to be able to handle 660*2.5=1650V before arc-over occurs. Assuming the amp is working fine, then simply doubling the output load should not cause a catastrophic failure, unless the switch is done on the fly without any precaution, then it would not surprise me that something bad could happen. Talk about a large d(i)/d(t)!
Since I have never even work on an Ampeg, my take on the situation may very well be far from reality… so experienced designers and techs please feel free to set me straight.
This is a re-post of the thread I started on music-electronics forum back in 04-23-2013:
Since there have been some discussions on the usefulness of SPICE models and circuit simulation on several recent threads, I thought it might be of interest to some of us – the non-believers can skip this – to see a comparison of the different SPICEmodels in action… The accuracy of any simulation depends on the models used, so model verification is an important step in the design process, alas tube models are notoriously in-accurate particularly in their grid modeling. While it is not so bad for hi-fi designs, where the designers try to avoid non-linearity of the tube at all cost, in guitar amp designs, quite the opposite happens, where the grid is often pushed way beyond its normal operating range, that’s when the trouble starts… So we are talking about the extreme cases here, actually most tube models work fine in their linear region.
Anyway, in the following comparison charts, I used Loudthud’s great scope trace as the reference. And three 12AX7 models were used to generate the plate voltage/current vs. grid voltage curves, the only change was to flip Loudthud’s scope shot around, so the coordinates match up.
So it can be seen that not only do the models differ greatly from each other, none of them matches the real thing! Although Ayumi’s model does come pretty close. For a more in depth look at the various models, please refer to the following:
It is a bit frustrating when the tools do not do what they are suppose to do… In an earlier post, I mentioned that TINA-TI could not even perform a transient analysis on a simple amplifier, well it happened again when I tried to run some simulations of the Baby Huey design found at diyaudio. Numerous circuit examples were simmed over the years, none ever complained that they had any issue with convergence.
But true to form, when I tried to run the simulation, TINA failed immediately, and changing the parameters did not help, so that’s out – it is really a basket case. Next up, SpiceOpus, it kinda worked but the responses were somewhat puzzling, it appeared that the circuit was either un-stable (with many warning messages) or it was not quite happy with the transient analysis parameters, with a text-only interface, it was hard to tell just what was happening, so it will require some sleuthing is needed to find out why…
Ok, this one is easy, I re-ran the sim on SpiceOpus, with longer time periods, as shown in the picture below, the cause of the in-stability was due to fact that the circuit did not reach steady-state, a common problem. Adjusting the period also gave different read outs for the THD, so the output needs to be completely stable before the Fourier analysis can be run.
Never say die! I next I tried Micro-Cap, which did better but only after I turned off the Period-Steady-State feature which was suppose to improve transient analysis convergence, instead it had exactly the opposite effect, hummm… yet another puzzle to solve.
I hate to say it, but perhaps there is a good reason for the popularity of LTSpice – it could just be its ability to converge. In any case, I still have no interest of using it, given the poor UI and awkward file management system. May be it will be upgraded soon, then I will give it a try.
While searching for other ways to generate THD/IMD vs output power plots, I came across some application notes from Spectrum Software, the maker of Micro-Cap, an expensive simulation package used by the pros. Luckily there is a student/trial version available for download so I can test its features.
With the program, it is very easy to generate the distortion vs output plots, which makes me wonder why the other programs do not offer the same… All Micro-Cap does AFAIK, is to store the various results of the distortion data in memory then plot them out afterwards – so the user is relieved from the hassle of exporting the data to another program like Excel to plot the curves.
Of course, the program has many more features besides THD/IMD, according to the company, components can be optimized to minimize the distortion, as well as many other parameters. The optimizer can also be used to build custom SPICE models based on the manufacturers’ datasheets, unfortunately, this feature is not enabled in the trial version of the program, so I can not test it out. But I can see how it could come in handy to do curve fitting and generate the tube models.
The full program is very expensive, with retail price around $5,000! Really?! For a souped-up version of Berkeley SPICE?! Come on! In any case, with some well thought-out coding, I think the distortion plots could be done just as easily with SpiceOpus or any other free or low cost SPICE programs. It comes down to how much time I want to spend on programming instead of actually using the simulator 😉 Oh well, there is no such thing as a free lunch, is there?!
While reading Dmitry Nizh’s great site, I found an article on parameter optimization using SPICE. In Dmitry’s case, he used an AWK script to pipe the output of the distortion analysis from SPICE to a plotting program, so the harmonics vs. power curves could be displayed and further analysed. To see what else can be done with SPICE, I googled “SPICE circuit optimization” and saw a bunch of papers published by Burmen and Tuma of University of Slovenia, which let me to discover their version of the Berkeley/XSPICE port for Windows – SpiceOpus, that contains a built-in optimize function. After going over some of the examples shown on the SpiceOpus website, I managed to try out the optimize function on a simple SPUD amp, the same one that Dmitry used in his SPICE optimization example. Here are few lines of code that I used for the optimization for both the preamp plate load and power amp load:
SpiceOpus (c) 45 -> define error(f) db(v(3)/230) - db(v(8)) SpiceOpus (c) 46 -> optimize parameter 0 @r6[resistance] low 10k high 50k initial 40k SpiceOpus (c) 47 -> optimize parameter 1 @r7[resistance] low 2k high 10k initial 5k SpiceOpus (c) 48 -> optimize analysis 0 ac dec 10 100 10k SpiceOpus (c) 49 -> optimize implicit 0 ac1.v(3) gt 230 SpiceOpus (c) 50 -> optimize cost mean(mag(error(frequency))^2) SpiceOpus (c) 51 -> optimize method complex SpiceOpus (c) 52 -> optimize Complex: stopped, simplex small enough. Time needed for optimisation: 0.062 seconds Number of iterations: 42 Lowest cost function value: 4.926709e-002 Optimal values: @r6[resistance] = 4.006276e+004 @r7[resistance] = 4.519619e+003
The results were very close to what Dmitry came up with, so I guess it worked. Since I am just using the ac sweep response as a proxy for distortion, I think perhaps the result could be further improved if I can figure out how to provide a more precise cost function to the optimization routine.
Since SpiceOpus has a discrete Fourier transform function, it is possible to calculate the total harmonic distortion without having to export the data to another program for processing. The THD can be calculated as follows:
Then the optimization codes can be written as follows:
SpiceOpus (c) 1 -> source 6f5p_opt.cir SpiceOpus (c) 2 -> save v(10) SpiceOpus (c) 3 -> optimize parameter 0 @r6[resistance] low 10k high 50k initial 40k SpiceOpus (c) 4 -> optimize parameter 1 @r7[resistance] low 4 high 16 initial 8 SpiceOpus (c) 5 -> optimize analysis 0 tran 1u 1m SpiceOpus (c) 6 -> optimize analysis 1 linearize 1u SpiceOpus (c) 7 -> optimize analysis 2 spec 0 5k 1k v(10) SpiceOpus (c) 8 -> optimize cost ((abs(v(10))^2+abs(v(10))^2+abs(v(10))^2+abs(v(10))^2)/abs(v(10))^2)^0.5 SpiceOpus (c) 9 -> optimize method complex SpiceOpus (c) 10 -> optimize Warning: Convergence problems at node (1). Complex: stopped, simplex small enough. Time needed for optimisation: 16.765 seconds Number of iterations: 48 Lowest cost function value: 3.290727e-001 Optimal values: @r6[resistance] = 3.998431e+004 @r7[resistance] = 6.879497e+000
R7 is the speaker load, so the equivalent plate load is 4.3k. Are the load resistances really “optimal”? Can’t tell until I build the circuit and test it on the bench. But it does look promising & fast too!
Why is something so simple, so difficult to do?!
I thought I found the perfect simulator for my needs – TINA by DesignSoft, alas, it failed in one important area – convergence! Even with a relatively simple 3-stage tube amp circuit, it would not converge, while SIMetrix and WinSPICE had no problem with it.
Ok, I thought, there is still a workaround – I will just use TINA as a schematic capture tool , which I like a lot, and export the netlist to run on WinSPICE. Well, it does work. BUT, there is always a but, the frigging netlist nodes do not even match up with the node numbers used within TINA, really!? So, if something needs adjusting, I had figure out just which part connects to what – that’s what the schematic is for!
I can not believe with all smart engineers working at DesignSoft, that something as simple as making sure the nodes match up does NOT even work, I am very disappointed, so close yet so far away…
Just tried something with TINA – export the schematic as a TINA netlist (it looks the same as the PSPICE version, anyway…) then use the Netlist Editor to compile it, guess what, the Transient analysis now runs just fine – no convergence problem, whoa?! Something is not right – must be a bug in the program, how can the netlist run differently than the source that generated it in the first place?! As as I said in the title, THIS IS JUST STUPID!