home *** CD-ROM | disk | FTP | other *** search
/ Brotikasten / BROTCD01.iso / lern / lern338.d64 / spulenfeld (.txt) < prev    next >
Commodore BASIC  |  1995-08-09  |  4KB  |  148 lines

  1. 100 REM BERECHNUNG DER MAGNETISCHEN FELDSTAERKE
  2. 110 REM    EINER SPULE
  3. 120 REM R: SPULENRADIUS
  4. 130 REM L: SPULENLAENGE
  5. 140 REM Z: KOORDINATE AUF DER SPULENACHSE,
  6. 150 REM    NULLPUNKT IM MITTELPUNKT
  7. 160 REM S: KOORDINATE IN RADIALER RICHTUNG
  8. 170 REM I: STROMSTAERKE
  9. 180 REM N: WINDUNGSZAHL
  10. 190 REM BEI PROGRAMMSTOP: C DRUECKEN
  11. 200 PRINT "[147]"
  12. 210 PRINT "WERDEN ERKLAERUNGEN ZUM PROGRAMM        GEWUENSCHT ?"
  13. 220 PRINT
  14. 230 PRINT "JA:     TASTE J DRUECKEN"
  15. 240 PRINT "NEIN:   TASTE N DRUECKEN"
  16. 250 GET R$ : IF R$ <> "J" AND R$ <> "N" THEN 250
  17. 260 IF R$ = "N" THEN 1100
  18. 300 PRINT "[147]"
  19. 310 PRINT "DAS PROGRAMM BERECHNET DIE KOMPONENTEN"
  20. 320 PRINT "DER MAGNETISCHEN FELDSTAERKE FUER EINE"
  21. 330 PRINT "GERADE SPULE MIT KREISFOERMIGEM QUER-   SCHNITT"
  22. 340 PRINT
  23. 350 PRINT "DIE Z-KOORDINATE LIEGT AUF DER SPULEN-"
  24. 360 PRINT "ACHSE, NULLPUNKT IM MITTELPUNKT"
  25. 370 PRINT
  26. 380 PRINT "DIE S-KOORDINATE WEIST IN RADIALER      RICHTUNG"
  27. 390 PRINT
  28. 400 PRINT "AM ANFANG WERDEN RADIUS R, LAENGE L,"
  29. 410 PRINT "WINDUNGSZAHL N, STROMSTAERKE I SOWIE"
  30. 420 PRINT "DIE KOORDINATEN Z UND S DES PUNKTES,"
  31. 430 PRINT "FUER DEN DIE FELDSTAERKE BERECHNET      WERDEN SOLL, EINGEGEBEN"
  32. 440 PRINT
  33. 450 PRINT "DAS PROGRAMM KANN, JE NACH DEN EINGEGE-"
  34. 460 PRINT "BENEN WERTEN, RELATIV LANGE LAUFEN"
  35. 470 PRINT "(ETWA 1 MINUTE BIS 1 STUNDE)"
  36. 480 PRINT
  37. 490 PRINT "ZUR FORTSETZUNG DIE TASTE C DRUECKEN"
  38. 500 GET R$ : IF R$ <> "C" THEN 500
  39. 510 PRINT "[147]"
  40. 520 PRINT "BEISPIEL FUER DIE DATENEINGABE:"
  41. 530 PRINT "R = 0.05"
  42. 540 PRINT "L = 1"
  43. 550 PRINT "N = 100"
  44. 560 PRINT "I = 1"
  45. 570 PRINT "Z = 0.5"
  46. 580 PRINT "S = 0.025"
  47. 590 PRINT "SOLLEN DIE ERKLAERUNGEN WIEDERHOLT      WERDEN ?"
  48. 600 PRINT "TASTE J BZW. N DRUECKEN"
  49. 610 GET R$ : IF R$ <> "J" AND R$ <> "N" THEN 610
  50. 620 IF R$ = "J" THEN 300
  51. 1100 PRINT "[147]"
  52. 1110 PRINT "    [215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215]  [221]"
  53. 1120 PRINTTAB(4); ":"; TAB(14); "[221]"; TAB(24); ":  [221]"
  54. 1130 PRINTTAB(4); ":"; TAB(14); "R"; TAB(24); ":  S"
  55. 1140 PRINTTAB(4); ":"; TAB(14); "[221]"; TAB(24); ":  [221]"
  56. 1150 PRINTTAB(4); ":"; TAB(14); "[221]"; TAB(24); ":  [221]"
  57. 1160 PRINT "  [192][192][192][192][192][192][192][192][192][192][192][192]0[192][192][192][192][192][192][192][192][192][192][192][192][177][192][192][192][192]> Z"
  58. 1170 FOR I = 1 TO 4
  59. 1180 :PRINTTAB(4); ":"; TAB(14); "[221]"; TAB(24); ":"
  60. 1190 NEXT
  61. 1200 PRINT "    [215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215][215]"
  62. 1210 PRINT "    <[192][192][192][192][192][192][192][192] L [192][192][192][192][192][192][192][192]>"
  63. 1220 PRINT "FORTSETZUNG: C DRUECKEN"
  64. 1230 GET R$ : IF R$ <> "C" THEN 1230
  65. 1240 PRINT "[147]"
  66. 1250 INPUT "SPULENRADIUS R = "; R
  67. 1260 INPUT "SPULENLAENGE L = "; L
  68. 1270 INPUT "WINDUNGSZAHL N = "; N
  69. 1280 INPUT "STROMSTAERKE I = "; I
  70. 1290 INPUT "Z-KOORDINATE Z = "; Z
  71. 1300 INPUT "S-KOORDINATE S = "; S
  72. 1310 IF S <> R OR ABS(Z) > L/2 THEN 1330
  73. 1320 PRINT "S,Z FALSCH EINGEGEBEN, WIEDERHOLEN !" : GOTO 1290
  74. 1330 I = N*I
  75. 1340 P = (null)/2 : M = 2 : GZ = 0 : GS = 0 : L1 = 0 : L2 = 0
  76. 1350 PRINT "[147]"
  77. 1360 PRINT "BITTE WARTEN"
  78. 1370 PRINT "DIE RECHNUNG WIRD IM AUGENBLICK"
  79. 1380 PRINT "DURCHGEFUEHRT MIT EINER UNTERTEILUNG"
  80. 1390 PRINT "DER SPULE IN"
  81. 1400 PRINT ""; TAB(12); "                "
  82. 1410 PRINT "[145]"; TAB(12); M; "TEILE"
  83. 1420 FZ = 0 : FS = 0
  84. 1430 FOR J = 1 TO M/2+0.1
  85. 1440 :ZA = Z+(2*J-1)*L/2/M
  86. 1450 :ZB = Z-(2*J-1)*L/2/M
  87. 1460 :GOSUB 1660
  88. 1470 :IF L1 = 1 THEN 1500
  89. 1480 :GOSUB 1810
  90. 1490 :FZ = FZ+HZ
  91. 1500 :IF L2 = 1 THEN 1530
  92. 1510 :GOSUB 1870
  93. 1520 :FS = FS+HS
  94. 1530 NEXT J
  95. 1540 FZ = FZ/M : FS = FS/M
  96. 1550 IF ABS(GZ-FZ) > ABS(FZ)*1E-3 OR L1 = 1 THEN 1570
  97. 1560 L1 = 1 : HZ = FZ
  98. 1570 IF ABS(GS-FS) > ABS(FS)*1E-3 OR L2 = 1 THEN 1590
  99. 1580 L2 = 1 : HS = FS
  100. 1590 IF L1 = 1 AND L2 = 1 THEN 1630
  101. 1600 GZ = FZ : GS = FS
  102. 1610 M = 2*M
  103. 1620 GOTO 1400
  104. 1630 PRINT "HZ ="; HZ
  105. 1640 PRINT "HS ="; HS
  106. 1650 END
  107. 1660 KA = 4*R*S/((R+S)*(R+S)+ZA*ZA)
  108. 1670 KB = 4*R*S/((R+S)*(R+S)+ZB*ZB)
  109. 1680 DEF FNY(X) = SQR(1-KA*SIN(X)*SIN(X))
  110. 1690 GOSUB 1940
  111. 1700 E1 = A/2
  112. 1710 DEF FNY(X) = SQR(1-KB*SIN(X)*SIN(X))
  113. 1720 GOSUB 1940
  114. 1730 E2 = A/2
  115. 1740 DEF FNY(X) = 1/SQR(1-KA*SIN(X)*SIN(X))
  116. 1750 GOSUB 1940
  117. 1760 K1 = A/2
  118. 1770 DEF FNY(X) = 1/SQR(1-KB*SIN(X)*SIN(X))
  119. 1780 GOSUB 1940
  120. 1790 K2 = A/2
  121. 1800 RETURN
  122. 1810 H1 = I/2/(null)/SQR((R+S)*(R+S)+ZA*ZA)
  123. 1820 H1 = H1*(K1+((R*R-S*S-ZA*ZA)*E1)/((R-S)*(R-S)+ZA*ZA))
  124. 1830 H2 = I/2/(null)/SQR((R+S)*(R+S)+ZB*ZB)
  125. 1840 H2 = H2*(K2+((R*R-S*S-ZB*ZB)*E2)/((R-S)*(R-S)+ZB*ZB))
  126. 1850 HZ = H1+H2
  127. 1860 RETURN
  128. 1870 IF S = 0 THEN HS = 0 : RETURN
  129. 1880 H3 = I*ZA/2/(null)/S/SQR((R+S)*(R+S)+ZA*ZA)
  130. 1890 H3 = H3*(-K1+((R*R+S*S+ZA*ZA)*E1)/((R-S)*(R-S)+ZA*ZA))
  131. 1900 H4 = I*ZB/2/(null)/S/SQR((R+S)*(R+S)+ZB*ZB)
  132. 1910 H4 = H4*(-K2+((R*R+S*S+ZB*ZB)*E2)/((R-S)*(R-S)+ZB*ZB))
  133. 1920 HS = H3+H4
  134. 1930 RETURN
  135. 1940 N = 1
  136. 1950 H = FNY(0)+FNY(P)
  137. 1960 A = H*P
  138. 1970 N = 2*N
  139. 1980 AA = A : HH = 0
  140. 1990 DX = P/N
  141. 2000 FOR Q = 1 TO N/2
  142. 2010 :HH = HH+FNY((2*Q-1)*DX)
  143. 2020 NEXT Q
  144. 2030 H = H+2*HH
  145. 2040 A = H*DX
  146. 2050 IF ABS(A-AA) > ABS(A)*1E-3 THEN 1970
  147. 2060 RETURN
  148.