home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / w4mb / vol1 / basic / point.asc < prev    next >
Text File  |  1996-06-30  |  5KB  |  145 lines

  1. 100 CLS : PRINT "   ***********************************"
  2. 110 PRINT "   *       POINT SOURCE ARRAYS       *"
  3. 120 PRINT "   *  REFERENCE-PRINCIPLES OF RADAR  *"
  4. 130 PRINT "   *MIT RADAR SCHOOL STAFF, PAGE 9-38*"
  5. 140 PRINT "   *      PROGRAM COPYRIGHT 1985     *"
  6. 150 PRINT "   *       R.P. HAVILAND, W4MB       *"
  7. 160 PRINT "   ***********************************"
  8. 170 REM PROGRAM 16
  9. 180 DEF FNP (P) = (INT(1000 * P + .5)) / 1000
  10. 190 PI = 3.14159
  11. 200 PRINT : PRINT "THIS PROGRAM CALCULATES THE PATTERN FOR UP TO FOUR GROUPS OF ANTENNAS"
  12. 210 PRINT "REPRESENTED BY POINT SOURCES IN EACH    GROUP, THE ELEMENTS MUST BE"
  13. 220 PRINT "SIMILAR, ALONG A LINE AND FED BY EQUAL CURRENTS AT CONSTANT PHASE"
  14. 230 PRINT "DELTA BETWEEN ADJACENT ELEMENTS SOLUTION IS FOR ALL ELEMENTS IN A"
  15. 240 PRINT "PLANE.  REPEAT FOR OTHER PLANES."
  16. 250 PRINT
  17. 260 PRINT "PRESS A KEY TO START"
  18. 270 Q$ = INKEY$: IF Q$ = "" GOTO 270
  19. 300 PRINT : PRINT "GROUP ONE IS THE BASIC RADIATOR"
  20. 310 PRINT "GROUP TWO IS COMPOSED OF BASIC RADIATORS"
  21. 320 PRINT "GROUP THREE IS COMPOSED OF 2 OR MORE    GROUP  TWO'S, ETC"
  22. 330 PRINT : INPUT "ENTER TOTAL NUMBER OF GROUPS IN ARRAY"; GR
  23. 340 DIM E(GR), S(GR), P(GR), A(GR), O(360)
  24. 350 PRINT : PRINT "ENTER BASIC ELEMENT TYPE"
  25. 360 PRINT "      1-DIPOLE"
  26. 370 PRINT "      2-SHORT DIPOLE"
  27. 380 PRINT "      3-TWO HALF WAVES IN PHASE"
  28. 390 PRINT "      4-ISOTROPIC/END-ON ELEMENT"
  29. 400 INPUT TE
  30. 410 PRINT : PRINT "IN ENTERING FOLLOWING ANGLES, REFERENCE IS ALONG LINE OF CENTERS, GROUP 2"
  31. 420 PRINT "WITH ZERO AT LAG END OF GROUP, IF PHASED, OR ARBITRARY"
  32. 430 PRINT : PRINT "ENTER ELEMENT ANGLE TO REFERENCE AXIS"
  33. 440 PRINT "      0-PARALLEL TO"
  34. 450 PRINT "     90-PERPENDICULAR TO"
  35. 460 PRINT "  VALUE-AT AN ANGLE TO, DEG."
  36. 470 INPUT A(1)
  37. 600 FOR M = 2 TO GR
  38. 610 PRINT : PRINT "FOR GROUP "; M
  39. 620 INPUT "ENTER NO. ELEMENTS IN GROUP"; E(M)
  40. 630 INPUT "ENTER ELEMENT SPACING, WAVELENGTHS"; S(M)
  41. 640 INPUT "ENTER PHASE DELTA, DEGREES"; P(M): P(M) = P(M) / 360
  42. 650 PRINT "ENTER 0 IF GROUP AXIS IS SAME AS REFERENCE, OTHERWISE SHIFT ANGLE"
  43. 660 INPUT A(M)
  44. 670 NEXT M
  45. 700 PRINT : INPUT "CALCULATION INTERVAL, DEGREES"; CI
  46. 710 MX = 0
  47. 1000 PRINT : PRINT "WAIT-PROCESSING"
  48. 1010 FOR N = 0 TO 360 STEP CI
  49. 1020 NR = 2 * PI * (N + A(1)) / 360
  50. 1030 IF NR = 0 OR NR = 2 * PI THEN NR = 1E-09
  51. 1040 ON TE GOSUB 1500, 1600, 1700, 1800
  52. 1050 O(N) = EI:
  53. 1060 GOTO 2000
  54. 1500 IF ABS(SIN(NR)) < .00001 THEN EI = 0: RETURN
  55. 1510 EI = (COS(PI / 2 * COS(NR))) / SIN(NR)
  56. 1520 RETURN
  57. 1600 EI = SIN(NR)
  58. 1610 RETURN
  59. 1700 IF ABS(SIN(NR)) < .00001 THEN EI = 0: RETURN
  60. 1710 EI = (COS(PI * COS(NR)) + 1) / 2 / SIN(NR)
  61. 1720 RETURN
  62. 1800 EI = 1
  63. 1810 RETURN
  64. 2000 FOR M = 2 TO GR
  65. 2010 NR = 2 * PI * (N + A(M)) / 360
  66. 2020 IF P(M) = 0 THEN GOSUB 2500
  67. 2030 IF P(M) <> 0 THEN GOSUB 2600
  68. 2040 IF M > 2 OR EC = 0 THEN 2300
  69. 2050 TE = GM
  70. 2060 M = 0
  71. 2080 GOTO 2010
  72. 2200 GM = TE + I2 * GM
  73. 2210 M = 2
  74. 2300 O(N) = O(N) * GM
  75. 2310 NEXT M
  76. 2320 IF ABS(O(N)) > MX THEN MX = ABS(O(N))
  77. 2330 NEXT N
  78. 2400 GOTO 3000
  79. 2500 QU = PI * S(M) * COS(NR)
  80. 2510 IF QU = 0 THEN QU = .000001
  81. 2520 IF ABS(QU) < .000001 THEN QU = SGN(QU) * .000001
  82. 2530 GM = (SIN(E(M) * QU)) / SIN(QU)
  83. 2540 RETURN
  84. 2600 QU = PI * P(M) - PI * S(M) * COS(NR)
  85. 2610 IF QU = 0 THEN QU = .000001
  86. 2620 IF ABS(QU) < .000001 THEN QU = SGN(QU) * .000001
  87. 2630 GM = (SIN(E(M) * QU)) / SIN(QU)
  88. 2640 RETURN
  89. 3000 PRINT : PRINT "BASIC RADIATOR- ";
  90. 3010 IF TE = 1 THEN PRINT "DIPOLE"
  91. 3020 IF TE = 2 THEN PRINT "SHORT DIPOLE"
  92. 3030 IF TE = 3 THEN PRINT "TWO HALF WAVES IN PHASE"
  93. 3040 IF TE = 4 THEN PRINT "ISOTROPIC/END ON"
  94. 3070 PRINT
  95. 3080 FOR M = 2 TO GR
  96. 3090 PRINT " GROUP NO. "; M
  97. 3100 PRINT " ELEMENTS  "; E(M)
  98. 3110 PRINT " SPACING   "; S(M); " WAVELENGTHS"
  99. 3120 PRINT " PHASE     "; P(M); " DEGREES"
  100. 3130 PRINT " ANGLE     "; A(M); " DEGREES TO REFERENCE"
  101. 3140 PRINT
  102. 3150 NEXT M
  103. 3160 IF PO = 0 THEN PRINT "PRESS A KEY FOR MORE"
  104. 3170 Q$ = INKEY$: IF Q$ = "" GOTO 3170
  105. 3180 PRINT
  106. 4000 PRINT "ANGLE    "; "RELATIVE"
  107. 4010 PRINT "DEGREES  "; "PATTERN"
  108. 4020 FOR N = 0 TO 360 STEP CI
  109. 4025 PL = PL + 1
  110. 4030 PRINT N, FNP(O(N) / MX)
  111. 4035 IF PL <> 21 THEN 4060
  112. 4040 PRINT "PRESS ANY KEY TO CONTINUE"
  113. 4045 Q$ = INKEY$: IF Q$ = "" THEN 4045
  114. 4050 PL = 0
  115. 4060 NEXT N
  116. 4070 PL = 0
  117. 5000 PRINT "PRESS; M=MODIFY VALUES, R=ANOTHER RUN,  G=GRAPH, Q=QUIT"
  118. 5010 P$ = INKEY$: IF P$ = "" THEN 5010
  119. 5030 IF P$ = "G" THEN 6000
  120. 5040 IF P$ = "R" THEN RUN
  121. 5045 IF P$ = "Q" THEN STOP
  122. 5050 IF P$ <> "M" THEN 5010
  123. 5060 INPUT "ENTER GROUP NUMBER TO MODIFY"; MG
  124. 5070 PRINT "ENTER A=ANGLE, E=NO. ELEMENTS, S=SPACING, P=PHASE"
  125. 5080 INPUT T$
  126. 5090 INPUT "ENTER NEW VALUE"; NV
  127. 5100 IF T$ = "A" THEN A(MG) = NV
  128. 5110 IF T$ = "E" THEN E(MG) = NV
  129. 5120 IF T$ = "S" THEN S(MG) = NV
  130. 5130 IF T$ = "P" THEN P(MG) = NV
  131. 5140 GOTO 1000
  132. 6000 REM GRAPH SUB
  133. 6010 PRINT : PRINT "       RELATIVE PATTERN"
  134. 6020 PRINT "DEGREES"; TAB(10); 0; SPC(24); 50; SPC(23); 100
  135. 6030 FOR N = 0 TO 360 STEP CI
  136. 6040 PV = ABS(O(N) / MX * 50)
  137. 6050 G$ = "  " + STR$(N)
  138. 6060 PRINT RIGHT$(G$, 4); SPC(6);
  139. 6070 IF PV = 0 THEN PRINT "@"
  140. 6080 IF PV > 0 THEN PRINT "+"; SPC(PV); "*"
  141. 6090 NEXT N
  142. 6100 PRINT
  143. 6110 GOTO 5000
  144.  
  145.