Derive version 6.10 DfW file saved on 31 Mar 2007 PDIODE_Prog(P):=PROG([Vd 2254], [B1ik 2254, B1vp 2254, B2ik 2254, B2vp 2254], [n1 2254], B1ik 2254 43/50, B1vp 2254 42, B2ik 2254 29/100, B2vp 2254 20, n1 2254 LN(B2ik00b7(SIGN(B1vp) + 1)/(B1ik00b7(SIGN(B2vp) + 1)))/(LN(B2vp) - LN(B1vp)), Vd 2254 vp, [n1 2254 n1, B1ik 2254 B1ik, B1vp 2254 B1vp]) PENTODE_Prog(P):=[n1 2254 16353855/10815241, 03bct 2254 3745319/411127, k2 2254 17249483/10962, P 2254 3044201/77848, Gk 2254 79842916/201205, 03bcp 2254 13907180/68259, a 2254 64226577/6058, b 2254 72813222/6167, n2 2254 13780033/3739433] Pentode_Prog(P):=PROG([Vct 2254, A1ik 2254, A1vp 2254, A1vg1 2254, A2ik 2254, A2vp 2254, A2vg1 2254], [B1ik 2254, B1vp 2254, B1vg1 2254, B2ik 2254, B2vp 2254, B2vg1 2254], [Cik 2254, Cvp 2254, Cvg1 2254], [Dik 2254, Dvp 2254, Dvg2 2254, Dvg1 2254], [Evg2 2254, E1ip 2254, E1vp 2254, E1vg1 2254, E2ip 2254, E2vp 2254, E2vg1 2254, E3ip 2254, E3vp 2254, E3vg1 2254], [n1 2254, 03bct 2254, 03bcg2 2254, 03bcp 2254, k2 2254, P 2254, Gk 2254, a 2254, b 2254, n2 2254], A1ik 2254 1/50000b7251, A1vp 2254 300, A2ik 2254 22/125, A2vp 2254 150, B1ik 2254 1/200, B1vp 2254 80, B1vg1 2254 -10, Vct 2254 0, B2ik 2254 7/200, B2vp 2254 520, B2vg1 2254 -70, Cik 2254 1/100000b7151, Cvp 2254 300, Cvg1 2254 -20, Dik 2254 1/100000b7147, Dvp 2254 0, Dvg2 2254 300, Dvg1 2254 -20, Evg2 2254 300, E1ip 2254 1/25000b7113, E1vp 2254 300, E1vg1 2254 0, E2ip 2254 17/40, E2vp 2254 80, E2vg1 2254 0, E3ip 2254 3/20, E3vp 2254 20, E3vg1 2254 0, n1 2254 LN(A2ik00b7(SIGN(A1vp) + 1)/(A1ik00b7(SIGN(A2vp) + 1)))/(LN(A2vp) - LN(A1vp)), ASSIGN(03bct, SOLVE(B1ik = A1ik/A1vp^n100b7(B1vp00b7LN(P^((B1vg1 + Vct)00b703bct/221a(k2 + B1vp^2) + 1) + 1)/LN(P + 1))^n100b7(1 + SIGN(B1vp))/(1 + SIGN(A1vp)), 03bct, Real)), 03bct 2254 RHS(03bct), ASSIGN(k2, SOLVE(B2ik = A1ik/A1vp^n100b7(B2vp00b7LN(P^((B2vg1 + Vct)00b703bct/221a(k2 + B2vp^2) + 1) + 1)/LN(P + 1))^n100b7(1 + SIGN(B2vp))/(1 + SIGN(A1vp)), k2, Real)), k2 2254 RHS(k2), ASSIGN(P, NSOLVE(Cik = A1ik/A1vp^n100b7(Cvp00b7LN(P^((Cvg1 + Vct)00b703bct/221a(k2 + Cvp^2) + 1) + 1)/LN(P + 1))^n100b7(1 + SIGN(Cvp))/(1 + SIGN(A1vp)), P, Real)), P 2254 RHS(P), Gk 2254 1/A1ik00b7(A1vp/03bct00b7(LN(P + 1)/LN(P)))^n100b7(1 + SIGN(A1vp))/2, ASSIGN(03bcp, NSOLVE(Dik = 1/Gk00b7(Dvg2/03bct00b7(LN(P^((Dvg1 + Vct)00b703bct/221a(k2 + Dvg2^2) + Dvp00b703bct/(Dvg200b703bcp) + (03bcp - 03bct)/03bcp) + 1)/LN(P)))^n1, 03bcp, Real)), 03bcp 2254 RHS(03bcp), ASSIGN(a, SOLVE(E1ip = (a + E1vp)/((Evg2/E1vp)^n2 + b + E1vp)00b7(1/Gk)00b7(Evg2/03bct00b7(LN(P^((E1vg1 + Vct)00b703bct/221a(k2 + Evg2^2) + E1vp00b703bct/(Evg200b703bcp) + (03bcp - 03bct)/03bcp) + 1)/LN(P)))^n100b7(1 + SIGN(E1vp))/2, a, Real)), a 2254 RHS(a), ASSIGN(b, SOLVE(E2ip = (a + E2vp)/((Evg2/E2vp)^n2 + b + E2vp)00b7(1/Gk)00b7(Evg2/03bct00b7(LN(P^((E2vg1 + Vct)00b703bct/221a(k2 + Evg2^2) + E2vp00b703bct/(Evg200b703bcp) + (03bcp - 03bct)/03bcp) + 1)/LN(P)))^n100b7(1 + SIGN(E2vp))/2, b, Real)), b 2254 RHS(b), ASSIGN(n2, NSOLVE(E3ip = (a + E3vp)/((Evg2/E3vp)^n2 + b + E3vp)00b7(1/Gk)00b7(Evg2/03bct00b7(LN(P^((E3vg1 + Vct)00b703bct/221a(k2 + Evg2^2) + E3vp00b703bct/(Evg200b703bcp) + (03bcp - 03bct)/03bcp) + 1)/LN(P)))^n100b7(1 + SIGN(E3vp))/2, n2, Real)), n2 2254 RHS(n2), [n1 2254 n1, 03bct 2254 03bct, k2 2254 k2, P 2254 P, Gk 2254 Gk, 03bcp 2254 03bcp, a 2254 a, b 2254 b, n2 2254 n2]) Prog(P):=[n1 2254 16353855/10815241, 03bct 2254 3745319/411127, k2 2254 17249483/10962, P 2254 3044201/77848, Gk 2254 79842916/201205, 03bcp 2254 30463577/33111, a 2254 32061503/29333, b 2254 20552144/16493, n2 2254 11064871/3848096] RESET(P):=[n1 2254, 03bct 2254, 03bcg2 2254, 03bcp 2254, k2 2254, P 2254, Gk 2254, a 2254, b 2254, n2 2254] TRIODE_Prog(P):=PROG([Vt 2254, Vct 2254], [B1ik 2254, B1vp 2254, B1vg1 2254, B2ik 2254, B2vp 2254, B2vg1 2254], [C1ik 2254, C1vp 2254, C1vg1 2254, C2ik 2254, C2vp 2254, C2vg1 2254], [Dik 2254, Dvp 2254, Dvg2 2254, Dvg1 2254], [n1 2254, 03bct 2254, k2 2254, P 2254, Gk 2254], Vct 2254 0, B1ik 2254 9/250, B1vp 2254 225, B1vg1 2254 0, B2ik 2254 2/125, B2vp 2254 125, B2vg1 2254 0, C1ik 2254 1/2000, C1vp 2254 40, C1vg1 2254 -2, C2ik 2254 1/2000, C2vp 2254 420, C2vg1 2254 -30, Dik 2254 23/2000, Dvp 2254 250, Dvg1 2254 -8, n1 2254 LN(B2ik00b7(SIGN(B1vp) + 1)/(B1ik00b7(SIGN(B2vp) + 1)))/(LN(B2vp) - LN(B1vp)), ASSIGN(03bct, SOLVE(C1ik = B1ik/B1vp^n100b7(C1vp00b7LN(P^((C1vg1 + Vct)00b703bct/221a(k2 + C1vp^2) + 1) + 1)/LN(P + 1))^n100b7(1 + SIGN(C1vp))/(1 + SIGN(B1vp)), 03bct, Real)), 03bct 2254 RHS(03bct), ASSIGN(k2, SOLVE(C2ik = B1ik/B1vp^n100b7(C2vp00b7LN(P^((C2vg1 + Vct)00b703bct/221a(k2 + C2vp^2) + 1) + 1)/LN(P + 1))^n100b7(1 + SIGN(C2vp))/(1 + SIGN(B1vp)), k2, Real)), k2 2254 RHS(k2), ASSIGN(P, NSOLVE(Dik = B1ik/B1vp^n100b7(Dvp00b7LN(P^((Dvg1 + Vct)00b703bct/221a(k2 + Dvp^2) + 1) + 1)/LN(P + 1))^n100b7(1 + SIGN(Dvp))/(1 + SIGN(B1vp)), P, Real)), P 2254 RHS(P), Gk 2254 1/B1ik00b7(B1vp/03bct00b7(LN(P + 1)/LN(P)))^n100b7(1 + SIGN(B1vp))/2, [n1 2254 n1, 03bct 2254 03bct, k2 2254 k2, P 2254 P, Gk 2254 Gk]) A1ik:= A1vg1:= A1vp:= A2ik:= A2vg1:= A2vp:= Aik:=69/500 Avg1:=-20 Avg2:=300 Avp:=80 B1ik:=251/500 B1vg1:=0 B1vp:=300 B2ik:=22/125 B2vg1:=0 B2vp:=150 C1ik:=1/200 C1vg1:=-10 C1vp:=80 C2ik:=7/200 C2vg1:=-70 C2vp:=520 Cik:= Cvg1:= Cvp:= Dik:=151/1000 Dvg1:=-20 Dvg2:= Dvp:=300 E1ip:=113/250 E1vg1:=0 E1vp:=300 E2ip:=17/40 E2vg1:=0 E2vp:=80 E3ip:=3/20 E3vg1:=0 E3vp:=20 Evg2:=300 Gk:=79842916/201205 P:=3044201/77848 Vct:=0 Vd:= Vp:= Vt:= a:=1060194373/100000 b:=147586387/12500 hCross:=APPROX(150) k2:=17249483/10962 n1:=16353855/10815241 n2:=1842529727/500000000 vCross:=APPROX(8804347826086957/50000000000000000) vg2:= 03bcg2:= 03bcp:=13907180/68259 03bct:=3745319/411127 Precision:=Exact PrecisionDigits:=10 Notation:=Rational NotationDigits:=10 Branch:=Principal Exponential:=Auto Logarithm:=Auto Trigonometry:=Auto Trigpower:=Auto Angle:=Radian CaseMode:=Sensitive VariableOrder:=[x,y,z] OutputBase:=Decimal InputBase:=Decimal InputMode:=Word DisplayFormat:=Normal TimesOperator:=Dot DisplaySteps:=false CTextObj {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 3-13-07\par } 0@{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 MORE ABOUT FINDING SPICE VACUUM TUBE MODEL PARAMETERS\par } P`{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 By Bill Elliott\par } p{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 Copyright 2006, 2007, all rights reserved\par }  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 Individuals may copy this article for their own personal non-commercial use.\par } {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } 00{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 This work is based on the work of Norman Koren (Ref 1) and his new equation (circa 2000) for vacuum tube triodes (shown below). It is also a continuation of a previous article (Ref 2) I wrote on the same subject. It shows the procedure I used to write a Derive 6 program for directly calulating the parameter values for pentode vacuum tube spice models. It is a step by step procedure that can be used as a guide for writing similar programs using other math software. It also shows the development of a new equation for pentodes based on Koren's new triode equation.\par \par It is written with Derive 6 software rather than some other math software because that is what I have.\par } @P{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Koren's Triode Equations:\par } CExpnObj8`UserIp=E1^X/kG1*(1+SIGN(E1)){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Where:\par } 8User2E1=Ep/kp*LN(1+EXP(kp*(1/03bc+EG/SQRT(kVB+Ep^2)))) 0{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } @P{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 THE IMPORTANCE OF KOREN'S TRIODE EQUATIONS\par } `{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 For the vacuum tube audio enthusiast, I do not think the importance of Koren's triode equations can be overestimated. If the five data points are properly selected, these equations represent the simplest and most exact way of mathmatically describing the plate characteristics of the triode, and ultimately the pentode.\par } {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Koren's equation (2) can be looked upon as a conversion of the Langmuir-Childs equation as shown below. I call this Koren's conversion.\par } {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Langmuir-Childs triode equation:\par } 8hUser%Ip=1/kG1*(EG+Ep/03bc)^X*(1+SIGN(E1)) 0{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Factoring out Ep:\par } 8@pUser,Ip=1/kG1*(Ep*(EG/Ep+1/03bc))^X*(1+SIGN(E1)){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Applying Koren's conversion to (4):\par } 8xUserIIp=1/kG1*(Ep/kp*LN(1+EXP(kp*(EG/SQRT(kVB+Ep^2)+1/03bc))))^X*(1+SIGN(E1)){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Koren's conversion can also applied to the Langmuir-Childs pentode equation as shown later.\par }  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 STEP BY STEP PROCEDURE:\par } 0`{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 Because the sign of E1 is not known until after the direct calculation of the coefficients has finished, Koren's equation (1) has been modified by replacing E1 with vp. Since this only suppresses unwanted negative voltage outputs, an equation of the type shown in (75) is used to suppress unwanted negative current outputs.\par } p{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 To go through the step by step procedure, first, simplify the RESET(P) command (6).\par } 8xUserRESET(P){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 LANGMUIR-CHILDS TRIODE EQUATION:\par } 8User/ik=1/Gk*(vg1+Vct+vp/03bct)^n1*((1+SIGN(vp))/2) {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Factoring out vp in (7):\par } 80`User8ik=1/Gk*(vp*((vg1+Vct)/vp+1/03bct))^n1*((1+SIGN(vp))/2)p{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Applying Koren's conversion to (8):\par } 8xUser Tik=1/Gk*(vp/k1*LN(1+EXP(k1*((vg1+Vct)/SQRT(k2+vp^2)+1/03bct))))^n1*((1+SIGN(vp))/2){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Introduction of the parameter P:\par } {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Let:\par } 8 PUser EXP(k1/03bct)=P`p{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Solving (10) for k1:\par } 8Simp(Solve(#10,k1)) k1=03bct*LN(P){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting for k1 in (9):\par } 8User jik=1/Gk*(vp/(03bct*LN(P))*LN(1+EXP(03bct*LN(P)*((vg1+Vct)/SQRT(k2+vp^2)+1/03bct))))^n1*((1+SIGN(vp))/2) {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Simplifying (12) yields equation (13):\par } 80pUser hik=1/Gk*(vp/(03bct*LN(P))*LN(P^((SQRT(k2+vp^2)+(vg1+Vct)*03bct)/SQRT(k2+vp^2))+1))^n1*((1+SIGN(vp))/2){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Expanding (13) yields (14):\par } 8UserZik=1/Gk*(vp/(03bct*LN(P))*LN(P^((vg1+Vct)*03bct/SQRT(vp^2+k2)+1)+1))^n1*((1+SIGN(vp))/2){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Rearranging terms in (14) yields (15):\par } 8`UserZik=1/Gk*(vp/03bct*(LN(P^((vg1+Vct)*03bct/SQRT(k2+vp^2)+1)+1)/LN(P)))^n1*((1+SIGN(vp))/2)p{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 LANGMUIR-CHILDS PENTODE EQUATION:\par } 8User;ik=1/Gk*(vg1+Vct+vg2/03bcg2+vp/03bcp)^n1*((1+SIGN(vp))/2){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Factoring out vg2 in (16):\par } 8@ UserKik=1/Gk*(vg2*((vg1+Vct)/vg2+1/03bcg2+vp/(vg2*03bcp)))^n1*((1+SIGN(vp))/2)0 @ {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Applying Koren's conversion to (17):\par } 8P  Usergik=1/Gk*(vg2/k1*LN(1+EXP(k1*((vg1+Vct)/SQRT(k2+vg2^2)+1/03bcg2+vp/(vg2*03bcp)))))^n1*((1+SIGN(vp))/2)  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting for k1 in (18):\par } 8 @ User}ik=1/Gk*(vg2/(03bct*LN(P))*LN(1+EXP(03bct*LN(P)*((vg1+Vct)/SQRT(k2+vg2^2)+1/03bcg2+vp/(vg2*03bcp)))))^n1*((1+SIGN(vp))/2)  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 When vg2 equals vp, it can be shown that:\par } 80 ` User1/03bcg2+1/03bcp=1/03bctp  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}{\f1\fmodern\fprq1\fcharset161 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Solving (20) for \f1\'ec\f0 g2:\par } 8 Simp(Solve(User,g2))%03bcg2=03bcp*03bct/(03bcp-03bct)  A{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}{\f1\fmodern\fprq1\fcharset161 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting for \f1\'ec\f0 g2 in (19) and simplifying the results as in (13) through (15) yields the pentode equation for cathode current:\par } 8 @ Userik=1/Gk*(vg2/03bct*(LN(P^((vg1+Vct)*03bct/SQRT(k2+vg2^2)+vp*03bct/(vg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(vp))/2)P ` {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting constants for the variables in (22):\par } 8p  UserAik=1/Gk*(Avg2/03bct*(LN(P^((Avg1+Vct)*03bct/SQRT(k2+Avg2^2)+Avp*03bct/(Avg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(Avp))/2)  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Because we are interested only in positive values of vp, ((1 + SIGN(Avp))/2) can be simplifyied to one:\par } 8 8@ User}Aik=1/Gk*(Avg2/03bct*(LN(P^((Avg1+Vct)*03bct/SQRT(k2+Avg2^2)+Avp*03bct/(Avg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1P ` {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}{\f1\fmodern\fprq1\fcharset161 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Solving (24) for \f1\'ec\f0 p:\par } 8p  Simp(Solve(User,p))n@03bcp=IF(n1<=-1 OR Aik*Gk>0 OR n1>=1,IF(-piE1ip=(a+E1vp)/((Evg2/E1vp)^n2+b+E1vp)*(1/Gk)*(Evg2/03bct*(LN(P^((E1vg1+Vct)*03bct/SQRT(k2+Evg2^2)+E1vp*03bct/(Evg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(E1vp))/2){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Entering the data for Evg2, E1ip, E1vp and E1vg1:\par } 8User?1[Evg2:=300,E1ip:=0.452,E1vp:=300,E1vg1:=0,Vct:=0]{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Simplifying (62):\par } 8 P Approx(#62)@(a+300)/(b+301)=0.9003984063`p{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Solving (64) for a and assigning it's value to a:\par } 8XUserA+a:=3*(3001328021*b-96600265679)/10000000000{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting a new set of constants for the variables in (61):\par } 8PUserBE2ip=(a+E2vp)/((Evg2/E2vp)^n2+b+E2vp)*(1/Gk)*(Evg2/03bct*(LN(P^((E2vg1+Vct)*03bct/SQRT(k2+Evg2^2)+E2vp*03bct/(Evg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(E2vp))/2)`p{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Entering the data for E2ip, E2vp, E2vg1 and Vct:\par } 8UserC&[E2ip:=0.425,E2vp:=80,E2vg1:=0,Vct:=0]{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Simplifying (66):\par } 8 Approx(#66)Q?DH(9.003984063*10^9*b+5.101992029*10^11)/((3.75)^n2+b+80)=8.888783259*10^9 0 {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Solving (68) for b and assigning it's value to b:\par } 8@  UserE>b:=2962927753*2^(-2*(n2+1))*15^n2/9600067+50225864455/28800201  {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting another new set of constants for the variables in (61):\par } 8  !UserFE3ip=(a+E3vp)/((Evg2/E3vp)^n2+b+E3vp)*(1/Gk)*(Evg2/03bct*(LN(P^((E3vg1+Vct)*03bct/SQRT(k2+Evg2^2)+E3vp*03bct/(Evg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(E3vp))/2)0!@!{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Entering the data for E3ip, E3vp, E3vg1 and Vct:\par } 8P!`!UserG%[E3ip:=0.15,E3vp:=20,E3vg1:=0,Vct:=0]p!!{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Simplifying (70):\par } 8!! Approx(#70)Mb?H(3.425495798*10^10*(3.75)^n2+7.69799655*10^11)/(1.582236235*10^10*15^n2+1.220838264*10^12*(3.75)^n2+2.790972088*10^13)=0.00990953597!"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Solving (72) for n2 and assigning its value to n2:\par } 8" "UserIn2:=3.6850594540"@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Simplifying (69):\par } 8P"p" Approx(#69)Mb?Jb:=1.180691096*10^4""{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Simplifying (65):\par } 8"" Approx(#65)Ka:=1.060194373*10^4""{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } "#{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DERIVE 6 PARAMETER PROGRAMS\par } # #{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DERIVE 6 PENTODE PARAMETER PROGRAM (6550 EXAMPLE)\par } 80#&UserL8PENTODE_Prog(P):=PROG([Vp:=,Vt:=,Vct:=,Aik:=,Avp:=,Avg2:=,Avg1:=],[B1ik:=,B1vp:=,B1vg1:=,B2ik:=,B2vp:=,B2vg1:=],[C1ik:=,C1vp:=,C1vg1:=,C2ik:=,C2vp:=,C2vg1:=],[Dik:=,Dvp:=,Dvg2:=,Dvg1:=],[Evg2:=,E1ip:=,E1vp:=,E1vg1:=,E2ip:=,E2vp:=,E2vg1:=,E3ip:=,E3vp:=,E3vg1:=],[n1:=,03bct:=,03bcg2:=,03bcp:=,k2:=,P:=,Gk:=,a:=,b:=,n2:=],Aik:=0.138,Avp:=80,Avg2:=300,Avg1:=-20,B1ik:=0.502,B1vp:=300,B1vg1:=0,B2ik:=0.176,B2vp:=150,B2vg1:=0,C1ik:=0.005,C1vp:=80,C1vg1:=-10,Vct:=0,C2ik:=0.035,C2vp:=520,C2vg1:=-70,Dik:=0.151,Dvp:=300,Dvg1:=-20,Evg2:=300,E1ip:=0.452,E1vp:=300,E1vg1:=0,E2ip:=0.425,E2vp:=80,E2vg1:=0,E3ip:=0.15,E3vp:=20,E3vg1:=0,n1:=LN(B2ik*(SIGN(B1vp)+1)/(B1ik*(SIGN(B2vp)+1)))/(LN(B2vp)-LN(B1vp)),ASSIGN(03bct,SOLVE(C1ik=B1ik/B1vp^n1*(C1vp*(LN(P^((C1vg1+Vct)*03bct/SQRT(k2+C1vp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(C1vp))/(1+SIGN(B1vp))),03bct,Real)),03bct:=RHS(03bct),ASSIGN(k2,SOLVE(C2ik=B1ik/B1vp^n1*(C2vp*(LN(P^((C2vg1+Vct)*03bct/SQRT(k2+C2vp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(C2vp))/(1+SIGN(B1vp))),k2,Real)),k2:=RHS(k2),ASSIGN(P,NSOLVE(Dik=B1ik/B1vp^n1*(Dvp*(LN(P^((Dvg1+Vct)*03bct/SQRT(k2+Dvp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(Dvp))/(1+SIGN(B1vp))),P,Real)),P:=RHS(P),Gk:=1/B1ik*(B1vp/03bct*(LN(P+1)/LN(P)))^n1*((1+SIGN(B1vp))/2),03bcp:=03bct*(Avp-Avg2)*LN(P)/(Avg2*LN(P^(-(Avg1*03bct+SQRT(Avg2^2+k2)+Vct*03bct)/SQRT(Avg2^2+k2))*(P^(03bct*(Aik*Gk)^(1/n1)/Avg2)-1))),ASSIGN(a,SOLVE(E1ip=(a+E1vp)/((Evg2/E1vp)^n2+b+E1vp)*(1/Gk)*(Evg2/03bct*(LN(P^((E1vg1+Vct)*03bct/SQRT(k2+Evg2^2)+E1vp*03bct/(Evg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(E1vp))/2),a,Real)),a:=RHS(a),ASSIGN(b,SOLVE(E2ip=(a+E2vp)/((Evg2/E2vp)^n2+b+E2vp)*(1/Gk)*(Evg2/03bct*(LN(P^((E2vg1+Vct)*03bct/SQRT(k2+Evg2^2)+E2vp*03bct/(Evg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(E2vp))/2),b,Real)),b:=RHS(b),ASSIGN(n2,NSOLVE(E3ip=(a+E3vp)/((Evg2/E3vp)^n2+b+E3vp)*(1/Gk)*(Evg2/03bct*(LN(P^((E3vg1+Vct)*03bct/SQRT(k2+Evg2^2)+E3vp*03bct/(Evg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P)))^n1*((1+SIGN(E3vp))/2),n2,Real)),n2:=RHS(n2),[n1:=n1,03bct:=03bct,k2:=k2,P:=P,Gk:=Gk,03bcp:=03bcp,a:=a,b:=b,n2:=n2])&&{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 PENTODE MODEL EQUATIONS\par } &&{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 TRIODE CONNECTION EQUATION:\par } 8& 'UserMik=1/Gk*Vt^n1*((1+SIGN(vp))/2) '0'{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Where:\par } 8@'Xp'UserN(Vt^n1=SQRT((ABS(Vt/2)+Vt/2)*Vt^(2*n1-1))''{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting (76) into (75):\par } 8''UserO;ik=1/Gk*SQRT((ABS(Vt/2)+Vt/2)*Vt^(2*n1-1))*((1+SIGN(vp))/2)''{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 And:\par } 8(P(UserP@Vt:=vp/03bct*(LN(P^((vg1+Vct)*03bct/SQRT(k2+vp^2)+1)+1)/LN(P))`(p({\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 PENTODE CONNECTION EQUATIONS:\par } (({\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Cathode Current:\par } 8( (UserQik=1/Gk*Vp^n1*((1+SIGN(vp))/2)(({\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Where:\par } 8)X0)UserR(Vp^n1=SQRT((ABS(Vp/2)+Vp/2)*Vp^(2*n1-1))@)P){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting (80) into (79):\par } 8`))UserS;ik=1/Gk*SQRT((ABS(Vp/2)+Vp/2)*Vp^(2*n1-1))*((1+SIGN(vp))/2))){\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Plate Current:\par } 8)*UserTip=(a+vp)/((vg2/vp)^n2+b+vp)*ik *0*{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting for ik in (82):\par } 8@**UserU:ip=(a+vp)/((vg2/vp)^n2+b+vp)*(1/Gk)*Vp^n1*((1+SIGN(vp))/2)**{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Where:\par } 8*X*UserV(Vp^n1=SQRT((ABS(Vp/2)+Vp/2)*Vp^(2*n1-1))++{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting (84) into (83):\par } 8 +p+UserWWip=(a+vp)/((vg2/vp)^n2+b+vp)*(1/Gk)*SQRT((ABS(Vp/2)+Vp/2)*Vp^(2*n1-1))*((1+SIGN(vp))/2)++{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Screen Grid Current:\par } 8++UserX ig2=ik-ip++{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting for ip in (86):\par } 8+H0, Sub(User')Y#ig2=ik-(a+vp)/((vg2/vp)^n2+b+vp)*ik@,P,{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Factoring out ik in (87):\par } 8`,P,UserZ$ig2=(1-(a+vp)/((vg2/vp)^n2+b+vp))*ik,,{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting for ik in (88):\par } ,,{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } --{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } 8 -p-User[\ig2=(1-(a+vp)/((vg2/vp)^n2+b+vp))*(1/Gk*SQRT((ABS(Vp/2)+Vp/2)*Vp^(2*n1-1))*((1+SIGN(vp))/2))--{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Where:\par } 8--User\nVp:=vg2/03bct*(LN(P^((vg1+Vct)*03bct/SQRT(k2+vg2^2)+vp*03bct/(vg2*03bcp)+(03bcp-03bct)/03bcp)+1)/LN(P))..{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par }  .0.{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 A value for vg2 must be supplied to graph the pentode equation with the Derive 6 plotter. Otherwise it is not required:\par } 8@.`P.User]vg2:=`.p.{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 TRIODE PARAMETER PROGRAMS\par } ..{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Data Point Selection:\par } ..{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 The most crucial data point is the one I call C1. For low, medium and lower high mu triodes (e.g. 12AT7/12AZ7), It MUST be located on the first negative control grid bias line near cutoff . On very high mu triodes (e.g. 12AX7), it MUST be located on the second negative control grid bias line near cutoff and the "contact potential" Vct must be taken into account.\par } ./C{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 The selection of the other data points B1, B2, C2 and D are important, but not nearly so much as C1. (For very high mu triodes, B1 and B2 MUST be located on first negative grid bias line).\par } / /{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DERIVE 6 TRIODE PARAMETER PROGRAM (12AU7 EXAMPLE)\par } 0/@/J{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}{\f1\fmodern\fprq1\fcharset161 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 Equations (44), (48) and (52) are used in the triode program to calculate the values of \f1\'ec\f0 , k2 and P.\par } 8P/(P1User^TRIODE_Prog(P):=PROG([Vt:=,Vct:=],[B1ik:=,B1vp:=,B1vg1:=,B2ik:=,B2vp:=,B2vg1:=],[C1ik:=,C1vp:=,C1vg1:=,C2ik:=,C2vp:=,C2vg1:=],[Dik:=,Dvp:=,Dvg2:=,Dvg1:=],[n1:=,03bct:=,k2:=,P:=,Gk:=],Vct:=0,B1ik:=0.036,B1vp:=225,B1vg1:=0,B2ik:=0.016,B2vp:=125,B2vg1:=0,C1ik:=0.0005,C1vp:=40,C1vg1:=-2,C2ik:=0.0005,C2vp:=420,C2vg1:=-30,Dik:=0.0115,Dvp:=250,Dvg1:=-8,n1:=LN(B2ik*(SIGN(B1vp)+1)/(B1ik*(SIGN(B2vp)+1)))/(LN(B2vp)-LN(B1vp)),ASSIGN(03bct,SOLVE(C1ik=B1ik/B1vp^n1*(C1vp*(LN(P^((C1vg1+Vct)*03bct/SQRT(k2+C1vp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(C1vp))/(1+SIGN(B1vp))),03bct,Real)),03bct:=RHS(03bct),ASSIGN(k2,SOLVE(C2ik=B1ik/B1vp^n1*(C2vp*(LN(P^((C2vg1+Vct)*03bct/SQRT(k2+C2vp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(C2vp))/(1+SIGN(B1vp))),k2,Real)),k2:=RHS(k2),ASSIGN(P,NSOLVE(Dik=B1ik/B1vp^n1*(Dvp*(LN(P^((Dvg1+Vct)*03bct/SQRT(k2+Dvp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(Dvp))/(1+SIGN(B1vp))),P,Real)),P:=RHS(P),Gk:=1/B1ik*(B1vp/03bct*(LN(P+1)/LN(P)))^n1*((1+SIGN(B1vp))/2),[n1:=n1,03bct:=03bct,k2:=k2,P:=P,Gk:=Gk])`11{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}{\f1\fmodern\fprq1\fcharset161 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 There are 5 data points to be placed on the triode plate charateristics. A1 and A2 are placed on the zero control grid bias line (Except for very high \f1\'ec\f0 triodes). A1 is placed near the highest plate current of interest. A2 should be placed at about half the plate voltage of A1. B1 is placed on the first negative grid bias line near cutoff (Except for very high \f1\'ec\f0 triodes). B2 is placed on the most negative grid bias line of interest near cutoff. C is placed somewhere in the center of the plate characteristics.\par } 11{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } 11{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}{\f1\fmodern\fprq1\fcharset161 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 Data points B1 and B2 are placed on the first negative grid bias line for very high \f1\'ec\f0 triodes such as the 12AX7. Data point C1 is placed on the second negative grid bias line near cutoff. Data points C2 and D are placed the same as for lower \f1\'ec\f0 triodes.\par } 22{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par }  202{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DERIVE 6 TRIODE PARAMETER PROGRAM (12AX7 EXAMPLE)\par } 8@2(@4User_TRIODE_Prog(P):=PROG([Vt:=,Vct:=],[B1ik:=,B1vp:=,B1vg1:=,B2ik:=,B2vp:=,B2vg1:=],[C1ik:=,C1vp:=,C1vg1:=,C2ik:=,C2vp:=,C2vg1:=],[Dik:=,Dvp:=,Dvg2:=,Dvg1:=],[n1:=,03bct:=,k2:=,P:=,Gk:=],Vct:=0.5,B1ik:=0.00325,B1vp:=200,B1vg1:=-0.5,B2ik:=0.00025,B2vp:=30,B2vg1:=-0.5,C1ik:=0.0001,C1vp:=50,C1vg1:=-1,C2ik:=0.0001,C2vp:=400,C2vg1:=-5,Dik:=0.0012,Dvp:=200,Dvg1:=-1.5,n1:=LN(B2ik*(SIGN(B1vp)+1)/(B1ik*(SIGN(B2vp)+1)))/(LN(B2vp)-LN(B1vp)),ASSIGN(03bct,SOLVE(C1ik=B1ik/B1vp^n1*(C1vp*(LN(P^((C1vg1+Vct)*03bct/SQRT(k2+C1vp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(C1vp))/(1+SIGN(B1vp))),03bct,Real)),03bct:=RHS(03bct),ASSIGN(k2,SOLVE(C2ik=B1ik/B1vp^n1*(C2vp*(LN(P^((C2vg1+Vct)*03bct/SQRT(k2+C2vp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(C2vp))/(1+SIGN(B1vp))),k2,Real)),k2:=RHS(k2),ASSIGN(P,NSOLVE(Dik=B1ik/B1vp^n1*(Dvp*(LN(P^((Dvg1+Vct)*03bct/SQRT(k2+Dvp^2)+1)+1)/LN(P+1)))^n1*((1+SIGN(Dvp))/(1+SIGN(B1vp))),P,Real)),P:=RHS(P),Gk:=1/B1ik*(B1vp/03bct*(LN(P+1)/LN(P)))^n1*((1+SIGN(B1vp))/2),[n1:=n1,03bct:=03bct,k2:=k2,P:=P,Gk:=Gk])P44{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 The triode and pentode programs run in 15 to 60 seconds on my computer, depending on tube type and data point selection. Some tube types and data point selections may run on and on without giving a result. You may even get complex numbers for results. In these cases, check your data entry numbers first. If the numbers are ok, then try moving data points C1, C2 and D to higher current levels. I can not promise that these programs will work on any tube type, but I think they will work on most.\par } 44{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } 44{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 TRIODE MODEL EQUATIONS:\par } 84 5User`ik=1/Gk*Vt^n1*((1+SIGN(vp))/2) 505{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Where:\par } 8@5Xp5Usera(Vt^n1=SQRT((ABS(Vt/2)+Vt/2)*Vt^(2*n1-1))55{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting (95) into (94):\par } 855Userb;ik=1/Gk*SQRT((ABS(Vt/2)+Vt/2)*Vt^(2*n1-1))*((1+SIGN(vp))/2)55{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 And:\par } 86P6Userc@Vt:=vp/03bct*(LN(P^((vg1+Vct)*03bct/SQRT(k2+vp^2)+1)+1)/LN(P))`6p6{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DIODE PARAMETER PROGRAM\par } 66{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DERIVE 6 DIODE PARAMETER PROGRAM (5AR4 EXAMPLE)\par } 86`7UserdDIODE_Prog(P):=PROG([Vd:=],[B1ik:=,B1vp:=,B2ik:=,B2vp:=],[n1:=],B1ik:=0.86,B1vp:=42,B2ik:=0.29,B2vp:=20,n1:=LN(B2ik*(SIGN(B1vp)+1)/(B1ik*(SIGN(B2vp)+1)))/(LN(B2vp)-LN(B1vp)),Vd:=vp,[n1:=n1,B1ik:=B1ik,B1vp:=B1vp])p77`{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 For the diode program, data point A1 is placed at the highest current of interest on the diode plate characteristic. Data point A2 is placed at about half the plate voltage of A1.\par } 77{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } 77{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DIODE MODEL EQUATIONS:\par } 87@ 8Usere&ik=B1ik/B1vp^n1*Vd^n1*((1+SIGN(vp))/2)08@8{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Where:\par } 8P8X8Userf(Vd^n1=SQRT((ABS(Vd/2)+Vd/2)*Vd^(2*n1-1))88{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 Substituting (100) into (99):\par } 888UsergCik=B1ik/B1vp^n1*SQRT((ABS(Vd/2)+Vd/2)*Vd^(2*n1-1))*((1+SIGN(vp))/2)99{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 And:\par } 8 9p09UserhVd=vp@9P9{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } `9p9{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24 DERIVE 6 RESET PROGRAM (This program is for clearing variables so you can make changes to the program. It is not needed to run the program).\par } 89:Useri<RESET(P):=PROG([Vct:=,Aik:=,Avp:=,Avg2:=,Avg1:=,Vp:=,Vt:=],[B1ik:=,B1vp:=,B1vg1:=,B2ik:=,B2vp:=,B2vg1:=],[C1ik:=,C1vp:=,C1vg1:=,C2ik:=,C2vp:=,C2vg1:=],[Dik:=,Dvp:=,Dvg2:=,Dvg1:=],[Evg2:=,E1ip:=,E1vp:=,E1vg1:=,E2ip:=,E2vp:=,E2vg1:=,E3ip:=,E3vp:=,E3vg1:=],[n1:=,03bct:=,03bcg2:=,03bcp:=,k2:=,P:=,Gk:=,a:=,b:=,n2:=]): :{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } 0:p:,{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 Ref (1) http://www.normankoren.com/Audio/Tubemodspice_article.html\par \par Ref (2) http://www.knology.net/~billelliott\par \par } ::{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} {\colortbl ;\red0\green0\blue0;} \viewkind4\uc1\pard\cf1\f0\fs24 Bill Elliott email: williamy@knology.net\par } ::{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fmodern\fprq1\fcharset0 Derive Unicode;}} \viewkind4\uc1\pard\f0\fs24\par } 8:: Approx(#76)@5@jPENTODE_Prog(P):=[n1:=1.512111935,03bct:=9.109883320,k2:=1573.570790,P:=39.10442143,Gk:=396.8237171,03bcp:=203.7413381,a:=1.060194404*10^4,b:=1.180691130*10^4,n2:=3.685059472]k