home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
w4mb
/
vol1
/
basic
/
point.asc
< prev
next >
Wrap
Text File
|
1996-06-30
|
5KB
|
145 lines
100 CLS : PRINT " ***********************************"
110 PRINT " * POINT SOURCE ARRAYS *"
120 PRINT " * REFERENCE-PRINCIPLES OF RADAR *"
130 PRINT " *MIT RADAR SCHOOL STAFF, PAGE 9-38*"
140 PRINT " * PROGRAM COPYRIGHT 1985 *"
150 PRINT " * R.P. HAVILAND, W4MB *"
160 PRINT " ***********************************"
170 REM PROGRAM 16
180 DEF FNP (P) = (INT(1000 * P + .5)) / 1000
190 PI = 3.14159
200 PRINT : PRINT "THIS PROGRAM CALCULATES THE PATTERN FOR UP TO FOUR GROUPS OF ANTENNAS"
210 PRINT "REPRESENTED BY POINT SOURCES IN EACH GROUP, THE ELEMENTS MUST BE"
220 PRINT "SIMILAR, ALONG A LINE AND FED BY EQUAL CURRENTS AT CONSTANT PHASE"
230 PRINT "DELTA BETWEEN ADJACENT ELEMENTS SOLUTION IS FOR ALL ELEMENTS IN A"
240 PRINT "PLANE. REPEAT FOR OTHER PLANES."
250 PRINT
260 PRINT "PRESS A KEY TO START"
270 Q$ = INKEY$: IF Q$ = "" GOTO 270
300 PRINT : PRINT "GROUP ONE IS THE BASIC RADIATOR"
310 PRINT "GROUP TWO IS COMPOSED OF BASIC RADIATORS"
320 PRINT "GROUP THREE IS COMPOSED OF 2 OR MORE GROUP TWO'S, ETC"
330 PRINT : INPUT "ENTER TOTAL NUMBER OF GROUPS IN ARRAY"; GR
340 DIM E(GR), S(GR), P(GR), A(GR), O(360)
350 PRINT : PRINT "ENTER BASIC ELEMENT TYPE"
360 PRINT " 1-DIPOLE"
370 PRINT " 2-SHORT DIPOLE"
380 PRINT " 3-TWO HALF WAVES IN PHASE"
390 PRINT " 4-ISOTROPIC/END-ON ELEMENT"
400 INPUT TE
410 PRINT : PRINT "IN ENTERING FOLLOWING ANGLES, REFERENCE IS ALONG LINE OF CENTERS, GROUP 2"
420 PRINT "WITH ZERO AT LAG END OF GROUP, IF PHASED, OR ARBITRARY"
430 PRINT : PRINT "ENTER ELEMENT ANGLE TO REFERENCE AXIS"
440 PRINT " 0-PARALLEL TO"
450 PRINT " 90-PERPENDICULAR TO"
460 PRINT " VALUE-AT AN ANGLE TO, DEG."
470 INPUT A(1)
600 FOR M = 2 TO GR
610 PRINT : PRINT "FOR GROUP "; M
620 INPUT "ENTER NO. ELEMENTS IN GROUP"; E(M)
630 INPUT "ENTER ELEMENT SPACING, WAVELENGTHS"; S(M)
640 INPUT "ENTER PHASE DELTA, DEGREES"; P(M): P(M) = P(M) / 360
650 PRINT "ENTER 0 IF GROUP AXIS IS SAME AS REFERENCE, OTHERWISE SHIFT ANGLE"
660 INPUT A(M)
670 NEXT M
700 PRINT : INPUT "CALCULATION INTERVAL, DEGREES"; CI
710 MX = 0
1000 PRINT : PRINT "WAIT-PROCESSING"
1010 FOR N = 0 TO 360 STEP CI
1020 NR = 2 * PI * (N + A(1)) / 360
1030 IF NR = 0 OR NR = 2 * PI THEN NR = 1E-09
1040 ON TE GOSUB 1500, 1600, 1700, 1800
1050 O(N) = EI:
1060 GOTO 2000
1500 IF ABS(SIN(NR)) < .00001 THEN EI = 0: RETURN
1510 EI = (COS(PI / 2 * COS(NR))) / SIN(NR)
1520 RETURN
1600 EI = SIN(NR)
1610 RETURN
1700 IF ABS(SIN(NR)) < .00001 THEN EI = 0: RETURN
1710 EI = (COS(PI * COS(NR)) + 1) / 2 / SIN(NR)
1720 RETURN
1800 EI = 1
1810 RETURN
2000 FOR M = 2 TO GR
2010 NR = 2 * PI * (N + A(M)) / 360
2020 IF P(M) = 0 THEN GOSUB 2500
2030 IF P(M) <> 0 THEN GOSUB 2600
2040 IF M > 2 OR EC = 0 THEN 2300
2050 TE = GM
2060 M = 0
2080 GOTO 2010
2200 GM = TE + I2 * GM
2210 M = 2
2300 O(N) = O(N) * GM
2310 NEXT M
2320 IF ABS(O(N)) > MX THEN MX = ABS(O(N))
2330 NEXT N
2400 GOTO 3000
2500 QU = PI * S(M) * COS(NR)
2510 IF QU = 0 THEN QU = .000001
2520 IF ABS(QU) < .000001 THEN QU = SGN(QU) * .000001
2530 GM = (SIN(E(M) * QU)) / SIN(QU)
2540 RETURN
2600 QU = PI * P(M) - PI * S(M) * COS(NR)
2610 IF QU = 0 THEN QU = .000001
2620 IF ABS(QU) < .000001 THEN QU = SGN(QU) * .000001
2630 GM = (SIN(E(M) * QU)) / SIN(QU)
2640 RETURN
3000 PRINT : PRINT "BASIC RADIATOR- ";
3010 IF TE = 1 THEN PRINT "DIPOLE"
3020 IF TE = 2 THEN PRINT "SHORT DIPOLE"
3030 IF TE = 3 THEN PRINT "TWO HALF WAVES IN PHASE"
3040 IF TE = 4 THEN PRINT "ISOTROPIC/END ON"
3070 PRINT
3080 FOR M = 2 TO GR
3090 PRINT " GROUP NO. "; M
3100 PRINT " ELEMENTS "; E(M)
3110 PRINT " SPACING "; S(M); " WAVELENGTHS"
3120 PRINT " PHASE "; P(M); " DEGREES"
3130 PRINT " ANGLE "; A(M); " DEGREES TO REFERENCE"
3140 PRINT
3150 NEXT M
3160 IF PO = 0 THEN PRINT "PRESS A KEY FOR MORE"
3170 Q$ = INKEY$: IF Q$ = "" GOTO 3170
3180 PRINT
4000 PRINT "ANGLE "; "RELATIVE"
4010 PRINT "DEGREES "; "PATTERN"
4020 FOR N = 0 TO 360 STEP CI
4025 PL = PL + 1
4030 PRINT N, FNP(O(N) / MX)
4035 IF PL <> 21 THEN 4060
4040 PRINT "PRESS ANY KEY TO CONTINUE"
4045 Q$ = INKEY$: IF Q$ = "" THEN 4045
4050 PL = 0
4060 NEXT N
4070 PL = 0
5000 PRINT "PRESS; M=MODIFY VALUES, R=ANOTHER RUN, G=GRAPH, Q=QUIT"
5010 P$ = INKEY$: IF P$ = "" THEN 5010
5030 IF P$ = "G" THEN 6000
5040 IF P$ = "R" THEN RUN
5045 IF P$ = "Q" THEN STOP
5050 IF P$ <> "M" THEN 5010
5060 INPUT "ENTER GROUP NUMBER TO MODIFY"; MG
5070 PRINT "ENTER A=ANGLE, E=NO. ELEMENTS, S=SPACING, P=PHASE"
5080 INPUT T$
5090 INPUT "ENTER NEW VALUE"; NV
5100 IF T$ = "A" THEN A(MG) = NV
5110 IF T$ = "E" THEN E(MG) = NV
5120 IF T$ = "S" THEN S(MG) = NV
5130 IF T$ = "P" THEN P(MG) = NV
5140 GOTO 1000
6000 REM GRAPH SUB
6010 PRINT : PRINT " RELATIVE PATTERN"
6020 PRINT "DEGREES"; TAB(10); 0; SPC(24); 50; SPC(23); 100
6030 FOR N = 0 TO 360 STEP CI
6040 PV = ABS(O(N) / MX * 50)
6050 G$ = " " + STR$(N)
6060 PRINT RIGHT$(G$, 4); SPC(6);
6070 IF PV = 0 THEN PRINT "@"
6080 IF PV > 0 THEN PRINT "+"; SPC(PV); "*"
6090 NEXT N
6100 PRINT
6110 GOTO 5000