• 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.

PSpice/LTSpice model for 6AU6/EF94?

ray_moth :

Try this one. Note that I have derived it from spec sheet data, rather than my own measurements. I have no grid current data, so the model is only valid for 0 or negative grid voltage, but that is usually OK. I have a pile of 6AU6 here, so perhaps later in the week I will take measurement and do a better model, including grid current.

****
*
* R McLean 31 Mar 2005
* combine best features of Duncan Amps and Korens version
* 6AU6 pentode
* parameter extraction, from GE data sheet, 31 Mar 2005
****
*
.SUBCKT 6AU6 A S G K
+ PARAMS: Ex=1.18612815517596 Kg1=518.391934858335 Kp=116.885228954804 Kvb=7.47567180363042 Mu=67.6663816946734
+ Exd=0.627830798302905 Kd=624.644769500988 Ks=2.15703063540048 Kg=0.0005
+ CCG=5.5P CPG1=.0035P CCP=5.0P
Eat at 0 Value={limit(0.636*ATAN(V(A,K)/KVB),0,1)} ; arctangent shaping
Eme me 0 VALUE={PWR(LIMIT(V(A,K),0,2000),EXD)/KD} ; diode line
Egs gs 0 VALUE= {V(S,K)/KP*LOG(1+EXP((1/MU+V(G,K)/V(S,K))*KP))} ; effective voltage
Egs2 gs2 0 VALUE={(PWR(V(gs),EX)+PWRS(V(gs),EX))/(KG1*0.636)} ; total space current
G1 A K VALUE={LIMIT(V(gs2)*V(at),0,V(me))} ; plate current
Escrn sc 0 VALUE={KS*V(gs2)*(1.1-V(at))} ; reverse arctan shaping for screen current
G2 S K VALUE={V(sc)*LIMIT(V(S,K),0,10)/10} ; screen current
* no grid current data available so comment out the grid current line
*G3 G K VALUE={PWR(LIMIT(V(G,K)+1,0,1E6),1.5)*(1.25-V(at))*KG} ; grid current
C1 G K {CCG} ; CATHODE-GRID 1
C2 A G {CPG1} ; GRID 1-PLATE
C3 A K {CCP} ; CATHODE-PLATE
.ENDS 6AU6
 

ray_moth

Ex-Moderator
2004-01-27 8:55 am
Jakarta
Robert,

I am also impressed and most grateful! I'll try the model you provided - I don't need grid current as it happens. Thanks!

docali, the following is provided on Duncan Monroe's (sp?) web site for the 12BH7A:

* 12BH7A Triode PSpice Model 9/96, Rev. 1.0 (fp)
*
* -------------------------------------------------------------------
* This model is provided "as is", with no warranty of any kind,
* either expressed or implied, about the suitability or fitness
* of this model for any particular purpose. Use of this model
* shall be entirely at the user's own risk.
*
* For a discussion about vacuum tube modeling please refer to:
* W. Marshall Leach, jr: "SPICE Models for Vacuum-Tube Amplifiers";
* J. Audio Eng. Soc., Vol 43, No 3, March 1995.
* -------------------------------------------------------------------
*
* This model is valid for the following tubes:
* 12BH7A;
* at the following conditions:
* Plate voltage : 0..600V
* Grid voltage : 0..-35V
* Cathode current: 0..50mA
*
*
* Connections: Plate
* | Grid
* | | Cathode
* | | |
.SUBCKT 12BH7A P G K
E1 2 0 VALUE={V(P,K)+16.64*V(G,K)}
R1 2 0 1.0K
Gp P K VALUE={22.34E-6*(PWR(V(2),1.5)+PWRS(V(2),1.5))/2}
Cgk G K 3.2P
Cgp G P 2.6P
Cpk P K 0.5P
.ENDS 12BH7A

If you like to try the generic triode file he provides, it also contains a model for the 12BH7A, among many others, which might be a bit better. See: Dunca Amps triode models
 
revised 6AU6 and 12BH7 models

