home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / public / penstate / drivpt.bas < prev    next >
BASIC Source File  |  1996-06-30  |  10KB  |  309 lines

  1. 5 '/////////////// DRIVPT /////////////
  2. 10 REM  05/13/86   AHMAD FAIZAL MOHD ZAIN
  3. 20 CLS:KEY OFF:ON ERROR GOTO 3100
  4. 30 T$="TO FIND THE DRIVING POINT IMPEDANCE OF AN N-ELEMENT LINEAR ARRAY":L=1: GOSUB 100
  5. 40 T$="OF HALF-WAVE DIPOLES":L=2:GOSUB 100
  6. 50 DIM I(20),ZDR(20),ZDX(20),R(20,20),X(20,20),CURRENT(20,20)
  7. 60 DIM D(140),ZR(140),ZX(140),PHI(20,20),THETA(20,20),A(20),Z(20,20)
  8. 70 DIM WATT(20),RIN(20),RS(20),ECD(20),REALI(20),IMAGI(20),Z0(20)
  9. 80 PI=3.141592
  10. 90 DEF FN LOGTEN(X)=LOG(X)/LOG(10):GOTO 110
  11. 100 LOCATE L,(80-LEN(T$))/2+1:PRINT T$:RETURN
  12. 110 :
  13. 120 PRINT:PRINT:PRINT
  14. 130 FOR I=0 TO 139
  15. 140   READ D(I),ZR(I),ZX(I)
  16. 150 NEXT I
  17. 160 NUMDATA=140: REM NUMBER OF DATA
  18. 170 INPUT "ENTER NUMBER OF ELEMENTS";N
  19. 180 INPUT "ENTER SPACING IN TERMS OF LAMBDA";LAMBDA
  20. 190 PRINT
  21. 200 FOR J=1 TO N
  22. 210   PRINT "ENTER CURRENT AT ELEMENT #";J;:INPUT I(J)
  23. 220   PRINT "PHASE ANGLE OF CURRENT ";:INPUT A(J)
  24. 230 PRINT
  25. 240   A(J)=A(J)*3.141592/180    'CONVERT TO RADIANS
  26. 250 NEXT J
  27. 260 REM  CALCULATE CURRENT MATRIX
  28. 270 FOR ROW=1 TO N
  29. 280   FOR COL=1 TO N
  30. 290     CURRENT(ROW,COL)=I(COL)/I(ROW): PHI(ROW,COL)=A(COL)-A(ROW)
  31. 300   NEXT COL
  32. 310 NEXT ROW
  33. 320 :
  34. 330 FOR ROW=1 TO N
  35. 340   FOR COL=1 TO N
  36. 350     DISTANCE=ABS(ROW-COL)*LAMBDA
  37. 360     DATANO=100*DISTANCE
  38. 370     R(ROW,COL)=ZR(DATANO): X(ROW,COL)=ZX(DATANO)
  39. 380     Z(ROW,COL)=SQR(ZR(DATANO)*ZR(DATANO) + ZX(DATANO)*ZX(DATANO))
  40. 390     THETA(ROW,COL)=ATN(ZX(DATANO)/ZR(DATANO))
  41. 400     IF ZR(DATANO)<0 THEN THETA(ROW,COL)=THETA(ROW,COL)+3.14159
  42. 410   NEXT COL
  43. 420 NEXT ROW
  44. 430 PRINT
  45. 440 :
  46. 450 REM  CALCULATE DRIVING POINT IMPEDANCE
  47. 460 ZDR=0:ZDX=0:WATTRAD=0
  48. 470 FOR ROW=1 TO N
  49. 480 ZDR=0:ZDX=0
  50. 490   FOR COL=1 TO N
  51. 500     MAG=CURRENT(ROW,COL)*Z(ROW,COL)
  52. 510     ANG=PHI(ROW,COL)+THETA(ROW,COL)
  53. 520     ZDR=MAG*COS(ANG) + ZDR
  54. 530     ZDX=MAG*SIN(ANG) + ZDX
  55. 540   NEXT COL
  56. 550   ZDR(ROW)=ZDR:ZDX(ROW)=ZDX
  57. 560   WATT(ROW)=I(ROW)*I(ROW)*ZDR(ROW)/2
  58. 570   WATTRAD=WATT(ROW) + WATTRAD:REM POWER RADIATED BY ARRAY
  59. 580 PRINT "IMPEDANCE OF ELEMENT (";ROW;") IS ";:PRINT USING "###.##";ZDR(ROW);
  60. 590 IF ZDX(ROW)<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
  61. 600 PRINT SIGN$;:PRINT USING "###.##";ABS(ZDX(ROW))
  62. 610 PRINT USING "POWER RADIATED FROM THIS ELEMENT IS ####.## WATTS";WATT(ROW)
  63. 620 PRINT
  64. 630 NEXT ROW
  65. 640 PRINT
  66. 650 PRINT USING "TOTAL POWER RADIATED = #####.##";WATTRAD;:PRINT" WATTS"
  67. 660 :
  68. 670 REM    TO CALCULATE DIRECTIVITY
  69. 680 :
  70. 690 TOTALI=0:TOTALA=0
  71. 700 FOR J=1 TO N
  72. 710   REALI(J)=I(J)*COS(A(J))
  73. 720   IMAGI(J)=I(J)*SIN(A(J))
  74. 730   TOTALI=TOTALI+ABS(REALI(J))
  75. 740   TOTALA=TOTALA+ABS(IMAGI(J))
  76. 750 NEXT J
  77. 760 MTOTAL=SQR(TOTALI*TOTALI+TOTALA*TOTALA)
  78. 770 EMAX=60*MTOTAL
  79. 780 PMAX=EMAX*EMAX/(240*PI)
  80. 790 PISO=WATTRAD/(4*PI)
  81. 800 DIRECT=PMAX/PISO
  82. 810 DIRECTDB=10*FN LOGTEN(DIRECT)
  83. 820 PRINT
  84. 830 PRINT USING" THE DIRECTIVITY IS ##.##";DIRECTDB;:PRINT" dB"
  85. 840 :
  86. 850 REM     TO CALCULATE CHAR. IMPEDANCE OF QUARTER WAVELENGTH
  87. 860 REM       TO MATCH ELEMENTS TO ONE LINE
  88. 870 :
  89. 880 PRINT:PRINT
  90. 890 PRINT"          FEEDLINE DESIGN USING QUARTER-WAVELENGTH LINE"
  91. 900 PRINT
  92. 910 INPUT"WHAT IS THE CHARACTERISTIC IMPEDANCE OF MAIN LINE";Z0
  93. 920 PRINT
  94. 930 FOR I=1 TO N
  95. 940   RS(I)=O.O
  96. 950   FOR K=1 TO N
  97. 960     RS(I)=WATT(K)/WATT(I)+RS(I)
  98. 970   NEXT K
  99. 980   RIN(I)=Z0*RS(I)
  100. 990   Z0(I)=SQR(RIN(I)*ZDR(I))
  101. 1000 PRINT USING"CHARACTERISTIC IMPEDANCE OF LINE ## ";I;:PRINT USING "IS ###.## OHMS";Z0(I)
  102. 1010 PRINT USING"INPUT IMPEDANCE OF THIS LINE IS ###.##";RIN(I)
  103. 1020 PRINT
  104. 1030 NEXT I
  105. 1040 :
  106. 1050 'EFFICIENCY OF ARRAY
  107. 1060 ' AHMAD FAIZAL MOHD ZAIN
  108. 1070 '      JUN 23, 1986
  109. 1080 PRINT:PRINT:PRINT
  110. 1090 PRINT"      THIS PART COMPUTES THE EFFICIENCY OF THE ARRAY"
  111. 1100 PRINT
  112. 1110 PI=3.141592
  113. 1120 SIGMA=5.7E+07          'CONDUCTIVITY OF COPPER
  114. 1130 MU0=4*PI*.0000001        'PERMITTIVITY OF FREE SPACE
  115. 1140 ECD=1
  116. 1150 INPUT"WORKING FREQUENCY (MHZ) ";FREQ
  117. 1160 INPUT"RADIUS OF WIRE    (M)   ";RAD
  118. 1170 PRINT
  119. 1180 LAMBDA=300/FREQ
  120. 1190 OMEGA=PI*FREQ*1000000!
  121. 1200 RHF=(.5/(2*PI*RAD))*SQR(OMEGA*MU0/SIGMA)
  122. 1210 FOR I=1 TO N
  123. 1220 ECD(I)=ZDR(I)/(RHF+ZDR(I))
  124. 1230 ECD=ECD(I)*ECD
  125. 1240 NEXT I
  126. 1250 PRINT USING"EFFICIENCY = ###.##";ECD*100;:PRINT" %"
  127. 1260 :
  128. 1270 PRINT:PRINT
  129. 1280 INPUT"DO YOU WANT ANOTHER GO ";AN$
  130. 1290 IF AN$="Y" OR AN$="y" THEN GOTO 170 ELSE END
  131. 1300 :
  132. 1310 REM  ZEROTH-ORDER MUTUAL IMPEDANCE BETWEEN PARALLEL,
  133. 1320 REM   SIDE-BY-SIDE, HALF-WAVE DIPOLE
  134. 1330 :
  135. 1340 DATA 0.0, 73.1296, 42.5445
  136. 1350 DATA .01, 73.0903, 38.8086
  137. 1360 DATA .02, 72.9246, 35.1090
  138. 1370 DATA .03, 72.6347, 31.4521
  139. 1380 DATA .04, 72.2232, 27.8467
  140. 1390 :
  141. 1400 DATA .05, 71.6917, 24.2932
  142. 1410 DATA .06, 71.0431, 20.7999
  143. 1420 DATA .07, 70.2800, 17.3723
  144. 1430 DATA .08, 69.4058, 14.0181
  145. 1440 DATA .09, 68.4223, 10.7371
  146. 1450 DATA .10, 67.3336, 7.5383
  147. 1460 DATA .11, 66.1719, 4.4274
  148. 1470 DATA .12, 64.8997, 1.4039
  149. 1480 DATA .13, 63.5223, -1.5281
  150. 1490 DATA .14, 62.0465, -4.3622
  151. 1500 :
  152. 1510 DATA .15, 60.4753, -7.0992
  153. 1520 DATA .16, 58.8152, -9.7331
  154. 1530 DATA .17, 57.0716, -12.2608
  155. 1540 DATA .18, 55.2514, -14.6774
  156. 1550 DATA .19, 53.3572, -16.9839
  157. 1560 :
  158. 1570 DATA .20, 51.3967, -19.1747
  159. 1580 DATA .21, 49.3797, -21.2491
  160. 1590 DATA .22, 47.3045, -23.2050
  161. 1600 DATA .23, 45.1764, -25.0407
  162. 1610 DATA .24, 43.0023, -26.7536
  163. 1620 :
  164. 1630 DATA .25, 40.7842, -28.3450
  165. 1640 DATA .26, 38.5292, -29.8126
  166. 1650 DATA .27, 36.2428, -31.1558
  167. 1660 DATA .28, 33.9325, -32.3732
  168. 1670 DATA .29, 31.6002, -33.4663
  169. 1680 :
  170. 1690 DATA .30, 29.2551, -34.4336
  171. 1700 DATA .31, 26.8992, -35.2747
  172. 1710 DATA .32, 24.5401, -35.9916
  173. 1720 DATA .33, 22.1832, -36.5854
  174. 1730 DATA .34, 19.8358, -37.0571
  175. 1740 :
  176. 1750 DATA .35, 17.5000, -37.4087
  177. 1760 DATA .36, 15.1829, -37.6416
  178. 1770 DATA .37, 12.8898, -37.7579
  179. 1780 DATA .38, 10.6278, -37.7597
  180. 1790 DATA .39, 8.3985, -37.6493
  181. 1800 :
  182. 1810 DATA .40, 6.2100, -37.4296
  183. 1820 DATA .41, 4.0667, -37.1015
  184. 1830 DATA .42, 1.9724, -36.6699
  185. 1840 DATA .43, -0.0687, -36.1382
  186. 1850 DATA .44, -2.0509, -35.5106
  187. 1860 :
  188. 1870 DATA .45, -3.9731, -34.7899
  189. 1880 DATA .46, -5.8299, -33.9805
  190. 1890 DATA .47, -7.6178, -33.0864
  191. 1900 DATA .48, -9.3320, -32.1128
  192. 1910 DATA .49, -10.9718, -31.0624
  193. 1920 :
  194. 1930 DATA .50, -12.5321, -29.9413
  195. 1940 DATA .51, -14.0105, -28.7513
  196. 1950 DATA .52, -15.4049, -27.4993
  197. 1960 DATA .53, -16.7132, -26.1904
  198. 1970 DATA .54, -17.9325, -24.8309
  199. 1980 :
  200. 1990 DATA .55, -19.0631, -23.4237
  201. 2000 DATA .56, -20.1024, -21.9750
  202. 2010 DATA .57, -21.0492, -20.4901
  203. 2020 DATA .58, -21.9020, -18.9754
  204. 2030 DATA .59, -22.6613, -17.4340
  205. 2040 :
  206. 2050 DATA .60, -23.3256, -15.8729
  207. 2060 DATA .61, -23.8922, -14.2970
  208. 2070 DATA .62, -24.3642, -12.7109
  209. 2080 DATA .63, -24.7424, -11.1198
  210. 2090 DATA .64, -25.0274, -9.5299
  211. 2100 :
  212. 2110 DATA .65, -25.2206, -7.9438
  213. 2120 DATA .66, -25.3233, -6.3674
  214. 2130 DATA .67, -25.3369, -4.8055
  215. 2140 DATA .68, -25.2634, -3.2640
  216. 2150 DATA .69, -25.1045, -1.7450
  217. 2160 :
  218. 2170 DATA .70, -24.8626, -0.2548
  219. 2180 DATA .71, -24.5389, 1.2023
  220. 2190 DATA .72, -24.1371, 2.6231
  221. 2200 DATA .73, -23.6602, 4.0039
  222. 2210 DATA .74, -23.1116, 5.3397
  223. 2220 :
  224. 2230 DATA .75, -22.4936, 6.6293
  225. 2240 DATA .76, -21.8100, 7.8683
  226. 2250 DATA .77, -21.0642, 9.0535
  227. 2260 DATA .78, -20.2606, 10.1813
  228. 2270 DATA .79, -19.4016, 11.2506
  229. 2280 :
  230. 2290 DATA .80, -18.4922, 12.2574
  231. 2300 DATA .81, -17.5345, 13.1984
  232. 2310 DATA .82, -16.5337, 14.0734
  233. 2320 DATA .83, -15.4941, 14.8807
  234. 2330 DATA .84, -14.4207, 15.6184
  235. 2340 :
  236. 2350 DATA .85, -13.3162, 16.2864
  237. 2360 DATA .86, -12.1855, 16.8832
  238. 2370 DATA .87, -11.0330, 17.4079
  239. 2380 DATA .88, -9.8640, 17.8597
  240. 2390 DATA .89, -8.6809, 18.2391
  241. 2400 :
  242. 2410 DATA .90, -7.4896, 18.5454
  243. 2420 DATA .91, -6.2939, 18.7768
  244. 2430 DATA .92, -5.0977, 18.9360
  245. 2440 DATA .93, -3.9052, 19.0238
  246. 2450 DATA .94, -2.7212, 19.0409
  247. 2460 :
  248. 2470 DATA .95, -1.5478, 18.9887
  249. 2480 DATA .96, -0.3900, 18.8686
  250. 2490 DATA .97, 0.7486, 18.6819
  251. 2500 DATA .98, 1.8635, 18.4307
  252. 2510 DATA .99, 2.9528, 18.1166
  253. 2520 :
  254. 2530 DATA 1.00, 4.0116, 17.7420
  255. 2540 DATA 1.01, 5.0360, 17.3073
  256. 2550 DATA 1.02, 6.0244, 16.8167
  257. 2560 DATA 1.03, 6.9738, 16.2728
  258. 2570 DATA 1.04, 7.8808, 15.6788
  259. 2580 :
  260. 2590 DATA 1.05, 8.7444, 15.0368
  261. 2600 DATA 1.06, 9.5616, 14.3502
  262. 2610 DATA 1.07, 10.3300, 13.6222
  263. 2620 DATA 1.08, 11.0473, 12.8566
  264. 2630 DATA 1.09, 11.7126, 12.0554
  265. 2640 :
  266. 2650 DATA 1.10, 12.3236, 11.2233
  267. 2660 DATA 1.11, 12.8772, 10.3624
  268. 2670 DATA 1.12, 13.3742, 9.4769
  269. 2680 DATA 1.13, 13.8139, 8.5703
  270. 2690 DATA 1.14, 14.1952, 7.6469
  271. 2700 :
  272. 2710 DATA 1.15, 14.5182, 6.7088
  273. 2720 DATA 1.16, 14.7824, 5.7604
  274. 2730 DATA 1.17, 14.9876, 4.8051
  275. 2740 DATA 1.18, 15.1339, 3.8473
  276. 2750 DATA 1.19, 15.2219, 2.8891
  277. 2760 :
  278. 2770 DATA 1.20, 15.2518, 1.9351
  279. 2780 DATA 1.21, 15.2224, 0.9886
  280. 2790 DATA 1.22, 15.1367, 0.0527
  281. 2800 DATA 1.23, 14.9957, -0.8697
  282. 2810 DATA 1.24, 14.8009, -1.7747
  283. 2820 :
  284. 2830 DATA 1.25, 14.5535, -2.6605
  285. 2840 DATA 1.26, 14.2553, -3.5237
  286. 2850 DATA 1.27, 13.9081, -4.3612
  287. 2860 DATA 1.28, 13.5141, -5.1700
  288. 2870 DATA 1.29, 13.0748, -5.9485
  289. 2880 :
  290. 2890 DATA 1.30, 12.5930, -6.6930
  291. 2900 DATA 1.31, 12.0693, -7.4008
  292. 2910 DATA 1.32, 11.5076, -8.0708
  293. 2920 DATA 1.33, 10.9104, -8.7012
  294. 2930 DATA 1.34, 10.2808, -9.2899
  295. 2940 :
  296. 2950 DATA 1.35, 9.6207, -9.8361
  297. 2960 DATA 1.36, 8.9333, -10.3379
  298. 2970 DATA 1.37, 8.2216, -10.7941
  299. 2980 DATA 1.38, 7.4890, -11.2033
  300. 2990 DATA 1.39, 6.7374, -11.5652
  301. 3000 SCREEN 0,0,0:SOUND 1510,10:COLOR 7,0:LOCATE 25,10:PRINT "Key: Esc to End or `R' to Run Again or `S' to Return Start";CHR$(29);:COLOR 15,0:LOCATE 25,15:PRINT "Esc";:LOCATE 25,30:PRINT "R";:LOCATE 25,50:PRINT "S";CHR$(29);:COLOR 7,0
  302. 3010 E$=INKEY$:IF E$="" THEN 3010 ELSE IF E$=CHR$(27) THEN CLS:END ELSE IF E$="R" OR E$="r" THEN RUN ELSE IF E$="S" OR E$="s" THEN RUN "START
  303. 3020 GOTO 3010
  304. 3030 '//////////////// Routine to Draw a Box //////////////////
  305. 3040 LOCATE Y1,X1+1:PRINT STRING$(X2-X1-1,"─");:LOCATE Y1,X1:PRINT "┌";:LOCATE Y1,X2:PRINT "╖";:FOR I= Y1+1 TO Y2-1:LOCATE I,X1:PRINT "│";:LOCATE I,X2:PRINT "║";:NEXT:LOCATE Y2,X1:PRINT "╘";:LOCATE Y2,X1+1
  306. 3050 PRINT STRING$(X2-X1-1,"═");:LOCATE Y2,X2:PRINT "╝";:RETURN
  307. 3100 SCREEN 0,0,0:COLOR 31,0:LOCATE 24,1:PRINT "Fault Detected";CHR$(29);:COLOR 7,0
  308. 3110 RESUME 3000
  309.