Engenharia Elétrica
Programa que efetua diversos cálculos:
– conversão de parâmetros H de um transistor;
Teste o programa no WebMSX – The Online MSX Emulator
– cálculo de reatância, capacitância, indutância ou frequência de ressonância para uma frequência determinada;
– determinação da estabilidade de uma rede realimentada, através do diagrama de Bode ou critério de NYQUIST.
Autor: Epcom Sistemas
Ano: 1985
Contribuição: Jeimes Uchoa
Código fonte
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 |
100 CLS:CLEAR:KEYOFF:OPEN"GRP:"FOROUTPUTAS#1:COLOR 10,1,1 110 'SCREEN2:GOTO280 120 COLOR10,1,1:GOSUB1370:SCREEN2:PSET(53,4),1:PRINT#1,"ENGENHARIA ELTRICA":COLOR1:LINE(0,40)-(30,55),10,BF:PSET(9,44),10:PRINT#1,"F1":COLOR15:PSET(40,40),1:PRINT#1,"Convers„o dos Parƒmetros H de um Transistor" 130 COLOR1:LINE(0,70)-(30,85),9,BF:PSET(9,74),9:PRINT#1,"F2":COLOR15:PSET(40,70),1:PRINT#1,"C lculo de Reatƒncia, Ca- pacitƒncia, Indutƒncia ou Frequˆncia de Ressonƒncia para uma Frequˆncia De- terminada" 140 COLOR1:LINE(0,120)-(30,135),3,BF:PSET(9,124),3:PRINT#1,"F3":COLOR15:PSET(40,120),1:PRINT#1,"Determina`„o da Estabili- dade de uma Rede Reali- mentada, Atrav‚s do Dia- grama de Bode ou Crit‚rio de NYQUIST" 150 COLOR1:LINE(0,170)-(30,185),4,BF:PSET(9,174),4:PRINT#1,"F5":COLOR15:PSET(40,175),1:PRINT#1,"FIM" 160 GOSUB1370:ONKEYGOSUB710,480,180,,1360:KEY(1)ON:KEY(2)ON:KEY(3)ON:KEY(5)ON 170 GOTO170 180 COLOR15,3:PI=3.141592654#:KEYOFF:C2=0 190 LINE(0,0)-(255,40),1,BF:LINE(0,40)-(255,191),3,BF:PSET(53,0),1:PRINT#1,"ENGENHARIA ELTRICA":PSET(8,12),1:PRINT#1,"Estabilidade de uma Rede Rea- limentada, atrav‚s do Diagrama de BODE ou Crit‚rio de NYQUIST" 200 DATA9,MENU,13," F2",13," F3",13," F4",7,NOVO:COLOR1:RESTORE200:FORX=8TO208STEP50:READC,F$:LINE(X,178)-(X+40,188),C,BF:PSET(X+5,180),C:PRINT#1,F$:NEXT 210 GOSUB1370:ONKEYGOSUB120,,,,180:KEY(1)ON:KEY(5)ON 220 PSET(8,44),3:PRINT#1,"Frequˆncia:":PSET(8,52),3:PRINT#1,"Incremento:":PSET(8,60),3:PRINT#1,"Grau(DEN):":PSET(136,60),3:PRINT#1,"Grau(NUM):" 230 X1=255:X=96:Y=44:GOSUB1380:CO=3:LI=-1E-50:LS=10000000000000!:LT=18:GOSUB1620:F=MA 240 X=96:Y=52:GOSUB1380:LI=0:LS=10000000000000!:GOSUB1620:FI=MA 250 X1=128:X=88:Y=60:GOSUB1380:LI=0:LS=7:LT=1:GOSUB1620:N=MA 260 X1=255:X=216:Y=60:GOSUB1380:LI=-1:LS=N:GOSUB1620:M=MA 265 FORI=0TO7:A(I)=0:B(I)=0:NEXT 270 FORI=0TON 280 PSET(8,70+I*8),3:PRINT#1,"A(":PSET(16,70+I*8),3:PRINT#1,I:PSET(32,70+I*8),3:PRINT#1,"):" 290 X=48:Y=70+I*8:GOSUB1380:LI=-999999999#:LS=999999999#:LT=9:GOSUB1620:A(I)=MA:NEXT 300 FORJ=0TOM 310 PSET(136,70+J*8),3:PRINT#1,"B(":PSET(144,70+J*8),3:PRINT#1,J:PSET(160,70+J*8),3:PRINT#1,"):" 320 X=176:Y=70+J*8:GOSUB1380:LI=-999999999#:LS=999999999#:LT=9:GOSUB1620:B(J)=MA:NEXT 330 LINE(10,137)-(245,173),15,BF:NR=B(0)-B(2)*F^2+B(4)*F^4-B(6)*F^6:NI=F*(B(1)-B(3)*F^2+B(5)*F^4-B(7)*F^6) 340 DR=A(0)-A(2)*F^2+A(4)*F^4-A(6)*F^6:DI=F*(A(1)-A(3)*F^2+A(5)*F^4-A(7)*F^6) 350 HR=(DR*NR+DI*NI)/(DR^2+DI^2):HI=(DR*NI-DI*NR)/(DR^2+DI^2) 360 HL=SQR(HR^2+HI^2):HD=20*(LOG(HL)/LOG(10)):GOSUB450:J$="F="+STR$(F):PSET(20,140),15:PRINT#1,J$ 370 IFAG>180THENLETAG=AG-360 380 X$="Bode(db)=":X=HD:PSET(20,148),15:GOSUB440:X$="Ang=":X=AG:PSET(20,156),15:GOSUB440:X$="Nyq(mag)=" 390 X=HL 400 PSET(20,164),15:GOSUB440:F=F+FI:IFC2=1GOTO420 410 LINE(108,178)-(148,188),10,BF:PSET(113,180),10:PRINT#1,"CONT":C2=1 420 GOSUB1370:ONKEYGOSUB120,,330,,180:KEY(1)ON:KEY(5)ON:KEY(3)ON 430 GOTO430 440 X=INT(X*1000000!)/1000000!:J$=X$+STR$(X):PRINT#1,J$ 450 IFHR=0THENLETAG=(ABS(HI)/I)*90:RETURN 460 AG=ATN(HI/HR)*180/PI:IFHR<0THENLETAG=AG+180 470 RETURN 480 X=32:PI=3.141592654#:KEYOFF:COLOR15,9,1:SCREEN2:LINE(0,0)-(255,8),1,BF:PSET(53,0),1:PRINT#1,"ENGENHARIA ELTRICA" 490 LINE(0,13)-(30,28),7,BF:COLOR1:PSET(9,17),7:PRINT#1,"F1":PSET(40,17),9:PRINT#1,"Reatƒncia Capacitiva" 500 LINE(0,31)-(30,46),12,BF:PSET(9,35),12:PRINT#1,"F2":PSET(40,35),9:PRINT#1,"Capacitƒncia ( F )" 510 LINE(0,49)-(30,64),11,BF:PSET(9,53),11:PRINT#1,"F3":PSET(40,53),9:PRINT#1,"Capacitƒncia ( Fo )" 520 LINE(0,67)-(30,82),14,BF:PSET(9,71),14:PRINT#1,"F4":PSET(40,71),9:PRINT#1,"Reatƒncia Indutiva" 530 LINE(0,85)-(30,100),5,BF:PSET(9,89),5:PRINT#1,"F5":PSET(40,89),9:PRINT#1,"Indutƒncia ( F )" 540 LINE(0,103)-(30,118),3,BF:PSET(9,107),3:PRINT#1,"F6":PSET(40,107),9:PRINT#1,"Indutƒncia ( Fo )" 550 LINE(0,121)-(30,136),13,BF:PSET(9,125),13:PRINT#1,"F7":PSET(40,125),9:PRINT#1,"Frequˆncia Aplicada (C,Xc)" 560 LINE(0,139)-(30,154),4,BF:PSET(9,143),4:PRINT#1,"F8":PSET(40,143),9:PRINT#1,"Frequˆncia Aplicada (L,Xl)" 570 LINE(0,157)-(30,172),2,BF:PSET(9,161),2:PRINT#1,"F9":PSET(40,161),9:PRINT#1,"Frequˆncia de Ressonƒncia" 580 LINE(0,175)-(30,188),10,BF:COLOR1:PSET(3,179),10:PRINT#1,"F10":PSET(40,179),9:PRINT#1,"MENU" 590 GOSUB1370:ONKEYGOSUB610,620,630,640,650,660,670,680,690,120:FORI=1TO10:KEY(I)ON:NEXT 600 GOTO600 610 CO=7:MR$="Reatƒncia Capacitiva":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1," C=":PSET(8,90),CO:PRINT#1," F=":GOSUB1520:C=MA:Y=90:GOSUB1520:F=MA:W=2*PI*F:XC=1/(C*W):J$="Xc="+STR$(XC)+" ohms":GOSUB1610:GOTO700 620 CO=12:MR$="Capacitƒncia ( F )":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1,"Xc=":PSET(8,90),CO:PRINT#1," F=":GOSUB1520:XC=MA:Y=90:GOSUB1520:F=MA:C=1/(2*PI*F*XC):J$="C="+STR$(C)+" farads":GOSUB1610:GOTO700 630 CO=11:MR$="Capacitƒncia ( Fo )":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1," L=":PSET(8,90),CO:PRINT#1,"Fo=":GOSUB1520:L=MA:Y=90:GOSUB1520:FO=MA:C=1/((2*PI*FO)^2*L):J$="C="+STR$(C)+" farads":GOSUB1610:GOTO700 640 CO=14:MR$="Reatƒncia Indutiva":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1," L=":PSET(8,90),CO:PRINT#1," F=":GOSUB1520:L=MA:Y=90:GOSUB1520:F=MA:XL=2*PI*F*L:J$="Xl="+STR$(XL)+" ohms":GOSUB1610:GOTO700 650 CO=5:MR$="Indutƒncia ( F )":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1," F=":PSET(8,90),CO:PRINT#1,"Xl=":GOSUB1520:F=MA:Y=90:GOSUB1520:XL=MA:L=XL/(2*PI*F):J$="L="+STR$(L)+" henrys":GOSUB1610:GOTO700 660 CO=3:MR$="Indutƒncia ( Fo )":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1,"Fo=":PSET(8,90),CO:PRINT#1," C=":GOSUB1520:FO=MA:Y=90:GOSUB1520:C=MA:L=1/((2*PI*FO)^2*C):J$="L="+STR$(L)+" henrys":GOSUB1610:GOTO700 670 CO=13:MR$="Frequˆncia Aplicada (C,Xc)":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1," C=":PSET(8,90),CO:PRINT#1,"Xc=":GOSUB1520:C=MA:Y=90:GOSUB1520:XC=MA:F=1/(2*PI*XC*C):J$="F="+STR$(F)+" hertz":GOSUB1610:GOTO700 680 CO=4:MR$="Frequˆncia Aplicada (L,Xl)":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1," L=":PSET(8,90),CO:PRINT#1,"Xl=":GOSUB1520:L=MA:Y=90:GOSUB1520:XL=MA:F=XL/(2*PI*L):J$="F="+STR$(F)+" hertz":GOSUB1610:GOTO700 690 CO=2:MR$="Frequˆncia de Ressonƒncia":GOSUB1380:GOSUB1720:Y=60:PSET(8,Y),CO:PRINT#1," C=":PSET(8,90),CO:PRINT#1," L=":GOSUB1520:C=MA:Y=90:GOSUB1520:L=MA:FO=1/(2*PI*(SQR(L*C))):J$="Fo="+STR$(FO)+" hertz":GOSUB1610:GOTO700 700 GOTO700 710 COLOR15,10,1:SCREEN2:LINE(0,0)-(255,42),1,BF:PSET(53,4),1:PRINT#1,"ENGENHARIA ELTRICA" 720 PSET(8,20),1:PRINT#1,"Convers„o dos Parƒmetros H de um Transistor" 730 COLOR1:LINE(0,50)-(30,65),7,BF:PSET(9,54),7:PRINT#1,"F1":PSET(40,54),10:PRINT#1,"Coletor para Emissor" 740 LINE(0,80)-(30,95),3,BF:PSET(9,84),3:PRINT#1,"F2":PSET(40,84),10:PRINT#1,"Emissor para Base" 750 LINE(0,110)-(30,125),13,BF:PSET(9,114),13:PRINT#1,"F3":PSET(40,114),10:PRINT#1,"Base para Coletor" 760 LINE(0,140)-(30,155),9,BF:PSET(9,144),9:PRINT#1,"F4":PSET(40,144),10:PRINT#1,"Coletor para Base" 770 LINE(0,170)-(30,185),5,BF:PSET(9,174),5:PRINT#1,"F5":PSET(40,174),10:PRINT#1,"MENU" 780 GOSUB1370:ONKEYGOSUB800,810,830,850,120:FORI=1TO5:KEY(I)ON:NEXT 790 GOTO790 800 CO=7:CP$="Coletor para Emissor":R$="c":GOSUB920:A=HI:B=1-HR:C=-(1+HF):D=HO:S$="e":GOTO870 810 CO=3:CP$="Emissor para Base":R$="e":GOSUB920:S$="b":E=(1+HF)*(1-HR)+HI*HO:A=HI/E:B=(HISTRING$HO-HR*(1+HF))/E 820 C=(-HF*(1-HR)-HI*HO)/E:D=HO/E:GOTO870 830 CO=13:CP$="Base para Coletor":R$="b":GOSUB920:S$="c":E=(1+HF)*(1-HR)+HO*HI:A=HI/E:B=(1+HF)/E:C=(HR-1)/E 840 D=HO/E:GOTO870 850 CO=9:CP$="Coletor para Base":R$="c":GOSUB920:S$="b":E=HI*HO-HF*HR:A=HI/E:B=(HF*(1-HR)+HI*HO)/E 860 C=(HR*(1+HF)-HI*HO)/E:D=HO/E 870 LINE(20,108)-(235,168),15,BF:J$="hi"+S$+"="+STR$(A):PSET(30,118),10:GOSUB1350:J$="hr"+S$+"="+STR$(B):PSET(30,128),10:GOSUB1350 880 J$="hf"+S$+"="+STR$(C):PSET(30,138),10:GOSUB1350:J$="ho"+S$+"="+STR$(D):PSET(30,148),10:GOSUB1350 890 DATA6,MENU,14," F2",14," F3",14," F4",12,NOVO:RESTORE890:FORX=8TO208STEP50:READC,F$:LINE(X,178)-(X+40,188),C,BF:PSET(X+5,180),C:PRINT#1,F$:NEXT 900 GOSUB1370:ONKEYGOSUB120,,,,710:KEY(1)ON:KEY(5)ON 910 GOTO910 920 COLOR1,10,CO:SCREEN2:LINE(0,0)-(255,50),CO,BF:PSET(53,4),CO:PRINT#1,"ENGENHARIA ELTRICA":PSET(8,20),CO:PRINT#1,"Convers„o dos Parƒmetros H de um Transistor":PSET(48,40),CO:PRINT#1,CP$ 930 PSET(30,60),10:PRINT#1,"hi"+R$+"=" 940 PSET(30,70),10:PRINT#1,"hr"+R$+"=" 950 PSET(30,80),10:PRINT#1,"hf"+R$+"=" 960 PSET(30,90),10:PRINT#1,"ho"+R$+"=" 970 GOSUB1380 980 X=64:Y=60:CO=10 990 IFD$=""THENT=0:GOSUB1500:PSET(X,Y),10:PRINT#1,"À" 1000 PSET(X,Y),10:GOSUB1390:GOSUB1500 1010 PSET(X,Y),10:PRINT#1,D$:PSET(X+T*8,Y),10:PRINT#1,"À" 1020 IFA$=CHR$(13)THENGOSUB1500:GOTO1050 1030 IFT>18THEND$="":GOTO990 1040 GOTO990 1050 HI=VAL(D$):D$="" 1060 IFHI<-1E+19ORHI>1E+19GOTO990 1070 X=64:Y=70 1080 IFD$=""THENT=0:GOSUB1500:PSET(X,Y),10:PRINT#1,"À" 1090 PSET(X,Y),10:GOSUB1390:GOSUB1500 1100 PSET(X,Y),10:PRINT#1,D$:PSET(X+T*8,Y),10:PRINT#1,"À" 1110 IFA$=CHR$(13)THENGOSUB1500:GOTO1140 1120 IFT>18THEND$="":GOTO1080 1130 GOTO1080 1140 HR=VAL(D$):D$="" 1150 IFHR<-1E+19ORHR>1E+19GOTO1080 1160 X=64:Y=80 1170 IFD$=""THENT=0:GOSUB1500:PSET(X,Y),10:PRINT#1,"À" 1180 PSET(X,Y),10:GOSUB1390:GOSUB1500 1190 PSET(X,Y),10:PRINT#1,D$:PSET(X+T*8,Y),10:PRINT#1,"À" 1200 IFA$=CHR$(13)THENGOSUB1500:GOTO1230 1210 IFT>18THEND$="":GOTO1170 1220 GOTO1170 1230 HF=VAL(D$):D$="" 1240 IFHF<-1E+19ORHF>1E+19GOTO1170 1250 X=64:Y=90 1260 IFD$=""THENT=0:GOSUB1500:PSET(X,Y),10:PRINT#1,"À" 1270 PSET(X,Y),10:GOSUB1390:GOSUB1500 1280 PSET(X,Y),10:PRINT#1,D$:PSET(X+T*8,Y),10:PRINT#1,"À" 1290 IFA$=CHR$(13)THENGOSUB1500:GOTO1320 1300 IFT>18THEND$="":GOTO1260 1310 GOTO1260 1320 HO=VAL(D$):D$="" 1330 IFHO<-1E+19ORHO>1E+19GOTO1260 1340 RETURN 1350 PRINT#1,J$:RETURN 1360 KEY1,"color ":KEY2,"auto ":KEY3,"goto ":KEY4,"list ":KEY5,"run "+CHR$(13):KEY6,"color 15,4,4"+CHR$(13):KEY7,"cload"+CHR$(34):KEY8,"cont "+CHR$(13):KEY9,"list.":KEY10,"run ":KEYON:CLS:COLOR 15,4,4:END 1370 FORI=1TO10:KEY(I)OFF:KEYI,"":NEXT:RETURN 1380 D$=INKEY$:IFD$=""THENRETURNELSEGOTO1380 1390 A$=INKEY$:IFA$=""GOTO1390 1400 IF(A$=CHR$(8)ORA$=CHR$(29))ANDT>0THEND$=MID$(D$,1,T-1):GOTO1440 1410 IF(ASC(A$)>=48ANDASC(A$)<=57)ORCHR$(101)=A$ORCHR$(45)=A$ORCHR$(13)=A$ORCHR$(69)=A$ORCHR$(46)=A$GOTO1430 1420 GOTO1390 1430 D$=D$+A$ 1440 T=LEN(D$) 1450 RETURN 1500 IFT=0THENLINE(X,Y)-(255,Y+8),CO,BF:RETURNELSELINE(X+(T-1)*8,Y)-(255,Y+8),CO,BF:RETURN 1510 IFT=0THENLINE(X,Y)-(X1,Y+7),CO,BF:RETURNELSELINE(X+(T-1)*8,Y)-(X1,Y+7),CO,BF:RETURN 1520 IFD$=""THENT=0:GOSUB1500:PSET(X,Y),CO:PRINT#1,"À" 1530 PSET(X,Y),CO:GOSUB1390:GOSUB1500 1540 PSET(X,Y),CO:PRINT#1,D$:PSET(X+T*8,Y),CO:PRINT#1,"À" 1550 IFA$=CHR$(13)THENGOSUB1500:GOTO1580 1560 IFT>20THEND$="":GOTO1520 1570 GOTO1520 1580 MA=VAL(D$):D$="" 1590 IFMA<=0ORMA>1E+14GOTO1520 1600 RETURN 1610 LINE(8,120)-(247,150),15,BF:PSET(16,132),15:PRINT#1,J$:RETURN 1620 IFD$=""THENT=0:GOSUB1510:PSET(X,Y),CO:PRINT#1,"À" 1630 PSET(X,Y),CO:GOSUB1390:GOSUB1510 1640 PSET(X,Y),CO:PRINT#1,D$:PSET(X+T*8,Y),CO:PRINT#1,"À" 1650 IFA$=CHR$(13)THENGOSUB1510:GOTO1680 1660 IFT>LTTHEND$="":GOTO1620 1670 GOTO1620 1680 MA=VAL(D$):D$="" 1690 IFMA<=LIORMA>LSGOTO1620 1700 RETURN 1710 COLOR15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15:LINE(15 1720 LINE(0,8)-(255,32),1,BF:LINE(0,32)-(255,191),CO,BF:COLOR15:PSET(26,16),1:PRINT#1,MR$:COLOR1 1730 DATA9,MENU,6," F2",6," F3",6," F4",8,NOVO:RESTORE1730:FORK=8TO208STEP50:READC,F$:LINE(K,178)-(K+40,188),C,BF:PSET(K+5,180),C:PRINT#1,F$:NEXT 1740 GOSUB1370:ONKEYGOSUB120,,,,480:KEY(1)ON:KEY(5)ON:RETURN |