home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-04-16 | 7.7 KB | 213 lines |
- 10 CLS: PI=4*ATN(1)
- 20 PRINT " *********************************************
- 30 PRINT " * BY DR. ALLEN KATZ, CHAIRMAN *
- 40 PRINT " * DEPT ELECTRONICS ENGINEERING TECHNOLOGY *
- 50 PRINT " * TRENTON STATE COLLEGE, CN550 *
- 60 PRINT " * TRENTON, NEW JERSEY 8625 *
- 70 PRINT " * *
- 80 PRINT " * THE AUTHOR RESERVES THE RIGHTS TO THIS *
- 90 PRINT " * PROGRAM; HOWEVER, COPYING AND USE FOR *
- 100 PRINT " * EDUCATIONAL PURPOSES IS ENCOURAGED. *
- 110 PRINT " * *
- 120 PRINT " * PLEASE REPORT ANY ERRORS OR PROBLEMS *
- 130 PRINT " * WITH THIS PROGRAM TO THE AUTHOR. *
- 140 PRINT " * TEL (609) 771 2487 *
- 150 PRINT " *********************************************
- 160 PRINT " ZINVIN HAS BEEN UPDATED BY ORLANDO R. BLANCO FROM THE
- 170 PRINT " ORIGINAL PROGRAM A PROJECT FOR EET 358 BY WILLIAM L. CASTOR, JR
- 180 PRINT "THIS PROGRAM GIVES THE STUDENT THE ABILITY TO CALCULATE IMPEDANCE"
- 190 PRINT"OR VOLTAGE AT A GIVEN POINT ON A TRANSMISSION LINE."
- 200 PRINT " THE NEW VERSION HAS THE ABILLITY OF DOING THIS PLUS IT CAN
- 210 PRINT "CALCULATE THE DISTANCE FROM THE LOAD, GIVEN THE INPEDANCE OF A POINT"
- 220 PRINT :PRINT "DO YOU WISH TO CONTINUE (Y/N) -CAPPITALS ONLY -"
- 230 Q$= INKEY$
- 240 IF Q$= "Y" THEN 260 ELSE IF Q$="N" THEN PRINT "FINISHED":END
- 250 GOTO 230
- 260 CLS:PRINT " WHAT WOULD YOU LIKE TO DO "
- 270 PRINT:PRINT:PRINT :
- 280 PRINT " A - CALCULATE THE INPEDANCE OF A POINT
- 290 PRINT " MUST KNOW : THE DISTANCE FROM THE LOAD
- 300 PRINT :
- 310 PRINT " B - CALCULATE THE DISTANCE FROM THE LOAD
- 320 PRINT " MUST KNOW : THE INPEDANCE OF THE POINT
- 330 PRINT :
- 340 Q$ = INKEY$
- 350 IF Q$ = "A" THEN 370 ELSE IF Q$ = "B" THEN 660
- 360 GOTO 340
- 370 GOSUB 1720 : 'GETS WAVELENGHT
- 380 PRINT : INPUT "REAL VALUE OF LOAD IMPEDANCE =";ZR
- 390 IF ZR =0 THEN ZR=0
- 400 INPUT "IMAJ VALUE OF LOAD IMPEDANCE =";ZX
- 410 IF ZX=0 THEN ZX=0
- 420 INPUT "CHARACTERISTIC IMPEDANCE VALUE = ";ZO
- 430 Z1=ZR/ZO:Z2=ZX/ZO:J1=TAN(2*PI*D)
- 440 NR=Z1:NX=Z2+J1
- 450 GOSUB 1690
- 460 DG=180/PI
- 470 DEF FNMG(AR,AX)=SQR(AR^2+AX^2)
- 480 DEF FNR(MG,AG)=MG*COS(AG/DG)
- 490 DEF FNX(MG,AG)=MG*SIN(AG/DG)
- 500 DEF FNAG (AR,AX) =DG*ATN (AR/AX)
- 510 NM=FNMG(NR,NX):NA=FNAG(NR,NX)
- 520 DR=1-Z2*J1:DX=Z1*J1
- 530 DM=FNMG(DR,DX):DA=FNAG(DR,DX)
- 540 TM=ZO*NM/DM:TA=NA-DA
- 550 TR=FNR(TM,TA):TX=FNX(TM,TA)
- 560 GOSUB 1860
- 570 PRINT"DO YOU WANT A HARD COPY (Y/N)"
- 580 N$=INKEY$
- 590 IF N$ = "Y" THEN 610 ELSE IF N$="N" THEN GOTO 620
- 600 GOTO 580
- 610 GOSUB 1990
- 620 PRINT "WANT TO CALCULATE VOLTAGE (Y/N) "
- 630 H$= INKEY$
- 640 IF H$="Y" THEN 1160 ELSE IF H$="N" THEN 1640
- 650 GOTO 630
- 660 '********************** POINT INPEDANCE ******************
- 670 PRINT : INPUT "REAL VALUE OF POINT INPEDANCE = ";TR
- 680 IF TR= 0 THEN TR= 0
- 690 INPUT "IMAJ VALUE OF POINT INPEDANCE = ";TX
- 700 IF TX = 0 THEN TX = 0
- 710 PRINT :INPUT "REAL VALUE OF LOAD INPEDANCE = ";ZR
- 720 IF ZR = 0 THEN ZR= 0
- 730 INPUT "IMAJ VALUE OF LOAD INPEDANCE = ";ZX
- 740 IF ZX=0 THEN ZX= 0
- 750 PRINT :INPUT "CHARACTERISTIC INPEDANCE VALUE = ";ZO
- 760 T= TR/ZO : T1= TX/ZO
- 770 Z= ZR/ZO : Z1= ZX/ZO
- 780 TT= T-Z : IX= T1-Z1
- 790 DG=180/PI
- 800 DEF FNAG (AR,AX) = DG*ATN (AR/AX)
- 810 DEF FNMG(AR,AX)=SQR(AR^2+AX^2)
- 820 DEF FNR(MG,AG)=MG*COS(AG/DG)
- 830 DEF FNX(MG,AG)=MG*SIN(AG/DG)
- 840 FR= FNMG (TT,IX) : FX= FNAG (TT,IX)
- 850 TR1= FNMG (TR,TX) : TX1= FNAG (TR,TX)
- 860 ZR1= FNMG (ZR,ZX) : ZX1= FNAG (ZR,ZX)
- 870 TM=FNMG (TR,TX) : TA=FNAG (TX,TR)
- 880 F=0:VF=0
- 890 KR=(TR1/ZR1)/ZO^2: KX= TX1+ZX1
- 900 RK=FNR(KR,KX) : XK= FNX(KR,KX)
- 910 RK= 1-RK
- 920 FR1= FNMG (RK,XK) : FX1= FNAG (RK,XK)
- 930 D= (DG*(ATN(FR/FR1)) +180 )/360
- 940 GOSUB 1860
- 950 PRINT "WOULD YOU LIKE TO CALC THE WAVELENGHT IN INCHES (Y/N)"
- 960 L$=INKEY$
- 970 IF L$="Y" THEN 990 ELSE IF L$="N" THEN GOTO 1050
- 980 GOTO 960
- 990 PRINT :INPUT "FREQUENCY IN [H]Z, [K]HZ, OR [M]HZ ";A$
- 1000 IF A$ = "H" THEN KF =1 ELSE IF A$="K" THEN KF=1000 ELSE IF A$="M" THEN KF=1E+06 ELSE GOTO 990
- 1010 PRINT : INPUT "FREQUENCY =";F :F=F*KF
- 1020 INPUT "VELOCITY FACTOR = ";VF
- 1030 WL= 1.1811E+10*VF/F : L=D*WL
- 1040 PRINT "WAVELENGTH IN INCHES = ";L :B$="I"
- 1050 PRINT"DO YOU WANT A HAR COPY (Y/N) "
- 1060 V$=INKEY$
- 1070 IF V$ ="Y" THEN 1090 ELSE IF V$="N" THEN 1100
- 1080 GOTO 1060
- 1090 GOSUB 1990
- 1100 PRINT "WANT TO CALCULATE VOLTAGE (Y/N) "
- 1110 H$=INKEY$
- 1120 IF H$="Y" THEN 1160 ELSE IF H$="N" THEN 1640
- 1130 GOTO 1110
- 1140 REM ********************* VOLTAGE *********************************
- 1150 REM OUTBYTE(26)
- 1160 PRINT : INPUT "MAGNITUDE SOURCE VOLTAGE = "; VM
- 1170 INPUT "ANGLE OF SOURCE VOLTAGE = " ; VA
- 1180 IF B$ = "I" THEN GOTO 1230
- 1190 PRINT : INPUT "DISTANCE FROM SOURCE TO LOAD IN WAVELENGTHS =";DX
- 1200 IF DX >= D THEN GOTO 1260
- 1210 ELSE PRINT "DISTANCE FROM SOURCE TO LOAD MUST BE GREATER OR EQUAL TO ";D;"WAVELENGTHS" :GOTO 1190
- 1220 GOTO 1260
- 1230 PRINT:INPUT"DISTANCE FROM SOURCE TO LOAD IN INCHES =";LL
- 1240 IF LL >= L THEN GOTO 1250 ELSEPRINT "DISTANCE FROM SOURCE TO LOAD MUST BE GREATER OR EQUAL TO";L;"INCHES":GOTO 1230
- 1250 DX = LL/WL
- 1260 DL = D
- 1270 GOSUB 1690
- 1280 M = FNMG(ZR,ZX) : A = FNAG(ZR,ZX)
- 1290 V1 = M*COS(2*PI*DL): V2 = A
- 1300 V3 = FNR(V1,V2) : V4 = FNX(V1,V2)
- 1310 V5 = ZO*SIN(2*PI*DL) :V6 = V4 + V5
- 1320 GOSUB 1690
- 1330 V7 = FNMG(V3,V6) : V8 = FNAG(V3,V6)
- 1340 Q1 = M*COS(2*PI*DX) : Q2 = A
- 1350 Q3 = FNR(Q1,Q2) : Q4 = FNX(Q1,Q2)
- 1360 Q5 = ZO*SIN(2*PI*DX) : Q6 = Q4 + Q5
- 1370 GOSUB 1690
- 1380 Q7 = FNMG(Q3,Q6) : Q8 = FNAG(Q3,Q6)
- 1390 YM = (VM*V7)/Q7 : YA = VA + V8 - Q8
- 1400 REM OUTBYTE(26):N=0
- 1410 PRINT , : PRINT , "MAGNITUDE SOURCE VOLTAGE = " ; VM
- 1420 PRINT , "ANGLE OF SOURCE VOLTAGE = " ; VA
- 1430 IF B$ = "W" THEN GOTO 1460
- 1440 PRINT , : PRINT , "DISTANCE FROM LOAD IN INCHES = " ; L
- 1450 PRINT , "DISTANCE FROM SOURCE TO LOAD IN INCHES =" ; LL
- 1460 PRINT , : PRINT , "DISTANCE TO LOAD IN WAVELENGTHS =" ; DL
- 1470 PRINT , "DISTANCE SOURCE TO LOAD IN WAVELENGTHS =" ; DX
- 1480 PRINT , : PRINT , "MAGNITUDE OF VOLTAGE = " ; YM
- 1490 PRINT , "ANGLE OF VOLTAGE = " ; YA
- 1500 REM IF N = 2 THEN GOTO 930
- 1510 PRINT"DO YOU WISH TO MAKE A HARD COPY (Y/N)"
- 1520 N$=INKEY$
- 1530 IF N$ = "Y" THEN GOTO 1550 ELSE IF N$="N" THEN GOTO 1640
- 1540 GOTO 1520
- 1550 LPRINT , : LPRINT , "MAGNITUDE SOURCE VOLTAGE = " ; VM
- 1560 LPRINT , "ANGLE OF SOURCE VOLTAGE = " ; VA
- 1570 IF B$ = "W" THEN GOTO 1590
- 1580 LPRINT , : LPRINT , "DISTANCE FROM LOAD IN INCHES = " ; L
- 1590 LPRINT , "DISTANCE FROM SOURCE TO LOAD IN INCHES =" ; LL
- 1600 LPRINT , : LPRINT , "DISTANCE TO LOAD IN WAVELENGTHS =" ; DL
- 1610 LPRINT , "DISTANCE SOURCE TO LOAD IN WAVELENGTHS =" ; DX
- 1620 LPRINT , : LPRINT , "MAGNITUDE OF VOLTAGE = " ; YM
- 1630 LPRINT ,: LPRINT ,"ANGLE OF VOLTAGE= " ;YA
- 1640 PRINT "DO YOU WISH TO MAKE ANOTHER CALCULATION (Y/N)"
- 1650 Z$=INKEY$
- 1660 IF Z$ = "Y" THEN GOTO 260 ELSE IF Z$="N" THEN 1680
- 1670 GOTO 1650
- 1680 PRINT "FINISHED":END
- 1690 ' IF AR>0 THEN GOTO 12410 ELSE GOTO 12510
- 1700 DEF FNAG(AR,AX)=DG*ATN(AR/AX):RETURN
- 1710 DEF FNAG(AR,AX)=DG*(ATN(AR/AX)+PI):RETURN
- 1720 ' SUB FOR W OR I
- 1730 PRINT "DISTANCE IN (I)NCHES OR (W)AVELENGTHS"
- 1740 B$ = INKEY$
- 1750 IF B$="I" THEN 1780 ELSE IF B$="W" THEN 1840
- 1760 GOTO 1740
- 1770 PRINT : INPUT "DISTANCE TO THE LOAD IN WAVELENGTHS =";D
- 1780 PRINT :INPUT "FREQUENCY IN (H)Z,(K)HZ, OR (M)HZ";A$
- 1790 IF A$ = "H" THEN KF =1 ELSE IF A$ ="K" THEN KF = 1000 ELSE IF A$ = "M" THEN KF = 1E+06 ELSE GOTO 1780
- 1800 PRINT:INPUT "FREQUENCY ="; F :F = F*KF
- 1810 INPUT "VELOCITY FACTOR =";VF
- 1820 INPUT "LENGTH OF TRANSMISSION LINE FROM THE LOAD IN INCHES =";L
- 1830 WL=1.1811E+10*VF/F:D=L/WL :RETURN
- 1840 PRINT : INPUT "DISTANCE TO THE LOAD IN WAVELENGTHS =";D
- 1850 RETURN
- 1860 IF B$ = "W" THEN GOTO 1890 :'OUTPUT TO SCREEN
- 1870 PRINT: PRINT , "INPUT FREQUENCY =";F
- 1880 PRINT: PRINT , "VELOCITY FACTOR =";VF
- 1890 PRINT: PRINT "DISTANCE FROM LOAD IN WAVELENGTHS =";D
- 1900 PRINT: PRINT " IN INCHES =";L
- 1910 PRINT: PRINT "REAL VALUE OF LOAD IMPEDANCE =";ZR
- 1920 PRINT: PRINT "IMAJ VALUE OF LOAD IMPEDANCE =";ZX
- 1930 PRINT: PRINT "CHARACTERISTIC IMPEDANCE =";ZO
- 1940 PRINT: PRINT "REAL VALUE OF INPUT IMPEDANCE =";TR
- 1950 PRINT: PRINT "IMAJ VALUE OF INPUT IMPEDANCE =";TX
- 1960 PRINT: PRINT "MAG OF INPUT IMPEDANCE =";TM
- 1970 PRINT: PRINT "ANG OF INPUT IMPEDANCE =";TA: PRINT
- 1980 RETURN
- 1990 'OUT TO PRINTER
- 2000 IF B$ = "W" THEN GOTO 2030 :'OUTPUT TO SCREEN
- 2010 LPRINT :LPRINT , "INPUT FREQUENCY =";F
- 2020 LPRINT: LPRINT , "VELOCITY FACTOR =";VF
- 2030 LPRINT: LPRINT , "DISTANCE FROM LOAD IN WAVELENGTHS =";D
- 2040 LPRINT : LPRINT ," IN INCHES =";L
- 2050 LPRINT: LPRINT "REAL VALUE OF LOAD IMPEDANCE =";ZR
- 2060 LPRINT: LPRINT "IMAJ VALUE OF LOAD IMPEDANCE =";ZX
- 2070 LPRINT: LPRINT , "CHARACTERISTIC IMPEDANCE =";ZO
- 2080 LPRINT: LPRINT "REAL VALUE OF INPUT IMPEDANCE =";TR
- 2090 LPRINT: LPRINT "IMAJ VALUE OF INPUT IMPEDANCE =";TX
- 2100 LPRINT: LPRINT "MAG OF INPUT IMPEDANCE =";TM
- 2110 LPRINT: LPRINT "ANG OF INPUT IMPEDANCE =";TA :PRINT :PRINT
- 2120 RETURN
-