Advertisement
RA2lover

KSP KE/Mass bruteforce calculator

Aug 3rd, 2013
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.82 KB | None | 0 0
  1. g = 9.81
  2. e = 2.71828182845904523536028747135266249775724709369995 --you don't usually need this many
  3.  
  4. engines={}
  5. tanks={}
  6.  
  7. engines[1]={name="48-7S", isp = 350, mass = 100, thrust = 20000}
  8. engines[2]={name="LV-N",isp = 800, mass = 2250, thrust = 60000}
  9. engines[3]={name="LV-909", isp = 390, mass = 500, thrust = 50000}
  10. engines[4]={name="Aerospike", isp = 390, mass = 1500, thrust = 175000}
  11. engines[5]={name="LV-T30", isp = 370, mass = 1250,thrust = 215000}
  12. engines[6]={name="LV-1",isp=290, mass=30,thrust=1500}
  13. engines[7]={name="Skipper",isp=350, mass=4000,thrust=650000}
  14. engines[8]={name="Mainsail",isp=330, mass=6000,thrust=1500000}
  15. engines[9]={name="Poodle",isp=390, mass=2500,thrust=220000}
  16.  
  17. tanks[1]={wetmass=562.5, drymass = 62.5, name = "FL-T100"}
  18. tanks[2]={wetmass=1125, drymass = 125, name = "FL-T200"}
  19. tanks[3]={wetmass=562.5+1125, drymass = 62.5+125, name = "FL-T200+FL-T100"}
  20. tanks[4]={wetmass=2250, drymass = 250, name = "FL-T400"}
  21. tanks[5]={wetmass=2250+562.5, drymass = 62.5+250, name = "FL-T400+FL-T100"}
  22. tanks[6]={wetmass=3375, drymass = 375, name = "FL-T400+FL-T200"}
  23. tanks[7]={wetmass=2250+1125+562.5, drymass = 62.5+125+250, name = "FL-T400+FL-T200+ FL-T100"}
  24. tanks[8]={wetmass=4500, drymass=500, name="FL-T800"}
  25.  
  26. function getkemass(tank, engine)
  27. local initialmass = tank.wetmass+engine.mass
  28. local finalmass = tank.drymass+engine.mass
  29. local deltav = math.log(initialmass/finalmass)*engine.isp*g --tsiolkovsky's rocket equation
  30. local kineticenergy = (finalmass/2)*(deltav)^2
  31.  
  32.  
  33. return deltav, kineticenergy/finalmass
  34. end
  35.  
  36. function printf(...)
  37. print(string.format(...))
  38. end
  39.  
  40.  
  41. for k,engine in pairs(engines) do
  42. for k2,tank in pairs(tanks) do
  43. local deltav, kemass = getkemass(tank,engine)
  44. printf("Engine: %s\t, Tanks: %s\t, Delta-v = %f\t KE/Mass = %e",engine.name, tank.name, deltav, kemass)
  45.  
  46.  
  47.  
  48. end
  49. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement