5 CLS 10 PRINT "CAVE-RADIO "; 20 PRINT "ANTENNA DESIGN "; 25 PRINT "VERSION 5 ; 86-11-04": PRINT 40 PRINT "BY IAN DRUMMOND": PRINT 70 PRINT "PROGRAM WORKS BEST WITH SINGLE LAYER, SPACED, WIRE-COILS": PRINT "IT WILL OVERESTIMATE THE MAGNETIC MOMENT (NIA) OTHERWISE": PRINT 80 PI = 3.1416 100 PRINT "SELECT ANTENNA SHAPE" 110 PRINT " C=CIRCLE "; 120 PRINT " S=SQUARE "; 130 PRINT " P=PENTAGON "; 140 PRINT " H=HEXAGON "; 150 INPUT SHAPE$ 160 PRINT "RADIUS OR SPOKE "; 170 INPUT "LENGTH (METRES) ", RAD 180 IF (SHAPE$ = "C") THEN 230 190 IF (SHAPE$ = "S") THEN 260 200 IF (SHAPE$ = "P") THEN 290 210 IF (SHAPE$ = "H") THEN 320 220 GOTO 100 230 PERIM = 2 * PI * RAD 240 AREA = PI * RAD * RAD 250 GOTO 340 260 PERIM = SQR(2) * 4 * RAD 270 AREA = (PERIM / 4) ^ 2 280 GOTO 340 290 PERIM = SIN(PI / 5) * 10 * RAD 300 AREA = 1.72 * (PERIM / 5) ^ 2 310 GOTO 340 320 PERIM = 6 * RAD 330 AREA = 2.598 * RAD ^ 2 340 PRINT USING "PERIMETER = ##.### METRES"; PERIM; 350 PRINT USING " AREA = ####.#### M^2"; AREA 360 ERAD = SQR(AREA / PI) 380 INPUT "FREQUENCY(KHZ)="; FRQ 390 SKIN = 1 / (SQR(PI * 23.2 * PI * FRQ * 1000)) 400 INPUT "WIRE SIZE(8-32 AWG) "; AWG 410 IF AWG < 8 OR AWG > 32 OR (AWG / 2 <> INT(AWG / 2)) THEN 400 420 RESTORE 430 FOR I = 1 TO (AWG / 2 - 3) 440 READ DIA, RESDC: NEXT I 450 DATA .326,.00206,.259,.00328,.205,.00522,.163,.00827,.129,.0132,.102,.021,.0813,.0331,.0643,.0531,.0511,.0843,.0404,.135,.032,.214,.0254,.341,.0203,.531 460 IF (DIA > (400 * SKIN)) THEN 490 470 RESAC = RESDC * (1 + ((((DIA / (400 * SKIN)) ^ 2) ^ 2) / 3)): GOTO 520 490 IF (DIA > 1000 * SKIN) THEN 510 500 RESAC = RESDC * (.55 + .00195 * DIA / SKIN): GOTO 520 510 RESAC = RESDC * DIA / (400 * SKIN) 520 PRINT "SKIN EFFECT = "; 540 PRINT USING "##.##^^^^ X DC RESISTANCE"; RESAC / RESDC - 1 560 PRINT "#TURNS IN SECONDARY "; 570 INPUT "COIL"; N 572 RESTORE 574: FOR I = 1 TO (AWG / 2 - 3) 573 READ MASS: NEXT I 574 DATA .0745,.0469,.0295,.0185,.01165,.00734,.00462,.00289,.00182,.00114,.000716,.000452,.000289 575 PRINT USING "LENGTH OF WIRE =####.# METRES"; N * PERIM; 576 PRINT USING " MASS OF WIRE = ##.## Kg"; N * PERIM * MASS 590 INPUT "ENTER # OF LAYERS OF WIRE IN SECONDARY COIL "; NL 610 INPUT "ENTER WIRE DIA. (CM), OR 'M' FOR MAGNET WIRE"; DIA$ 640 IF (DIA$ = "M") THEN 670 650 WDIA = VAL(DIA$) 660 GOTO 680 670 WDIA = DIA * (1 + AWG / 200) 680 PRINT "IS COIL CLOSE-WOUND"; 690 INPUT "(Y/N)"; A$ 700 IF A$ = "Y" THEN 730: IF A$ <> "N" THEN 680 710 INPUT "# TURNS/CM"; TURNS: IF TURNS > 1 / WDIA GOTO 710 720 L = N * .01 / (TURNS * NL): GOTO 770 730 IF WDIA / DIA > 1.7 GOTO 760 740 PRINT "FORMULA FOR WIRE PROXIMITY EFFECT"; 750 PRINT " WILL ESTIMATE LOW" 760 L = .01 * N * WDIA / NL 770 PRINT USING "COIL LENG ####.## CM"; L * 100 780 MU = 1 782 INPUT "DOES COIL HAVE FERRITE CORE, Y/N "; A$ 784 IF A$ <> "Y" AND A$ <> "N" GOTO 782 786 IF A$ = "N" GOTO 790 788 IF A$ = "Y" THEN GOSUB 3000 790 GOSUB 2160 800 PRINT "INDUCTANCE = "; 810 PRINT USING "##.##^^^^ H"; IND * .000001; 830 CAP = IND / ((IND * 2 * PI * FRQ) ^ 2) 840 PRINT " FOR RESONANCE "; 850 PRINT USING "C=##.##^^^^ F"; CAP 855 REM CALC WIRE PROXIMITY EFFECT 860 IF DIA * .01 / SKIN > 2 THEN 870 865 GBAR = (DIA * .0025 / SKIN) ^ 4: GOTO 890 870 IF DIA * .01 / SKIN > 4 THEN 880 875 GBAR = .0015 * DIA / SKIN - .238: GOTO 890 880 GBAR = .12 * (.01 * DIA / SKIN - 1) 890 REM NEARBY WIRE EFFECT ONLY ACCURATE IF (CENTRE TO CENTRE)/DIA>1.7 900 IF N < 100 THEN 910 905 K = 3.3: GOTO 920 910 K = 1.58 * LOG(N) - .194 * (LOG(N) ^ 2) 920 PRINT "NEARBY WIRE EFFECT="; : PRINT USING "##.##^^^^ X DC RESIST"; K * GBAR 930 REM SOLENOID EFFECT 935 U = 3.19 + 1.1 * L / ERAD - .065 * ((L / ERAD) ^ 2) 940 PRINT "SOLENOID EFFECT="; : PRINT USING "##.##^^^^ X DC RESIST."; U * GBAR 945 PRINT "ENTER CAPACITOR Q ( 200 IF VALUE IS UNKNOWN )"; 947 INPUT CAPQ 949 RCAP = 1 / (2000 * PI * FRQ * CAP * CAPQ) 951 PRINT USING "CAPACITOR EQUIV. SERIES RESISTANCE =###.# OHMS "; RCAP 960 PRINT "CALCULATED Q"; 970 R = N * PERIM * RESDC * ((RESAC / RESDC) + K * GBAR + U * GBAR) + RCAP: Q = .002 * PI * FRQ * IND / R 980 PRINT USING "=####"; Q 990 INPUT "Q(ACTUAL)"; QA 1000 PRINT USING "COIL DC OHMS=###.##"; N * RESDC * PERIM; 1010 PRINT USING " COIL AC OHMS=###.##"; R; 1015 REFF = (.002 * PI * FRQ * IND / QA) 1020 PRINT USING " COIL EQUIV OHMS=###.##"; REFF 1040 INPUT "ENTER POWER TO ANTENNA (WATTS)"; WATTS 1050 AMPS = SQR(WATTS / REFF) 1060 VPP = .00566 * AMPS * PI * FRQ * IND 1070 NIA = N * AMPS * AREA * MU 1080 PRINT USING "NIA = ##.##^^^^ AMP.M2"; NIA 1090 PRINT USING "AMPS(RMS) = ##.##^^^^"; AMPS 1100 PRINT USING "VOLTS(P-P) = ##.#^^^^"; VPP 1120 SECIMP = QA * .002 * PI * FRQ * IND 1130 INPUT "ENTER # TURNS IN PRIMARY"; PN 1140 PRINT USING "INPUT IMPED. TO ANTENNA = #####.# OHMS"; SECIMP * ((PN / N) ^ 2) 1160 PRINT "TO RECALC,ENTER #" 1170 PRINT "1-SIZE 2-FREQUENCY 3-WIRE SIZE 4-SECONDARY TURNS" 1180 PRINT "5-ACTUAL Q 6-POWER TO ANTENNA 7-PRIMARY TURNS" 1200 A$ = INKEY$: IF A$ = "" THEN 1200 ELSE 1205 1205 PRINT : PRINT : PRINT 1210 A% = VAL(A$): ON A% GOTO 100, 380, 400, 560, 990, 1040, 1130 2000 GOTO 2310 2160 REM CALC INDUCTANCE 2170 RATIO = 2 * ERAD / L 2180 IF (RATIO < .01 OR RATI0 > 1000) THEN 2250 2190 IF (RATIO > 1) THEN 2220 2200 FBAR = RATIO * (.025 - 8.999999E-03 * RATIO) 2210 GOTO 2230 2220 FBAR = .016 + .0156 * LOG(RATIO) 2230 IND = MU * 78.8 * FBAR * N * N * ERAD 2240 RETURN 2250 CLS : PRINT "COIL DIMENSIONS": PRINT "OUTSIDE RANGE" 2260 GOTO 2310 2310 END 3000 REM CALC MU(EFFECTIVE) FOR FERRITE CORES 3040 INPUT "ENTER MU(EFFECTIVE) "; MU 3050 RETURN