# Vacuum Tube SPICE Models

#### jackinnj

I finished up the Excel pentode version -- but with 14 variables and 8 conditional statements it will be a challenge for MS Solver. Once again, the curves (Ayumi modeled via LTSpice compared to Excel) line up almost perfectly!

#### Attachments

• 6V6PentodeHack.png
22.9 KB · Views: 267

#### Koonw

The following KT150 LTSpice model used reference to this some data refered to in this article "Extract Koren Parameters for KT150". Pentode curve looks close but there is no other triode mode curve to compare with, so you see how it turns out with this one.

Code:
``````**** KT150 ******************************************
* Created on 04/26/2020 12:51 using paint_kip.jar
* [URL="http://www.dmitrynizh.com/tubeparams_image.htm"]www.dmitrynizh.com/tubeparams_image.htm[/URL]
* Plate Curves image file: kt150.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT KT150 P G2 G K ; LTSpice tetrode.asy pinout
* .SUBCKT KT150 P G K G2 ; Koren Pentode Pspice pinout
+ PARAMS: MU=10.77 KG1=475.4 KP=28.6 KVB=14.23 VCT=0 EX=1.35 KG2=886.91 KNEE=11.86 KVC=1.66
+ KLAMG=5.513E-4 KNEE2=20 KNEX=30  KNK=-0.044 KNG=0.006 KNPL=50 KNSL=11 KNPR=120 KNSR=29
+ CCG=14P CGP=0.85P CCP=12P RGI=2000.0
* Vp_MAX=500 Ip_MAX=360 Vg_step=5 Vg_start=5 Vg_count=15
* X_MIN=51 Y_MIN=87 X_SIZE=619 Y_SIZE=570 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* Rp=1400 Vg_ac=20 P_max=70 Vg_qui=-30 Vp_qui=300
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y
* showIg1=n isInputSnapped=y addLocalNFB=n
* XYProjections=n harmonicPlot=y dissipPlot=n
* UL=0.43 EG2=225 gridLevel2=n addKink=y isTanhKnee=y advSigmoid=n
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(G2,K)/KP*LOG(1+EXP((1/MU+(VCT+V(G,K))/SQRT(KVB+V(G2,K)*V(G2,K)))*KP))}
RE2  6 0  1G    ; DUMMY SO NODE 6 HAS 2 CONNECTIONS
E2  6 0  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))} ; Kg1 times KIT current
RE21 21 0 1
E21  21 0 VALUE={V(6)/KG1*ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2)} ; Ip with knee but no slope and no kink
RE22 22 0 1 ; E22: kink curr deviation for plate
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))}
G1   P  K  VALUE={V(21)*(1+KLAMG*V(P,K)) + V(22)}
* Alexander Gurskii screen current, see audioXpress 2/2011, with slope and kink added
RE43 43 K 1G ; Dummy
E43  43 G2 VALUE={0} ; Dummy
G2   43 K  VALUE={V(6)/KG2*(KVC-ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2))/(1+KLAMG*V(P,K))-V(22)}
RCP  P K  1G     ; FOR CONVERGENCE
C1   K G  {CCG}  ; CATHODE-GRID 1
C2   G P  {CGP}  ; GRID 1-PLATE
C3   K P  {CCP}  ; CATHODE-PLATE
R1   G 5  {RGI}  ; FOR GRID CURRENT
D3   5 K  DX     ; FOR GRID CURRENT }
.MODEL DX D(IS=1N RS=1 CJO=10PF TT=1N)
.ENDS
*\$

* 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))

**** KT150 ******************************************
* Created on 04/26/2020 12:51 using paint_kit.jar 4.7
* [URL="http://www.dmitrynizh.com/tubeparams_image.htm"]www.dmitrynizh.com/tubeparams_image.htm[/URL]
* Plate Curves image file: kt150.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT TRIODE_KT150 1 2 3 ; Plate Grid Cathode
+ PARAMS: CCG=14P  CGP=0.85P CCP=12P RGI=2000
+ MU=10.77 KG1=2528.27 KP=28.6 KVB=14.23 VCT=0 EX=1.35
* Vp_MAX=500 Ip_MAX=360 Vg_step=5 Vg_start=5 Vg_count=15
* Rp=1400 Vg_ac=20 P_max=70 Vg_qui=-30 Vp_qui=300
* X_MIN=51 Y_MIN=87 X_SIZE=619 Y_SIZE=570 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* showLoadLine=n showIp=y isDHT=n isPP=n isAsymPP=n showDissipLimit=y
* showIg1=n gridLevel2=n isInputSnapped=y
* XYProjections=n harmonicPlot=y dissipPlot=n
*----------------------------------------------------------------------------------
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 have adjusted the above model using a traced triode curve: KT150 curves by Sofia - diyAudio, new code:

