FragrantTon

Tensile Strength Tether

Jul 31st, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. GRAV_STD = 9.80665; // m/s2
  2. MUL_KILO = 1000.0;
  3. MUL_MEGA = 1000.0*1000.0;
  4. MUL_MILLI = 1.0/1000.0;
  5. MILLIMETER_PER_METER = 1000.0;
  6. MM2_PER_M2 = 1000.0 * 1000.0; // millimeter² per m²
  7. M3_TO_CM3 = 1000000.0; // cubic meter to cubic centimeter: (100*100*100) = 1 million
  8. SEC_PER_HOUR = 3600.0;
  9. function KgToNewton (kg) { return kg*GRAV_STD; }
  10. function CircleAreaFromRadius (r) { return Math.PI * r * r; }
  11. function CircleAreaFromDiameter (d) { return CircleAreaFromRadius(d*0.5); }
  12.  
  13. EARTH_RADIUS_KM = 6371.0; // MEAN
  14. EARTH_RADIUSEQ_KM = 6378.1; // Equatorial
  15. EARTH_CIRCUMFERENCE_KM = 2.0 * Math.PI * EARTH_RADIUS_KM;
  16. EARTH_SURFACE_SPEED_EQUATOR_KM_PER_SEC = EARTH_CIRCUMFERENCE_KM / (24.0 * SEC_PER_HOUR);
  17.  
  18. function f0 (f) { return Math.round(f); }
  19. function f1 (f) { return Math.round(f*10.0)/10.0; }
  20. function f2 (f) { return Math.round(f*100.0)/100.0; }
  21. function f3 (f) { return Math.round(f*1000.0)/1000.0; }
  22.  
  23. // console.log("EARTH_SURFACE_SPEED_EQUATOR ="+EARTH_SURFACE_SPEED_EQUATOR_KM_PER_SEC+" km/s");
  24. // console.log("ghoulspace N/kg="+KgToNewton(1)+" pi="+Math.PI);
  25. // console.log("ghoulspace circle 1 meter = "+CircleAreaFromDiameter(1.0));
  26. // console.log("");
  27.  
  28. // tenstr in MPa (megapascal, 1 Pa = 1 N / m²)
  29. // density in g/cm³
  30. function MatTestPayloadAlt (payload_kg,altitude_km,name,tenstr,density)
  31. {
  32. var diam_mm = 0.5;
  33. var restlen_km = altitude_km;
  34. var weightsum_kg = payload_kg;
  35. var altsum_km = 0.0;
  36. var bFirstSec = true;
  37. while (true) {
  38. diam_mm = diam_mm * Math.sqrt(2.0);
  39. var dia_m = diam_mm * MUL_MILLI;
  40. var area_m2 = CircleAreaFromDiameter(dia_m);
  41. var tenstr_pa = tenstr * MUL_MEGA;
  42. var brforce_n = tenstr_pa * area_m2;
  43. var brweight_kg = brforce_n/GRAV_STD;
  44. var volume_per_meter_in_m3 = area_m2*1.0;
  45. var weight_per_meter_in_kg = density * (volume_per_meter_in_m3 * M3_TO_CM3) / MUL_KILO;
  46. var weight_per_km_in_kg = 1000.0*weight_per_meter_in_kg;
  47. var brlengthE_km = (brweight_kg) / weight_per_km_in_kg; // wiki number total
  48. var brlength_km = (brweight_kg - weightsum_kg) / weight_per_km_in_kg;
  49.  
  50. if (brlength_km < 0.0 && bFirstSec) continue;
  51. if (brlength_km < 0.0) { console.log("MatTest "+name+" d="+diam_mm+"mm: fail brkg="+brweight_kg+" wsum="+weightsum_kg); break; }
  52. bFirstSec = false;
  53. var uselen_km = brlength_km;
  54. if (uselen_km > restlen_km) uselen_km = restlen_km;
  55. altsum_km += uselen_km;
  56. restlen_km -= uselen_km;
  57.  
  58. var useweight_kg = uselen_km * weight_per_km_in_kg;
  59. weightsum_kg += useweight_kg;
  60. console.log(" section "+payload_kg+"kg "+altitude_km+"km "+name+" d="+f2(diam_mm)+"mm (br="+f0(brweight_kg)+"kg) x "+f0(uselen_km)+"km ("+f0(useweight_kg)+"kg) tether="+f0(weightsum_kg-payload_kg)+"kg");
  61. if (restlen_km <= 0.0) {
  62. console.log("MatTest "+payload_kg+"kg "+altitude_km+"km "+name+" ("+tenstr+"MPa "+density+"g/cm^3 bL="+f0(brlengthE_km)+"km) d="+f2(diam_mm)+"mm tether="+f0(weightsum_kg-payload_kg)+"kg");
  63. break;
  64. }
  65. }
  66. // console.log("");
  67. }
  68.  
  69. function MatTest (name,tenstr,density)
  70. {
  71. MatTestPayloadAlt(500.0,350,name,tenstr,density);
  72. }
  73.  
  74. MatTest("Zylon", 5800.0,1.56);
  75. // MatTest("Aramid(Yield)", 3620.0,1.44);
  76. // MatTest("Dyneema", 3600.0,0.97);
  77. // MatTest("Kevlar", 3620.0,1.44);
  78. // MatTest("Vectran", 2900.0,1.40);
Advertisement
Add Comment
Please, Sign In to add comment