Here are revised models for these, that are derived from actual tube measurements rather than spec sheets, and which model grid current for postive grid voltages. The static plate curves are not much different than my previous model, but I think the dynamic characteristics (mu, gm, rp ) may be more realistic.

****
*
* R McLean 24 June 2005
* combine best features of Duncan Amps and Korens version
* 6AU6 pentode
* parameter extraction, from GE tube sn001, 24 June 2005
****
*
.SUBCKT 6AU6 A S G K
+ PARAMS: Ex=1.29250482718994 Kg1=1066.05313830636 Kp=233.038097126617 Kvb=6.26797667003452 Mu=39.2114621352395
+ Exd=0.927382241593347 Kd=1427.5732907893 Ks=2.80629495414095 Kg=0.00189539610643784
+ CCG=5.5P CPG1=.0035P CCP=5.0P
Eat at 0 Value={limit(0.636*ATAN(V(A,K)/KVB),0,1)} ; arctangent shaping
Eme me 0 VALUE={PWR(LIMIT(V(A,K),0,2000),EXD)/KD} ; diode line
Egs gs 0 VALUE= {V(S,K)/KP*LOG(1+EXP((1/MU+V(G,K)/V(S,K))*KP))} ; effective voltage
Egs2 gs2 0 VALUE={(PWR(V(gs),EX)+PWRS(V(gs),EX))/(KG1*0.636)} ; total space current
G1 A K VALUE={LIMIT(V(gs2)*V(at),0,V(me))} ; plate current
Escrn sc 0 VALUE={KS*V(gs2)*(1.1-V(at))} ; reverse arctan shaping for screen current
G2 S K VALUE={V(sc)*LIMIT(V(S,K),0,10)/10} ; screen current
G3 G K VALUE={PWR(LIMIT(V(G,K)+1,0,1E6),1.5)*(1.25-V(at))*KG} ; grid current
C1 G K {CCG} ; CATHODE-GRID 1
C2 A G {CPG1} ; GRID 1-PLATE
C3 A K {CCP} ; CATHODE-PLATE
.ENDS 6AU6


* model triode 12BH7 *
* heater not included
* parameters based on values from actual tube sn001, measured 25 June 2005
.SUBCKT 12BH7 A G K
+ PARAMS: EX=1.48223054785181 MU=22.522567847687 KG1=995.714361188371 KP=77.5229158440023 KVB=104.666637159648
+ Go=-0.836752888547946 KG=2.24862182207334E-07 AG=6505.28230714881 BG=638.003346507087
+ CCG=3.2P CGP=2.6P CCP=4.5P
E1 4 0 VALUE={V(A,K)/KP*LN(1+EXP(KP*(1/MU+(V(G,K)-Go)/SQRT(KVB+V(A,K)*V(A,K)))))}
G1 A K VALUE={ (PWR(V(4),EX)+PWRS(V(4), EX))/(KG1) }
RCP A K 1G
G2 G K VALUE = {IF(V(G,K)>0,{Kg}*((({Ag}+V(A,K))/({Bg}+V(A,K)))**4)*V(G,K)**1.5,0)}
C1 G K {CCG} ; CATHODE GRID
C2 G A {CGP} ; GRID-PLATE
C3 A K {CCP} ; CATHODE-PLATE
.ENDS 12BH7
 
5965, 12AV7 and 6BQ7A models

cogsncogs:
Thanks for the "buttering up"

I've tinkered with Koren's models to get a close approximation of a 5965, 12AV7 & 6BQ7 etc., but close is not good enough!

Here are 3 models based on Koren's equations and derived using Andrei's CurveCaptor program, which you can find a link to on this forum. The grid currents are based on Rydels equation. If you want to do your own triode models then I recommend you get CurveCaptor.