Code:
``````**** KT150 ******************************************
* Created on 09/06/2020 15:59 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: kt150.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT KT150 P G2 G K ; LTSpice tetrode.asy pinout
* .SUBCKT KT150 P G K G2 ; Koren Pentode Pspice pinout
+ PARAMS: MU=8.831 KG1=684.58 KP=44.04 KVB=150.27 VCT=-1 EX=1.35 KG2=886.91 KNEE=12.57 KVC=1.66
+ KLAMG=4.41E-4 KNEE2=14.49 KNEX=21.55  KNK=-0.06737 KNG=0.008037 KNPL=0.455 KNSL=5.465 KNPR=102 KNSR=26.97
+ CCG=14P CGP=0.85P CCP=12P VGOFF=-1.5 IGA=0.002788 IGB=0.156 IGC=6.16 IGEX=1.86
* Vp_MAX=500 Ip_MAX=360 Vg_step=5 Vg_start=10 Vg_count=17
* X_MIN=38 Y_MIN=34 X_SIZE=642 Y_SIZE=593 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* Rp=1400 Vg_ac=20 P_max=70 Vg_qui=-30 Vp_qui=300
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y
* showIg1=y isInputSnapped=y addLocalNFB=n
* XYProjections=n harmonicPlot=y dissipPlot=n
* UL=0.43 EG2=225 gridLevel2=y addKink=y isTanhKnee=y advSigmoid=n
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(G2,K)/KP*LOG(1+EXP((1/MU+(VCT+V(G,K))/SQRT(KVB+V(G2,K)*V(G2,K)))*KP))}
RE2  6 0  1G    ; DUMMY SO NODE 6 HAS 2 CONNECTIONS
E2  6 0  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))} ; Kg1 times KIT current
RE21 21 0 1
E21  21 0 VALUE={V(6)/KG1*ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2)} ; Ip with knee but no slope and no kink
RE22 22 0 1 ; E22: kink curr deviation for plate
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))}
G1   P  K  VALUE={V(21)*(1+KLAMG*V(P,K)) + V(22)}
* Alexander Gurskii screen current, see audioXpress 2/2011, with slope and kink added
RE43 43 K 1G ; Dummy
E43  43 G2 VALUE={0} ; Dummy
G2   43 K  VALUE={V(6)/KG2*(KVC-ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2))/(1+KLAMG*V(P,K))-V(22)}
RCP  P K  1G     ; FOR CONVERGENCE
C1   K G  {CCG}  ; CATHODE-GRID 1
C2   G P  {CGP}  ; GRID 1-PLATE
C3   K P  {CCP}  ; CATHODE-PLATE
RE23 G 0 1G
GG G K VALUE={(IGA+IGB/(IGC+V(P,K)))*(MU/KG1)*
+(PWR(V(G,K)-VGOFF,IGEX)+PWRS(V(G,K)-VGOFF,IGEX))}
.ENDS
*\$``````

#### Attachments

297.5 KB · Views: 312
• KT150 triode connected ADJ.png
123.3 KB · Views: 305
Last edited:

Hi Koonw,
I looks like you just created the first KT150 spice model, that copes both - pentode and triode mode!

#### Attachments

• KT150 Pentode UL plot-1.png
101.9 KB · Views: 253
• KT150 Pentode UL plot-2.png
45.1 KB · Views: 240
• KT150 Pentode UL compared plot-3.png
347.2 KB · Views: 165
• 6p3p Pentode UL plot-1.png
105.9 KB · Views: 129
• PENTODE CHARACTERISTIC CURVES kt150-2.asc
8.6 KB · Views: 93
Last edited:

#### rufus74pz

Hello.
Thank you very much, Vg2=300.
Piotr

#### Koonw

Ok I'll build it, will post soon, hope I find no issues.

#### Koonw

