Advertisement
jukaukor

ballistic.py

Mar 16th, 2023 (edited)
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. # Ballistinen elliptinen lentorata
  2. # planeetan pinnalla olevasta lähtöpaikasta pinnalla olevaan maaliin
  3. # laskee projektiilille tarvittavan lähtönopeuden ja lähtökulman
  4. # ei ilmanvastusta
  5. # Juhani Kaukoranta 19.3.2023
  6. import math
  7. def ballistic(R,S,GM):
  8. # R = planeetan säde m
  9. # S = lähtöpaikan ja maalin kaartivälimatka m
  10. # GM planeetan painovoimavakio*massa SI-yksiköissä
  11. θ = S/(2*R) # keskuskulman puolisko rad
  12. L = 2*R*math.sin(θ) # lähdön ja maali suora välimatka (m)
  13. a = (R/2 + L/4) # rataellipsin iso puoliakseli m
  14. eks = R*math.cos(θ)/(2*a) # radan eksentrisyys
  15. b = a*math.sqrt(1 - eks**2)
  16. v0 = math.sqrt(GM*(2/R - 1/a)) # lähtönopeus m/s
  17. alfarad = math.pi/4 -θ/2
  18. h = a*(1+eks)-R # lakikorkeus planeetan pinnasta
  19. vl = R*v0*math.cos(alfarad)/(a*(1+eks)) # nopeus lakipisteessä
  20. α = 45 - θ/2*180/math.pi # lähtökulma asteina
  21. # lentoajan laskeminen, lakipiste on apopapsis, ei periapsis
  22. E = math.acos((eks-math.cos(θ))/(1-eks*math.cos(θ)))
  23. t = 2*math.sqrt(a**3/GM)*(math.pi-E+eks*math.sin(E)) # lentoaika
  24. print("Projektiilin lähtökulma asteina = ",round(α,2),"°")
  25. print("Projektiilin lähtönopeus m/s = ",round(v0,2)," m/s")
  26. print("Projektiilin kantaman kaari S = ",round(S,2)," m")
  27. print("Rataellipsin iso puoliakseli a = ",round(a,2)," m")
  28. print("Rataellipsin pieni puoliakseli b = ",round(b,2)," m")
  29. print("Rataellipsin eksentrisyys = ",round(eks,6))
  30. print("lakikorkeus planeetan pinnasta h = ",round(h,2)," m")
  31. print("lakipisteessa nopeus = ",round(vl,2)," m")
  32. print("Lentoaika = ",round(t,2)," s")
  33.  
  34.  
  35.  
  36.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement