• 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

I settled for just triode model, it generated more accurate model than DHT, hope you like it, and if you know why DHT model is less accurate, let us know.
Get rid of those resistors, you don't need them, as it will skew your curves. ;)

Measure plate current directly, as in the example below.
 

Attachments

  • 304TL.png
    304TL.png
    86.7 KB · Views: 519
Disabled Account
Joined 2013
HI all,

i am looking for a LT Spice model:

triode strapped E180F

thanks in advance, Klausi

It's originally posted here :

The pentode model plot matched quite well with original data. You can triode strapped the pentode model, but there is a triode model, the results differs somewhat.
Code:
* Generic pentode model: E180F
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Wed Jun 24 22:54:24 2009
* Plate
* | Screen Grid
* | | Control Grid
* | | | Cathode
* | | | |
.SUBCKT E180F A S G K
.PARAM X1=-0.59576533 X2=0.0094827837 X3=-0.8531559
.PARAM X4=0.63744183 X5=38.233306 X6=2.3531559
.PARAM X7=0.01902963 X8=59.979286 X9=0.011758543
.PARAM Y1=0.0095148149 Y2=0.80517343 Y3=0.19482657
.PARAM Y4=0.009992698 EA=2523.93
BK IK 0 V=U(V(G,K)+X1)*X7*URAMP(V(G,K)+X1+URAMP(V(S,K))/X8)**1.5+(1-U(V(G,K)+X1))*X9*(X2*URAMP(V(S,K)))**X3*(X4*URAMP( V(G,K)+X1+URAMP(V(S,K))/X5))**X6
BL IL 0 V=(V(IK)-Y1*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+.4))*(1-.4*(EXP(-URAMP(V(A,K))/URAMP(V(S,K))*15)-EXP(-15)))
BM IM 0 V=V(IL)*(URAMP(V(A,K))+EA)/(URAMP(V(S,K))+EA)-URAMP(V(IL)*(URAMP(V(A,K))+EA)/(URAMP(V(S,K))+EA)-(Y4*(URAMP(V(A,K))+URAMP(URAMP(V(S,K))-URAMP(V(A,K))))**1.5))
BA A K I=URAMP(Y4*URAMP(V(A,K))**1.5-URAMP(Y4*URAMP(V(A,K))**1.5-V(IM)+V(IL)*(Y2*(1-URAMP(V(A,K))/(URAMP(V(A,K))+10))**1.5+Y3)))+1E-10*V(A,K)
BS S K I=URAMP(V(IM)-URAMP(Y4*URAMP(V(A,K))**1.5-URAMP(Y4*URAMP(V(A,K))**1.5-V(IM)+V(IL)*(Y2*(1-URAMP(V(A,K))/(URAMP(V(A,K))+10))**1.5+Y3))))
BG G K I=Y1*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+.4)
* CAPS
CGA G A 0.03p
CGK G K 5.1p
CGS G S 3.4p
CAK A K 3.5p
.ENDS
Code:
** Generic triode model: E180F_T
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Wed Jun 24 22:55:42 2009
* Plate
* | Grid
* | | Cathode
* | | |
.SUBCKT E180F_T A G K
.PARAM X1=-0.59576533 X2=0.0094827837 X3=-0.8531559
.PARAM X4=0.63744183 X5=38.233306 X6=2.3531559
.PARAM X7=0.01902963 X8=59.979286 X9=0.011758543
.PARAM Y1=0.0095148149 Y2=0.009992698
BK IK 0 V=U(V(G,K)+X1)*X7*URAMP(V(G,K)+X1+URAMP(V(A,K))/X8)**1.5+(1-U(V(G,K)+X1))*X9*(X2*URAMP(V(A,K)))**X3*(X4*URAMP( V(G,K)+X1+URAMP(V(A,K))/X5))**X6
BA A K I=URAMP((Y2*URAMP(V(A,K))**1.5)-URAMP((Y2*URAMP(V(A,K))**1.5)-V(IK)+Y1*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+.4)))+1E-10*V(A,K)
BG G K I=Y1*URAMP(V(G,K))**1.5*(URAMP(V(G,K))/(URAMP(V(A,K))+URAMP(V(G,K)))*1.2+.4)
* CAPS
CGA G A 3.43p
CGK G K 5.1p
CAK A K 3.5p
.ENDS
 
Disabled Account
Joined 2013
Hello every one,
I wounder that any one knows about DL92, DL94, 2P1P, 1T4T, or 3S4 tube (audio output directly heated tetrode or pentode valve in late 1940's), does any one has a ltspice or pspice model for any one of them?
Thanks for your time!

The datasheet of these tubes can be found here. There no such models around as far as Google search, using ".subckt DL92" for example. What tube model exactly?
 
Disabled Account
Joined 2013
Here is the model for GE IT4 I painted:
Code:
**** IT4 ******************************************
* Created on 04/05/2017 14:51 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: it4.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT IT4 1 2 3 4 ; P G K G2
+ PARAMS: CCG=3.6P  CGP=0.01P CCP=7.5P RGI=2000
+ MU=53 KG1=979.5 KP=77.5 KVB=8.13 KVC=2.61 VCT=0 EX=0.409 KG2=12549.6 
* Vp_MAX=250 Ip_MAX=4 Vg_step=0.5 Vg_start=0 Vg_count=17
* Rp=1600 Vg_ac=23.5 P_max=1 Vg_qui=-23.4 Vp_qui=240 UL=0.43 EG2=67.5
* X_MIN=81 Y_MIN=44 X_SIZE=1004 Y_SIZE=810 FSZ_X=1942 FSZ_Y=1102 XYGrid=true
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y 
* showIg1=y 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:
* The following triode model is derived from pentode model, see above.
* In the triode model, all spice parameters come directly from the pentode model, except for Kg1,
* which for triode-strapped pentodes is derived from pentode's Kg1, Kg2 and Kvc as
*
*    4Kg1Kg2 / (2Kvc-Pi)(2Kg1+PiKg2)
 
**** IT4 ******************************************
* Created on 04/05/2017 14:51 using paint_kit.jar 3.3 
* [URL="http://www.dmitrynizh.com/tubeparams_image.htm"]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/URL]
* Plate Curves image file: it4.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT TRIODE_IT4 1 2 3 ; Plate Grid Cathode
+ PARAMS: CCG=3P  CGP=1.4P CCP=1.9P RGI=2040.2
+ MU=53 KG1=571.5 KP=77.5 KVB=8.13 VCT=0 EX=0.409 
* Vp_MAX=250 Ip_MAX=4 Vg_step=0.5 Vg_start=0 Vg_count=17
* Rp=1600 Vg_ac=23.5 P_max=1 Vg_qui=-23.4 Vp_qui=240
* X_MIN=81 Y_MIN=44 X_SIZE=1004 Y_SIZE=810 FSZ_X=1942 FSZ_Y=1102 XYGrid=true
* showLoadLine=n showIp=y isDHT=n isPP=n isAsymPP=n showDissipLimit=y 
* showIg1=y gridLevel2=n isInputSnapped=n  
* XYProjections=n harmonicPlot=y harmonics=y
*----------------------------------------------------------------------------------
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 
*$
 

Attachments

  • IT4 paint plot A.png
    IT4 paint plot A.png
    357.7 KB · Views: 430
  • IT4.png
    IT4.png
    252.8 KB · Views: 417
  • IT4 plot B.png
    IT4 plot B.png
    106.7 KB · Views: 411
Last edited:
I just searched this thread for 6S19P, and I can't believe it but, I got this!

Sorry - no matches. Please try some different terms.

I found Kevin Kennedy's model from November 2011. Is that the one people are using? Any others that might be useful?

For the sake of completeness, here's that 6S19P model:

Code:
** 6S19P ************************************************** 
* Created on Mon Nov 14 22:57:01 EST 2011 using tube.model.finder.PaintKIT
* Traced by Kevin Kennedy
*--------------------------------------------------
.SUBCKT 6S19P 1 2 3 ; P G K ;
+ PARAMS: CCG=6.5P CGP=8P CCP=2.5P RGI=2000
+ MU=2.3520 EX=1.526 KG1=2235.0 KP=19.5 KVB=1.875 VCT=0.0280
* Vp_MAX=380.0 Ip_MAX=0.15 Vg_step=20.0
*--------------------------------------------------
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
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 ; FOR GRID CURRENT
R1 2 5 {RGI} ; FOR GRID CURRENT
.MODEL DX D(IS=1N RS=1 CJO=10PF TT=1N)
.ENDS 6S19P

I hope someone finds that useful.
--
 
Hi rongon,
You might try the following:

* 6S19P_IV macro model
.subckt 6S19P_IV P G K
koren8(0.00668702499,-0.1862608176,1.303571052,4.472700504,0.2599294653,0.0363553653,-18.70901776,2.323353659)
.ends 6S19P_IV


* 6S19P_IV LTSpice model
.subckt 6S19P_IV P G K
Bp P K I=(0.00668702499m)*uramp(V(P,K)*ln(1.0+(-0.1862608176)+exp((1.303571052)+(1.303571052)*((4.472700504)+(0.2599294653m)*V(G,K))*V(G,K)/sqrt((0.0363553653)**2+(V(P,K)-(-18.70901776))**2)))/(1.303571052))**(2.323353659)
.ends 6S19P_IV

I used Curve Captor created it.
 
Thanks, I'll give that one a try. A question...

This line:

Bp P K I=(0.00668702499m)*uramp(V(P,K)*ln(1.0
+(-0.1862608176)

Should the end of the first line have a close parenthesis?
Or do you intend that to be saved in the sub file all as one line of text (with no carriage returns)? Like this:

Code:
* 6S19P_IV LTSpice model
.subckt 6S19P_IV P G K
Bp P K I=(0.00668702499m)*uramp(V(P,K)*ln(1.0+(-0.1862608176)+exp((1.303571052)+(1.303571052)*((4. 472700504)+(0.2599294653m)*V(G,K))*V(G,K)/sqrt((0.0363553653)**2+(V(P,K)-(-18.70901776))**2)))/(1.303571052))**(2.323353659)
.ends 6S19P_IV
 
Ayumi Pentode LTSpice Model Creation Question

I have been using Ayumi's canned models in LTSpice for the last two or so years. I now want to model an amplifier that does not have a canned model. Namely the 1T4 and 117L7. (It was bound to happen)

I have digitized the triode characteristics and successfully created, I think, a triode connected model for the 1T4. Using "mode=triode" in r2spice.

But, when I run the model creation for a 1T4 pentode connection I get a weird error from R. Basically it is a data type error from one of the subprograms in pctube 1.21.

So, I am sorry for asking what is perhaps a stupid question.
But I ran the pentode creation (r2spice) model on the triode plate curves, using the needed pentode characteristics.
Do I have digitize the pentode plate characteristics to create a pentode model? Then run the model creation using that CSV?

Thanks! Tom
 
I was afraid you were going to say that... The Ayumi's tutorial led me to believe that as the pentode characteristics were introduced the pentode model would be created from triode characteristics. But now I have to track down why I am getting this data type error. This error is unique to pentode modelling. I believe some routine was passing a bad data type to variable: "-p$Ea". Right now I find it difficult to visualize the passing of arguments and other variables in R. My first exposure to R. I really don't want to learn more R than absolutely necessary, I have so many other things to do!

It looks like a programming error to me, which leads me to believe it is something that I have accidently done to pctube.

I guess I will download pctube 1.21 again, maybe I corrupted something by mistake. If that still does not work I will try pctube 1.11.

I sure can make a good triode model though. I wonder why I don't see more of Ayumi on tube sites. jazbo8 seems to be his champion on the North American web..

Thanks jazbo8 for the reply!
 
Ex-Moderator
Joined 2011
2P1P SPICE Models

Hope someone can help me to create a LTspice model for 2P1P tube. Thanks!

2P1P Triode-Connected SPICE Model:
Code:
*
* Generic triode model: 2P1P_T_AN
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Wed May 17 12:02:28 2017
*                 Anode
*                 | Grid
*                 | | Cathode
*                 | | |
.SUBCKT 2P1P_T_AN A G K
BGG   GG   0 V=V(G,K)+-0.38808109
BM1   M1   0 V=(0.058425221*(URAMP(V(A,K))+1e-10))**-0.77409793
BM2   M2   0 V=(0.6596022*(URAMP(V(GG)+URAMP(V(A,K))/5.8262133)+1e-10))**2.2740979
BP    P    0 V=0.00079283737*(URAMP(V(GG)+URAMP(V(A,K))/8.8329198)+1e-10)**1.5
BIK   IK   0 V=U(V(GG))*V(P)+(1-U(V(GG)))*0.00047510475*V(M1)*V(M2)
BIG   IG   0 V=0.00039641868*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.00053479945*URAMP(V(A,K))**1.5)))+1e-10*V(A,K)
BIGK  G    K I=V(IG)
* CAPS
CGA   G    A 0.5p
CGK   G    K 3.5p
CAK   A    K 4p
.ENDS

2P1P Pentode SPICE Model:
Code:
*
* Generic pentode model: 2P1P_AN
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* Version 3.10, Generated on Tue May 16 13:43:57 2017
*               Anode
*               | Screen Grid
*               | |  Control Grid
*               | |  |  Cathode
*               | |  |  |
.SUBCKT 2P1P_AN A G2 G1 K
BGG   GG   0 V=V(G1,K)+-0.38808109
BM1   M1   0 V=(0.058425221*(URAMP(V(G2,K))+1e-10))**-0.77409793
BM2   M2   0 V=(0.6596022*(URAMP(V(GG)+URAMP(V(G2,K))/5.8262133)))**2.2740979
BP    P    0 V=0.00079283737*(URAMP(V(GG)+URAMP(V(G2,K))/8.8329198))**1.5
BIK   IK   0 V=U(V(GG))*V(P)+(1-U(V(GG)))*0.00047510475*V(M1)*V(M2)
BIG   IG   0 V=0.00039641868*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.83848091*(1-URAMP(V(A,K))/(URAMP(V(A,K))+10))**1.5+0.16151909)
BIK3  IK3  0 V=V(IK2)*(URAMP(V(A,K))+2047.5)/(URAMP(V(G2,K))+2047.5)
BIK4  IK4  0 V=V(IK3)-URAMP(V(IK3)-(0.00053479945*(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.00053479945*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.5p
CGK   G1  K  2.1p
C12   G1  G2 1.4p
CAK   A   K  4p
.ENDS
 
Ayumi Pentode LTSpice Model Creation Question

I am trying to create a 1T4 pentode in R using the Ayumi method.
I can very successfully create a nice 1T4 Triode model in R using the Ayumi method by omitting the "mode="pentode" " argument.

Here is the syntax of my R command:

r2spice(t1T4, "1T4", "1T4", mode="pentode", Cgp=0.01e-12, Ci=3.6e-12, Co=7.5e-12)

This is the error I receive:
Error in -p$Ea : invalid argument to unary operator

Clearly I am missing an argument the r2spice call. Can someone tell me what I am doing wrong?

Thanks!
Tom