10 ! ** 'HELICAL.ED4' ** Copyright T.W. Frendeborg, 6073 Egelsbach ** 20 ! ** 6713 Bytes 27 Sektoren ** Printout Nr. 11 85/09/05 ** 30 INTEGER : DOUBLE : EXTEND : \$=CHR$(12) : Y.=180/PI : Y1.=PI/180 : [$="####.#" 40 ! 50 ; \$ CUR(8,20) "Ber{kning av HELICAL-Riktantenner." 60 ; TAB(21) STRING$(34,45) 70 ; CUR(22,50) "'RETN' f|r programm-start "; : GET [2$ : OUT 34,7 : IF NOT ASCII([2$)=13 THEN 50 80 ; \$ 90 ; CUR(1,0) SPACE$(80) CUR(0,0) : ON ERROR GOTO 90 : INPUT "Bandmitten av design-frekvensen i MHz: "Freq.; 100 Ko=FNKorr : ON [ GOTO 110,90 110 Lambda.=300/Freq. : Viertel.=100*Lambda./4 120 Diam.=9549/Freq. : Min.=INT(25*Lambda.) : Max.=INT(41*Lambda.) 130 ; CUR(2,0) SPACE$(80) CUR(1,0) : ON ERROR GOTO 130 : INPUT "Stigningswinkel: (Min 12 - Max 15 Grad) "Alpha. 140 IF Alpha.<12 OR Alpha.>15 ; CUR(2,41) SPACE$(5) : OUT 34,7 : GOTO 130 150 Ko=FNKorr : ON [ GOTO 160,130 160 ; CUR(3,0) SPACE$(80) CUR(2,0) : ON ERROR GOTO 160 : INPUT "Antalt varv 'N': ('N' > 3) "N. : IF N.<3 OUT 34,7 : GOTO 160 170 Axial.=(2*N.+1)/(2*N.) 180 Ko=FNKorr : ON [ GOTO 190,160 190 ; CUR(5,0) "Spiraldiametern:" 200 ; : ; "1. Sj{lv best{mma" 210 ; "2. L}t datorn optimera" 220 Wa=FNWahl : Ko=FNKorr : ON [ GOTO 230,190 230 ON S GOTO 240,280 240 Diam.=0 : GOSUB 4000 : ; CUR(4,0); : ON ERROR GOTO 240 250 ; "Spiraldiameter (Min" Min. " Max" Max.; : ; "cm): "; : INPUT Diam$ : Diam.=VAL(Diam$) : Diam1.=Diam./100 260 IF Diam.Max. ; CUR(10,0) "Med denna diameter arbetar antennen EJ mera i axial modus!!" : OUT 34,7 ELSE 280 270 FOR I.=0 TO 3500 : NEXT I. : ; CUR(10,0) SPACE$(80) CUR(4,41) SPACE$(5) : GOTO 240 280 GOSUB 4000 : ON S GOTO 290,300 290 ; CUR(5,0) SPACE$(80) CUR(5,0); : GOTO 310 300 ; CUR(4,0) SPACE$(80) CUR(4,0); 310 ON ERROR GOTO 280 : INPUT "Kabel-Impedans i Ohm: (50, 60 eller 75) "Kabel. 320 IF Kabel.=50 OR Kabel.=60 OR Kabel.=75 THEN 330 ELSE OUT 34,7 : GOTO 280 330 Ko=FNKorr : ON [ GOTO 350,280 340 ! 350 ; \$ : Space.=SIN(Alpha.*Y1.)/COS(Alpha.*Y1.)*Lambda. 360 Circum.=Diam.*PI/COS(Alpha.*Y1.)/100 370 Gain.=10*LOG10(15.*Circum.^2.*N.*Space./Lambda.^3)-2.15 380 Beamwidth.=(52*Lambda.^(3./2.))/(Circum.*SQR(N.*Space.)) 390 Null.=(115*Lambda.^(3./2.))/(Circum.*SQR(N.*Space.)) 400 Z.=140*Circum./Lambda. : Z1.=Z.*.8 : Z2.=Z.*1.2 410 Mittel.=(Lambda.+Lambda.*5)/2 420 Topf.=SQR(Z.*Kabel.) 430 D.=EXP(Topf./60+LOG(Mittel.)) 440 Fu.=Freq./1.4 : Fo.=Freq.*(4./14.+1) : Bw.=Fo.-Fu. 450 Helix.=SQR(Circum.^2+Space.^2)*N. 460 ! 1000 ; : ; : ; : ; "Design-frequensen:" TAB(42); : ; USING [$,Freq. TAB(50); : ; "MHz" 1010 ; "Undre {nd-frequensen i MHz:" TAB(42); : ; USING [$,Fu. TAB(50); : ; "MHz" 1020 ; "\vre {nd-frequenen i MHz:" TAB(42); : ; USING [$,Fo. TAB(50); : ; "MHz" 1030 ; "Bandbredd:" TAB(42); : ; USING [$,Bw. TAB(50); : ; "MHz" 1040 ; "Antal varv:" TAB(42); : ; USING [$,N. 1050 ; "Spiral-diameter:" TAB(42); : ; USING [$,Diam. TAB(50); : ; "cm" 1060 ; "Avst}nd mellan varje varv:" TAB(42); : ; USING [$,Space.*100 TAB(50); : ; "cm" 1070 ; "Stigningswinkel:" TAB(42); : ; USING [$,Alpha. TAB(50); : ; "Grader" 1080 ; "Periferie-l{ngd av ett varv:" TAB(42); : ; USING [$,Circum.*100 TAB(50); : ; "cm" 1090 ; "Totala spirall{ngden:" TAB(42); : ; USING [$,Helix. TAB(50); : ; "Mtr" 1100 ; "Antennens totala l{ngd:" TAB(42); : ; USING [$,N.*Space.*100 TAB(50); : ; "cm" 1110 ; "R|r-diameter:" TAB(33); : ; USING [$,Lambda.*.6 TAB(41); : ; "-" TAB(42); : ; USING [$,Lambda.*5 TAB(50); : ; "mm"; 1120 ; TAB(55) "(Medelv{rde:" TAB(67); : ; USING [$,Mittel. TAB(74); : ; "mm)" 1130 ; "Reflektor-diameter: (min.)" TAB(42); : ; USING [$,Lambda.*65 TAB(50); : ; "cm" 1140 ; "Avst}nd reflektor-helix:" TAB(42); : ; USING [$,Lambda.*12 TAB(50); : ; "cm" 1150 ; "Gain |ver kors-dipol:" TAB(42); : ; USING [$,Gain. TAB(50); : ; "dB" 1160 ; "\ppningswinkel vid -3 dB:" TAB(42); : ; USING [$,Beamwidth. TAB(50); : ; "Grader" 1170 ; "F|rsta noll +/-:" TAB(42); : ; USING [$,Null. TAB(50); : ; "Grader" 1180 ; "Impedans: (Z)" TAB(42); : ; USING [$,Z. TAB(50); : ; "Ohm"; 1190 ; TAB(55) "(Min "; : ; USING [$,Z1.; : ; " - Max "; : ; USING [$,Z2.; : ; ")" 1200 ; "Axelf|rh}llandet plan 'E' till 'H':" TAB(42); : ; USING [$,Axial.; : ; ":1" 1210 ! 1220 OUT 34,7 : ; CUR(23,60) "Printer (J/N)? "; : GET W$ : IF FNJ 1230 ELSE IF FNN 1270 ELSE 1220 1230 ; CUR(23,60) SPACE$(19) 1240 ; CUR(0,0) "Ber{kning av HELICAL-antenner i det axiala str}lningsplanet." 1250 Copy=FNCopy 1260 ! 1270 ; \$ 1280 ; "1/4-Lambda transformation till en" Kabel. "Ohm Kabel:" 1290 ; "Ytterdiametern av innerledaren:" TAB(42); : ; USING [$,Mittel. TAB(50); : ; "mm" 1300 ; "Innerdiametern av ytterledaren:" TAB(42); : ; USING [$,D. TAB(50); : ; "mm" 1310 ; "L{ngden av anpassningsr|ret:" TAB(42); : ; USING [$,Viertel.*10 TAB(50); : ; "mm"; 1320 IF G.<=15 THEN 2000 ELSE 3000 1330 END 1340 ! 2000 ; : ; : ; "J{mf|relse med kors-Yagi vid VSWR 2:1" : ; STRING$(37,95) : ; 2010 FOR I.=7 TO 20 STEP .1 2020 I.=INT(10*I.+.5)/10 2030 Gain.=INT(10*Gain.+.5)/10 2040 IF I.=Gain. THEN 2060 2050 NEXT I. 2060 IF I.>=7 AND I.<9 THEN G1.=7.1 : Bw1.=3.5*Freq./100 : Boom.=Lambda.*.4 : El=3 : GOTO 2120 2070 IF I.>=9 AND I.<10 THEN G1.=9.2 : Bw1.=3*Freq./100 : Boom.=Lambda.*.8 : El=5 : GOTO 2120 2080 IF I.>=10 AND I.<12 THEN G1.=10.2 : Bw1.=2.7*Freq./100 : Boom.=Lambda.*1.2 : El=6 : GOTO 2120 2090 IF I.>=12 AND I.<13 THEN G1.=12.25 : Bw1.=1.8*Freq./100 : Boom.=Lambda.*2.2 : El=12 : GOTO 2120 2100 IF I.>=13 AND I.<14 THEN G1.=13.4 : Bw1.=1.6*Freq./100 : Boom.=Lambda.*3.2 : El=17 : GOTO 2120 2110 IF I.>=14 AND I.<=15 X=6 : G1.=14.2 : Bw1.=1.5*Freq./100 : Boom.=Lambda.*4.2 : El=15 2120 Beam.=INT(10*(SQR(10^(LOG10(25000)-G1./10)))+.5)/10 2130 ! 2140 ; TAB(15) "HELIX" TAB(35); : ; "YAGI" : ; STRING$(48,45) 2150 ; "Element" TAB(15); : ; USING [$ N. TAB(23); : ; "Varv" TAB(32) "2 x" TAB(35); : ; El TAB(44); : ; " Elem" 2160 ; "Bandbredd" TAB(15); : ; USING [$,Bw. TAB(36); : ; Bw1. TAB(45); : ; "MHz" 2170 ; "Gain" TAB(15); : ; USING [$,Gain. TAB(35); : ; G1. TAB(45); : ; "dBd" 2180 ; "\ppnings <" TAB(15); : ; USING [$,Beamwidth. TAB(35); : ; Beam. TAB(45); : ; "Grad" 2190 ; "Booml{ngd" TAB(15); : ; USING [$,N.*Space. TAB(34); : ; USING [$,Boom. TAB(45); : ; "Mtr" 2200 ! 2210 IF FNJ THEN 2230 ELSE 3000 2220 ; CUR(23,35) SPACE$(43) CUR(23,59) "Fr}n b|rjan (J/N)? "; : GET W$ : IF FNJ 80 ELSE IF FNN ; \$ : GOTO 1330 ELSE 2220 2230 Copy=FNCopy 3000 OUT 34,7 : ; CUR(23,35) "E-plan diagramm p} printern? (J/N) "; : GET W$ : IF FNJ THEN 3020 ELSE 2220 3010 ! 3020 PREPARE "PR:VSA36B72.55A" AS FILE 1 3030 ; #1 "Horizontalt STR}LNINGSDIAGRAMM (free space) f|r den ber{knade antennen:" 3040 ; #1 STRING$(80,45) 3050 ; #1 : ; #1 : ; #1 3060 ; #1 "Grad" TAB(10); : ; #1 "Amplitud ---->" : ; #1 3070 ; #1 TAB(7) "! ! ! ! ! ! ! ! ! * ! !" 3080 ; #1 TAB(7) "0 10 20 30 40 50 60 70 80 90 100" 3090 FOR I=180 TO 540 STEP 10 3100 Q3.=COS(I*Y1.) 3110 Psi.=360*((SIN(Alpha.*Y1.)/COS(Alpha.*Y1.))*(1-Q3.)+1/(2*N.)) 3120 Q.=INT(55*(SIN(90/N.*Y1.)*(SIN((N.*Psi./2)*Y1.)/SIN((Psi./2)*Y1.))*Q3.)) 3130 ; #1 I-270; : ; #1 TAB(Q.+23); : ; #1 '.' 3140 NEXT I 3150 CLOSE 1 3160 ; CUR(23,35) SPACE$(65) : GOTO 2220 3170 ! 4000 ; CUR(5,0) SPACE$(320) CUR(10,0) SPACE$(80) : RETURN 4010 ! 5000 DEF FNJ=(W$='J' OR W$='j') 5010 DEF FNN=(W$='N' OR W$='n') 5020 ! 5030 DEF FNCopy LOCAL Max,Adresse,Zeichen 5040 DIM Screen$=0 : POKE VAROOT(Screen$),0,8,0,120,0,8 5050 PREPARE "PR:VSA36B36.55A" AS FILE 9 5060 IF PEEK(65364)=80 ; #9,LEFT$(Screen$,1920) : GOTO 5170 5070 FOR I=0 TO 23 5080 ; #9,TAB(20); 5090 Adresse=31744+I*128-I/8*984 5100 FOR Y=Adresse TO Adresse+Max-1 5110 Zeichen=PEEK(Y) 5120 IF Zeichen<32 THEN Zeichen=32 5130 ; #9,CHR$(Zeichen); 5140 NEXT Y 5150 ; #9 5160 NEXT I 5170 CLOSE 9 : RETURN 0 5180 FNEND 5190 ! 5200 DEF FNWahl 5210 ; CUR(21,8) CHR$(7) FLSH FNInv$(" V{lj |nskat tal! ") STDY SPACE$(50) CUR(21,41); : GET S$ 5220 IF S$=CHR$(13) THEN 5210 5230 ON ERROR GOTO 5210 : S=VAL(S$) : IF S<1 OR S>2 THEN 5210 5240 ; CUR(17+S,0) FLSH 5250 RETURN Inget 5260 FNEND 5270 ! 5280 DEF FNKorr LOCAL [$=1 5290 OUT 34,7 : ; CUR(21,9) FNInv$(" [r ditt val korrekt? (J/N) ") SPACE$(20) CUR(21,45); : GET W$ 5300 IF FNJ THEN [=1 ELSE IF FNN THEN [=2 ELSE IF NOT FNN THEN 5290 5310 ; CUR(21,9) SPACE$(80) 5320 RETURN Inget 5330 FNEND 5340 ! 5350 DEF FNInv$(Text$) LOCAL Text$=160 5360 FOR I=1 TO LEN(Text$) 5370 PUT (CHR$(ASCII(MID$(Text$,I,1)) OR 128)) 5380 NEXT I 5390 RETURN "" 5400 FNEND