home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
eepub10
/
14-match.asc
next >
Wrap
Text File
|
1986-10-21
|
6KB
|
167 lines
100 CLS :KEY OFF :REM "14-MATCH"
110 PRINT TAB(25);"**** 14 MATCHING NETWORKS ****" :PRINT :PRINT
120 REM A.LaPENN -1985
130 PRINT "This program designs three element matching networks, as follows:"
140 PRINT
150 PRINT " TYPE to MATCH 1st ELEMENT 2nd ELEMENT 3rd ELEMENT"
160 PRINT
170 PRINT " 1 LOWPASS RS<=RL Shunt C Series L Shunt C"
180 PRINT " 2 HIGHPASS RS<=RL Shunt L Series C Shunt L"
190 PRINT " 3 LOWPASS RS<=RL Shunt L Series L Shunt C"
200 PRINT " 4 HIGHPASS RS<=RL Shunt C Series C Shunt L"
210 PRINT " 5 LOWPASS RS<=RL Series L Shunt C Series L"
220 PRINT " 6 HIGHPASS RS<=RL Series C Shunt L Series C"
230 PRINT " 7 LOWPASS RS<=RL Series L Shunt C Series C"
240 PRINT " 8 HIGHPASS RS<=RL Series C Shunt L Series C"
250 PRINT " 9 LOWPASS RS<=RL Series C Series L Shunt C"
260 PRINT "10 HIGHPASS RS<=RL SERIES L SERIES C SHUNT L"
270 PRINT "11 LOWPASS RS<=RL Series L Shunt C Shunt L"
280 PRINT "12 HIGHPASS RS<=RL Series C Shunt L Shunt C"
290 PRINT "13 LOWPASS RS<=RL Series L Shunt C None"
300 PRINT "14 HIGHPASS RS<=RL Series C Shunt L None"
310 PRINT :BEEP :INPUT "ENTER: SOURCE RESISTANCE (ohms) ";RS
320 PRINT :BEEP :INPUT " LOAD RESISTANCE (ohms) ";RL :IF RS<=RL THEN 340
330 PRINT :BEEP :PRINT "RS MUST BE < OR = TO RL" :PRINT :GOTO 310
340 QM=SQR(RL/RS-1) :PI=4*ATN(1)
350 PRINT :BEEP :PRINT " FREQUENCY (Mhz) FOR nh & pf or 0 ";
360 INPUT "for REACTANCE (OHMS) ";FO :FO=FO*10^6
370 PRINT :BEEP :INPUT " NETWORK TYPE (SEE ABOVE), [1-14]";NET
380 IF NET<1 OR NET>14 THEN 370
390 PRINT :PRINT TAB(27);"Qmin=";INT(QM*100)/100 :Q=QM
400 IF NET>12 THEN 430
410 PRINT :BEEP :INPUT "ENTER: DESIRED Q, NOTE: Q>=Qmin ";Q :IF Q>=QM THEN 430
420 PRINT :PRINT "Q MUST BE > OR = TO";INT(QM*100)/100 :GOTO 410
430 ON NET GOSUB 680,680,750,750,820,820,890,890,960,960,1030,1030,1100,1100
440 IF FO=0 THEN 580
450 ON SGN(X1)+2 GOTO 460,470,480
460 F1=(1/(2*PI*FO*X1))*-1
470 GOTO 490
480 F1=X1/(2*PI*FO)
490 ON SGN(X2)+2 GOTO 500,510,520
500 F2=(1/(2*PI*FO*X2))*-1
510 GOTO 530
520 F2=X2/(2*PI*FO)
530 IF NET>12 THEN 580
540 ON SGN(X3)+2 GOTO 550,560,570
550 F3=(1/(2*PI*FO*X3))*-1
560 GOTO 580
570 F3=X3/(2*PI*FO)
580 GOSUB 1210
590 PRINT :BEEP :PRINT "HARD COPY REQUIRED? (Y/N)"
600 P$=INKEY$ :IF P$="" THEN 600
610 IF P$="Y" THEN 630
620 IF P$<>"N" THEN 600 ELSE 640
630 GOSUB 1490
640 PRINT :BEEP :PRINT "CONTINUE? (Y/N)"
650 A$=INKEY$ :IF A$="" THEN 650
660 IF A$="Y" THEN RUN
670 IF A$<>"N" THEN 650 ELSE END
680 REM NET 1 RS<=RL
690 X1=RS*(SQR((RL/RS)/(Q^2+1-(RL/RS))))*-1
700 X2=(Q*RL-(RS*RL/X1))/(Q^2+1)
710 X3=(RL/Q)*-1
720 IF NET=1 THEN 740
730 GOSUB 1160
740 RETURN
750 REM NET 3 RS<RL
760 X1=RS/(SQR(((RS*(Q^2+1))/RL)-1))
770 X2=((RL*Q)/(Q^2+1))*(1-RS/(Q*X1))
780 X3=(RL/Q)*-1
790 IF NET=3 THEN 810
800 GOSUB 1160
810 RETURN
820 REM NET 5 RS<=RL
830 X1=RS*Q
840 X2=(RS*(1+Q^2)*-1)/(Q+SQR(((RS*(1+Q^2))/RL)-1))
850 X3=RL*SQR(((RS*(1+Q^2))/RL)-1)
860 IF NET=5 THEN 880
870 GOSUB 1160
880 RETURN
890 REM NET 7 RS<RL
900 X1=RS*Q
910 X2=(RS*(1+Q^2)*-1)/(Q-(SQR(((RS*(1+Q^2))/RL)-1)))
920 X3=RL*SQR(((RS*(1+Q^2))/RL)-1)*-1
930 IF NET=7 THEN 950
940 GOSUB 1160
950 RETURN
960 REM NET 9 RS<RL
970 X1=-Q*RS
980 X2=SQR(RS*RL-(RS^2))-X1
990 X3=(-RS*RL)/(X1+X2)
1000 IF NET=9 THEN 1020
1010 GOSUB 1160
1020 RETURN
1030 REM NET 11 RS<RL
1040 X1=RS*SQR((RL/RS)-1)
1050 X3=RL/Q
1060 X2=-X3/((X1/(Q*RS))+1)
1070 IF NET=11 THEN 1090
1080 GOSUB 1160
1090 RETURN
1100 REM NET 13
1110 X1=SQR((RS*RL)-(RS^2))
1120 X2=(RS*RL*-1)/X1
1130 IF NET=13 THEN 1150
1140 GOSUB 1160
1150 RETURN
1160 REM INVERSE SUBROUTINE
1170 X1=X1*-1 :X2=X2*-1
1180 IF NET=14 THEN 1200
1190 X3=X3*-1
1200 RETURN
1210 REM PRINT ROUTINE
1220 CLS :PRINT TAB(25);"*** MATCHING NETWORK No.";NET;" ***"
1230 PRINT :PRINT "SOURCE RESISTANCE =";INT(RS*100)/100;"ohms";
1240 PRINT TAB(40);"LOAD RESISTANCE =";INT(RL*100)/100;"ohms"
1250 PRINT :PRINT "Qmin =";INT(QM*100)/100; :IF QM=Q THEN PRINT :GOTO 1270
1260 PRINT TAB(40);"Q =";INT(Q*100)/100
1270 IF FO<>0 THEN 1340
1280 PRINT :PRINT "X1 =";INT(X1*100)/100;"ohms";
1290 PRINT TAB(27);"X2 =";INT(X2*100)/100;"ohms";
1300 IF NET>12 THEN PRINT :GOTO 1320
1310 PRINT TAB(54);"X3 =";INT(X3*100)/100;"ohms"
1320 PRINT :PRINT "POSITIVE Nos. ARE INDUCTIVE; NEGATIVE Nos. ARE CAPACITIVE"
1330 RETURN
1340 PRINT :PRINT "FREQUENCY =";INT(FO*10^-6*100)/100;"Mhz"
1350 ON SGN(X1)+2 GOTO 1360,1370,1380
1360 PRINT :PRINT "C1 =";INT(F1*10^12*100)/100;"pf"
1370 GOTO 1390
1380 PRINT :PRINT "L1 =";INT(F1*10^9*100)/100;"nh"
1390 ON SGN(X2)+2 GOTO 1400,1410,1420
1400 PRINT :PRINT "C2 =";INT(F2*10^12*100)/100;"pf"
1410 GOTO 1430
1420 PRINT :PRINT "L2 =";INT(F2*10^9*100)/100;"nh"
1430 IF NET>12 THEN 1480
1440 ON SGN(X3)+2 GOTO 1450,1460,1470
1450 PRINT :PRINT "C3 =";INT(F3*10^12*100)/100;"pf"
1460 GOTO 1480
1470 PRINT :PRINT "L3 =";INT(F3*10^9*100)/100;"nh"
1480 RETURN
1490 LPRINT :LPRINT TAB(25);"*** MATCHING NETWORK No.";NET;" ***"
1500 LPRINT :LPRINT "SOURCE RESISTANCE =";INT(RS*100)/100;"ohms";
1510 LPRINT TAB(40);"LOAD RESISTANCE =";INT(RL*100)/100;"ohms"
1520 LPRINT "Qmin =";INT(QM*100)/100; :IF QM=Q THEN LPRINT :GOTO 1540
1530 LPRINT TAB(40);"Q =";INT(Q*100)/100
1540 IF FO<>0 THEN 1610
1550 LPRINT "X1 =";INT(X1*100)/100;"ohms";
1560 LPRINT TAB(27);"X2 =";INT(X2*100)/100;"ohms";
1570 IF NET>12 THEN 1590
1580 LPRINT TAB(54);"X3 =";INT(X3*100)/100;"ohms"
1590 LPRINT :LPRINT "POSITIVE Nos. ARE INDUCTIVE; NEGATIVE Nos. ARE CAPACITIVE"
1600 RETURN
1610 LPRINT "FREQUENCY =";INT(FO*10^-6*100)/100;"Mhz"
1620 ON SGN(X1)+2 GOTO 1630,1640,1650
1630 LPRINT "C1 =";INT(F1*10^12*100)/100;"pf"
1640 GOTO 1660
1650 LPRINT "L1 =";INT(F1*10^9*100)/100;"nh"
1660 ON SGN(X2)+2 GOTO 1670,1680,1690
1670 LPRINT "C2 =";INT(F2*10^12*100)/100;"pf"
1680 GOTO 1700
1690 LPRINT "L2 =";INT(F2*10^9*100)/100;"nh"
1700 IF NET>12 THEN 1750
1710 ON SGN(X3)+2 GOTO 1720,1730,1740
1720 LPRINT "C3 =";INT(F3*10^12*100)/100;"pf"
1730 GOTO 1750
1740 LPRINT "L3 =";INT(F3*10^9*100)/100;"nh"
1750 RETURN