qb3.5-750 model:
Code:
``````* [url=http://www.dmitrynizh.com/tubeparams_image.htm]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/url]
* Plate Curves image file: qb3.5-750_P.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT QB3 P G2 G K ; LTSpice tetrode.asy pinout
* .SUBCKT QB3 P G K G2 ; Koren Pentode Pspice pinout
+ PARAMS: MU=5.1 KG1=510.97 KP=52.53 KVB=3671.05 VCT=-19.65 EX=1.08 KG2=549.77 KNEE=26.74 KVC=1.571
+ KLAM=2E-6 KLAMG=6.061E-5  KD=8.967E-5 KC=0.04329 KR1=6.5E-5 KR2=0.1216 KVBG=0.02385 KB1=0.92 KB2=2.1 KB3=0.02125 KB4=0.3025 KVBGI=0.00102 KNK=-1.5 KNG=0.006 KNPL=50 KNSL=11 KNPR=118.8 KNSR=26.72
+ CCG=0.12P CGP=12.7P CCP=4.5P VGOFF=-5 IGA=3.65E-4 IGB=0.027 IGC=8 IGEX=2
* Vp_MAX=4000 Ip_MAX=3500 Vg_step=50 Vg_start=250 Vg_count=20
* X_MIN=46 Y_MIN=14 X_SIZE=695 Y_SIZE=603 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* Rp=1400 Vg_ac=20 P_max=1250 Vg_qui=-225 Vp_qui=300
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y
* showIg1=y isInputSnapped=y addLocalNFB=n
* XYProjections=n harmonicPlot=y dissipPlot=n
* UL=0.43 EG2=300 gridLevel2=y addKink=y isTanhKnee=n advSigmoid=y
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(G2,K)/KP*LOG(1+EXP((1/MU+(VCT+V(G,K))/SQRT(KVB+V(G2,K)*V(G2,K)))*KP))}
RE2  6 0  1G    ; DUMMY SO NODE 6 HAS 2 CONNECTIONS
E2  6 0  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))} ; Kg1 times KIT current
E4   8 0  VALUE={V(P,K)/KNEE/(KVBGI+V(6)*KVBG)}
E5  81 0  VALUE={PWR(V(8),KB1)}
E6  82 0  VALUE={PWR(V(8),KB2)}
E7  83 0  VALUE={PWR(V(8),KB3)}
E8   9 0  VALUE={PWR(1-EXP(-V(81)*(KC+KR1*V(82))/(KD+KR2*V(83))),KB4)*1.5708}
RE4  8 0  1
RE5 81 0  1
RE6 82 0  1
RE7 83 0  1
RE8  9 0  1
RE21 21 0 1
E21  21 0 VALUE={V(6)/KG1*V(9)} ; Ip with knee but no slope and no kink
RE22 22 0 1 ; E22: kink curr deviation for plate
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))}
G1   P K  VALUE={V(21)*(1+KLAMG*V(P,K))+KLAM*V(P,K) + V(22)}
G2   G2 K  VALUE={V(6)/KG2*(KVC-V(9))/(1+KLAMG*V(P,K)) - V(22)}
RCP  P K  1G     ; FOR CONVERGENCE
C1   K G  {CCG}  ; CATHODE-GRID 1
C2   G P  {CGP}  ; GRID 1-PLATE
C3   K P  {CCP}  ; CATHODE-PLATE
RE23 G 0 1G
GG G K VALUE={(IGA+IGB/(IGC+V(P,K)))*(MU/KG1)*
+(PWR(V(G,K)-VGOFF,IGEX)+PWRS(V(G,K)-VGOFF,IGEX))}
.ENDS
*\$``````

#### Attachments

• qb3.5-750 paint-1.jpg
400.2 KB · Views: 90

#### rufus74pz

Hello,
Thank you very much.
Piotr

#### Koonw

I have posted Pentode/UL mode before, now attached is Pentode/Tiode and UL/Triode curves, welcome any comment. Attached simulation asc will enable one to plot one or all of the pentode, UL and triode curves in one sheet.

#### Attachments

• KT150 Pentode Triode plot-1.png
107.7 KB · Views: 382
• KT150 UL Triode plot-1.png
128.3 KB · Views: 391
• PENTODE CHARACTERISTIC CURVES diy2.asc
9.1 KB · Views: 100

#### Koonw

Here is another use of mode switch to determine overall THD and which UL% is least THD distortion.

#### Attachments

