home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / eepub10 / umatch.asc < prev    next >
Text File  |  1986-10-15  |  5KB  |  153 lines

  1. 100 REM "UMATCH"
  2. 110 CLS :KEY OFF :PRINT TAB(25);"**** MICROSTRIP MATCHING ****" :PRINT
  3. 120 REM J. LEV -1973; REVISED by V.HEESEN -1986
  4. 130 PRINT "THIS PROGRAM CALCULATES THE PARAMETERS OF A MICROSTRIP TRANSMISSION";
  5. 140 PRINT "LINE REQUIRED TO MATCH TWO REAL OR COMPLEX LOADS." :PRINT :PRINT
  6. 150 PRINT "ENTER:   1  if SOURCE IMPEDANCE is REAL."
  7. 160 PRINT "         2  if LOAD IMPEDANCE is REAL.
  8. 170 PRINT "         3  if SOURCE and LOAD are COMPLEX."
  9. 180 BEEP :INPUT "       ";A
  10. 190 IF A<1 OR A>3 THEN 320
  11. 200 IF A=3 THEN PRINT :BEEP :INPUT "         REAL TERM (R)           ";B
  12. 210 IF A=3 THEN PRINT :BEEP :INPUT "         IMAGINARY TERM (+-J)    ";C
  13. 220 IF A=1 THEN PRINT :BEEP :INPUT "         SOURCE IMPEDANCE (ohms) ";B
  14. 230 IF A=2 THEN PRINT :BEEP :INPUT "         LOAD IMPEDANCE   (ohms) ";B
  15. 240 PRINT :PRINT "         (OTHER TERMINAL IMPEDANCE)"
  16. 250 PRINT :BEEP :INPUT "         REAL TERM (R)           ";D
  17. 260 PRINT :BEEP :INPUT "         IMAGINARY TERM (+-J)    ";E
  18. 270 PRINT :BEEP :INPUT "         FREQ. (Mhz)      ";F :F=F*10^-3
  19. 280 PRINT :BEEP :INPUT "         BOARD Er         ";G
  20. 290 PRINT :BEEP :INPUT "         BOARD Thk.(mils) ";H :H=H*10^-3
  21. 300 PRINT :BEEP :INPUT "         COPPER Thk.(mils)";I :I=I*10^-3
  22. 310 GOTO 340
  23. 320 PRINT :PRINT :PRINT "DATA ENTRY ERROR!    PLEASE REENTER DATA." :PRINT
  24. 330 GOTO 150
  25. 340 PRINT :PRINT
  26. 350 CLS :PRINT "                       *** DATA ENTERED ***"
  27. 360 PRINT
  28. 370 IF A<>1 THEN 570
  29. 380 IF C<>0 THEN 320
  30. 390 PRINT "     SOURCE IMPEDANCE            =  ",B,"ohms"
  31. 400 IF E>=0 THEN 420
  32. 410 IF E<0 THEN 440
  33. 420 PRINT "     IMPEDANCE NUMBER 1          =  ",D;"+J";ABS(E),"ohms"
  34. 430 GOTO 510
  35. 440 PRINT "     IMPEDANCE NUMBER 1          =  ",D;"-J";ABS(E),"ohms"
  36. 450 GOTO 510
  37. 460 IF E>=0 THEN 480
  38. 470 IF E<=0 THEN 500
  39. 480 PRINT "     IMPEDANCE NUMBER 2          =  ",D;"+J";ABS(E),"ohms"
  40. 490 GOTO 510
  41. 500 PRINT "     IMPEDANCE NUMBER 2          =  ",D;"-J";ABS(E),"ohms"
  42. 510 PRINT "     FREQUENCY                   =  ",F*10^3,"Mhz"
  43. 520 PRINT "     DIELECTRIC CONSTANT         =  ",G
  44. 530 PRINT "     SUBSTRATE THICKNESS         =  ",H*10^3,"mils"
  45. 540 PRINT "     CONDUCTOR THICKNESS         =  ",I*10^3,"mils"
  46. 550 GOTO 690
  47. 560 IF C<>0 THEN 320
  48. 570 IF A=3 THEN 600
  49. 580 PRINT "     LOAD IMPEDANCE              =  ",B,"ohms"
  50. 590 GOTO 460
  51. 600 IF E<0 THEN 630
  52. 610 PRINT "     IMPEDANCE NUMBER 3          =  ",D;"+J";ABS(E),"ohms"
  53. 620 GOTO 640
  54. 630 PRINT "     IMPEDANCE NUMBER 3          =  ",D;"-J";ABS(E),"ohms"
  55. 640 IF C<0 THEN 670
  56. 650 PRINT "     IMPEDANCE NUMBER 4          =  ",B;"+J";ABS(C),"ohms"
  57. 660 GOTO 510
  58. 670 PRINT "     IMPEDANCE NUMBER 4          =  ",B;"-J";ABS(C),"ohms"
  59. 680 GOTO 510
  60. 690 IF D-B=0 THEN 730
  61. 700 Y=((C*D+B*E)*(E+(((D-B)*(B*D-C*E))/((C*D)+(B*E)))-C))/(D-B)
  62. 710 IF Y<=0 THEN 730
  63. 720 GOTO 760
  64. 730 PRINT
  65. 740 PRINT "MICROSTRIP MATCH NOT POSSIBLE WITH DATA ENTERED!!!"
  66. 750 GOTO 1580
  67. 760 Z=SQR(Y)
  68. 770 PRINT
  69. 780 IF A=3 THEN 840
  70. 790 IF A=2 THEN 820
  71. 800 PRINT "            *** INPUT NETWORK LINE PARAMETERS ***"
  72. 810 GOTO 850
  73. 820 PRINT "            *** OUTPUT NETWORK LINE PARAMETERS ***"
  74. 830 GOTO 850
  75. 840 PRINT "          *** INTERSTAGE NETWORK LINE PARAMETERS ***"
  76. 850 PRINT
  77. 860 PI=4*ATN(1)
  78. 870 X=Z*(D-B)
  79. 880 W=C*D-B*E
  80. 890 IF X=0 THEN 970
  81. 900 IF W=0 THEN 1020
  82. 910 R=ABS(X/W)
  83. 920 IF R>2^24 THEN 1020
  84. 930 Q=(ATN(X/W)*(180/PI))
  85. 940 IF W>0 THEN 1040
  86. 950 K=Q+((X/ABS(X))*180)
  87. 960 GOTO 1050
  88. 970 IF W=0 THEN 1050
  89. 980 IF W<0 THEN 1000
  90. 990 GOTO 910
  91. 1000 K=180
  92. 1010 GOTO 1050
  93. 1020 K=(X/ABS(X))*90
  94. 1030 GOTO 1050
  95. 1040 K=Q
  96. 1050 M=K/360
  97. 1060 IF M<0 THEN 1090
  98. 1070 N=M
  99. 1080 GOTO 1100
  100. 1090 N=.5 +M
  101. 1100 IF F=0 THEN 730
  102. 1110 O=11.803/F
  103. 1120 IF G<=0 THEN 730
  104. 1130 L1=(N*O)/SQR(G)
  105. 1140 IF H<=0 THEN 730
  106. 1150 IF I<=0 THEN 730
  107. 1160 P=0
  108. 1170 E1=(I/PI)*(LOG((2*H)/I)+1)
  109. 1180 T1=0
  110. 1190 T2=E1+T1
  111. 1200 P9=376.819437#*H
  112. 1210 E2=P9/(SQR(G)*T2*(1+1.735*G^(-7.240001E-02)*(T2/H)^(-.836)))
  113. 1220 D1=E2-Z
  114. 1230 IF P=1 THEN 1320
  115. 1240 IF P=2 THEN 1380
  116. 1250 IF P=3 THEN 1440
  117. 1260 IF D1<0 THEN 1290
  118. 1270 T1=T1+.01
  119. 1280 GOTO 1190
  120. 1290 T1=T1-.01
  121. 1300 P=1
  122. 1310 GOTO 1190
  123. 1320 IF D1<0 THEN 1350
  124. 1330 T1=T1+.001
  125. 1340 GOTO 1190
  126. 1350 T1=T1-.001
  127. 1360 P=2
  128. 1370 GOTO 1190
  129. 1380 IF D1<0 THEN 1410
  130. 1390 T1 = T1+.0001
  131. 1400 GOTO 1190
  132. 1410 T1=T1-.0001
  133. 1420 P=3
  134. 1430 GOTO 1190
  135. 1440 IF D1 < 0 THEN 1470
  136. 1450 T1=T1+.00001
  137. 1460 GOTO 1190
  138. 1470 T1=T1-.00001
  139. 1480 W2=T1/H
  140. 1490 IF W2>=.6 THEN 1520
  141. 1500 K1=SQR(G/(1+.6*(G-1)*((T2/H)^.0297)))
  142. 1510 GOTO 1530
  143. 1520 K1=SQR(G/(1+.63*(G-1)*((T2/H)^.1255)))
  144. 1530 L=L1*K1 :L=INT(L*100)/100
  145. 1540 PRINT "    IMPEDANCE       =",INT(Z*100)/100,"ohms"
  146. 1550 PRINT "    LINE LENGTH     =",L,"inches"
  147. 1560 PRINT "    LINE WIDTH      =",INT(T1*100000!)/100,"mils" :PRINT
  148. 1570 IF INT(T1*100000!)/100 <10 THEN PRINT "CAUTION: WIDTH LESS THAN 10 MILS!!!"
  149. 1580 PRINT :PRINT :PRINT :PRINT
  150. 1590 BEEP :PRINT "CONTINUE (Y/N) "
  151. 1600 C$=INKEY$ :IF C$="" THEN 1600
  152. 1610 IF C$="Y" THEN RUN ELSE END
  153.