home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / public / hopkins / design1.bas < prev    next >
BASIC Source File  |  1996-06-30  |  11KB  |  198 lines

  1. 10 REM **********************************************************************
  2. 20 REM                         YAGI DESIGN PROGRAM.
  3. 30 REM                                  BY
  4. 40 REM                       DAVID G HOPKINS  (VK4ZF)
  5. 50 REM                         # 4 HANDSWORTH ST
  6. 60 REM                               CAPALABA
  7. 70 REM                               QLD. 4157
  8. 80 REM                               AUSTRALIA
  9. 90 REM         PROGRAM BASED ON THE WORK DONE BY GUNTER HOCH (DL6WU)
  10. 100 REM                  AND PUBLISHED IN VHF. COMMUNICATIONS
  11. 110 REM                   REQUIRES THE USE OF LINE PRINTER.
  12. 120 REM                     V 2.2B    IBM PC
  13. 130 REM *********************************************************************
  14. 140 REM
  15. 150 REM
  16. 160 CLS : GOSUB 1820
  17. 170 CLEAR:DIM SP(40),DS(40),TS(40),LE(45):Q$="####":Q$(1)="###.##":Q$(2)="###.###":Q$(3)="####.#"
  18. 180 REM ------------LOAD ELEMENT SPACING DATA---------------
  19. 190 DATA .240,.075,.180,.215,.250,.280,.300,.315,.330,.345,.360,.375,.385,.390,.395,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400,.400
  20. 200 FOR X=1 TO 40
  21. 210 READ SP(X)
  22. 220 NEXT
  23. 230 REM ------------LOAD REFLECTOR MULTIPLIER---------------
  24. 240 DATA .4905,.4900,.4885,.4875,.4865,.4855,.4845,.4835,.4825,.4820,.4810,.4875,.4770,.4765,.4750,.4740
  25. 250 DIM RE(17)
  26. 260 FOR X=1 TO 16:READ RE(X):NEXT
  27. 270 REM ------------LOAD RADIATOR MULTIPLIER----------------
  28. 280 DIM DR(17)
  29. 290 DATA .4675,.4665,.4640,.4620,.4601,.4585,.4575,.4550,.4530,.4515,.4500,.4460,.4435,.4430,.4400,.4385
  30. 300 FOR X=1 TO 16:READ DR(X):NEXT
  31. 310 REM ------------SELECT ELEMENT MATERIAL SIZE------------
  32. 320 DATA .003,.0035,.0042,.005,.0056,.0063,.007,.0078,.0088,.01,.01145,.0131,.015,.0165,.0182,.02
  33. 330 DIM EL(16):FOR X=1 TO 16:READ EL(X):NEXT
  34. 340 REM ------------INPUT DESIRED PARAMETERS----------------
  35. 350 CLS:SOUND 1000,5:INPUT "WHAT IS THE CENTRE FREQUENCY OF THE ANTENNA IN MHZ.";F
  36. 360 SOUND 1000,5:PRINT:INPUT"HOW MANY ELEMENTS DOES THE ANTENNA REQUIRE.";N
  37. 370 PRINT:IF N<9 OR N>40 THEN COLOR 0,15:PRINT "NUMBER OF ELEMENTS MUST BE BETWEEN 9 AND 40":COLOR 7,0:SOUND 90,10:GOTO 360
  38. 380 PRINT:SOUND 1000,5:INPUT"WHAT IS THE DIAMETER OF THE BOOM IN MILLIMETERS.";BD
  39. 390 PRINT:SOUND 1000,5:PRINT"ARE THE ELEMENTS TO BE INSULATED FROM THE BOOM Y=YES N=NO ";
  40. 400 IN$=INKEY$:IF LEN(IN$)=0 THEN 400
  41. 410 IF IN$="Y" OR IN$="y" THEN I=1:GOTO 450
  42. 420 IF IN$="N" OR IN$="n" THEN I=0:GOTO 450
  43. 430 GOTO 400
  44. 440 REM ------------DISPLAY SPECIFICATIONS------------------
  45. 450 CLS:PRINT "SPECIFICATIONS FOR THE ANTENNA TO DESIGN ":PRINT:PRINT:PRINT"1.     DESIGN FREQUENCY :- ";F;" MHZ"
  46. 460 PRINT"2.     DIAMETER OF BOOM :- ";BD;" MILLIMETERS."
  47. 470 PRINT"3.     NUMBER OF ELEMENTS :- ";N
  48. 480 IF I=1 THEN PRINT"4.     ELEMENTS ARE TO BE INSULATED FROM THE BOOM"ELSE PRINT"4.     ELEMENTS ARE TO BE NON INSULATED AND THROUGH THE BOOM"
  49. 490 IF (BD/1000)/(299.792/F)>.065 THEN PRINT:PRINT:PRINT:PRINT"BOOM DIAMETER IS TOO LARGE FOR THIS FREQUENCY":PRINT:PRINT:PRINT"ENTER A SMALLER DIAMETER ":INPUT BD:GOTO 440
  50. 500 REM ------------CHECK SPECIFICATIONS--------------------
  51. 510 PRINT:PRINT:PRINT:PRINT"ARE ALL THE ENTRIES CORRECT Y=YES N=NO ";
  52. 520 IN$=INKEY$:IF LEN(IN$)=0 THEN 520
  53. 530 IF IN$="Y" OR IN$="y" THEN 650
  54. 540 IF IN$="N" OR IN$="n" THEN 560
  55. 550 SOUND 90,10:GOTO 520
  56. 560 PRINT:INPUT"WHAT IS THE NUMBER OF THE INCORRECT ENTRY ";X
  57. 570 IF X<>4 THEN 600
  58. 580 IF I=0 THEN I=1:GOTO 440
  59. 590 IF I=1 THEN I=0:GOTO 440
  60. 600 INPUT"WHAT IS THE CORRECT VALUE ";CV
  61. 610 IF X=1 THEN F=CV
  62. 620 IF X=2 THEN BD=CV
  63. 630 IF X=3 THEN N=CV
  64. 640 GOTO 450
  65. 650 REM ------------CALCULATE BOOM DIAMETER WAVELENGTHS----
  66. 660 W=299.792/F
  67. 670 BW=BD/1000/W
  68. 680 BC=3.3*(BD/(W*1000))^1.5:BC=BC*(W*1000)
  69. 685 IF (BD/(W*1000))>.01 AND (BD/(W*1000))<.039 THEN BC=BC-(W*.6)
  70. 690 REM ------------CALCULATE BOOM LENGTH------------------
  71. 700 TL=0
  72. 710 W=299.792/F
  73. 720 FOR X=1 TO N-1
  74. 730 DS(X)=SP(X)*W*1000
  75. 740 TL=TL+DS(X)
  76. 750 NEXT
  77. 760 PG=(TL/1000)/W
  78. 770 REM ---CALCULATE BEAM WIDTHS AND STACKING DISTANCES---
  79. 780 BH=50.2709*PG^-.484091:SH=W/(2*(SIN(BH/2*.0174533)))
  80. 790 BV=66.5112*PG^-.617261:SV=W/(2*(SIN(BV/2*.0174533)))
  81. 800 REM ------------PRINT PRELIMINARY DATA----------------
  82. 810 CLS
  83. 820 PRINT "          YAGI PRELIMINARY DATA":PRINT
  84. 830 PRINT "FREQUENCY               ";F;" MHZ."
  85. 840 PRINT "WAVELENGTH              ";W;" METERS."
  86. 850 PRINT "# OF ELEMENTS           ";N
  87. 860 PRINT "DIAMETER OF BOOM        ";BD;" MILLIMETERS"
  88. 870 PRINT "ELECTRICAL BOOMLENGTH   ";INT(TL);" MILLIMETERS"
  89. 880 PRINT "BOOM WAVELENGTHS        ";PG
  90. 890 PRINT "MAXIMUM PRACTICAL GAIN  ";:PRINT USING Q$(1);7.8*(LOG(PG)/LOG(10))+9.2;:PRINT" dBD"
  91. 900 PRINT "HORIZONTAL BEAM WIDTH  ";:PRINT USING Q$(3);BH;:PRINT" DEGREES"
  92. 910 PRINT "VERTICAL BEAM WIDTH    ";:PRINT USING Q$(3);BV;:PRINT" DEGREES"
  93. 920 PRINT "                STACKING DISTANCES"
  94. 930 PRINT "       HORIZONTAL:- ";:PRINT USING Q$(2);SH;:PRINT "  METERS"
  95. 940 PRINT "       VERTICAL  :- ";:PRINT USING Q$(2);SV;:PRINT "  METERS"
  96. 950 PRINT:PRINT:PRINT "DO YOU WISH TO CONTINUE WITH THIS DESIGN Y=YES N=NO ";
  97. 960 IN$=INKEY$:IF LEN(IN$)=0 THEN 960
  98. 970 IF IN$="Y" OR IN$="y" THEN 1000
  99. 980 IF IN$="N" OR IN$="n" THEN 440
  100. 990 SOUND 90,10:GOTO 960
  101. 1000 CLS:NU=0
  102. 1010 PRINT:PRINT"YOU MAY USE ANY OF THE FOLLOWING TUBING SIZES FOR THE ELEMENTS"
  103. 1020 PRINT:PRINT"SELECT THE CLOSEST TO THE COMMERCIAL TUBE SIZE"
  104. 1030 FOR X=1 TO 16
  105. 1040 NU=NU+1
  106. 1050 PRINT "# ";X;".           ";:PRINT USING Q$(3);(EL(X)*W)*1000;:PRINT " MM":IF (EL(X)*W)*1000>12 THEN X=16
  107. 1060 NEXT
  108. 1070 PRINT:PRINT:PRINT:PRINT"ENTER THE # OF THE TUBING SIZE YOU WISH TO USE";
  109. 1080 INPUT TS$
  110. 1090 IF VAL(TS$)>NU THEN SOUND 90,10:GOTO 1000
  111. 1100 TS=VAL(TS$):TT=EL(TS):TD(1)=TT*W*1000
  112. 1110 CLS:INPUT "HOW MANY MILLIMETERS ARE THERE FROM THE END OF THE BOOM TO THE CENTER OF THE    REFLECTOR. ";DI:CLS:PRINT "STAND BY THIS WILL TAKE A FEW SECONDS"
  113. 1120 REM ----------------LOAD TUBING SIZE TABLES-----------------
  114. 1130 N$="CURVE":N2$=N$+TS$+".DAT"
  115. 1140 OPEN N2$ FOR INPUT AS #1
  116. 1150 FOR X=1 TO 38
  117. 1160 LINE INPUT #1,O$
  118. 1170 TS(X)=VAL(O$)
  119. 1180 NEXT
  120. 1190 CLOSE
  121. 1200 REM -----------------CALCULATE ELEMENT LENGTHS-------------
  122. 1210 FOR X=3 TO 42
  123. 1220 IF I=1 THEN LE(X)=W*TS(X-2)*1000 ELSE LE(X)=(W*TS(X-2))*1000+BC
  124. 1230 NEXT
  125. 1240 LE(1)=W*RE(TS)*1000
  126. 1250 IF I=0 THEN LE(1)=LE(1)+BC
  127. 1260 LE(2)=W*DR(TS)*1000
  128. 1270 IF I=0 THEN LE(2)=LE(2)+BC
  129. 1280 CLS
  130. 1290 PRINT"PRESS ANY KEY WHEN THE PRINTER IS READY":SOUND 1000,5
  131. 1300 IN$=INKEY$:IF LEN(IN$) =0 GOTO 1300
  132. 1310 LPRINT "                   YAGI DESIGN DETAILS :-         VERSION 2.2B"
  133. 1320 LPRINT "------------------------------------------------------------------------------"
  134. 1330 LPRINT :LPRINT
  135. 1340 LPRINT "DESIGN FREQUENCY :- ",F;"  MHZ."
  136. 1350 LPRINT "WAVELENGTH       :- ",;:LPRINT USING Q$(2);W;:LPRINT "  METERS"
  137. 1360 LPRINT "NUMBER OF ELEMENTS :- ",N
  138. 1370 LPRINT "DIAMETER OF BOOM   :- ",BD;" MM."
  139. 1380 LPRINT "DIAMETER OF ELEMENTS :- ",;:LPRINT USING Q$(3);TD(1);:LPRINT "MM."
  140. 1390 IF I=1 THEN LPRINT "ELEMENTS ARE INSULATED FROM THE BOOM" ELSE LPRINT "ELEMENTS ARE NOT INSULATED AND PASS THROUGH THE BOOM"
  141. 1400 LPRINT "ELECTRICAL BOOM LENGTH :- ",INT(TL);"MM."
  142. 1410 LPRINT "BOOM WAVE LENGTHS :- ",PG
  143. 1420 LPRINT "MAXIMUM PRACTICAL GAIN :- ",;:LPRINT USING Q$(1);7.8*(LOG(PG)/LOG(10))+9.2;:LPRINT "  dBD"
  144. 1430 LPRINT "HORIZONTAL BEAM WIDTH :- ",;:LPRINT USING Q$(3);BH;:LPRINT " DEGREES"
  145. 1440 LPRINT "VERTICAL BEAM WIDTH   :- ",;:LPRINT USING Q$(3);BV;:LPRINT " DEGREES"
  146. 1450 LPRINT "HORIZONTAL STACKING DISTANCE :-",;:LPRINT USING Q$(2);SH;:LPRINT " METERS"
  147. 1460 LPRINT "VERTICAL STACKING DISTANCE :- ",;:LPRINT USING Q$(2);SV;:LPRINT " METERS"
  148. 1470 LPRINT :LPRINT :LPRINT "................................................................................"
  149. 1475 LPRINT "                          ALL DIMENSIONS IN MILLIMETERS"
  150. 1476 LPRINT".............................................................................."
  151. 1480 LPRINT"                                                  | PROGRESSIVE DISTANCE FROM :-                                                                                    ELEMENT LENGTHS.        ELEMENT CENTER       |   REFLECTOR   |  END OF BOOM"
  152. 1490 LPRINT "  ============================================================================"
  153. 1500 LPRINT
  154. 1510 LPRINT "REFLECTOR";:LPRINT TAB(18);:LPRINT USING Q$(3);LE(1);:LPRINT TAB(33) ;:LPRINT USING Q$(3);LE(1)/2;:LPRINT TAB(55);:LPRINT "  0";:LPRINT TAB(72);:LPRINT DI
  155. 1520 LPRINT "DRIVEN";:LPRINT TAB(18);:LPRINT USING Q$(3);LE(2);:LPRINT TAB(33);:LPRINT USING Q$(3);LE(2)/2;:LPRINT TAB(55);:LPRINT USING Q$(3); SP(1)*W*1000;:LPRINT TAB(72);:LPRINT USING Q$(3);SP(1)*W*1000+DI
  156. 1530 PS=SP(1)*W*1000
  157. 1540 FOR X=3 TO N
  158. 1550 PS=PS+SP(X-1)*W*1000
  159. 1560 LPRINT "DIRECTOR #";X-2;:LPRINT TAB(18);:LPRINT USING Q$(3);LE(X);:LPRINT TAB(33);: LPRINT USING Q$(3);LE(X)/2;:LPRINT TAB(55);:LPRINT USING Q$(3);PS;:LPRINT TAB(72);:LPRINT USING Q$(3);PS+DI
  160. 1570 NEXT
  161. 1580 LPRINT
  162. 1590 LPRINT "    ELEMENT SPACING IN MILLIMETERS "
  163. 1600 LPRINT "========================================"
  164. 1610 LPRINT
  165. 1620 LPRINT "REFLECTOR - DRIVEN ",:LPRINT USING Q$(3);DS(1)
  166. 1630 LPRINT "DRIVEN    - DIR  1",:LPRINT USING Q$(3);DS(2)
  167. 1640 FOR X=3 TO N-1
  168. 1650 LPRINT "DIR";X-2;"    - DIR ";X-1,:LPRINT USING Q$(3);DS(X)
  169. 1660 NEXT
  170. 1670 LPRINT :LPRINT :LPRINT "                                NOTES"
  171. 1680 LPRINT :LPRINT "1.  THE DIMENSIONS ARE FROM CENTER TO CENTER IN ALL CASES"
  172. 1690 LPRINT "    FOR EXAMPLE THIS MEANS THE BOOM MUST BE CUT LONGER THEN THAT GIVEN"
  173. 1700 LPRINT "    TO BE ABLE TO MOUNT THE ELEMENTS. [IN THE ABOVE CASE"
  174. 1705 LPRINT "    THE LENGTH OF THE BOOM = ";INT(TL)+DI*2 ;" MM. ]"
  175. 1710 LPRINT "2.  IF YOU WANT WIDE BANDWIDTH USE A FOLDED DIPOLE AS THE DRIVEN ELEMENT."
  176. 1720 LPRINT "3.  THE DRIVEN ELEMENT DIMENSION IS THE LENGTH OVERALL."
  177. 1730 LPRINT "4.  YOU MUST WORK TO AN ACCURACY OF BETTER THAN 1MM AT FREQUENCIES ABOVE 400MHZ."
  178. 1740 LPRINT "5.  ACCURACY BELOW 400MHZ SHOULD BE WITHIN 1.5 MM."
  179. 1750 LPRINT "6.  ELEMENT MOUNTING MUST BE BETTER THEN .5 MM OF THE ELEMENT CENTER."
  180. 1760 CLS : FOR X=I TO 8:LPRINT :NEXT
  181. 1770 PRINT "ANOTHER CALCULATION ?  Y=YES  N=NO";
  182. 1780 IN$=INKEY$ : IF LEN(IN$)=0 THEN 1780
  183. 1790 IF IN$="Y" OR IN$="y" THEN 440
  184. 1800 IF IN$="N" OR IN$="n" THEN RUN "MENU"
  185. 1810 SOUND 90,10 : GOTO 1780
  186. 1820 CLS:PRINT:PRINT "THIS PROGRAM WILL DESIGN LONG YAGI ANTENNAS"
  187. 1830 PRINT "   WITH ANY NUMBER OF ELEMENTS BETWEEN 9 AND 40"
  188. 1840 PRINT:PRINT:PRINT
  189. 1850 PRINT " THE PROGRAM IS BASED ON ARTICLES BY GUNTER HOCK"
  190. 1860 PRINT "  AND PUBLISHED IN VHF. COMMUNICATIONS"
  191. 1870 PRINT:PRINT:PRINT
  192. 1880 PRINT " YOU WILL REQUIRE A LINE PRINTER TO OBTAIN THE RESULTS"
  193. 1890 PRINT:PRINT:COLOR 0,15:PRINT "PRESS ANY KEY TO CONTINUE ";:COLOR 7,0:SOUND 1000,5
  194. 1900 IN$=INKEY$:IF LEN(IN$)=0 THEN 1900
  195. 1910 CLS
  196. 1920 RETURN
  197. 1930 RUN "MENU"
  198.