home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / ant / antdesgn / swgds.bas < prev    next >
BASIC Source File  |  1979-12-31  |  2KB  |  77 lines

  1. 10 REM SURFACE WAVES ON A GROUNDED DIELECTRIC SLAB
  2. 20 REM "ANTENNA DESIGN USING PERSONAL COMPUTERS"
  3. 30 KEY OFF
  4. 40 PI=3.141593
  5. 50 CLS
  6. 60 COLOR 1,0
  7. 70 PRINT "THIS PROGRAM COMPUTES THE SURFACE WAVE PROPAGATION CONSTANTS"
  8. 80 PRINT "OF A GROUNDED DIELECTRIC SLAB."
  9. 90 COLOR 4,0
  10. 100 PRINT
  11. 110 INPUT "WHAT IS THE FREQUENCY(MHz)";FMC
  12. 120 INPUT "WHAT IS THE THICKNESS OF THE SUBSTRATE(meters)";D
  13. 130 INPUT "WHAT IS THE RELATIVE DIELECTRIC CONSTANT";EPS
  14. 140 PRINT
  15. 150 COLOR 14,0
  16. 160 XK0=2*PI*FMC/300
  17. 170 NSW%=INT(1+2*XK0*D*SQR(EPS-1)/PI)
  18. 180 PRINT USING "THERE ARE ## SURFACE WAVE MODES";NSW%
  19. 190 DELTA=.00001*XK0
  20. 200 BT2=XK0-DELTA
  21. 210 FOR I%=1 TO NSW%
  22. 220 REM IEM%=1 FOR TM MODES; =3 FOR TE MODES
  23. 230 IEM%=2-(-1)^(I%+NSW%)
  24. 240 BT1=BT2+2*DELTA
  25. 250 BT2=SQR(EPS*XK0*XK0-((NSW%-I%)*PI*.5/D)^2)
  26. 260 GOSUB 370
  27. 270 TEM$="TM"
  28. 280 IF IEM%=3 THEN TEM$="TE"
  29. 290 BTN=BTN/XK0
  30. 300 PRINT USING "& SURFACE WAVE PROPAGATION CONSTANT/ko=##.#####";TEM$,BTN
  31. 310 NEXT I%
  32. 320 PRINT
  33. 330 COLOR 4,0
  34. 340 INPUT "CONTINUE(Y,N)";IS$
  35. 350 IF IS$<>"N" THEN GOTO 50
  36. 360 GOTO 740
  37. 370 REM ROOT SEARCH USING NEWTON RHAPSON ITERATION
  38. 380 REM FIRST USE INTERVAL HALVING TO GET CLOSE TO ROOT
  39. 390 DB=(BT2-BT1)/30
  40. 400 XK0S=XK0*XK0
  41. 410 FOR J=1 TO 30
  42. 420 BT=BT1+(J-1)*DB
  43. 430 BTS=BT*BT
  44. 440 XK1=SQR(EPS*XK0S-BTS)
  45. 450 XK2=-SQR(BTS-XK0S)
  46. 460 IF IEM%=1 THEN G=EPS*XK2/XK1
  47. 470 IF IEM%=3 THEN G=-XK1/XK2
  48. 480 F=SIN(XK1*D)/COS(XK1*D)+G
  49. 490 IF J=1 THEN 510
  50. 500 IF F*F1<0 THEN GOTO 530
  51. 510 F1=F
  52. 520 NEXT J
  53. 530 BT=BT-DB
  54. 540 ITER=0
  55. 550 BTS=BT*BT
  56. 560 XK1=SQR(EPS*XK0S-BTS)
  57. 570 XK2=-SQR(ABS(BTS-XK0S))
  58. 580 IF IEM%=1 THEN G=EPS*XK2/XK1
  59. 590 IF IEM%=3 THEN G=-XK1/XK2
  60. 600 F=SIN(XK1*D)/COS(XK1*D)+G
  61. 610 IF IEM%=1 THEN GP=EPS*BT*(1/XK2+XK2/XK1^2)/XK1
  62. 620 IF IEM%=3 THEN GP=BT*(1/XK1+XK1/XK2^2)/XK2
  63. 630 FP=-BT*D/(XK1*COS(XK1*D)^2)+GP
  64. 640 BTN=BT-F/FP
  65. 650 BTNS=BTN
  66. 660 ER=ABS((BTN-BT)/BT)
  67. 670 IF ER<.00001 THEN GOTO 730
  68. 680 ITER=ITER+1
  69. 690 IF ITER>20 THEN PRINT "ITERATIONS EXCEEDED"
  70. 700 BT=BTN
  71. 710 IF BT<BT1 OR BT>BT2 THEN PRINT "ERROR IN NEWRHAP"
  72. 720 GOTO 550
  73. 730 RETURN
  74. 740 COLOR 7,0
  75. 750 KEY ON
  76. 760 END
  77.