• PENTODE CHARACTERISTIC CURVES output stages plot-1.png
81.6 KB · Views: 381
• PENTODE CHARACTERISTIC CURVES output stages plot-2.png
91 KB · Views: 369
• PENTODE CHARACTERISTIC CURVES output stages.asc
10.1 KB · Views: 111
• PENTODE CHARACTERISTIC CURVES output stages-2.txt
12 KB · Views: 98
• PENTODE CHARACTERISTIC CURVES output stages-1.txt
2.7 KB · Views: 81

#### avp1

Does anyone have a good SPICE model for 805 tubes (better modern ones made in China)? I tried use one found here Tube Models for TINA but simulation does not match measurements of real device.

#### Koonw

805 Amperex model:

Code:
``````**** 805 ** Advanced Grid Current **********************************
* Created on 09/10/2020 14:49 using paint_kit.jar 3.1
* [url=http://www.dmitrynizh.com/tubeparams_image.htm]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/url]
* Plate Curves image file: 805.png
* Data source link:
*----------------------------------------------------------------------------------
.SUBCKT TRIODE_805 1 2 3 ; Plate Grid Cathode
+ PARAMS: CCG=6.5P  CGP=6.5P CCP=1.5P
+ MU=48.14 KG1=4306.46 KP=324 KVB=2230.08 VCT=3.44 EX=1.527
+ VGOFF=-5.88 IGA=1.755E-4 IGB=0.5242 IGC=0.94 IGEX=1.62
* Vp_MAX=3000 Ip_MAX=900 Vg_step=20 Vg_start=120 Vg_count=11
* Rp=4000 Vg_ac=55 P_max=125 Vg_qui=-48 Vp_qui=300
* X_MIN=94 Y_MIN=67 X_SIZE=424 Y_SIZE=514 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* showLoadLine=n showIp=y isDHT=n isPP=n isAsymPP=n showDissipLimit=y
* showIg1=y gridLevel2=y isInputSnapped=n
* XYProjections=n harmonicPlot=n dissipPlot=n
*----------------------------------------------------------------------------------
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
RE2 2 0 1G
EGC 8 0 VALUE={V(2,3)-VGOFF} ; POSITIVE GRID THRESHOLD
GG 2 3 VALUE={(IGA+IGB/(IGC+V(1,3)))*(MU/KG1)*(PWR(V(8),IGEX)+PWRS(V(8),IGEX))}
.ENDS
*\$``````

#### Attachments

• 805 paint-1.jpg
341.1 KB · Views: 315
• 805 plot-1.png
104.8 KB · Views: 139

#### Koonw

805 Chinese model:

Code:
``````**** 805 ** Advanced Grid Current **********************************
* Created on 09/10/2020 16:15 using paint_kit.jar 3.1
* [url=http://www.dmitrynizh.com/tubeparams_image.htm]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/url]
* Plate Curves image file: 805-ch.png
* Data source link:
*----------------------------------------------------------------------------------
.SUBCKT 805_CH 1 2 3 ; Plate Grid Cathode
+ PARAMS: CCG=8.5P  CGP=6.5P CCP=10.5P
+ MU=45.82 KG1=2125.1 KP=9347.79 KVB=5494.91 VCT=-11.52 EX=1.406
+ VGOFF=-5.116 IGA=2.028E-4 IGB=0.1561 IGC=84.97 IGEX=1.768
* Vp_MAX=1500 Ip_MAX=1000 Vg_step=20 Vg_start=140 Vg_count=11
* Rp=4000 Vg_ac=55 P_max=125 Vg_qui=-48 Vp_qui=300
* X_MIN=62 Y_MIN=5 X_SIZE=622 Y_SIZE=586 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* showLoadLine=n showIp=y isDHT=n isPP=n isAsymPP=n showDissipLimit=y
* showIg1=y gridLevel2=y isInputSnapped=n
* XYProjections=n harmonicPlot=n dissipPlot=n
*----------------------------------------------------------------------------------
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
RE2 2 0 1G
EGC 8 0 VALUE={V(2,3)-VGOFF} ; POSITIVE GRID THRESHOLD
GG 2 3 VALUE={(IGA+IGB/(IGC+V(1,3)))*(MU/KG1)*(PWR(V(8),IGEX)+PWRS(V(8),IGEX))}
.ENDS
*\$``````

#### Attachments

• 805-ch paint.jpg
243.9 KB · Views: 118

#### Koonw

805 Chinese model does not plot properly I'll look into it. Here is Ayumi model, it's close to Amperex:

Code:
``````*
* Generic triode model: 805
* Version 3.10, Generated on Sat Aug 01 11:40:19 2009
*           Plate
*           | Grid
*           | | Cathode
*           | | |
.SUBCKT 2 A G K
.PARAM X1=-1 X2=0.19254103 X3=-16.929908
.PARAM X4=0.081389445 X5=4.7709859 X6=18.429908
.PARAM X7=0.00078806053 X8=58.619221 X9=5.2042766e+14
.PARAM Y1=0.00039403026 Y2=0.00041428161
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 8p
CGK G K 6.5p
CAK A K 5p
.ENDS``````

#### Koonw

805_CH fixed:

Code:
``````**** 805_CH ** Advanced Grid Current **********************************
* Created on 09/10/2020 19:28 using paint_kit.jar 3.1
* [url=http://www.dmitrynizh.com/tubeparams_image.htm]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/url]
* Plate Curves image file: 805-ch.png
* Data source link:
*----------------------------------------------------------------------------------
.SUBCKT 805_CH 1 2 3 ; Plate Grid Cathode
+ PARAMS: CCG=6.5P  CGP=6.5P CCP=1.5P
+ MU=45.25 KG1=3617.43 KP=356.4 KVB=6511.83 VCT=-9.04 EX=1.527
+ VGOFF=-5.88 IGA=5.265E-5 IGB=0.0498 IGC=80.01 IGEX=2.122
* Vp_MAX=1800 Ip_MAX=900 Vg_step=20 Vg_start=140 Vg_count=11
* Rp=4000 Vg_ac=55 P_max=125 Vg_qui=-48 Vp_qui=300
* X_MIN=61 Y_MIN=67 X_SIZE=749 Y_SIZE=523 FSZ_X=1296 FSZ_Y=736 XYGrid=true
* showLoadLine=n showIp=y isDHT=n isPP=n isAsymPP=n showDissipLimit=y
* showIg1=y gridLevel2=y isInputSnapped=n
* XYProjections=n harmonicPlot=n dissipPlot=n
*----------------------------------------------------------------------------------
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
RE2 2 0 1G
EGC 8 0 VALUE={V(2,3)-VGOFF} ; POSITIVE GRID THRESHOLD
GG 2 3 VALUE={(IGA+IGB/(IGC+V(1,3)))*(MU/KG1)*(PWR(V(8),IGEX)+PWRS(V(8),IGEX))}
.ENDS
*\$``````

#### Attachments

• 805-ch paint.jpg
270.8 KB · Views: 142
• 805 Ayumi Shuaguan plot compared.png
68.9 KB · Views: 104

#### Koonw

Here are generic push pull loadline of pentode, UL and triode mode for sharing.

#### Attachments

• load_generic_pp step mod-pentode.asc
7.6 KB · Views: 98
• load_generic_pp step mod-1.asc
4.8 KB · Views: 75
• load_generic_pp step mod-ul.asc
7.8 KB · Views: 95
• composite KT150 triode PP LL5.png
126 KB · Views: 112
• composite KT150 Pentode PP LL7.png
102.1 KB · Views: 172
• composite KT150 UL PP LL8.png
107.3 KB · Views: 152
• composite UL PP LL9.png
126.4 KB · Views: 126
• composite 6C33CB PP LL4.png
119.5 KB · Views: 117
Last edited:

#### Koonw

qb3.5-750 model:
Code:
``````* [URL="http://www.dmitrynizh.com/tubeparams_image.htm"]Model Paint Tools: Trace Tube Parameters over Plate Curves, Interactively[/URL]
* Plate Curves image file: qb3.5-750_P.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT QB3 P G2 G K ; LTSpice tetrode.asy pinout
* .SUBCKT QB3 P G K G2 ; Koren Pentode Pspice pinout
+ PARAMS: MU=5.1 KG1=510.97 KP=52.53 KVB=3671.05 VCT=-19.65 EX=1.08 KG2=549.77 KNEE=26.74 KVC=1.571
+ KLAM=2E-6 KLAMG=6.061E-5  KD=8.967E-5 KC=0.04329 KR1=6.5E-5 KR2=0.1216 KVBG=0.02385 KB1=0.92 KB2=2.1 KB3=0.02125 KB4=0.3025 KVBGI=0.00102 KNK=-1.5 KNG=0.006 KNPL=50 KNSL=11 KNPR=118.8 KNSR=26.72
+ CCG=0.12P CGP=12.7P CCP=4.5P VGOFF=-5 IGA=3.65E-4 IGB=0.027 IGC=8 IGEX=2
* Vp_MAX=4000 Ip_MAX=3500 Vg_step=50 Vg_start=250 Vg_count=20
* X_MIN=46 Y_MIN=14 X_SIZE=695 Y_SIZE=603 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* Rp=1400 Vg_ac=20 P_max=1250 Vg_qui=-225 Vp_qui=300
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y
* showIg1=y isInputSnapped=y addLocalNFB=n
* XYProjections=n harmonicPlot=y dissipPlot=n
* UL=0.43 EG2=300 gridLevel2=y addKink=y isTanhKnee=n advSigmoid=y
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(G2,K)/KP*LOG(1+EXP((1/MU+(VCT+V(G,K))/SQRT(KVB+V(G2,K)*V(G2,K)))*KP))}
RE2  6 0  1G    ; DUMMY SO NODE 6 HAS 2 CONNECTIONS
E2  6 0  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))} ; Kg1 times KIT current
E4   8 0  VALUE={V(P,K)/KNEE/(KVBGI+V(6)*KVBG)}
E5  81 0  VALUE={PWR(V(8),KB1)}
E6  82 0  VALUE={PWR(V(8),KB2)}
E7  83 0  VALUE={PWR(V(8),KB3)}
E8   9 0  VALUE={PWR(1-EXP(-V(81)*(KC+KR1*V(82))/(KD+KR2*V(83))),KB4)*1.5708}
RE4  8 0  1
RE5 81 0  1
RE6 82 0  1
RE7 83 0  1
RE8  9 0  1
RE21 21 0 1
E21  21 0 VALUE={V(6)/KG1*V(9)} ; Ip with knee but no slope and no kink
RE22 22 0 1 ; E22: kink curr deviation for plate
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))}
G1   P K  VALUE={V(21)*(1+KLAMG*V(P,K))+KLAM*V(P,K) + V(22)}
G2   G2 K  VALUE={V(6)/KG2*(KVC-V(9))/(1+KLAMG*V(P,K)) - V(22)}
RCP  P K  1G     ; FOR CONVERGENCE
C1   K G  {CCG}  ; CATHODE-GRID 1
C2   G P  {CGP}  ; GRID 1-PLATE
C3   K P  {CCP}  ; CATHODE-PLATE
RE23 G 0 1G
GG G K VALUE={(IGA+IGB/(IGC+V(P,K)))*(MU/KG1)*
+(PWR(V(G,K)-VGOFF,IGEX)+PWRS(V(G,K)-VGOFF,IGEX))}
.ENDS
*\$``````

