home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / ee2 / tran_res.bas < prev    next >
BASIC Source File  |  1987-02-08  |  4KB  |  103 lines

  1. 10 REM FILE NAME IS TRANRES.BAS 9/27/83 ,ADDED BUILT IN IMPULSE,STEP,ETC G.H.
  2. 20 REM***DEFDBL A,B,E,T,F,X 
  3. 30 CLS:  PRINT : DEFINT J,I,N,K
  4. 40 PRINT TAB(20) "TRANSIENT ANALYSIS PROGRAM"
  5. 45 PRINT : PRINT "THIS PROGRAM IS A MODIFIED VERSION OF A PROGRAM THAT APPEARED"
  6. 46 PRINT : PRINT "IN FEB. 18,81 EDN, ""EASY-TO -USE BASIC PROGRAM ANALYZES TRANSIENT RESPONSE""
  7. 47 PRINT : PRINT "G.H. ADDED BUILT IN IMPULSE,STEP AND RAMP"
  8. 48 PRINT : PRINT "ARTICLE AND ORIGINAL VERSION OF PROGRAM WERE BY W.L. GILL"
  9. 50 PRINT : PRINT TAB(10) "COPYRIGHT DECEMBER 8, 1979 BY W.L. GILL" : PRINT
  10. 60 PRINT : PRINT "THE PROGRAM SOLVES THE TRANSIENT RESPONSE OF THE POLYNOMIAL"
  11. 70 PRINT:PRINT"EQUATION A(M)S^M+A(M-1)^S(M-1)...+A(0)/B(N)S^N+B(N-1)S^(N-1).
  12. 80 PRINT : PRINT "N MUST BE EQUAL TO OR GREATER THAN M. (S=(-1)[S*W)"
  13. 90 PRINT : PRINT "THE INPUT MUST BE A KNOWN FUNCTION OF TIME (T)"
  14. 100 PRINT:PRINT "IF INPUT IS NOT A IMPULSE,STEP OR RAMP,ENTER 4 BELOW AND"
  15. 110 PRINT:PRINT  "RELACE LINE 940 WITH EI = FCN(T)."
  16. 120 PRINT:INPUT "ENTER 1 FOR IMPULSE RESPONSE,2 FOR STEP RESPONSE,3 FOR RAMP,4 FOR OTHER";P
  17. 130 IF P < 3 GOTO 150
  18. 140 PRINT:IF P=3 THEN INPUT "ENTER SLOPE OF RAMP, M = ";M
  19. 150 REM TRANSFER FUNCTION INPUT *********************************************
  20. 160 CLS
  21. 170 INPUT "ORDER OF DENOMINATOR " ; N
  22. 180 DIM X(1,N),A(N),B(N),EO(1000)
  23. 190 PRINT "INPUT COEFFICIENTS IN DECENDING ORDER IE. A4,A3,A2,A1,A0"
  24. 200 PRINT " NUMERATOR COEFFICIENTS"
  25. 210 FOR I = 0 TO N : PRINT "A(";N-I;") = " ; : INPUT A(I) : NEXT I
  26. 220 PRINT "DENOMINATOR COEFFICIENTS"
  27. 230 FOR I = 0 TO N : PRINT "B(";N-I;") = " ; : INPUT B(I) : NEXT I
  28. 240 REM TIME BASE INPUT  *********************************************
  29. 250 INPUT "INPUT MAXIMUM TIME LIMIT" ; TF
  30. 260 INPUT "FAST OR ACCURATE SOLUTION (F/A) " ; A$
  31. 270 IF A$ = "A" OR A$="a" THEN K = 1000 ELSE K=100
  32. 280 TD = TF/K
  33. 290 REM STATE VARIABLE INTEGRATION LOOP ******************************
  34. 300 FOR J = 0 TO K : T = TD*J
  35. 310 FB = 0 : GOSUB 870
  36. 320 FOR I = 1 TO N : FB = FB+X(1,I)*B(I) : NEXT I
  37. 330 X(1,0) = (1/B(0))*(EI-FB)
  38. 340 FOR I = 1 TO N : X(1,I) = X(0,I)+.5*(X(1,I-1)+X(0,I-1))*TD
  39. 350 X(0,I-1) = X(1,I-1) : NEXT I
  40. 360 X(0,N) = X(1,N)
  41. 370 EO(J) = 0
  42. 380 FOR I = 0 TO N : EO(J) = EO(J)+A(I)*X(1,I) : NEXT I
  43. 390 IF EO(J) > MA THEN MA = EO(J) : TM = T
  44. 400 IF EO(J) < MI THEN MI = EO(J) : TI = T
  45. 410 NEXT J
  46. 420 REM DISPLAY SELECT **************************************************
  47. 430 INPUT "GRAPHIC PLOT (Y/N) " ; G$
  48. 440 IF G$ = "Y" OR G$="y" THEN 630
  49. 450 INPUT " DISPLAY ONLY THE MAXIMUM - MINIMUM (Y/N) " ; M$
  50. 460 IF M$ = "Y" THEN 780
  51. 470 Z = 1
  52. 480 PRINT "VALUE" , "TIME"
  53. 490 FOR I = 0 TO 100
  54. 500 IF K > 100 THEN J = I*10
  55. 510 IF K = 100 THEN J = I
  56. 520 T = TD*J : PRINT EO(J) , T
  57. 530 Z = Z + 1
  58. 540 IF Z = 15 THEN PRINT " PRESS ENTER TO CONTINUE" ; : INPUT Z$
  59. 550 IF Z = 15 THEN Z = 0
  60. 560 NEXT I
  61. 570 PRINT : PRINT "MAXIMUM = " ; MA , "TIME" ; TM
  62. 580 PRINT "MINIMUM =" ; MI , "TIME" ; TI
  63. 590 INPUT "DO YOU WISH A NEW PLOT (Y/N)" ; Y$
  64. 600 IF Y$ = "N" GOTO 850
  65. 610 MI = 0 : MA = 0 : TM = 0 : TI = 0 : FOR I=0 TO K : EO(I) = 0 : NEXT I
  66. 620 FOR I = 0 TO N : X(0,I) = 0 : X(1,I) = 0 : NEXT I : GOTO 240
  67. 630 REM VIDEO DISPLAY ROUTINE *********************************************
  68. 640 CLS:
  69. 650 FOR R =  1 TO 25
  70. 660 LOCATE R,1 :PRINT"."
  71. 670 IF (R-3)/10 = INT((R-3)/10) THEN LOCATE R,2:PRINT".":LOCATE R,3:PRINT"."
  72. 680 NEXT R
  73. 690 FOR C = 1 TO 80
  74. 700 LOCATE 11,C : PRINT"."
  75. 710 IF (C-11)/10=INT((C-11)/10) THEN LOCATE 12,C:PRINT".":LOCATE 10,C:PRINT"."
  76. 720 NEXT C
  77. 730 IF MA >= ABS(MI) THEN SY = MA
  78. 740 IF MA < ABS(MI) THEN SY = ABS(MI)
  79. 750 SM = -SY : PRINT ".   MAX. =";SY
  80. 760 PRINT ".    TRANSIENT RESPONSE       TIME BASE" ; TF ; "SECONDS"
  81. 770 FOR I = 0 TO 79
  82. 780 IF K = 1000 THEN J = 10*I
  83. 790 IF K >< 1000 THEN J = I
  84. 800 C = I+1 : R = 11 - INT ((EO(J)*10/SY)+.5)
  85. 810 LOCATE R,C :PRINT"*"
  86. 820 NEXT I
  87. 830 LOCATE 24,10
  88. 840 PRINT, "DO YOU WISH A NEW PLOT (Y/N) " ; : INPUT Y$
  89. 850 IF Y$ = "Y" OR Y$="y" THEN CLS : GOTO 610
  90. 860 END
  91. 870 ON P GOTO 880,910,930,950
  92. 880 IF J < 1 THEN  EI = 1/TD
  93. 890 IF J >= 1 THEN  EI= 0
  94. 900 RETURN
  95. 910 EI = 1
  96. 920 RETURN
  97. 930 EI=M*T
  98. 940 RETURN
  99. 950 REM ENTER EI=FUNCTION OF TIME IN THIS SUBROUTINE **********************
  100. 960 EI = 1
  101. 970 :
  102. 980 RETURN
  103.