• 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

No, it’s not. I made that one.

Ah, the copyright applies to the process or the general form of the model then. Thanks for the effort!

I had stumbled on the GE compactron lists too but there were no models for the tubes I was interested in even when I knew what other devices they were similar too. Unless I missed them somehow.... They are not terribly useful for building traditional amplifiers with modest to high outputs but they are useful for oddball projects and NOS stock is still often quite cheap so they are tempting.
 
Hi jazbo et al.

I haven't been here for a while..but been busy working on modeling/simulating stuff all the same. I'm collecting a number of popular guitar amp output tube models, and have recently converted Ayumi's models to pspice format. However, one that I have not yet come across is the 5881. I know this is supposed to be equivalent to the 6L6GB, but that is a version with lower power and max plate voltage. I've read that the 5881 does sound different than a 6L6GC, therefore it would be nice to have a spice model for the 5881.

Please set me straight if there is no benefit to a separate 5881 model, apart from the 6L6GC one, and let me know if I can help with the modeling.

Thanks!

A model for the 6973 would be nice to have as well.
Thanks!

Data sheets soon...

Here is the triode-connected curve sheet for the 5881. Unfortunately, no such curves seem available for either the 6973, nor its supposed equivalent the 6CZ5.
 

Attachments

  • 5881 Tung-Sol 3.pdf
    376.1 KB · Views: 108
If you want to make your own triode models, I wrote a program to for this. It is an interactive solution that allows you to change parameters until you get a good fit for a particular triode.
The parameters follow the improved formulas outlined on the Norman Koren audio page. There are a few examples in the download. I think you can figure it out from those.

Download:

K4BPM PSPICE Home Page

Jim
 
A bit of graphics work seems to have revealed that the 5881 and 6L6GC triode-connected curves may be close enough that a 5881 model is unnecessary.

The -30V and -60V grid lines match almost perfectly, while the 0V curve is probably close enough. Only these 3 values are comparable between the two due to different grid sweeps used.
 

Attachments

  • 5881_6L6_compare.png
    5881_6L6_compare.png
    827.7 KB · Views: 382
Code:
*
* Generic triode model: 6SF5_AN
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Sat Dec 13 18:55:08 2014
*               Plate
*               | Grid
*               | | Cathode
*               | | |
.SUBCKT 6SF5_AN A G K
BGG   GG   0 V=V(G,K)+0.99999997
BM1   M1   0 V=(0.031634481*(URAMP(V(A,K))+1e-10))**-0.46975888
BM2   M2   0 V=(0.76151452*(URAMP(V(GG)+URAMP(V(A,K))/7.5387827)+1e-10))**1.9697589
BP    P    0 V=0.00039029593*(URAMP(V(GG)+URAMP(V(A,K))/9.8997228)+1e-10)**1.5
BIK   IK   0 V=U(V(GG))*V(P)+(1-U(V(GG)))*0.00022622154*V(M1)*V(M2)
BIG   IG   0 V=0.00019514796*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+0.4)
BIAK  A    K I=URAMP(V(IK,IG)-URAMP(V(IK,IG)-(0.00025575454*URAMP(V(A,K))**1.5)))+1e-10*V(A,K)
BIGK  G    K I=V(IG)
* CAPS
CGA   G    A 2.4p
CGK   G    K 4p
CAK   A    K 3.6p
.ENDS

DO NOT USE this model, it is highly inaccurate, plate current is about two orders of magnitude higher.

See for yourself

https://frank.pocnet.net/sheets/049/6/6SF5.pdf
 

Attachments

  • ScreenShot001.PNG
    ScreenShot001.PNG
    48 KB · Views: 447
Try this. I just made this quickly but it seems like a good fit.

6SF5spice.jpg