Have some problems with simulation at some point it does not converge and stop, here is the update:

Code:
``````**** QB3 ******************************************
* Created on 09/13/2020 11:25 using paint_kip.jar
* [URL="http://www.dmitrynizh.com/tubeparams_image.htm"]www.dmitrynizh.com/tubeparams_image.htm[/URL]
* Plate Curves image file: qb3.5-750_P.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT QB3 P G2 G K ; LTSpice tetrode.asy pinout
* .SUBCKT QB3 P G K G2 ; Koren Pentode Pspice pinout
+ PARAMS: MU=5.1 KG1=510.97 KP=17.37 KVB=4588.81 VCT=-19.65 EX=1.08 KG2=549.77 KNEE=26.74 KVC=1.571
+ KLAM=2E-6 KLAMG=6.061E-5  KD=8.967E-5 KC=0.04329 KR1=6.5E-5 KR2=0.1216 KVBG=0.02385 KB1=0.92 KB2=2.1 KB3=0.02125 KB4=0.3025 KVBGI=0.00102 KNK=-1.5 KNG=0.006 KNPL=50 KNSL=11 KNPR=118.8 KNSR=26.72
+ CCG=0.12P CGP=12.7P CCP=4.5P VGOFF=-5 IGA=3.65E-4 IGB=0.027 IGC=8 IGEX=2
* Vp_MAX=4000 Ip_MAX=3500 Vg_step=25 Vg_start=250 Vg_count=20
* X_MIN=46 Y_MIN=14 X_SIZE=695 Y_SIZE=603 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* Rp=1400 Vg_ac=20 P_max=1250 Vg_qui=12.5 Vp_qui=300
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y
* showIg1=y isInputSnapped=y addLocalNFB=n
* XYProjections=n harmonicPlot=y dissipPlot=n
* UL=0.43 EG2=300 gridLevel2=y addKink=y isTanhKnee=n advSigmoid=y
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(G2,K)/KP*LOG(1+EXP((1/MU+(VCT+V(G,K))/SQRT(KVB+V(G2,K)*V(G2,K)))*KP))}
RE2  6 0  1G    ; DUMMY SO NODE 6 HAS 2 CONNECTIONS
E2  6 0  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))} ; Kg1 times KIT current
E4   8 0  VALUE={V(P,K)/KNEE/(KVBGI+V(6)*KVBG)}
E5  81 0  VALUE={PWR(V(8),KB1)}
E6  82 0  VALUE={PWR(V(8),KB2)}
E7  83 0  VALUE={PWR(V(8),KB3)}
E8   9 0  VALUE={PWR(1-EXP(-V(81)*(KC+KR1*V(82))/(KD+KR2*V(83))),KB4)*1.5708}
RE4  8 0  1
RE5 81 0  1
RE6 82 0  1
RE7 83 0  1
RE8  9 0  1
RE21 21 0 1
E21  21 0 VALUE={V(6)/KG1*V(9)} ; Ip with knee but no slope and no kink
RE22 22 0 1 ; E22: kink curr deviation for plate
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))}
G1   P K  VALUE={V(21)*(1+KLAMG*V(P,K))+KLAM*V(P,K) + V(22)}
G2   G2 K  VALUE={V(6)/KG2*(KVC-V(9))/(1+KLAMG*V(P,K)) - V(22)}
RCP  P K  1G     ; FOR CONVERGENCE
C1   K G  {CCG}  ; CATHODE-GRID 1
C2   G P  {CGP}  ; GRID 1-PLATE
C3   K P  {CCP}  ; CATHODE-PLATE
RE23 G 0 1G
GG G K VALUE={(IGA+IGB/(IGC+V(P,K)))*(MU/KG1)*
+(PWR(V(G,K)-VGOFF,IGEX)+PWRS(V(G,K)-VGOFF,IGEX))}
.ENDS
*\$``````

