home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
tech
/
eepub10
/
umatch.asc
< prev
next >
Wrap
Text File
|
1986-10-15
|
5KB
|
153 lines
100 REM "UMATCH"
110 CLS :KEY OFF :PRINT TAB(25);"**** MICROSTRIP MATCHING ****" :PRINT
120 REM J. LEV -1973; REVISED by V.HEESEN -1986
130 PRINT "THIS PROGRAM CALCULATES THE PARAMETERS OF A MICROSTRIP TRANSMISSION";
140 PRINT "LINE REQUIRED TO MATCH TWO REAL OR COMPLEX LOADS." :PRINT :PRINT
150 PRINT "ENTER: 1 if SOURCE IMPEDANCE is REAL."
160 PRINT " 2 if LOAD IMPEDANCE is REAL.
170 PRINT " 3 if SOURCE and LOAD are COMPLEX."
180 BEEP :INPUT " ";A
190 IF A<1 OR A>3 THEN 320
200 IF A=3 THEN PRINT :BEEP :INPUT " REAL TERM (R) ";B
210 IF A=3 THEN PRINT :BEEP :INPUT " IMAGINARY TERM (+-J) ";C
220 IF A=1 THEN PRINT :BEEP :INPUT " SOURCE IMPEDANCE (ohms) ";B
230 IF A=2 THEN PRINT :BEEP :INPUT " LOAD IMPEDANCE (ohms) ";B
240 PRINT :PRINT " (OTHER TERMINAL IMPEDANCE)"
250 PRINT :BEEP :INPUT " REAL TERM (R) ";D
260 PRINT :BEEP :INPUT " IMAGINARY TERM (+-J) ";E
270 PRINT :BEEP :INPUT " FREQ. (Mhz) ";F :F=F*10^-3
280 PRINT :BEEP :INPUT " BOARD Er ";G
290 PRINT :BEEP :INPUT " BOARD Thk.(mils) ";H :H=H*10^-3
300 PRINT :BEEP :INPUT " COPPER Thk.(mils)";I :I=I*10^-3
310 GOTO 340
320 PRINT :PRINT :PRINT "DATA ENTRY ERROR! PLEASE REENTER DATA." :PRINT
330 GOTO 150
340 PRINT :PRINT
350 CLS :PRINT " *** DATA ENTERED ***"
360 PRINT
370 IF A<>1 THEN 570
380 IF C<>0 THEN 320
390 PRINT " SOURCE IMPEDANCE = ",B,"ohms"
400 IF E>=0 THEN 420
410 IF E<0 THEN 440
420 PRINT " IMPEDANCE NUMBER 1 = ",D;"+J";ABS(E),"ohms"
430 GOTO 510
440 PRINT " IMPEDANCE NUMBER 1 = ",D;"-J";ABS(E),"ohms"
450 GOTO 510
460 IF E>=0 THEN 480
470 IF E<=0 THEN 500
480 PRINT " IMPEDANCE NUMBER 2 = ",D;"+J";ABS(E),"ohms"
490 GOTO 510
500 PRINT " IMPEDANCE NUMBER 2 = ",D;"-J";ABS(E),"ohms"
510 PRINT " FREQUENCY = ",F*10^3,"Mhz"
520 PRINT " DIELECTRIC CONSTANT = ",G
530 PRINT " SUBSTRATE THICKNESS = ",H*10^3,"mils"
540 PRINT " CONDUCTOR THICKNESS = ",I*10^3,"mils"
550 GOTO 690
560 IF C<>0 THEN 320
570 IF A=3 THEN 600
580 PRINT " LOAD IMPEDANCE = ",B,"ohms"
590 GOTO 460
600 IF E<0 THEN 630
610 PRINT " IMPEDANCE NUMBER 3 = ",D;"+J";ABS(E),"ohms"
620 GOTO 640
630 PRINT " IMPEDANCE NUMBER 3 = ",D;"-J";ABS(E),"ohms"
640 IF C<0 THEN 670
650 PRINT " IMPEDANCE NUMBER 4 = ",B;"+J";ABS(C),"ohms"
660 GOTO 510
670 PRINT " IMPEDANCE NUMBER 4 = ",B;"-J";ABS(C),"ohms"
680 GOTO 510
690 IF D-B=0 THEN 730
700 Y=((C*D+B*E)*(E+(((D-B)*(B*D-C*E))/((C*D)+(B*E)))-C))/(D-B)
710 IF Y<=0 THEN 730
720 GOTO 760
730 PRINT
740 PRINT "MICROSTRIP MATCH NOT POSSIBLE WITH DATA ENTERED!!!"
750 GOTO 1580
760 Z=SQR(Y)
770 PRINT
780 IF A=3 THEN 840
790 IF A=2 THEN 820
800 PRINT " *** INPUT NETWORK LINE PARAMETERS ***"
810 GOTO 850
820 PRINT " *** OUTPUT NETWORK LINE PARAMETERS ***"
830 GOTO 850
840 PRINT " *** INTERSTAGE NETWORK LINE PARAMETERS ***"
850 PRINT
860 PI=4*ATN(1)
870 X=Z*(D-B)
880 W=C*D-B*E
890 IF X=0 THEN 970
900 IF W=0 THEN 1020
910 R=ABS(X/W)
920 IF R>2^24 THEN 1020
930 Q=(ATN(X/W)*(180/PI))
940 IF W>0 THEN 1040
950 K=Q+((X/ABS(X))*180)
960 GOTO 1050
970 IF W=0 THEN 1050
980 IF W<0 THEN 1000
990 GOTO 910
1000 K=180
1010 GOTO 1050
1020 K=(X/ABS(X))*90
1030 GOTO 1050
1040 K=Q
1050 M=K/360
1060 IF M<0 THEN 1090
1070 N=M
1080 GOTO 1100
1090 N=.5 +M
1100 IF F=0 THEN 730
1110 O=11.803/F
1120 IF G<=0 THEN 730
1130 L1=(N*O)/SQR(G)
1140 IF H<=0 THEN 730
1150 IF I<=0 THEN 730
1160 P=0
1170 E1=(I/PI)*(LOG((2*H)/I)+1)
1180 T1=0
1190 T2=E1+T1
1200 P9=376.819437#*H
1210 E2=P9/(SQR(G)*T2*(1+1.735*G^(-7.240001E-02)*(T2/H)^(-.836)))
1220 D1=E2-Z
1230 IF P=1 THEN 1320
1240 IF P=2 THEN 1380
1250 IF P=3 THEN 1440
1260 IF D1<0 THEN 1290
1270 T1=T1+.01
1280 GOTO 1190
1290 T1=T1-.01
1300 P=1
1310 GOTO 1190
1320 IF D1<0 THEN 1350
1330 T1=T1+.001
1340 GOTO 1190
1350 T1=T1-.001
1360 P=2
1370 GOTO 1190
1380 IF D1<0 THEN 1410
1390 T1 = T1+.0001
1400 GOTO 1190
1410 T1=T1-.0001
1420 P=3
1430 GOTO 1190
1440 IF D1 < 0 THEN 1470
1450 T1=T1+.00001
1460 GOTO 1190
1470 T1=T1-.00001
1480 W2=T1/H
1490 IF W2>=.6 THEN 1520
1500 K1=SQR(G/(1+.6*(G-1)*((T2/H)^.0297)))
1510 GOTO 1530
1520 K1=SQR(G/(1+.63*(G-1)*((T2/H)^.1255)))
1530 L=L1*K1 :L=INT(L*100)/100
1540 PRINT " IMPEDANCE =",INT(Z*100)/100,"ohms"
1550 PRINT " LINE LENGTH =",L,"inches"
1560 PRINT " LINE WIDTH =",INT(T1*100000!)/100,"mils" :PRINT
1570 IF INT(T1*100000!)/100 <10 THEN PRINT "CAUTION: WIDTH LESS THAN 10 MILS!!!"
1580 PRINT :PRINT :PRINT :PRINT
1590 BEEP :PRINT "CONTINUE (Y/N) "
1600 C$=INKEY$ :IF C$="" THEN 1600
1610 IF C$="Y" THEN RUN ELSE END