so:
Code:
.SUBCKT 6SF5 1 2 3  ; P G C;
+ PARAMS: MU=105.88 EX=1.16 KG1=1093.71 KP=992.2 KVB=10000 RGI=2000 
+ CCG=4.0P  CGP=2.4P CCP=3.6P  ; ADD .7PF TO ADJACENT PINS; .5 TO OTHERS. 
e1 7 0 value=
+{v(1,3)/kp*log(1+exp(kp*(1/mu+v(2,3)/sqrt(kvb+v(1,3)*v(1,3)))))}
re1 7 0 1g
g1 1 3 value= {(pwr(v(7),ex)+pwrs(v(7),ex))/kg1}
rcp 1 3 1g
c1 2 3 {ccg}
c2 1 2 {cgp}
c3 1 3 {ccp}
r1 2 5 {rgi}
d3 5 3 dx
.model dx d(is=1n rs=1 cjo=10pf tt=1n)
.ends
 
Ex-Moderator
Joined 2011
DO NOT USE this model, it is highly inaccurate, plate current is about two orders of magnitude higher.
Good catch, I must have copied the wrong file, the correct SPICE model is as follow:
Code:
*
* Generic triode model: 6SF5_AN
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Sat Dec 13 18:55:08 2014
*               Plate
*               | Grid
*               | | Cathode
*               | | |
.SUBCKT 6SF5_AN A G K
BGG   GG   0 V=V(G,K)+0.4894906
BM1   M1   0 V=(0.0018194781*(URAMP(V(A,K))+1e-10))**-0.29474303
BM2   M2   0 V=(0.83577425*(URAMP(V(GG)+URAMP(V(A,K))/90.259814)+1e-10))**1.794743
BP    P    0 V=0.00099890055*(URAMP(V(GG)+URAMP(V(A,K))/107.99545)+1e-10)**1.5
BIK   IK   0 V=U(V(GG))*V(P)+(1-U(V(GG)))*0.00061836196*V(M1)*V(M2)
BIG   IG   0 V=0.00049945028*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+0.4)
BIAK  A    K I=URAMP(V(IK,IG)-URAMP(V(IK,IG)-(0.00051335655*URAMP(V(A,K))**1.5)))+1e-10*V(A,K)
BIGK  G    K I=V(IG)
* CAPS
CGA   G    A 2.4p
CGK   G    K 4p
CAK   A    K 3.6p
.ENDS
 
Disabled Account
Joined 2013
here the triode strapped 6cm8 pentode, can you calculate the spice model?

Apart from error from computation in your curve tracer there are useful plot points which will allow forward correction in Curve Capator. In addition, the original screen data is also used as a reference. So altogether this produce the pentode curve, see any good.


Code:
**** 6CM8P ******************************************
* Created on 05/08/2018 18:35 using paint_kip.jar
* [url=http://www.dmitrynizh.com/tubeparams_image.htm]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/url]
* Plate Curves image file: 6cm8p1.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT 6CM8P 1 2 3 4 ; P G K G2
+ PARAMS: CCG=6P  CGP=0.02P CCP=2.6P RGI=2000
+ MU=36 KG1=1289.7 KP=141.1 KVB=19.6 KVC=1.8 VCT=0.76 EX=1.65 KG2=1877 
* Vp_MAX=300 Ip_MAX=30 Vg_step=1 Vg_start=0 Vg_count=11
* Rp=1600 Vg_ac=23.5 P_max=2 Vg_qui=-23.4 Vp_qui=240 UL=0.43 EG2=150
* X_MIN=42 Y_MIN=36 X_SIZE=564 Y_SIZE=623 FSZ_X=1942 FSZ_Y=1102 XYGrid=false
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y 
* showIg1=n gridLevel2=n isInputSnapped=n  
* XYProjections=n harmonicPlot=y harmonics=y
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(4,3)/KP*LOG(1+EXP((1/MU+(VCT+V(2,3))/V(4,3))*KP))}
G1   1 3  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG1*ATAN(V(1,3)/KVB)}
* Alexander Gurskii screen current, see audioXpress 2/2011
RE2  8 3 1G ; Dummy
G2   8 3  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG2*(KVC-ATAN(V(1,3)/KVB))}
E2   8 4 VALUE={0} ; Dummy
RCP  1 3  1G      ; FOR CONVERGENCE
C1   2 3  {CCG}    ; CATHODE-GRID 1
C2   1 2  {CGP}  ; GRID 1-PLATE
C3   1 3  {CCP}   ; CATHODE-PLATE
R1   2 5  {RGI}   ; FOR GRID CURRENT
D3   5 3  DX      ; FOR GRID CURRENT
.MODEL DX D(IS=1N RS=1 CJO=10PF TT=1N)
.ENDS
*$


