• WARNING: Tube/Valve amplifiers use potentially LETHAL HIGH VOLTAGES.
    Building, troubleshooting and testing of these amplifiers should only be
    performed by someone who is thoroughly familiar with
    the safety precautions around high voltages.

Vacuum Tube SPICE Models

Ale M traced these curves for 3A5:

I have attached Model1_G2_600.jpg, which is your model but with S2 = 600 V; for comparison with your S2 = 500 V plot. Comparing it with the published S2 = 600 V data, it looks like model is still valid and accurate. Thanks very much for publishing this model.

Updated GU-81 Spice model. GU81_LTSpice_051823.zip contains seven pentode-connection simulations corresponding to plots in the attached GU81.pdf. Please find the comments at the top of each schematic (.asc) file. There are also simulations for two sources of triode-connected data.



For each of these nine cases, the LTSpice simulation plots are in reasonable agreement with the datasheets/measured data.

The GU_81_LTSpice.mod is based on the earlier one here: https://www.diyaudio.com/community/threads/vacuum-tube-spice-models.243950/page-163#post-6944473

Two things were changed. First, the plate and screen current plots corresponding to the transfer characteristic curve from page nine of the GU81.pdf had discontinuities corresponding to G1 = -10 and 0 V, please see the plot below (sorry about the poor contrast). That was found to be caused by the "LIMIT" function in the E22 calculation: E22 22 0 VALUE={V(21)LIMIT(KNK-V(G,K)*KNG,0,0.3)(-ATAN((V(P,K)-KNPL)/KNSL)+ATAN((V(P,K)-KNPR)/KNSR))}

I'm not sure what the purpose of the E22 calculation is, but setting it to 0 fixed the problem, and now this and other simulation plots agree well with the data. It is important to note that discontinuities such as this in the models gives Spice major problems with convergence to a solution, both with the DC (.op) solution and with transient (.tran) simulations.

The other change from the original .mod file was to modify parameters related specifically to G1 current with positive input voltages, which simulated about 25% compared with published data in the original .mod file: see pages 12 and 13 in the attached GU81.pdf.

Hopefully one can unzip the attached file, and everything will work out of the box with LTSpice installed. It may be necessary to add the unzipped path to the component symbol library.

Bill Schintler



  • GU81_LTSpice_051823.zip
    15.3 KB · Views: 12
  • GU81.pdf
    565.7 KB · Views: 11
Hi all
I got 5 "Golden Samples" back (which are not mine), for the sake of measure those again, now under hot plate conditions.
Typically, there isn't too much of difference, but sometimes...

The first I measured was the 6AM4, and this tube showed significant curve changes when hot:
  • gm got about 25% larger
  • mu got about 5% smaller

So, here the new i6 model.
BR Adrian

