home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / eepub03 / smith2.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-04-16  |  7.7 KB  |  213 lines

  1. 10  CLS: PI=4*ATN(1)
  2. 20  PRINT "      *********************************************
  3. 30  PRINT "      *  BY DR. ALLEN KATZ, CHAIRMAN              *
  4. 40  PRINT "      *  DEPT ELECTRONICS ENGINEERING TECHNOLOGY  *
  5. 50  PRINT "      *  TRENTON STATE COLLEGE, CN550             *
  6. 60  PRINT "      *  TRENTON, NEW JERSEY 8625                 *
  7. 70  PRINT "      *                                           *
  8. 80  PRINT "      *  THE AUTHOR RESERVES THE RIGHTS TO THIS   *
  9. 90  PRINT "      *  PROGRAM; HOWEVER, COPYING AND USE FOR    *
  10. 100  PRINT "      *  EDUCATIONAL PURPOSES IS ENCOURAGED.      *
  11. 110  PRINT "      *                                           *
  12. 120  PRINT "      *  PLEASE REPORT ANY ERRORS OR PROBLEMS     *
  13. 130  PRINT "      *  WITH THIS PROGRAM TO THE AUTHOR.         *
  14. 140  PRINT "      *  TEL (609) 771 2487                       *
  15. 150  PRINT "      *********************************************
  16. 160  PRINT "     ZINVIN HAS BEEN UPDATED BY ORLANDO R. BLANCO FROM THE
  17. 170  PRINT " ORIGINAL PROGRAM A PROJECT FOR EET 358 BY WILLIAM L. CASTOR, JR
  18. 180  PRINT "THIS PROGRAM GIVES THE STUDENT THE ABILITY TO CALCULATE IMPEDANCE"
  19. 190  PRINT"OR VOLTAGE AT A GIVEN POINT ON A TRANSMISSION LINE."
  20. 200  PRINT "     THE NEW VERSION HAS THE ABILLITY OF DOING THIS PLUS IT CAN
  21. 210  PRINT "CALCULATE THE DISTANCE FROM THE LOAD, GIVEN THE INPEDANCE OF A POINT"
  22. 220  PRINT :PRINT  "DO YOU WISH TO CONTINUE (Y/N) -CAPPITALS ONLY -"
  23. 230  Q$= INKEY$
  24. 240  IF Q$= "Y" THEN 260 ELSE IF Q$="N" THEN PRINT "FINISHED":END
  25. 250  GOTO 230
  26. 260  CLS:PRINT " WHAT WOULD YOU LIKE TO DO "
  27. 270  PRINT:PRINT:PRINT :
  28. 280  PRINT "    A - CALCULATE THE INPEDANCE OF A POINT
  29. 290  PRINT "          MUST KNOW : THE DISTANCE FROM THE LOAD
  30. 300  PRINT :
  31. 310  PRINT "    B - CALCULATE THE DISTANCE FROM THE LOAD
  32. 320  PRINT "          MUST KNOW : THE INPEDANCE OF THE POINT
  33. 330  PRINT :
  34. 340  Q$ = INKEY$
  35. 350  IF Q$ = "A" THEN 370  ELSE IF Q$ = "B" THEN 660
  36. 360  GOTO 340
  37. 370  GOSUB 1720 : 'GETS WAVELENGHT
  38. 380  PRINT : INPUT "REAL VALUE OF LOAD IMPEDANCE =";ZR
  39. 390  IF ZR =0 THEN ZR=0
  40. 400  INPUT "IMAJ VALUE OF LOAD IMPEDANCE =";ZX
  41. 410  IF ZX=0 THEN ZX=0
  42. 420  INPUT "CHARACTERISTIC IMPEDANCE VALUE = ";ZO
  43. 430  Z1=ZR/ZO:Z2=ZX/ZO:J1=TAN(2*PI*D)
  44. 440  NR=Z1:NX=Z2+J1
  45. 450  GOSUB 1690
  46. 460  DG=180/PI
  47. 470  DEF FNMG(AR,AX)=SQR(AR^2+AX^2)
  48. 480  DEF FNR(MG,AG)=MG*COS(AG/DG)
  49. 490  DEF FNX(MG,AG)=MG*SIN(AG/DG)
  50. 500  DEF FNAG (AR,AX) =DG*ATN (AR/AX)
  51. 510  NM=FNMG(NR,NX):NA=FNAG(NR,NX)
  52. 520  DR=1-Z2*J1:DX=Z1*J1
  53. 530  DM=FNMG(DR,DX):DA=FNAG(DR,DX)
  54. 540  TM=ZO*NM/DM:TA=NA-DA
  55. 550  TR=FNR(TM,TA):TX=FNX(TM,TA)
  56. 560  GOSUB 1860
  57. 570  PRINT"DO YOU WANT A HARD COPY (Y/N)"
  58. 580  N$=INKEY$
  59. 590  IF N$ = "Y" THEN 610 ELSE IF N$="N" THEN GOTO 620
  60. 600  GOTO 580
  61. 610  GOSUB 1990
  62. 620  PRINT  "WANT TO CALCULATE VOLTAGE (Y/N) "
  63. 630  H$= INKEY$
  64. 640  IF H$="Y" THEN 1160 ELSE IF H$="N" THEN 1640
  65. 650  GOTO 630
  66. 660  '********************** POINT INPEDANCE ******************
  67. 670  PRINT : INPUT "REAL VALUE OF POINT INPEDANCE = ";TR
  68. 680  IF TR= 0 THEN TR= 0
  69. 690  INPUT         "IMAJ VALUE OF POINT INPEDANCE = ";TX
  70. 700  IF TX = 0 THEN TX = 0
  71. 710  PRINT :INPUT  "REAL VALUE OF LOAD INPEDANCE = ";ZR
  72. 720  IF ZR = 0 THEN ZR= 0
  73. 730  INPUT         "IMAJ VALUE OF LOAD INPEDANCE = ";ZX
  74. 740  IF ZX=0 THEN ZX= 0
  75. 750  PRINT :INPUT  "CHARACTERISTIC INPEDANCE VALUE = ";ZO
  76. 760  T= TR/ZO : T1= TX/ZO
  77. 770  Z= ZR/ZO : Z1= ZX/ZO
  78. 780  TT= T-Z : IX= T1-Z1
  79. 790  DG=180/PI
  80. 800  DEF FNAG (AR,AX) = DG*ATN (AR/AX)
  81. 810  DEF FNMG(AR,AX)=SQR(AR^2+AX^2)
  82. 820  DEF FNR(MG,AG)=MG*COS(AG/DG)
  83. 830  DEF FNX(MG,AG)=MG*SIN(AG/DG)
  84. 840  FR= FNMG (TT,IX) : FX= FNAG (TT,IX)
  85. 850  TR1= FNMG (TR,TX) : TX1= FNAG (TR,TX)
  86. 860  ZR1= FNMG (ZR,ZX) : ZX1= FNAG (ZR,ZX)
  87. 870  TM=FNMG (TR,TX) : TA=FNAG (TX,TR)
  88. 880  F=0:VF=0
  89. 890  KR=(TR1/ZR1)/ZO^2: KX= TX1+ZX1
  90. 900  RK=FNR(KR,KX) : XK= FNX(KR,KX)
  91. 910  RK= 1-RK
  92. 920  FR1= FNMG (RK,XK) : FX1= FNAG (RK,XK)
  93. 930  D= (DG*(ATN(FR/FR1)) +180 )/360
  94. 940  GOSUB 1860
  95. 950  PRINT "WOULD YOU LIKE TO CALC THE WAVELENGHT IN INCHES (Y/N)"
  96. 960  L$=INKEY$
  97. 970  IF L$="Y" THEN 990 ELSE IF L$="N" THEN GOTO 1050
  98. 980  GOTO 960
  99. 990  PRINT :INPUT "FREQUENCY IN [H]Z, [K]HZ, OR [M]HZ ";A$
  100. 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
  101. 1010  PRINT : INPUT "FREQUENCY =";F :F=F*KF
  102. 1020  INPUT "VELOCITY FACTOR = ";VF
  103. 1030  WL= 1.1811E+10*VF/F : L=D*WL
  104. 1040  PRINT "WAVELENGTH IN INCHES = ";L :B$="I"
  105. 1050  PRINT"DO YOU WANT A HAR COPY (Y/N) "
  106. 1060  V$=INKEY$
  107. 1070  IF V$ ="Y" THEN 1090 ELSE IF V$="N" THEN 1100
  108. 1080  GOTO 1060
  109. 1090  GOSUB 1990
  110. 1100  PRINT "WANT TO CALCULATE VOLTAGE (Y/N) "
  111. 1110  H$=INKEY$
  112. 1120  IF H$="Y" THEN 1160 ELSE IF H$="N" THEN 1640
  113. 1130  GOTO 1110
  114. 1140  REM ********************* VOLTAGE *********************************
  115. 1150  REM OUTBYTE(26)
  116. 1160  PRINT : INPUT "MAGNITUDE SOURCE VOLTAGE = "; VM
  117. 1170  INPUT "ANGLE OF SOURCE VOLTAGE = " ; VA
  118. 1180  IF B$ = "I" THEN GOTO 1230
  119. 1190  PRINT : INPUT "DISTANCE FROM SOURCE TO LOAD IN WAVELENGTHS =";DX
  120. 1200  IF DX >= D THEN GOTO 1260
  121. 1210  ELSE PRINT "DISTANCE FROM SOURCE TO LOAD MUST BE GREATER OR EQUAL TO ";D;"WAVELENGTHS" :GOTO 1190
  122. 1220  GOTO 1260
  123. 1230  PRINT:INPUT"DISTANCE FROM SOURCE TO LOAD IN INCHES =";LL
  124. 1240  IF LL >= L THEN GOTO 1250 ELSEPRINT "DISTANCE FROM SOURCE TO LOAD MUST BE GREATER OR EQUAL TO";L;"INCHES":GOTO 1230
  125. 1250  DX = LL/WL
  126. 1260  DL = D
  127. 1270  GOSUB 1690
  128. 1280  M = FNMG(ZR,ZX) : A = FNAG(ZR,ZX)
  129. 1290  V1 = M*COS(2*PI*DL): V2 = A
  130. 1300  V3 = FNR(V1,V2) : V4 = FNX(V1,V2)
  131. 1310  V5 = ZO*SIN(2*PI*DL) :V6 = V4 + V5
  132. 1320  GOSUB 1690
  133. 1330  V7 = FNMG(V3,V6) : V8 = FNAG(V3,V6)
  134. 1340  Q1 = M*COS(2*PI*DX) : Q2 = A
  135. 1350  Q3 = FNR(Q1,Q2) : Q4 = FNX(Q1,Q2)
  136. 1360  Q5 = ZO*SIN(2*PI*DX) : Q6 = Q4 + Q5
  137. 1370  GOSUB 1690
  138. 1380  Q7 = FNMG(Q3,Q6) : Q8 = FNAG(Q3,Q6)
  139. 1390  YM = (VM*V7)/Q7 : YA = VA + V8 - Q8
  140. 1400  REM OUTBYTE(26):N=0
  141. 1410  PRINT  , : PRINT  , "MAGNITUDE SOURCE VOLTAGE = " ; VM
  142. 1420  PRINT  , "ANGLE OF SOURCE VOLTAGE = " ; VA
  143. 1430  IF B$ = "W" THEN GOTO 1460
  144. 1440  PRINT  , : PRINT  , "DISTANCE FROM LOAD IN INCHES = " ; L
  145. 1450  PRINT  , "DISTANCE FROM SOURCE TO LOAD IN INCHES =" ; LL
  146. 1460  PRINT  , : PRINT  , "DISTANCE TO LOAD IN WAVELENGTHS =" ; DL
  147. 1470  PRINT  , "DISTANCE SOURCE TO LOAD IN WAVELENGTHS =" ; DX
  148. 1480  PRINT  , : PRINT  , "MAGNITUDE OF VOLTAGE = " ; YM
  149. 1490  PRINT  , "ANGLE OF VOLTAGE = " ; YA
  150. 1500  REM IF N = 2 THEN GOTO 930
  151. 1510  PRINT"DO YOU WISH TO MAKE A HARD COPY (Y/N)"
  152. 1520  N$=INKEY$
  153. 1530  IF N$ = "Y" THEN  GOTO 1550 ELSE IF N$="N" THEN GOTO 1640
  154. 1540  GOTO 1520
  155. 1550  LPRINT  , : LPRINT  , "MAGNITUDE SOURCE VOLTAGE = " ; VM
  156. 1560  LPRINT  , "ANGLE OF SOURCE VOLTAGE = " ; VA
  157. 1570  IF B$ = "W" THEN GOTO 1590
  158. 1580  LPRINT  , : LPRINT  , "DISTANCE FROM LOAD IN INCHES = " ; L
  159. 1590  LPRINT  , "DISTANCE FROM SOURCE TO LOAD IN INCHES =" ; LL
  160. 1600  LPRINT  , : LPRINT  , "DISTANCE TO LOAD IN WAVELENGTHS =" ; DL
  161. 1610  LPRINT  , "DISTANCE SOURCE TO LOAD IN WAVELENGTHS =" ; DX
  162. 1620  LPRINT  , : LPRINT  , "MAGNITUDE OF VOLTAGE = " ; YM
  163. 1630  LPRINT ,: LPRINT ,"ANGLE OF VOLTAGE= " ;YA
  164. 1640  PRINT "DO YOU WISH TO MAKE ANOTHER CALCULATION (Y/N)"
  165. 1650  Z$=INKEY$
  166. 1660  IF Z$ = "Y" THEN GOTO 260 ELSE IF Z$="N" THEN 1680
  167. 1670  GOTO 1650
  168. 1680  PRINT "FINISHED":END
  169. 1690  ' IF AR>0 THEN GOTO 12410 ELSE GOTO 12510
  170. 1700  DEF FNAG(AR,AX)=DG*ATN(AR/AX):RETURN
  171. 1710  DEF FNAG(AR,AX)=DG*(ATN(AR/AX)+PI):RETURN
  172. 1720  ' SUB FOR W OR I
  173. 1730  PRINT "DISTANCE IN (I)NCHES OR (W)AVELENGTHS"
  174. 1740  B$ = INKEY$
  175. 1750  IF B$="I" THEN 1780 ELSE IF B$="W" THEN 1840
  176. 1760  GOTO 1740
  177. 1770  PRINT : INPUT "DISTANCE TO THE LOAD IN WAVELENGTHS =";D
  178. 1780  PRINT :INPUT "FREQUENCY IN (H)Z,(K)HZ, OR (M)HZ";A$
  179. 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
  180. 1800  PRINT:INPUT "FREQUENCY ="; F :F = F*KF
  181. 1810  INPUT "VELOCITY FACTOR =";VF
  182. 1820  INPUT "LENGTH OF TRANSMISSION LINE FROM THE LOAD IN INCHES =";L
  183. 1830  WL=1.1811E+10*VF/F:D=L/WL :RETURN
  184. 1840  PRINT : INPUT "DISTANCE TO THE LOAD IN WAVELENGTHS =";D
  185. 1850  RETURN
  186. 1860  IF B$ = "W" THEN GOTO 1890 :'OUTPUT TO SCREEN
  187. 1870  PRINT: PRINT   , "INPUT FREQUENCY =";F
  188. 1880  PRINT: PRINT   , "VELOCITY FACTOR =";VF
  189. 1890  PRINT: PRINT "DISTANCE FROM LOAD IN WAVELENGTHS =";D
  190. 1900  PRINT: PRINT "                        IN INCHES =";L
  191. 1910  PRINT: PRINT "REAL VALUE OF LOAD IMPEDANCE =";ZR
  192. 1920  PRINT: PRINT "IMAJ VALUE OF LOAD IMPEDANCE =";ZX
  193. 1930  PRINT: PRINT "CHARACTERISTIC IMPEDANCE =";ZO
  194. 1940  PRINT: PRINT "REAL VALUE OF INPUT IMPEDANCE =";TR
  195. 1950  PRINT: PRINT "IMAJ VALUE OF INPUT IMPEDANCE =";TX
  196. 1960  PRINT: PRINT "MAG OF INPUT IMPEDANCE =";TM
  197. 1970  PRINT: PRINT "ANG OF INPUT IMPEDANCE =";TA: PRINT
  198. 1980  RETURN
  199. 1990  'OUT TO PRINTER
  200. 2000  IF B$ = "W" THEN GOTO 2030 :'OUTPUT TO SCREEN
  201. 2010  LPRINT :LPRINT     , "INPUT FREQUENCY =";F
  202. 2020  LPRINT: LPRINT     , "VELOCITY FACTOR =";VF
  203. 2030  LPRINT: LPRINT    , "DISTANCE FROM LOAD IN WAVELENGTHS =";D
  204. 2040  LPRINT : LPRINT    ,"                       IN INCHES  =";L
  205. 2050  LPRINT: LPRINT "REAL VALUE OF LOAD IMPEDANCE =";ZR
  206. 2060  LPRINT: LPRINT "IMAJ VALUE OF LOAD IMPEDANCE =";ZX
  207. 2070  LPRINT: LPRINT    , "CHARACTERISTIC IMPEDANCE =";ZO
  208. 2080  LPRINT: LPRINT "REAL VALUE OF INPUT IMPEDANCE =";TR
  209. 2090  LPRINT: LPRINT "IMAJ VALUE OF INPUT IMPEDANCE =";TX
  210. 2100  LPRINT: LPRINT "MAG OF INPUT IMPEDANCE =";TM
  211. 2110  LPRINT: LPRINT "ANG OF INPUT IMPEDANCE =";TA :PRINT :PRINT
  212. 2120  RETURN
  213.