*
* model for one half of 5965
*
* heater not included
* parameters captured by curvecaptor curvetracer mode from spec sheet
* 23 April 2005
*
* 5965 LTSpice model
.subckt 5965 P G K
Bp P K I=(0.112190782m)*uramp(V(P,K)*ln(1.0+(-0.0147271391)+exp((3.081793012)+(3.081793012)*((68.25893816)+
+ (284.3355247m)*V(G,K))*V(G,K)/sqrt((48.87711112)**2+(V(P,K)-(-7.174689247))**2)))/(3.081793012))**(1.111993649)
G2 G K VALUE = {IF(V(G,K)>0, 0.00168884141319536 * ((( 33.4072196011231 +V(P,K))/( 25.8590022131631 +V(P,K)))**4)
+ *V(G,K)**1.5,0)}
Ccg K G 4p
Cgp P G 3p
Ccp K P .5p
.ends 5965


*
* model for one half of 6BQ7A
*
* heater not included
* parameters captured by curvecaptor curvetracer mode from spec sheet
* 23 April 2005
*
* 6BQ7A LTSpice model
.subckt 6BQ7A P G K
Bp P K I=(0.02394315169m)*uramp(V(P,K)*ln(1.0+(-0.03717325334)+exp((3.394790097)+(3.394790097)*((43.16466529)+
+ (-237.6116265m)*V(G,K))*V(G,K)/sqrt((34.2053511)**2+(V(P,K)-(8.721051942))**2)))/(3.394790097))**(1.400664452)
G2 G K VALUE = {IF(V(G,K)>0, 0.000918214796820349 * ((( 27.9774118982126 +V(P,K))/( 21.3125760081481 +V(P,K)))**4)
+ *V(G,K)**1.5,0)}
Ccg K G 2.6p
Cgp P G 1.2p
Ccp K P 1.2p
.ends 6BQ7A

*
* model for one half of 12AV7
*
* heater not included
* grid current not modelled
* parameters captured by curvecaptor curvetracer mode from spec sheet
*
* 23 April 2005
*
* 12AV7 LTSpice model
.subckt 12AV7 P G K
Bp P K I=(0.04651445549m)*uramp(V(P,K)*ln(1.0+(-0.01793283738)+exp((1.883281017)+(1.883281017)*((56.61960516)+
+ (-351.3467706m)*V(G,K))*V(G,K)/sqrt((52.94646884)**2+(V(P,K)-(6.855571171))**2)))/(1.883281017))**(1.25758913)
Ccg K G 3.1p
Cgp P G 1.9p
Ccp K P 0.4p
.ends 12AV7


Robert:)
 
reply to teodorom about pentode models

I had problems in determining pentode parameters.

I agree, Pentodes seem to be much more difficult than triodes. I followed the link to your website, and read the page, but I was not able to download your excel files. From what I was able to read though, it sounds like you are doing similar to what I am doing. I have a spreadsheet that calculates current for values of Vp, Vg, and Vs, based on a formula, and uses the Solver function to adjust parameters until the difference between the calculated current and the real current is minimized. The formula I use is a combination of korens and Duncan Munros. I have tried many other approaches, but this formula seems to work best in most situations. Some pentodes, especially variable mu pentodes, are hard to model over a wide range of screen voltages.


How positive grid parameters are determined ?

For screen current and for positive voltage grid current I use formulas that pick off a certain portion of the total cathode current.


I was going to upload my spreadsheet so you can see what I am really talking about, but it is too big, since it contains a lot of other features such a graphs. So I am going to leave now, make the file smaller, and come back.
 
spreadsheet for pentode spice model parameter extraction

teodorom :

attached is a stripped down version of the spreadsheet I currently use for pentode parameter extraction. The data included is a partial set of data for an EL509 model I did in February of this year. The output of the spreadsheet is in cell A13, ie the Params statement, which I then paste into a text file of Spice code. Note that the fit of this example is not very good, it is just to show how the spreadsheet works
 

Attachments

  • pentodemodels.zip
    33 KB · Views: 205
PSpice version

I use MicroCap so I need pSpice.

No problem

