home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
mininec
/
mn3basic
/
opmn9.clp
< prev
next >
Wrap
Text File
|
1996-06-30
|
2KB
|
65 lines
30000 REM OPTIMIZER
30010 PRINT "ORIENTATION MUST SET MAIN LOBE AT"
30020 PRINT " AZMUITH =90, ANGLE FROM ZENITH=90 DEGREES,"
30030 PRINT " WITH PARAMETERS SET TO CALCULATE THE LOBE WITH"
30040 PRINT " 90,0,1": PRINT
30050 INPUT "ENTER SPACE IF OK, OTHER KEY= MAIN MENU"; Q$
30060 IF Q$ <> "" THEN 38000
31000 INPUT "ENTER DESIGN GOAL, 1=MAX GAIN, 2=MAX F/B"; GOAL
31010 IF GOAL < 1 OR GOAL > 2 THEN 31000
31020 INPUT "ENTER PULSE # OF REFLECTOR LOAD"; LP(1)
31030 INPUT "ENTER NUMBER OF DIRECTORS"; NDIR
31040 FOR ND = 2 TO NDIR + 1
31050 PRINT " ENTER PULSE # OF DIRECTOR #"; ND - 1; " LOAD"
31060 INPUT LP(ND)
31070 NEXT
32000 PASS = 0
32010 MAXVAL = 0
32020 GOSUB 39000 'FOR LOBES
32030 GOSUB 38000
32040 SLOPE = 1
32050 LA(2, 1, 1) = LA(2, 1, 1) + SLOPE * 25
32060 GOSUB 39000
32070 IF SLOPE = 1 THEN IF VALUE < MAXVALUE THEN SLOPE = -1 ELSE GOSUB 38000
32080 LA(2, 1, 1) = LA(2, 1, 1) + SLOPE * 25
32090 GOSUB 39000
32100 IF VALUE >= MAXVALUE THEN GOSUB 38000: GOTO 32080
32110 LA(2, 1, 1) = LA(2, 1, 1) - SLOPE * 25
33000 SLOPE = 1
33010 FOR ND = 2 TO NDIR + 1
33020 LA(2, ND, 1) = LA(2, ND, 1) + SLOPE * 25
33030 NEXT ND
33040 GOSUB 39000
33050 IF SLOPE = 1 THEN IF VALUE < MAXVALUE THEN SLOPE = -1 ELSE GOSUB 38000
33060 FOR ND = 2 TO NDIR + 1
33070 LA(2, ND, 1) = LA(2, ND, 1) + SLOPE * 25
33080 NEXT ND
33090 GOSUB 39000
33095 IF VALUE >= MAXVALUE THEN GOSUB 38000: GOTO 33060
34000 PRINT "AT END OF PASS"; PASS; ","
34010 IF GOAL = 1 THEN PRINT #3, " MAX GAIN =";
34020 IF GOAL = 2 THEN PRINT #3, " MAX F/B =";
34030 PRINT #3, MAXVALUE
34040 PRINT #3, "OBTAINED WITH REFLECTOR LOADING OF"; REFL; " OHMS"
34050 PRINT #3, " AND A DIRECTOR LOADING OF"; DIRL; " OHMS"
34060 PRINT #3, ""
34070 INPUT "ANOTHER PASS, Y/N"; Q$
34080 IF Q$ = "Y" THEN PASS = PASS + 1: GOTO 32040
37000 RETURN
38000 MAXVALUE = VALUE
38010 REFL = LA(2, 1, 1)
38020 DIRL = LA(2, 2, 1)
38030 RETURN
39000 AA = 90: FLG = 0
39005 PRINT #3, "REFLECTOR LOAD="; LA(2, 1, 1): PRINT #3, "DIRECTOR(S) LOAD="; LA(2, 2, 1)
39010 GOSUB 6200 'FOR MAIN LOBE
39020 VALUE = P3
39030 PRINT #3, "MAIN LOBE="; P3
39040 AA = 270: Q1 = AA
39050 GOSUB 6920 'FOR BACK LOBE
39060 IF GOAL = 1 THEN 39080
39070 VALUE = VALUE - P3
39080 PRINT #3, " BACK LOBE="; P3: PRINT #3, ""
39090 RETURN