5 DATA "A",20,10,3,1,4,10,"LOG",1000,1.01E+07,2 6 DATA "I",1,0,1,0,"R",1,0,1,"R1",1,2,100,"REB",2,3,375 7 DATA "RPI",3,5,1625,"CPI",3,5,8.3E-11,"RMU",3,4,1.4E7 8DATA"CMU",3,4,1.5E-12,"IVQ1",5,4,3,5,.08,"RO",4,5,71000 9DATA"R2",5,6,50,"R3",6,0,2000,"C1",0,6,4.7E-07 10DATA"TRF1",4,0,7,0,.1,.2,.9999,"C2",7,8,.000001 11DATA"R4",8,0,1000,"R5",8,9,1500,"C3",9,0,1.E-09 12DATA"R6",9,10,5000,"C4",10,0,3.E-10 1000 DIM B(20),D(20,20) 1010 DIM L$(3),Q$(6),A$(7) 1020 READ R$ 1030 PRINT "GRAPHICAL OUTPUT (HP 7200A PLOTTER): (Y OR N)"; 1040 INPUT G$ 1050 PRINT 1060 P=3.14159 1070 READ M,N,J5 1080 MAT A=ZER(N,N) 1090 MAT C=ZER(N,N) 1100 MAT F=ZER(N,N) 1110 MAT D=ZER(2*N,2*N) 1120 MAT B=ZER(2*N) 1130 MAT G=ZER(N) 1140 MAT X=ZER(N) 1150 MAT Y=ZER(N) 1160 IF J5>0 THEN 1190 1170 IF J5=0 THEN 1230 1180 GOTO 1450 1190 J6=J5 1200 FOR I=1 TO J6 1210 READ G(I) 1220 NEXT I 1230 IF R$="A" THEN 1260 1240 READ L5,F1,F2,S 1250 GOTO 1270 1260 READ L$,F1,F2,S 1270 F9=F1 1280 FOR L=1 TO M 1290 IF R$="A" THEN 1380 1300 READ I5 1310 IF I5=2 THEN 1470 1320 IF I5=3 THEN 1560 1330 IF I5=4 THEN 1650 1340 IF I5=5 THEN 1770 1350 IF I5=6 THEN 1860 1360 IF I5=7 THEN 1860 1370 GOTO 1450 1380 READ Q$ 1390 IF LEFT(Q$,1%)="C" THEN 1470 1400 IF LEFT(Q$,1%)="L" THEN 1770 1410 IF LEFT(Q$,1%)="R" THEN 1860 1420 IF LEFT(Q$,3%)="TRF" THEN 1950 1430 IF LEFT(Q$,2%)="IV" THEN 1650 1440 IF LEFT(Q$,1%)="I" THEN 1560 1450 PRINT " DATA ERR" 1460 STOP 1470 READ J,K,G 1480 IF K=0 THEN 1510 1490 C(K,K)=C(K,K)+G 1500 IF J=0 THEN 2280 1510 C(J,J)=C(J,J)+G 1520 IF K=0 THEN 2280 1530 C(J,K)=C(J,K)-G 1540 C(K,J)=C(K,J)-G 1550 GOTO 2280 1560 READ J,K,I1,I2 1570 IF K=0 THEN 1590 1580 IF J=0 THEN 1620 1590 B(J)=B(J)+I1 1600 B(J+N)=B(J+N)+I2 1610 IF K=0 THEN 2280 1620 B(K)=B(K)-I1 1630 B(K+N)=B(K+N)-I2 1640 GOTO 2280 1650 READ N1,N2,N3,N4,M1 1660 IF N1=0 THEN 1710 1670 IF N3=0 THEN 1690 1680 A(N1,N3)=A(N1,N3)-M1 1690 IF (N4)=0 THEN 1710 1700 A(N1,N4)=A(N1,N4)+M1 1710 IF N2=0 THEN 2280 1720 IF N3=0 THEN 1740 1730 A(N2,N3)=A(N2,N3)+M1 1740 IF N4=0 THEN 2280 1750 A(N2,N4)=A(N2,N4)-M1 1760 GOTO 2280 1770 READ J,K,G 1780 IF K=0 THEN 1810 1790 F(K,K)=F(K,K)+1/G 1800 IF J=0 THEN 2280 1810 F(J,J)=F(J,J)+1/G 1820 IF K=0 THEN 2280 1830 F(J,K)=F(J,K)-1/G 1840 F(K,J)=F(K,J)-1/G 1850 GOTO 2280 1860 READ J,K,G 1870 IF K=0 THEN 1900 1880 A(K,K)=A(K,K)+1/G 1890 IF J=0 THEN 2280 1900 A(J,J)=A(J,J)+1/G 1910 IF K=0 THEN 2280 1920 A(K,J)=A(K,J)-1/G 1930 A(J,K)=A(J,K)-1/G 1940 GOTO 2280 1950 READ N1,N2,N3,N4,L1,L2,K1 1960 M1=SQR(K1*K1*L1*L2) 1970 R=1/(1-K1*K1) 1980 R1=R*M1/(L1*L2) 1990 R2=-R/L2 2000 R3=-R/L1 2010 IF N1=0 THEN 2120 2020 F(N1,N1)=F(N1,N1)-R3 2030 IF N2=0 THEN 2060 2040 F(N1,N2)=F(N1,N2)+R3 2050 F(N2,N1)=F(N2,N1)+R3 2060 IF N3=0 THEN 2090 2070 F(N1,N3)=F(N1,N3)-R1 2080 F(N3,N1)=F(N3,N1)-R1 2090 IF N4=0 THEN 2120 2100 F(N1,N4)=F(N1,N4)+R1 2110 F(N4,N1)=F(N4,N1)+R1 2120 IF N2=0 THEN 2200 2130 F(N2,N2)=F(N2,N2)-R3 2140 IF N3=0 THEN 2160 2150 F(N2,N3)=F(N2,N3)+R1 2160 F(N3,N2)=F(N3,N2)+R1 2170 IF N4=0 THEN 2200 2180 F(N2,N4)=F(N2,N4)-R1 2190 F(N4,N2)=F(N4,N2)-R1 2200 IF N3=0 THEN 2250 2210 F(N3,N3)=F(N3,N3)-R2 2220 IF N4=0 THEN 2250 2230 F(N3,N4)=F(N3,N4)+R2 2240 F(N4,N3)=F(N4,N3)+R2 2250 IF N4=0 THEN 2280 2260 F(N4,N4)=F(N4,N4)-R2 2270 GOTO 2280 2280 NEXT L 2290 IF G$="N" THEN 2370 2300 PRINT "ORDINATE: (VOLTAGE, DB, OR PHASE)"; 2310 INPUT A$ 2320 PRINT 2330 PRINT "EXTREMES OF ORDINATE: MAX, MIN"; 2340 INPUT Y9,Y8 2350 PRINT "PLTL" 2360 GOTO 2380 2370 PRINT "NODE FREQUENCY VOLTAGE DB PHASE" 2380 PRINT 2390 F0=F1 2400 W1=2*P*F0 2410 FOR I6=1 TO N 2420 FOR I7=1 TO N 2430 D(I6,I7)=A(I6,I7) 2440 D(I6+N,I7+N)=A(I6,I7) 2450 D(I6+N,I7)=C(I6,I7)*W1-F(I6,I7)/W1 2460 D(I6,I7+N)=-D(I6+N,I7) 2470 NEXT I7 2480 NEXT I6 2490 MAT D=INV(D) 2500 REM END OF MAT SOLN 2510 IF J5=0 THEN 2540 2520 I0=J6 2530 GOTO 2550 2540 I0=N 2550 FOR I9=1 TO I0 2560 IF J5>0 THEN 2590 2570 N1=I9 2580 GOTO 2600 2590 N1=G(I9) 2600 MAT X=ZER(N) 2610 MAT Y=ZER(N) 2620 FOR J8=1 TO 2*N 2630 X(N1)=X(N1)+D(N1,J8)*B(J8) 2640 Y(N1)=Y(N1)+D(N1+N,J8)*B(J8) 2650 NEXT J8 2660 X1=SQR(X(N1)^2+Y(N1)^2) 2670 IF X(N1) <> 0 THEN 2740 2680 IF Y(N1)=0 THEN 2760 2690 IF Y(N1)>0 THEN 2720 2700 Y1=-P/2 2710 GOTO 2770 2720 Y1=P/2 2730 GOTO 2770 2740 Y1=ATN(Y(N1)/X(N1)) 2750 GOTO 2770 2760 Y1=0 2770 Y1=180*Y1/P 2780 IF X(N1) >= 0 THEN 2830 2790 IF Y(N1)>0 THEN 2830 2800 Y1=Y1-180 2810 GOTO 2830 2820 Y1=Y1+180 2830 Y1=INT(Y1*100+.5)/100 2840 IF X1=0 THEN 2880 2850 X5=20*LOG(X1)/LOG(10) 2860 X5=INT(X5*1000+.5)/1000 2870 GOTO 2890 2880 X5=-9999 2890 IF G$="N" THEN 3150 2900 IF LEFT(A$,1%)="V" THEN 3000 2910 IF LEFT(A$,1%)="D" THEN 3020 2920 IF LEFT(A$,1%)="P" THEN 3040 2930 PRINT "INPUT ERROR--REENTER ORDINATE: (V, D, OR P)"; 2940 PRINT A$ 2950 PRINT "REENTER EXTREMES : MAX, MIN"; 2960 INPUT Y9,Y8 2970 PRINT "PLTL" 2980 PRINT 2990 GOTO 2900 3000 Y0=X1 3010 GOTO 3050 3020 Y0=X5 3030 GOTO 3050 3040 Y0=Y1 3050 Y0=9999*(Y0-Y8)/(Y9-Y8) 3060 IF R$="A" THEN 3090 3070 IF L5=1 THEN 3120 3080 GOTO 3100 3090 IF L$="LOG" THEN 3120 3100 X0=9999*(F0-F1)/(F2-F1) 3110 GOTO 3130 3120 X0=9999*(LOG(F0)-LOG(F1))/(LOG(F2)-LOG(F1)) 3130 PRINT INT(X0);INT(Y0) 3140 GOTO 3160 3150 PRINTN1;TAB(5%);F0;TAB(21);X1;TAB(36);X5;TAB(51);Y1 3160 NEXT I9 3170 IF R$="A" THEN 3200 3180 IF L5=1 THEN 3230 3190 GOTO 3210 3200 IF L$="LOG" THEN 3230 3210 F0=F0+S 3220 GOTO 3240 3230 F0=F0*10^(1/S) 3240 IF J5=1 THEN 3270 3250 IF F9=F0 THEN 3270 3260 PRINT 3270 LET F9=F0 3280 IF F0 <= F2 THEN 2400 3290 IF G$="N" THEN 3310 3300 PRINT "PLTT" 3310 END