Code:
* 6cm8p-t LTSpice model
.subckt 6cm8p-t  P G K
    Bp  P K  I=(0.03921404967m)*uramp(V(P,K)*ln(1.0+(0.01321802692)+exp((3.583832861)+(3.583832861)*((38.98411962)+(-139.8642937m)*V(G,K))*V(G,K)/sqrt((35.2957383)**2+(V(P,K)-(1.495413314))**2)))/(3.583832861))**(1.371612463)
.ends 6cm8p-t
 

Attachments

  • 6cm8p1.png
    6cm8p1.png
    384 KB · Views: 328
  • 6cm8p-t traced.png
    6cm8p-t traced.png
    31.5 KB · Views: 306
Last edited:
Disabled Account
Joined 2013
A slight adjustment in plate current of previous post:

Code:
**** 6CM8P******************************************
* Created on 05/08/2018 19:27 using paint_kip.jar
* [url=http://www.dmitrynizh.com/tubeparams_image.htm]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/url]
* Plate Curves image file: 6cm8p1.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT 6CM8P 1 2 3 4 ; P G K G2
+ PARAMS: CCG=6P  CGP=0.02P CCP=2.6P RGI=2000
+ MU=35 KG1=1637.9 KP=148.2 KVB=18.6 KVC=2.25 VCT=0.806 EX=1.7 KG2=3998 
* Vp_MAX=300 Ip_MAX=30 Vg_step=1 Vg_start=0 Vg_count=11
* Rp=1600 Vg_ac=23.5 P_max=2 Vg_qui=-23.4 Vp_qui=240 UL=0.43 EG2=150
* X_MIN=42 Y_MIN=36 X_SIZE=564 Y_SIZE=623 FSZ_X=1942 FSZ_Y=1102 XYGrid=false
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y 
* showIg1=n gridLevel2=n isInputSnapped=n  
* XYProjections=n harmonicPlot=y harmonics=y
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(4,3)/KP*LOG(1+EXP((1/MU+(VCT+V(2,3))/V(4,3))*KP))}
G1   1 3  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG1*ATAN(V(1,3)/KVB)}
* Alexander Gurskii screen current, see audioXpress 2/2011
RE2  8 3 1G ; Dummy
G2   8 3  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG2*(KVC-ATAN(V(1,3)/KVB))}
E2   8 4 VALUE={0} ; Dummy
RCP  1 3  1G      ; FOR CONVERGENCE
C1   2 3  {CCG}    ; CATHODE-GRID 1
C2   1 2  {CGP}  ; GRID 1-PLATE
C3   1 3  {CCP}   ; CATHODE-PLATE
R1   2 5  {RGI}   ; FOR GRID CURRENT
D3   5 3  DX      ; FOR GRID CURRENT
.MODEL DX D(IS=1N RS=1 CJO=10PF TT=1N)
.ENDS
*$
 

Attachments

  • 6cm8-ppaint .png
    6cm8-ppaint .png
    488.7 KB · Views: 282
Can I make a request? Russian GU15 - Triode model desired

I searched high and low for a model, found this on diyAudio, Posted By matejsirk:

Code:
**** GU15TRIODE ******************************************
* Created on 07/30/2014 10:24 using paint_kit.jar 
* Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively
* Curves image file: gu15triode.gif
* Data source link: 
*----------------------------------------------------------------------------------
.SUBCKT GU15T 1 2 3 ; Plate Grid Cathode
+ PARAMS: CCG=3P CGP=1.4P CCP=1.9P RGI=2000
+ MU=7.81 KG1=900 KP=86 KVB=297 VCT=0.206 EX=1.34 
* Vp_MAX=600 Ip_MAX=150 Vg_step=5 Vg_start=0 Vg_count=14
* Rp=4000 Vg_ac=55 P_max=18.8 Vg_qui=-48
* X_MIN=110 Y_MIN=47 X_SIZE=1306 Y_SIZE=785 FSZ_X=1936 FSZ_Y=1176 XYGrid=false
*----------------------------------------------------------------------------------
E1 7 0 VALUE={V(1,3)/KP*LOG(1+EXP(KP*(1/MU+(VCT+V(2,3))/SQRT(KVB+V(1,3)*V(1,3)))))} 
RE1 7 0 1G ; TO AVOID FLOATING NODES
G1 1 3 VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))/KG1} 
RCP 1 3 1G ; TO AVOID FLOATING NODES
C1 2 3 {CCG} ; CATHODE-GRID 
C2 2 1 {CGP} ; GRID=PLATE 
C3 1 3 {CCP} ; CATHODE-PLATE 
D3 5 3 DX ; POSITIVE GRID CURRENT 
R1 2 5 {RGI} ; POSITIVE GRID CURRENT 
.MODEL DX D(IS=1N RS=1 CJO=10PF TT=1N) 
.ENDS 
*$

I haven't tried it yet.

I did find triode plate curves; hopefully they'll be useful (attached).

Incomplete data sheet

I can't seem to find inter-electrode capacitances in any data sheets, but matejsirk used CCG=3P CGP=1.4P CCP=1.9P.

I hope that's enough info for a good model. Or perhaps the model above is all that is needed; in which case, add it to the collection!

--
 

Attachments

  • GU15_triode_platecurves.png
    GU15_triode_platecurves.png
    238.4 KB · Views: 379
Ex-Moderator
Joined 2011
GU15 Pentode SPICE Model

Code:
*
* Generic pentode model: GU15_AN
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Wed May 23 09:26:22 2018
*               Anode
*               | Screen Grid
*               | |  Control Grid
*               | |  |  Cathode
*               | |  |  |
.SUBCKT GU15_AN A G2 G1 K
BGG   GG   0 V=V(G1,K)+0.8652221
BM1   M1   0 V=(0.019769659*(URAMP(V(G2,K))+1e-10))**-0.23140853
BM2   M2   0 V=(0.86634666*(URAMP(V(GG)+URAMP(V(G2,K))/6.7605282)))**1.7314085
BP    P    0 V=0.0011519635*(URAMP(V(GG)+URAMP(V(G2,K))/7.8034908))**1.5
BIK   IK   0 V=U(V(GG))*V(P)+(1-U(V(GG)))*0.00074748356*V(M1)*V(M2)
BIG   IG   0 V=0.00057598173*URAMP(V(G1,K))**1.5*(URAMP(V(G1,K))/(URAMP(V(A,K))+URAMP(V(G1,K)))*1.2+0.4)
BIK2  IK2  0 V=V(IK,IG)*(1-0.4*(EXP(-URAMP(V(A,K))/URAMP(V(G2,K))*15)-EXP(-15)))
BIG2T IG2T 0 V=V(IK2)*(0.960348889*(1-URAMP(V(A,K))/(URAMP(V(A,K))+10))**1.5+0.039651111)
BIK3  IK3  0 V=V(IK2)*(URAMP(V(A,K))+1150)/(URAMP(V(G2,K))+1150)
BIK4  IK4  0 V=V(IK3)-URAMP(V(IK3)-(0.00080436341*(URAMP(V(A,K))+URAMP(URAMP(V(G2,K))-URAMP(V(A,K))))**1.5))
BIP   IP   0 V=URAMP(V(IK4,IG2T)-URAMP(V(IK4,IG2T)-(0.00080436341*URAMP(V(A,K))**1.5)))
BIAK  A    K I=V(IP)+1e-10*V(A,K)
BIG2  G2   K I=URAMP(V(IK4,IP))
BIGK  G1   K I=V(IG)
* CAPS
CGA   G1  A  0.16p
CGK   G1  K  6.6p
C12   G1  G2 4.4p
CAK   A   K  13p
.ENDS