home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / misc / eepd2 / transres.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  2.7 KB  |  87 lines

  1. 10  CLS:  PRINT : DEFINT J,I,N,K
  2. 20  PRINT TAB(20) "TRANSIENT ANALYSIS PROGRAM"
  3. 30  PRINT : PRINT TAB(10) "COPYRIGHT DECEMBER 8, 1979 BY W.L. GILL" : PRINT
  4. 40  PRINT : PRINT "THE PROGRAM SOLVES THE TRANSIENT RESPONSE OF THE POLYNOMIAL"
  5. 50  PRINT  "EQUATION A(M)S^M+A(M-1)^S(M-1)...+A(0) / B(N)S^N+B(N-1)S^(N-1).."
  6. 60  PRINT : PRINT "N MUST BE EQUAL TO OR GREATER THAN M. (S=(-1)[S*W)"
  7. 70  PRINT : PRINT "THE INPUT MUST BE A KNOWN FUNCTION OF TIME (T), BREAK AND"
  8. 80  PRINT  "RELACE LINE 820 WITH EI = FCN(T)."
  9. 90  REM TRANSFER FUNCTION INPUT
  10. 91  FOR J = 1 TO 10000
  11. 92  NEXT J
  12. 100  FOR I = 0 TO 2000 : NEXT I : CLS
  13. 110  INPUT "ORDER OF DENOMINATOR " ; N
  14. 120  DIM X(1,N),A(N),B(N),EO(1000)
  15. 130  PRINT "INPUT COEFFICIENTS IN DECENDING ORDER IE. A4,A3,A2,A1,A0"
  16. 140  PRINT " NUMERATOR COEFFICIENTS"
  17. 150  FOR I = 0 TO N : PRINT "A(";N-I;") = " ; : INPUT A(I) : NEXT I
  18. 160  PRINT "DENOMINATOR COEFFICIENTS"
  19. 170  FOR I = 0 TO N : PRINT "B(";N-I;") = " ; : INPUT B(I) : NEXT I
  20. 180  REM TIME BASE INPUT
  21. 190  INPUT "INPUT MAXIMUM TIME LIMIT" ; TF
  22. 200  INPUT "FAST OR ACCURATE SOLUTION (F/A) " ; A$
  23. 210  IF A$ = "A" THEN K = 1000
  24. 220  IF A$ >< "A" THEN K = 100
  25. 230  TD = TF/K
  26. 240  REM STATE VARIABLE INTEGRATION LOOP
  27. 250  FOR J = 0 TO K : T = TD*J
  28. 260  FB = 0 : GOSUB 820
  29. 270  FOR I = 1 TO N : FB = FB+X(1,I)*B(I) : NEXT I
  30. 280  X(1,0) = (1/B(0))*(EI-FB)
  31. 290  FOR I = 1 TO N : X(1,I) = X(0,I)+0.5*(X(1,I-1)+X(0,I-1))*TD
  32. 300  X(0,I-1) = X(1,I-1) : NEXT I
  33. 310  X(0,N) = X(1,N)
  34. 320  EO(J) = 0
  35. 330  FOR I = 0 TO N : EO(J) = EO(J)+A(I)*X(1,I) : NEXT I
  36. 340  IF EO(J) > MA THEN MA = EO(J) : TM = T
  37. 350  IF EO(J) < MI THEN MI = EO(J) : TI = T
  38. 360  NEXT J
  39. 370  REM DISPLAY SELECT
  40. 380  INPUT "GRAPHIC PLOT (Y/N) " ; G$
  41. 390  IF G$ = "Y" THEN 590
  42. 400  INPUT " DISPLAY ONLY THE MAXIMUM - MINIMUM (Y/N) " ; M$
  43. 410  IF M$ = "Y" THEN 740
  44. 420  Z = 1
  45. 430  PRINT "VALUE" , "TIME"
  46. 440  FOR I = 0 TO 100
  47. 450  IF K > 100 THEN J = I*10
  48. 460  IF K = 100 THEN J = I
  49. 470  T = TD*J : PRINT EO(J) , T
  50. 480  Z = Z + 1
  51. 490  IF Z = 15 THEN PRINT " PRESS ENTER TO CONTINUE" ; : INPUT Z$
  52. 500  IF Z = 15 THEN Z = 0
  53. 510  NEXT I
  54. 530  PRINT : PRINT "MAXIMUM = " ; MA , "TIME" ; TM
  55. 540  PRINT "MINIMUM =" ; MI , "TIME" ; TI
  56. 550  INPUT "DO YOU WISH A NEW PLOT (Y/N)" ; Y$
  57. 560  IF Y$ = "N" THEN END
  58. 570  MI = 0 : MA = 0 : TM = 0 : TI = 0 : FOR I=0 TO K : EO(I) = 0 : NEXT I
  59. 580  FOR I = 0 TO N : X(0,I) = 0 : X(1,I) = 0 : NEXT I : GOTO 180
  60. 590  REM VIDEO DISPLAY ROUTINE
  61. 600  CLS:
  62. 610  FOR I = 27 TO 127
  63. 620  SET(I,20)
  64. 630  IF (I-27)/10 = INT((I-27)/10) THEN SET(I,19) : SET(I,21)
  65. 640  NEXT I
  66. 650  FOR I = 0 TO 40
  67. 660  SET(27,I)
  68. 670  IF I/2 = INT(I/2) THEN SET(26,I) : SET(28,I)
  69. 680  NEXT I
  70. 690  IF MA >= ABS(MI) THEN SY = MA
  71. 700  IF MA < ABS(MI) THEN SY = ABS(MI)
  72. 710  SM = -SY : PRINT, SY ; : PRINT, SM ;
  73. 720  PRINT*896, "TRANSIENT RESPONSE         TIME BASE" ; IF ; "SECONDS" ;
  74. 730  FOR I = 0 TO 100
  75. 740  IF K = 1000 THEN J = 10*I
  76. 750  IF K >< 1000 THEN J = I
  77. 760  U = 27 + I : V = 20 - INT (EO(J)*20/SY)
  78. 770  SET (U,V)
  79. 780  NEXT I
  80. 790  PRINT, "DO YOU WISH A NEW PLOT (Y/N) " ; : INPUT Y$
  81. 800  IF Y$ = "Y" THEN CLS : GOTO 570
  82. 810  END
  83. 820  EI=1
  84. 830  IF J < 1 THEN EI = 1/TD
  85. 840  REM ****** IF J > = 1 THEN EI = 0
  86. 850  RETURN
  87.