home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1989-01-22 | 9.0 KB | 244 lines |
- 10 CLS: PRINT" Q-MATCH V3.0 (5/12/87) REVISED by Stephen Sokalski
- 20 PRINT " *********************************************
- 30 PRINT " * *
- 40 PRINT " * BY DR. ALLEN KATZ AND STUDENTS OF *
- 50 PRINT " * ELECTRICAL ENGINEERING DEPARTMENT *
- 60 PRINT " * TRENTON STATE COLLEGE, CN4700 *
- 70 PRINT " * TRENTON, NEW JERSEY 08650-4700 *
- 80 PRINT " * *
- 90 PRINT " * THE AUTHOR RESERVES THE RIGHTS TO THIS *
- 100 PRINT " * PROGRAM; HOWEVER, COPYING AND USE FOR *
- 110 PRINT " * EDUCATIONAL PURPOSES IS ENCOURAGED. *
- 120 PRINT " * *
- 130 PRINT " * PLEASE REPORT ANY ERRORS OR PROBLEMS *
- 140 PRINT " * WITH THIS PROGRAM TO THE AUTHOR. *
- 150 PRINT " * TEL (609) 771 2487 *
- 160 PRINT " * *
- 170 PRINT " *********************************************
- 180 PRINT: PRINT "MULTIELEMENT MATCHING PROGRAM": PRINT
- 190 INPUT"Unloaded Q ------------->",QU
- 200 INPUT"Desired loaded Q ------->",QL
- 210 INPUT"Desired frequency (MHz)->",F:W=2*3.1416*F*10^6
- 220 INPUT"Real of source --------->",RS:OLDRS=RS
- 230 INPUT"Reactance of source ---->",XS:OLDXS=-XS
- 240 INPUT"Real of load ----------->",RL:OLDRL=RL
- 250 INPUT"Reactance of load ------>",XL:OLDXL=XL
- 260 GOTO 1290
- 270 PRINT:PRINT:PRINT:PRINT"PI NETWORKS (par-ser-par)"
- 280 PRINT" 1- C - L - C"
- 290 PRINT" 2- L - C - L"
- 300 PRINT" 3- L - (L or C) - C"
- 310 PRINT" 4- C - (L or C) - L"
- 320 PRINT"T NETWORKS (ser-par-ser)"
- 330 PRINT" 5- C - L - C"
- 340 PRINT" 6- L - C - L"
- 350 PRINT" 7- L - (L or C) - C"
- 360 PRINT" 8- C - (L or C) - L"
- 370 PRINT"OTHER SELECTIONS"
- 380 PRINT" 9- ENTER NEW VALUES"
- 390 PRINT" 10- END"
- 400 RS=OLDRS:XS=OLDXS:RL=OLDRL:XL=OLDXL
- 410 PRINT:INPUT"Which selection do you want";NU
- 420 ON NU GOTO 450,450,450,450,540,540,540,540,140,2430
- 430 GOTO 270
- 440 REM ***********************************************************
- 450 REM
- 460 REM PI NETWORKS
- 470 REM
- 480 REM ***********************************************************
- 490 IF RL>RS THEN GOSUB 680:GOSUB 1420:GOTO 270
- 500 REM Since rl<rs the circuit must be reversed so that the same routine
- 510 REM can be used. Then the results are reversed again. I.E. input and
- 520 REM output impedances as well as reactances
- 530 GOSUB 2100:GOSUB 680:GOSUB 2100:GOSUB 2220:GOSUB 1420:GOTO 270
- 540 REM ***********************************************************
- 550 REM
- 560 REM T NETWORKS
- 570 REM
- 580 REM ***********************************************************
- 590 IF RL>RS THEN GOSUB 940:GOSUB 1830:GOTO 270
- 600 REM Since rl<rs the circuit must be reversed so that the same routine
- 610 REM can be used. Then the results are reversed again. I.E. input and
- 620 REM output impedances as well as reactances
- 630 GOSUB 2100:GOSUB 940:GOSUB 2100:GOSUB 2220:GOSUB 1830:GOTO 270
- 640 REM ***********************************************************
- 650 REM
- 660 REM *** SUBROUTINES ***
- 670 REM
- 680 REM ***********************************************************
- 690 REM
- 700 REM *** PI NETWORK SUBROUTINE ***
- 710 REM Rs MUST be less than Rl
- 720 REM
- 730 REM ***********************************************************
- 740 IF XL=0 THEN 790
- 750 R=RL:JX=XL:GOSUB 1160:XPAR=-1/JB:RL=1/G
- 760 IF NU=1 OR NU=3 THEN XP2=(-RL*XPAR)/(QL*XPAR+RL):IF XP2>0 THEN GOTO 1080
- 770 IF NU=2 OR NU=4 THEN XP2=(RL*XPAR)/(QL*XPAR-RL):IF XP2<0 THEN GOTO 1080
- 780 GOTO 800
- 790 XP2=-RL/QL:IF NU=2 OR NU=4 THEN XP2=-XP2
- 800 RVIR=RL/(QL^2+1):IF RS/RVIR<1 THEN GOTO 1080
- 810 XS2=QL*RVIR:IF NU=2 OR NU=4 THEN XS2=-XS2
- 820 Q1=SQR(RS/RVIR-1)
- 830 IF XS=0 THEN 890
- 840 R=RS:JX=XS:GOSUB 1160:XPAR=-1/JB:RS=1/G
- 850 Q1=SQR(RS/RVIR-1)
- 860 IF NU=1 OR NU=4 THEN XP1=(-RS*XPAR)/(Q1*XPAR+RS):IF XP1>0 THEN GOTO 1080
- 870 IF NU=2 OR NU=3 THEN XP1=(RS*XPAR)/(Q1*XPAR-RS):IF XP1<0 THEN GOTO 1080
- 880 GOTO 900
- 890 XP1=-RS/Q1:IF NU=2 OR NU=3 THEN XP1=-XP1
- 900 XS1=Q1*RVIR:IF NU=2 OR NU=3 THEN XS1=-XS1
- 910 RETURN
- 920 REM ***********************************************************
- 930 REM
- 940 REM *** T NETWORK SUBROUTINE ***
- 950 REM Rs MUST be less than Rl
- 960 REM
- 970 REM ***********************************************************
- 980 RVIR=RS*(QL^2+1)
- 990 IF NU=5 OR NU=8 THEN XS1=-QL*RS+XS:IF XS1>0 THEN GOTO 1080
- 1000 IF NU=6 OR NU=7 THEN XS1=QL*RS+XS:IF XS1<0 THEN GOTO 1080
- 1010 XP1=RVIR/QL:IF NU=6 OR NU=7 THEN XP1=-XP1
- 1020 IF RVIR/RL<1 THEN GOTO 1080
- 1030 Q1=SQR(RVIR/RL-1)
- 1040 XP2=RVIR/Q1:IF NU=6 OR NU=8 THEN XP2=-XP2
- 1050 IF NU=6 OR NU=8 THEN XS2=Q1*RL-XL:IF XS2<0 THEN GOTO 1080
- 1060 IF NU=5 OR NU=7 THEN XS2=-Q1*RL-XL:IF XS2>0 THEN GOTO 1080
- 1070 RETURN
- 1080 PRINT "***********************************************"
- 1090 PRINT:PRINT
- 1100 PRINT " CAN NOT BE DONE"
- 1110 PRINT:PRINT
- 1120 PRINT "***********************************************"
- 1130 GOTO 270
- 1140 REM ***********************************************************
- 1150 REM
- 1160 REM ** SERIES TO PARALLEL EQUIVILENT **
- 1170 REM R+jX in: G+jB out
- 1180 REM
- 1190 REM ***********************************************************
- 1200 ANG=ATN(JX/R)
- 1210 MAG=SQR(R^2+JX^2)
- 1220 ANG=-ANG
- 1230 MAG=1/MAG
- 1240 JB=MAG*SIN(ANG)
- 1250 G=MAG*COS(ANG)
- 1260 RETURN
- 1270 REM ***********************************************************
- 1280 REM
- 1290 REM This routine checks that the desired Q is greater than that of
- 1300 REM a L-MATCH network. If not it prints an error message. In the
- 1310 REM furture a multi-L-MATCH routine could be added in its place.
- 1320 REM
- 1330 REM ***********************************************************
- 1340 IF RL>RS THEN LARGE=RL:SMALL=RS:GOTO 1360
- 1350 SMALL=RL:LARGE=RS
- 1360 IF QL>SQR(LARGE/SMALL-1)THEN GOTO 270
- 1370 PRINT"The loaded Q must be greater than";SQR(LARGE/SMALL-1);"in order"
- 1380 PRINT"to use a PI or T network. A multi-section L-MATCH network is "
- 1390 PRINT"nessesary to achieve the desired Q."
- 1400 GOTO 140
- 1410 REM ***********************************************************
- 1420 REM
- 1430 REM ** print PI **
- 1440 REM
- 1450 REM ***********************************************************
- 1460 PRINT:PRINT
- 1470 PRINT"PI NETWORK MATCH"
- 1480 PRINT"LOADED Q=";QL
- 1490 PRINT"SOURCE IMPEDANCE=";OLDRS;"IMAG. =";-OLDXS
- 1500 PRINT"LOAD IMPEDANCE=";OLDRL;"IMAG. =";OLDXL
- 1510 PRINT"FREQUENCY=";F;"MHz"
- 1520 IF XP1>0 THEN 1540
- 1530 PRINT"parallel reactance=";XP1,"capacitance=";1/ABS(W*XP1):GOTO 1550
- 1540 PRINT"parallel reactance=";XP1,"inductance =";XP1/W
- 1550 XS0=XS1+XS2:IF XS0>0 THEN 1570
- 1560 PRINT"series reactance =";XS0,"capacitance=";1/ABS(W*XS0):GOTO 1580
- 1570 PRINT"series reactance =";XS0,"inductance =";XS0/W
- 1580 IF XP2>0 THEN 1600
- 1590 PRINT"parallel reactance=";XP2,"capacitance=";1/ABS(W*XP2):GOTO 1610
- 1600 PRINT"parallel reactance=";XP2,"inductance =";XP2/W
- 1610 IL=20*LOG(1/(1-(QL/QU)))/LOG(10):PRINT"INSURTION LOSS =";IL
- 1620 PRINT:PRINT:INPUT"WOULD YOU LIKE A HARD COPY";A$
- 1630 IF A$="y"THEN GOTO 1660
- 1640 IF A$="Y"THEN GOTO 1660
- 1650 RETURN
- 1660 LPRINT:LPRINT
- 1670 LPRINT"PI NETWORK MATCH"
- 1680 LPRINT"LOADED Q=";QL
- 1690 LPRINT"SOURCE IMPEDANCE=";OLDRS;"IMAG. =";-OLDXS
- 1700 LPRINT"LOAD IMPEDANCE=";OLDRL;"IMAG. =";OLDXL
- 1710 LPRINT"FREQUENCY=";F;"MHz"
- 1720 IF XP1>0 THEN 1740
- 1730 LPRINT"parallel reactance=";XP1,"capacitance=";1/ABS(W*XP1):GOTO 1750
- 1740 LPRINT"parallel reactance=";XP1,"inductance =";XP1/W
- 1750 XS0=XS1+XS2:IF XS0>0 THEN 1770
- 1760 LPRINT"series reactance =";XS0,"capacitance=";1/ABS(W*XS0):GOTO 1780
- 1770 LPRINT"series reactance =";XS0,"inductance =";XS0/W
- 1780 IF XP2>0 THEN 1800
- 1790 LPRINT"parallel reactance=";XP2,"capacitance=";1/ABS(W*XP2):GOTO 1810
- 1800 LPRINT"parallel reactance=";XP2,"inductance =";XP2/W
- 1810 IL=20*LOG(1/(1-(QL/QU)))/LOG(10):LPRINT"INSURTION LOSS =";IL
- 1820 RETURN
- 1830 REM ***********************************************************
- 1840 REM
- 1850 REM ** print T **
- 1860 REM
- 1870 REM ***********************************************************
- 1880 PRINT:PRINT
- 1890 PRINT"T NETWORK MATCH"
- 1900 PRINT"LOADED Q=";QL
- 1910 PRINT"SOURCE IMPEDANCE=";OLDRS;"IMAG. =";-OLDXS
- 1920 PRINT"LOAD IMPEDANCE=";OLDRL;"IMAG. =";OLDXL
- 1930 PRINT"FREQUENCY=";F;"MHz"
- 1940 IF XS1>0 THEN 1960
- 1950 PRINT"series reactance =";XS1,"capacitance=";1/ABS(W*XS1):GOTO 1970
- 1960 PRINT"series reactance =";XS1,"inductance =";XS1/W
- 1970 XP0=1/(1/XP1+1/XP2):IF XP0>0 THEN 1990
- 1980 PRINT"parallel reactance=";XP0,"capacitance=";1/ABS(W*XP0):GOTO 2000
- 1990 PRINT"parallel reactance=";XP0,"inductance =";XP0/W
- 2000 IF XS2>0 THEN 2020
- 2010 PRINT"series reactance =";XS2,"capacitance=";1/ABS(W*XS2):GOTO 2030
- 2020 PRINT"series reactance =";XS2,"inductance =";XS2/W
- 2030 IL=20*LOG(1/(1-(QL/QU)))/LOG(10):PRINT"INSURTION LOSS =";IL
- 2040 PRINT:PRINT:INPUT"WOULD YOU LIKE A HARD COPY";A$
- 2050 IF A$="y"THEN GOTO 2080
- 2060 IF A$="Y"THEN GOTO 2080
- 2070 RETURN
- 2080 LPRINT:LPRINT
- 2090 LPRINT"T NETWORK MATCH"
- 2100 LPRINT"LOADED Q=";QL
- 2110 LPRINT"SOURCE IMPEDANCE=";OLDRS;"IMAG. =";-OLDXS
- 2120 LPRINT"LOAD IMPEDANCE=";OLDRL;"IMAG. =";OLDXL
- 2130 LPRINT"FREQUENCY=";F;"MHz"
- 2140 IF XS1>0 THEN 2160
- 2150 LPRINT"series reactance =";XS1,"capacitance=";1/ABS(W*XS1):GOTO 2170
- 2160 LPRINT"series reactance =";XS1,"inductance =";XS1/W
- 2170 XP0=1/(1/XP1+1/XP2):IF XP0>0 THEN 2190
- 2180 LPRINT"parallel reactance=";XP0,"capacitance=";1/ABS(W*XP0):GOTO 2200
- 2190 LPRINT"parallel reactance=";XP0,"inductance =";XP0/W
- 2200 IF XS2>0 THEN 2220
- 2210 LPRINT"series reactance =";XS2,"capacitance=";1/ABS(W*XS2):GOTO 2230
- 2220 LPRINT"series reactance =";XS2,"inductance =";XS2/W
- 2230 IL=20*LOG(1/(1-(QL/QU)))/LOG(10):LPRINT"INSURTION LOSS =";IL
- 2240 RETURN
- 2250 REM ***********************************************************
- 2260 REM
- 2270 REM EXCHANGE VARIABLES RS-RL, XS-XL, NU=3-NU=4, NU=7-NU=8
- 2280 REM
- 2290 REM ***********************************************************
- 2300 TEMP=RL:RL=RS:RS=TEMP:TEMP=-XL:XL=-XS:XS=TEMP
- 2310 IF NU=3 THEN NU=4:GOTO 2350
- 2320 IF NU=4 THEN NU=3:GOTO 2350
- 2330 IF NU=7 THEN NU=8:GOTO 2350
- 2340 IF NU=8 THEN NU=7
- 2350 RETURN
- 2360 REM ***********************************************************
- 2370 REM
- 2380 REM EXCHANGE VARIABLES XP1-XP2, XS1-XS2
- 2390 REM
- 2400 REM ***********************************************************
- 2410 TEMP=XP1:XP1=XP2:XP2=TEMP:TEMP=XS1:XS1=XS2:XS2=TEMP
- 2420 RETURN
- 2430 END
-