*6AM4 LTspice model based on the generic triode model from Adrian Immler, version i6
*A version log is at the end of this file
*100h BurnIn of 10 tubes, sample selection and measurements done in Dec 2021
*Params fitted to the measured values by Adrian Immler, May 2023
*The high fit quality is presented at adrianimmler.simplesite.com
*History's best of tube decribing art (plus some new ideas) is merged to this new approach.
*@ neg. Vg, Ia accuracy is similar to Koren models, and unrivaled for remote cutoff triodes
*@ small neg. Vg, the "Anlauf" current is considered.
*@ pos. Vg, Ig and Ia accuracy is on a unrivaled level (including neg. Va range!)
*This offers new simulation possibilities like grid resistor bias, backward plate modulated stages,
*Audion radio circuits, low voltage amps, guitar distortion stages or pulsed stages.
*            all 6AM4s seen share the same construction (so, no company letters needed)
*            |  anode (plate)
*            |  | grid
*            |  | | cathode
*            |  | | |
.subckt 6AM4.i6 A G K
+ params:
*Parameters for space charge current Is (100% assigned to Ia @ Vg < 0)
+ mu   = 143   ;Determines the voltage gain @ constant Ia
+ rad  = 9k2   ;Differential anode resistance, set @ Iad and Vg=0V
+ Vct  = 0.11  ;Offsets the Ia-traces on the Va axis. Electrode material's contact potential
+ kp   = 252   ;Mimics the island effect
+ xs   = 1.5   ;Determines the curve of the Ia traces. Typically between 1.2 and 1.8
+ kIsr = 220m  ;Va-indepedent part of the Is reduction when gridcurrent occurs
+ kvdg  = 65   ;Va-depedent part of the Is reduction when gridcurrent occurs
*Parameters for assigning the space charge current to Ia and Ig @ Vg > 0
+ kB   = 0.16  ;Describes how fast Ia drops to zero when Va approaches zero.
+ radl = 5     ;Differential resistance for the Ia emission limit @ very small Va and Vg > 0
+ tsh  = 20    ;Ia transmission sharpness from 1th to 2nd Ia area. Keep between 3 and 20. Start with 20.
+ xl   = 1.2   ;Exponent for the emission limit
*Parameters of the grid-cathode vacuum diode
+ kg = 175     ;Inverse scaling factor for the Va independent part of Ig (caution - interacts with xg!)
+ Vctg = -0.45 ;Offsets the log Ig-traces on the Vg axis. Electrode material's contact potential
+ xg   = 1.0   ;Determines the curve of the Ig slope versus (positive) Vg and Va >> 0
+ VT   = 0.132 ;Log(Ig) slope @ Vg<0. VT=k/q*Tk (cathodes absolute temp, typically 1150K)
+ rTr  = 0.65  ;ratio of VT for Igr. Typically 0.8
+ kVT  = 0     ;Va dependant koeff. of VT
+ gft1 = 0.05  ;reduces the steering voltage around Vg=-Vg0, for finetuning purposes
+ gft1a= 0.3   ;reduces the steering voltage around Vg=-Vg0. Effect decreases with 1/(1+kB*Va)
+ gft2 = 0.1   ;finetunes the Igr drop @ incrasing Va and around Vg=-Vg0
*Parameters for the caps
+ cag  = 2p4   ;From GE datasheet
+ cak  = 0p16  ;From GE datasheet
+ cgk  = 4p4   ;From GE datasheet
*special purpose parameters
+ os = 1       ;Overall scaling factor, if a user wishes to simulate manufacturing tolerances
+ murc = 10    ;Mu of the remote cutoff triode
+ ksrc = 10G   ;Inverse Iarc gain factor for the remote cuttoff triode
+ kprc = 1k    ;Mimics the island effect for the remote cotoff triode
+ Vbatt = 0    ;heater battery voltage for direct heated battery triodes
+ Vdrmax = 100 ;max voltage of internal Vg drop, for convergence improvements
*Calculated parameters
+ Iad = {100/rad} ;Ia where the anode a.c. resistance is set according to rad.
+ ks = {pow(mu/(rad*xs*Iad**(1-1/xs)),-xs)} ;Reduces the unwished xs influence to the Ia slope
+ ksnom = {pow(mu/(rad*1.5*Iad**(1-1/1.5)),-1.5)} ;Sub-equation for calculating Vg0
+ Vg0 = {Vct + (Iad*ks)**(1/xs) - (Iad*ksnom)**(2/3)} ;Reduces the xs influence to Vct.
+ kl = {pow(1/(radl*xl*Ild**(1-1/xl)),-xl)} ;Reduces the xl influence to the Ia slope @ small Va
+ Ild = {sqrt(radl)*1m} ;Current where the Il a.c. resistance is set according to radl.
*Space charge current model
Rak A K 100G ;avoids "floating net" errors
Bft   ft 0 V=1/(1+pow(2*abs(v(G,Ki)+Vg0),3)) ;an auxiliary voltage to finetune the triode around Vg=-Vg0
Bggi GGi 0 V=(v(Gi,Ki)+Vg0)*(1/(1+kIsr*max(0, v(G,Ki)+Vg0))) - gft1*v(ft) - gft1a*v(ft)/(1+kB*v(Ahc)) ;Effective internal grid voltage.
Bahc Ahc 0 V=uramp(v(A,Ki)) ;Anode voltage, hard cut to zero @ neg. value
Bst   St 0 V=uramp(max(v(GGi)+v(A,Ki)/(mu), v(A,Ki)/kp*ln(1+exp(kp*(1/mu+v(GGi)/(1+v(Ahc)))))));Steering volt.
Bs    Ai Ki I=os/ks*pow(v(St),xs) ;Langmuir-Childs law for the space charge current Is
*Bstrc Strc 0 V=uramp(max(v(GGi)+v(Ahc)/(murc), v(Ahc)/kprc*ln(1+exp(kprc*(1/murc+v(GGi)/(1+v(Ahc)))))));FOR REMOTE CUTOFF TUBES ONLY
*Bsrc   Ai Ki I=os/ksrc*pow(v(Strc),xs) ;FOR REMOTE CUTOFF TUBES ONLY
*Anode current limit @ small Va
.func smin(z,y,k) {pow(pow(z+1f, -k)+pow(y+1f, -k), -1/k)} ;Min-function with smooth trans.
.func ssmin(z,y,k) {min(min(z,y), smin(z*1.003,y*1.003,k))};smin-function which suppresses small residual differencies
Ra  A Ai 1
Bgl Gi A I=uramp(i(Ra)-ssmin(1/kl*pow(v(Ahc),xl),i(Ra),tsh)) ;Ia emission limit
*Grid model
Rgk G K 10G ;avoids "floating net" errors
Bvdg G Gi I=1/kvdg*pow(v(G,Gi),1.5) ;Reduces the internal effective grid voltage when Ig rises
Bcoh G Gi I=pow(uramp(v(G,Gi)-Vdrmax),2) ;A convergence help which softly limits the internal Vg voltage drop.
Rgip G Gi 1G ;avoids some warnings
.func fVT() {VT*exp(-kVT*sqrt(v(A,Ki)))}
.func Ivd(Vvd, kvd, xvd, VTvd)  {if(Vvd < 3, 1/kvd*pow(VTvd*xvd*ln(1+exp(Vvd/VTvd/xvd)),xvd), 1/kvd*pow(Vvd, xvd))} ;Vacuum diode function
Bgvd G Ki I=Ivd(v(G,Ki) + Vctg + min(0,v(A,Ki)/mu), kg/os, xg, fVT()) ;limits the internal Vg for convergence reasons
Bstn Stn 0 V=v(GGi)+min(0,v(A,Ki))/mu ;special steering voltage, sensitive to negative Anodevoltages only
Bgr Gi Ai I= ivd(v(Stn),ks/os, xs, rTr*fVT())/(1+(kB+v(ft)*gft2)*v(Ahc));Is reflection to grid when Va approaches zero
*Bgr Gi Ai I=(ivd(v(Stn),ks/os, xs, rTr*fVT())+os/ksrc*pow(v(GGi),xs))/(1+(kB+v(ft)*gft2)*v(Ahc));FOR REMOTE CUTOFF TUBES ONLY
Bs0 Ai Ki  I=uramp(ivd(v(Stn),ks/os, xs, rTr*fVT()) - os/ks*pow(v(Stn),xs))
Bbatt Ki K V=Vbatt/2 ;for battery heated triodes; Offsets the average cathode potential to the half heater battery voltage
C1 A G {cag}
C2 A K {cak}
C3 G K {cgk}
*Version log
*i1 :Initial version
*i2 :Pin order changed to the more common order A G K (Thanks to Markus Gyger for his tip)
*i3 :bugfix of the Ivd-function: now also usable for larger Vvd
*i4: Rgi replaced by a virtual vacuum diode (better convergence). ft1 deleted (no longer needed)
;2 new prarams for Ig finetuning @ Va and Vg near zero. New overall skaling factor os for aging etc.
*i5: improved convergence performance. PosVg/NegVa area now correct. Also accurate now for remote cutoff triodes!
*i6: identical to the i5, but tubes measured with hot anode (Pa=0.7*Pmax) for highest accuracy


  • fit_6AM4_Ia_hot.png
    985.3 KB · Views: 17
  • fit_6AM4_IogIg_hot.png
    201.2 KB · Views: 25