home *** CD-ROM | disk | FTP | other *** search
/ Antennas / Antennas_CD-ROM_Walnut_Creek_September_1996.iso / public / penstate / txnline.bas < prev    next >
BASIC Source File  |  1996-06-30  |  4KB  |  80 lines

  1. 5 '///////////// TXNLINE //////////////
  2. 10 CLS:KEY OFF:ON ERROR GOTO 1700
  3. 20 X1=23:X2=55:Y1=2:Y2=5:GOSUB 1600:COLOR 0,7
  4. 40 LOCATE 3,24:PRINT " TRANSMISSION LINE CALCULATION "
  5. 50 LOCATE 4,24:PRINT "        LOSSLESS LINE          ":COLOR 7,0
  6. 60 '     AHMAD FAIZAL MOHD ZAIN
  7. 70 '        JULY 8, 1986
  8. 80 PI=3.141592
  9. 100 DEF FN MAG(X,Y)=SQR(X*X+Y*Y)
  10. 110 DEF FN ANG(X,Y)=ATN(Y/X)
  11. 120 DEF FN REAL(MAG,THETA)=MAG*COS(THETA)
  12. 130 DEF FN IMAG(MAG,THETA)=MAG*SIN(THETA)
  13. 140 LOCATE 8,1:PRINT "Working Frequency in (MHz)":PRINT "Charcteristic Impedance ":PRINT "Load Impedance (Real Part)":PRINT "Load Impedance (Imag Part)":PRINT "Length of Line in (Meters)":Q=1
  14. 150 QQ$="Enter Frequency in (MHz) "
  15. 160 LOCATE 20,2:PRINT QQ$;:LINE INPUT "",E$:IF E$="" THEN 160
  16. 170 IF Q=1 THEN E1$=E$:FREQ=VAL(E$):QQ$="Enter Characteristic Impedance "
  17. 180 IF Q=2 THEN E2$=E$:Z0=VAL(E$):QQ$="Load Impedance (Real Part) "
  18. 190 IF Q=3 THEN E3$=E$:RL=VAL(E$):QQ$="Load Impedance (Imag Part) "
  19. 200 IF Q=4 THEN E4$=E$:XL=VAL(E$):QQ$="Length of Line in (Meters) "
  20. 210 IF Q=5 THEN E5$=E$:L=VAL(E$):Q=6
  21. 220 COLOR 15,0:LOCATE 8,29:PRINT E1$:LOCATE 9,29:PRINT E2$:LOCATE 10,29:PRINT E3$:LOCATE 11,29:PRINT E4$:LOCATE 12,29:PRINT E5$:COLOR 7,0
  22. 230 IF Q<>6 THEN Q=Q+1:LOCATE 20,1:PRINT SPC(40):GOTO 160
  23. 240 LOCATE 20,1:PRINT SPC(40):LOCATE 14,1
  24. 250 :
  25. 260 LAMBDA=300/FREQ
  26. 270 BETA=2*PI/LAMBDA
  27. 280 BL=BETA*L
  28. 290 ZL=FN MAG(RL,XL)
  29. 300 X=RL:Y=XL:GOSUB 670:THETA=T*PI/180
  30. 310 AX=Z0-ZL*SIN(THETA)*TAN(BL)
  31. 320 AY=ZL*COS(THETA)*TAN(BL)
  32. 330 MAGA=FN MAG(AX,AY)
  33. 340 X=AX:Y=AY:GOSUB 670:ANGA=T*PI/180
  34. 350 BX=RL
  35. 360 BY=XL+Z0*TAN(BL)
  36. 370 MAGB=FN MAG(BX,BY)
  37. 380 X=BX:Y=BY:GOSUB 670:ANGB=T*PI/180
  38. 390 MAGZIN=Z0*MAGA/MAGB
  39. 400 ANGZIN=ANGA-ANGB
  40. 410 REAL=MAGZIN*COS(ANGZIN):IMAG=MAGZIN*SIN(ANGZIN)
  41. 420 IF IMAG<0 THEN SIGN$=" -j" ELSE SIGN$=" +j"
  42. 430 PRINT USING"INPUT IMPEDANCE OF LINE IS  : ###.##";REAL;:PRINT SIGN$;:PRINT USING "###.##";ABS(IMAG)
  43. 440 PRINT
  44. 450 :
  45. 460 REM  REFLECTION COEFFICIENT
  46. 470 X=RL-Z0: Y=XL
  47. 480 MAGA=FN MAG(X,Y)
  48. 490 GOSUB 670:ANGA=T*PI/180
  49. 500 X=RL+Z0: Y=XL
  50. 510 MAGB=FN MAG(X,Y)
  51. 520 GOSUB 670:ANGB=T*PI/180
  52. 530 GAMMA=MAGA/MAGB:ANGAMMA=(ANGA-ANGB)*180/PI
  53. 540 PRINT USING"COEFFICIENT OF REFLECTION IS MAGNITUDE = ##.##";GAMMA;:PRINT USING" AND ANGLE = ####.##";ANGAMMA;:PRINT" DEGREES"
  54. 550 PRINT
  55. 560 :
  56. 570 REM FIND SWR
  57. 580 IF GAMMA=1 THEN PRINT"SWR IS INFINITE":GOTO 620
  58. 590 GAMMA=ABS(GAMMA)
  59. 600 S=(1+GAMMA)/(1-GAMMA)
  60. 610 PRINT USING"SWR IS ##.##";S
  61. 620 COLOR 15,0:LOCATE 25,18:PRINT "Run Again (Y/N)  Return to Start = S";CHR$(29);:COLOR 7,0
  62. 630 AN$=INKEY$:IF AN$="" THEN 630
  63. 640 IF AN$="Y" OR AN$="y" THEN RUN
  64. 650 IF AN$="N" OR AN$="n" THEN LOCATE 23,1:PRINT CHR$(29);:END
  65. 655 IF AN$="S" OR AN$="s" THEN RUN "START
  66. 660 GOTO 620
  67. 670 IF X>0 THEN T=(180/PI)*ATN(Y/X)
  68. 680 IF X<0 THEN T=180*SGN(Y)+(180/PI)*ATN(Y/X)
  69. 690 IF X=0 THEN T=90*SGN(Y)
  70. 700 IF Y=0 AND X<0 THEN T=180
  71. 710 RETURN
  72. 1500 SCREEN 0,0,0:SOUND 1510,10:COLOR 7,0:LOCATE 25,10:PRINT "Key: Esc to End or `R' to Run Again or `S' to Return Start";CHR$(29);:COLOR 15,0:LOCATE 25,15:PRINT "Esc";:LOCATE 25,30:PRINT "R";:LOCATE 25,50:PRINT "S";CHR$(29);:COLOR 7,0
  73. 1510 E$=INKEY$:IF E$="" THEN 1510 ELSE IF E$=CHR$(27) THEN CLS:END ELSE IF E$="R" OR E$="r" THEN RUN ELSE IF E$="S" OR E$="s" THEN RUN "START
  74. 1520 GOTO 1510
  75. 1600 '//////////////// Routine to Draw a Box //////////////////
  76. 1610 LOCATE Y1,X1+1:PRINT STRING$(X2-X1-1,"─");:LOCATE Y1,X1:PRINT "┌";:LOCATE Y1,X2:PRINT "╖";:FOR I= Y1+1 TO Y2-1:LOCATE I,X1:PRINT "│";:LOCATE I,X2:PRINT "║";:NEXT:LOCATE Y2,X1:PRINT "╘";:LOCATE Y2,X1+1
  77. 1620 PRINT STRING$(X2-X1-1,"═");:LOCATE Y2,X2:PRINT "╝";:RETURN
  78. 1700 SCREEN 0,0,0:COLOR 31,1:LOCATE 24,1:PRINT "Fault Detected";CHR$(29);:COLOR 7,0
  79. 1710 RESUME 1500
  80.