Last edited:

#### Koonw

I have adjusted the above model using a traced triode curve: KT150 curves by Sofia - diyAudio, new code:

Code:
``````**** KT150 ******************************************
* Created on 09/06/2020 15:59 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: kt150.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT KT150 P G2 G K ; LTSpice tetrode.asy pinout
* .SUBCKT KT150 P G K G2 ; Koren Pentode Pspice pinout
+ PARAMS: MU=8.831 KG1=684.58 KP=44.04 KVB=150.27 VCT=-1 EX=1.35 KG2=886.91 KNEE=12.57 KVC=1.66
+ KLAMG=4.41E-4 KNEE2=14.49 KNEX=21.55  KNK=-0.06737 KNG=0.008037 KNPL=0.455 KNSL=5.465 KNPR=102 KNSR=26.97
+ CCG=14P CGP=0.85P CCP=12P VGOFF=-1.5 IGA=0.002788 IGB=0.156 IGC=6.16 IGEX=1.86
* Vp_MAX=500 Ip_MAX=360 Vg_step=5 Vg_start=10 Vg_count=17
* X_MIN=38 Y_MIN=34 X_SIZE=642 Y_SIZE=593 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* Rp=1400 Vg_ac=20 P_max=70 Vg_qui=-30 Vp_qui=300
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y
* showIg1=y isInputSnapped=y addLocalNFB=n
* XYProjections=n harmonicPlot=y dissipPlot=n
* UL=0.43 EG2=225 gridLevel2=y addKink=y isTanhKnee=y advSigmoid=n
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(G2,K)/KP*LOG(1+EXP((1/MU+(VCT+V(G,K))/SQRT(KVB+V(G2,K)*V(G2,K)))*KP))}
RE2  6 0  1G    ; DUMMY SO NODE 6 HAS 2 CONNECTIONS
E2  6 0  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))} ; Kg1 times KIT current
RE21 21 0 1
E21  21 0 VALUE={V(6)/KG1*ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2)} ; Ip with knee but no slope and no kink
RE22 22 0 1 ; E22: kink curr deviation for plate
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))}
G1   P  K  VALUE={V(21)*(1+KLAMG*V(P,K)) + V(22)}
* Alexander Gurskii screen current, see audioXpress 2/2011, with slope and kink added
RE43 43 K 1G ; Dummy
E43  43 G2 VALUE={0} ; Dummy
G2   43 K  VALUE={V(6)/KG2*(KVC-ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2))/(1+KLAMG*V(P,K))-V(22)}
RCP  P K  1G     ; FOR CONVERGENCE
C1   K G  {CCG}  ; CATHODE-GRID 1
C2   G P  {CGP}  ; GRID 1-PLATE
C3   K P  {CCP}  ; CATHODE-PLATE
RE23 G 0 1G
GG G K VALUE={(IGA+IGB/(IGC+V(P,K)))*(MU/KG1)*
+(PWR(V(G,K)-VGOFF,IGEX)+PWRS(V(G,K)-VGOFF,IGEX))}
.ENDS
*\$``````