*
* model for one half of 5965
*
* heater not included
* parameters captured by curvecaptor curvetracer mode from spec sheet
* 25 April 2006
*
* 5965 PSpice model
.subckt 5965_P P G K
Bp P K I=(0.112190782m)*limit(V(P,K)*ln(1.0+(-0.0147271391)+exp((3.081793012)+(3.081793012)*((68.25893816)+
+ (284.3355247m)*V(G,K))*V(G,K)/sqrt((48.87711112)**2+(V(P,K)-(-7.174689247))**2)))/(3.081793012),0,1e6)**(1.111993649)
G2 G K VALUE = {IF(V(G,K)>0, 0.00168884141319536 * ((( 33.4072196011231 +V(P,K))/( 25.8590022131631 +V(P,K)))**4)
+ *V(G,K)**1.5,0)}
Ccg K G 4p
Cgp P G 3p
Ccp K P .5p
.ends 5965_P

*
* model for one half of 6BQ7A
*
* heater not included
* parameters captured by curvecaptor curvetracer mode from spec sheet
* 25 April 2006
*
* 6BQ7A_P PSpice model
.subckt 6BQ7A_P P G K
Bp P K I=(0.02394315169m)*Limit(V(P,K)*ln(1.0+(-0.03717325334)+exp((3.394790097)+(3.394790097)*((43.16466529)+
+ (-237.6116265m)*V(G,K))*V(G,K)/sqrt((34.2053511)**2+(V(P,K)-(8.721051942))**2)))/(3.394790097),0,1e6)**(1.400664452)
G2 G K VALUE = {IF(V(G,K)>0, 0.000918214796820349 * ((( 27.9774118982126 +V(P,K))/( 21.3125760081481 +V(P,K)))**4)
+ *V(G,K)**1.5,0)}
Ccg K G 2.6p
Cgp P G 1.2p
Ccp K P 1.2p
.ends 6BQ7A_P

*
* model for one half of 12AV7
*
* heater not included
* grid current not modelled
* parameters captured by curvecaptor curvetracer mode from spec sheet
*
* 25 April 2006
*
* 12AV7 PSpice model
.subckt 12AV7_P P G K
Bp P K I=(0.04651445549m)*limit(V(P,K)*ln(1.0+(-0.01793283738)+exp((1.883281017)+(1.883281017)*((56.61960516)+
+ (-351.3467706m)*V(G,K))*V(G,K)/sqrt((52.94646884)**2+(V(P,K)-(6.855571171))**2)))/(1.883281017),0,1e6)**(1.25758913)
Ccg K G 3.1p
Cgp P G 1.9p
Ccp K P 0.4p
.ends 12AV7_P


or how to change it manually?

I also have MicroCap, so I was able to check what it didnt like. The only problem is with the URamp function.
URamp(X) in 3f4 is equivalent to limit(X,0,1e6) in PSpice, where 1e6 is just some arbitrarily large number. So if you want to make the change yourself in future just change "uramp" to "limit", and put ",0,1e6" where you see it in the examples above.
 

noel0768

Member
2009-02-18 3:58 am
tube problems

Hey All,
I'm new to the forum and I need some help constructing a spice model. I'm trying to model the AO-28 preamp from hammond organs. It contains 6AU6, 12BH7, 6C4, 12AU7, 12AX7. I've begun running simulations but nothing seems to work correctly. The AO-28 is split into several pieces. One is very small and I feel this would be a great place for members to help... if you could help me understand this part I'm sure I could do the rest. The vibrato section contains only two tubes and some caps and resistors. If anyone would be willing to offer any help at all please contact me at scho0768@umn.edu
thanks very much,
Ryan
 

noel0768

Member
2009-02-18 3:58 am
Thanks for the reply. Its not that I can't find the models exactly. I'm more having a problem with making them behave properly. I don't know if I'm connecting things wrong or really what the problem is. I'm posting a link to a site with a breakdown of the AO-28 just so everyone is on the same page: www.bentonelectronics.com/AO28.html
In the vibrato section for example could someone tell me what the right command would be to hookup 6Au6 and the 12bh7. *I'm doing this just as text files and then simulating based on that* Since we probably won't have assigned the node name convention the same can you describe what the node is (ie pin 4 of the 6AU6 tube).
thanks very much,
Ryan