home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / rf4 / pi-match.asc < prev    next >
Text File  |  1986-04-16  |  3KB  |  79 lines

  1. 100 REM                PI-MATCHING NETWORK DESIGN PROGRAM
  2. 105 REM                ----------------------------------
  3. 106 REM
  4. 110 REM       FROM THE 73 MAGAZINE ARTICLE "THE MICRO MAGIC PI DESIGNER"
  5. 120 REM       (DATE UNKNOWN).  PROGRAM AND ARTICLE WRITTEN BY GIL BOELKE.
  6. 130 REM
  7. 140 REM    TYPED IN BY KEVIN MCCLANING.  04 MARCH 86.
  8. 145 REM
  9. 150 CLS:PRINT "PI-MATCHING NETWORK DESIGN PROGRAM":PRINT
  10. 155 PRINT "NOTE: THE MINIMUM Q IS THE LOWEST LOSS AND THE LEAST CRITICAL"
  11. 156 PRINT "   IN PARTS VALUE.":PRINT:PRINT
  12. 160 INPUT "FREQUENCY (IN MHZ)";F: IF F <=0 THEN 160 ELSE F = F*1000000!
  13. 170 PRINT:INPUT "MATCHING NETWORK INPUT IMPEDANCE (IN OHMS)";R1
  14. 180 INPUT "MATCHING NETWORK OUTPUT IMPEDANCE (IN OHMS)";R2
  15. 190 Y1=0:IF R2 > R1 THEN SWAP R1, R2: Y1 = 1
  16. 200 Q0 = SQR(R1/R2-1)
  17. 210 Q0 = INT(Q0*100000!+.5)/100000!
  18. 220 PRINT "Q VALUE (MIN IS";Q0;")";:INPUT Q$
  19. 230 Q=VAL(Q$)
  20. 240 PI = 3.1415926535#
  21. 250 IF Q$ = "MIN" OR Q = 0 THEN Q = Q0: GOTO 640
  22. 260 IF Q < Q0 THEN 220
  23. 265 REM
  24. 266 REM
  25. 270 REM                        CALCULATIONS
  26. 275 REM
  27. 276 REM
  28. 280 IF Q = 0 THEN X1 = 9.999999E+37: GOTO 260
  29. 290 X1 = R1/Q
  30. 300 X2 = Q*Q + 1 - R1/R2
  31. 310 IF X2 <= 0 THEN PRINT "UNREASONABLE PROBLEM.": GOTO 170
  32. 320 X2 = SQR(R1*R2/X2)
  33. 330 X3 = Q*R1 + (R1*R2/X2)
  34. 340 X3 = X3/(Q*Q+1)
  35. 350 C1 = 1/2/PI/X1/F
  36. 360 C2 = 1/2/PI/X2/F
  37. 370 L = X3/2/PI/F
  38. 375 REM
  39. 376 REM
  40. 380 REM                         SCHEMATIC
  41. 385 REM
  42. 386 REM
  43. 390 PRINT
  44. 400 PRINT "O--------UUUUU--------O"
  45. 410 PRINT "    !      L      !"
  46. 420 PRINT "    !             !"
  47. 430 PRINT "   ---           ---"
  48. 440 PRINT "   --- C1        --- C2"
  49. 450 PRINT "    !             !"
  50. 460 PRINT "    !             !"
  51. 470 PRINT "O---------------------O"
  52. 480 IF Y1 > 0 THEN PRINT R2; TAB(20) R1: GOTO 500
  53. 490 PRINT R1; TAB(16) R2
  54. 500 IF L >= .000001 THEN PRINT "L = ";INT(L*1E+09+.5)/1000!;" UH": GOTO 520
  55. 510 PRINT "L = "; INT(L*1E+09+.5);" NH"
  56. 520 PRINT "C1 = "; INT(C1*1E+12 + .5);" PF"
  57. 530 PRINT "C2 = "; INT(C2*1E+12 + .5);" PF"
  58. 540 PRINT
  59. 550 INPUT "ANOTHER Q VALUE";A$
  60. 560 IF ASC(A$) = 89 THEN 190
  61. 570 INPUT "IMPEDENCE CHANGE";A$
  62. 580 IF ASC(A$) = 89 THEN 170
  63. 590 INPUT "ANOTHER FREQUENCY";A$
  64. 600 IF ASC(A$) = 89 THEN INPUT "NEW FREQUENCY (IN MHZ)";F: IF F <= 0 THEN 600 ELSE F = F*1000000!: GOTO 200
  65. 610 INPUT "ANOTHER RUN";A$: IF ASC(A$) = 89 THEN 160
  66. 620 END
  67. 625 REM
  68. 626 REM
  69. 630 REM                    MIN Q YIELDS AN L NETWORK
  70. 635 REM
  71. 636 REM
  72. 640 IF Q = 0 THEN PRINT "USE A SHORT CIRCUIT, DUM-DUM !!": GOTO 220
  73. 650 X3 = Q*R2
  74. 660 X1 = R1/Q: C1 = 0: C2 = 0: X2 = X1
  75. 670 IF Y1 = 1 THEN 360
  76. 680 C1 = 1/2/PI/F/X1
  77. 690 GOTO 370
  78. 700 END
  79.