• 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 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
    6V6PentodeHack.png
    22.9 KB · Views: 314
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

  • KT150 paint-ADJ.jpg
    KT150 paint-ADJ.jpg
    297.5 KB · Views: 359
  • KT150 triode connected ADJ.png
    KT150 triode connected ADJ.png
    123.3 KB · Views: 350
Last edited:

Attachments

  • KT150 Pentode UL plot-1.png
    KT150 Pentode UL plot-1.png
    101.9 KB · Views: 301
  • KT150 Pentode UL plot-2.png
    KT150 Pentode UL plot-2.png
    45.1 KB · Views: 284
  • KT150 Pentode UL compared plot-3.png
    KT150 Pentode UL compared plot-3.png
    347.2 KB · Views: 211
  • 6p3p Pentode UL plot-1.png
    6p3p Pentode UL plot-1.png
    105.9 KB · Views: 170
  • PENTODE CHARACTERISTIC CURVES kt150-2.asc
    PENTODE CHARACTERISTIC CURVES kt150-2.asc
    8.6 KB · Views: 126
Last edited:
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
    qb3.5-750 paint-1.jpg
    400.2 KB · Views: 130
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

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

Attachments

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
    805 paint-1.jpg
    341.1 KB · Views: 363
  • 805 plot-1.png
    805 plot-1.png
    104.8 KB · Views: 187
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
    805-ch paint.jpg
    243.9 KB · Views: 162
805 Chinese model does not plot properly I'll look into it. Here is Ayumi model, it's close to Amperex:

HIFIDIY??-???FU81???NI MULTISIM?????14? - Powered by Discuz!


Code:
*
* Generic triode model: 805
* Copyright 2003--2008 by Ayumi Nakabayashi, All rights reserved.
* 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
 
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
    805-ch paint.jpg
    270.8 KB · Views: 182
  • 805 Ayumi Shuaguan plot compared.png
    805 Ayumi Shuaguan plot compared.png
    68.9 KB · Views: 148
Here are generic push pull loadline of pentode, UL and triode mode for sharing.
 

Attachments

Last edited:
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:
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
*$