I have adjusted the screen grid2 current down from previous model:
Code:
``````**** KT150 ******************************************
* Created on 09/18/2020 16:03 using paint_kip.jar
* [URL="http://www.dmitrynizh.com/tubeparams_image.htm"]www.dmitrynizh.com/tubeparams_image.htm[/URL]
* Plate Curves image file: kt150.png
* Data source link: <plate curves URL>
*----------------------------------------------------------------------------------
.SUBCKT KT150 P G2 G K ; LTSpice tetrode.asy pinout
* .SUBCKT KT150 P G K G2 ; Koren Pentode Pspice pinout
+ PARAMS: MU=8.831 KG1=684.58 KP=44.04 KVB=150.27 VCT=-1 EX=1.35 KG2=3157.4 KNEE=12.57 KVC=1.594
+ KLAMG=4.41E-4 KNEE2=14.49 KNEX=21.55  KNK=-0.06737 KNG=0.008037 KNPL=0.455 KNSL=5.465 KNPR=102 KNSR=26.97
+ CCG=14P CGP=0.85P CCP=12P VGOFF=-1.5 IGA=0.002788 IGB=0.156 IGC=6.16 IGEX=1.86
* Vp_MAX=500 Ip_MAX=360 Vg_step=5 Vg_start=10 Vg_count=17
* X_MIN=73 Y_MIN=52 X_SIZE=586 Y_SIZE=544 FSZ_X=1296 FSZ_Y=736 XYGrid=false
* Rp=1400 Vg_ac=20 P_max=70 Vg_qui=-30 Vp_qui=300
* showLoadLine=n showIp=y isDHP=n isPP=n isAsymPP=n isUL=n showDissipLimit=y
* showIg1=y isInputSnapped=y addLocalNFB=n
* XYProjections=n harmonicPlot=y dissipPlot=n
* UL=0.43 EG2=225 gridLevel2=y addKink=y isTanhKnee=y advSigmoid=n
*----------------------------------------------------------------------------------
RE1  7 0  1G    ; DUMMY SO NODE 7 HAS 2 CONNECTIONS
E1   7 0  VALUE=  ; E1 BREAKS UP LONG EQUATION FOR G1.
+{V(G2,K)/KP*LOG(1+EXP((1/MU+(VCT+V(G,K))/SQRT(KVB+V(G2,K)*V(G2,K)))*KP))}
RE2  6 0  1G    ; DUMMY SO NODE 6 HAS 2 CONNECTIONS
E2  6 0  VALUE={(PWR(V(7),EX)+PWRS(V(7),EX))} ; Kg1 times KIT current
RE21 21 0 1
E21  21 0 VALUE={V(6)/KG1*ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2)} ; Ip with knee but no slope and no kink
RE22 22 0 1 ; E22: kink curr deviation for plate
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))}
G1   P  K  VALUE={V(21)*(1+KLAMG*V(P,K)) + V(22)}
* Alexander Gurskii screen current, see audioXpress 2/2011, with slope and kink added
RE43 43 K 1G ; Dummy
E43  43 G2 VALUE={0} ; Dummy
G2   43 K  VALUE={V(6)/KG2*(KVC-ATAN((V(P,K)+KNEX)/KNEE)*TANH(V(P,K)/KNEE2))/(1+KLAMG*V(P,K))-V(22)}
RCP  P K  1G     ; FOR CONVERGENCE
C1   K G  {CCG}  ; CATHODE-GRID 1
C2   G P  {CGP}  ; GRID 1-PLATE
C3   K P  {CCP}  ; CATHODE-PLATE
RE23 G 0 1G
GG G K VALUE={(IGA+IGB/(IGC+V(P,K)))*(MU/KG1)*
+(PWR(V(G,K)-VGOFF,IGEX)+PWRS(V(G,K)-VGOFF,IGEX))}
.ENDS
*\$``````