jukaukor

ballistic.jl

Mar 16th, 2023 (edited)
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.07 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. # ja antaa ellipsiradan parametreja
  5. # ei ilmanvastusta
  6. # Testaa lentorata Kuun Copernicus -> Tycho
  7. # komennolla ballistic(1738000,1623000,4.9028001e12)
  8. # jossa R=1738000 m, S = 1623000 m, GM = 4.9028001e12
  9. # Kuun Apollo 11 -> Apollo 17 laskeutumispaikkojen välillä 630.1 km lentorata:
  10. # ballistic(1738000,630100,4.902800118e12)
  11. # Juhani Kaukoranta 30.3.2023
  12. function ballistic(R,S,GM)
  13. # R = planeetan säde m
  14. # S = lähtöpaikan ja maalin kaarivälimatka m
  15. # GM planeetan painovoimavakio*massa SI-yksiköissä
  16. θ = S/(2*R) # keskuskulman puolisko rad, true anomaly
  17. L = 2*R*sin(θ) # lähdön ja maalin suora välimatka (m)
  18. a = (R/2 + L/4) # rataellipsin iso puoliakseli m
  19. p = L/2 # rataellipsin semilatus rectus
  20. hmom = sqrt(p*GM) # rataliikemäärämomentti, vakio
  21. # hmom = R*v0*cos(alfarad) = vakio
  22. # saatu polttopisteista laskettujen etäisyyksien summa=2a
  23. eks = R*cos(θ)/(2*a) # radan eksentrisyys e=c/a
  24. b = a*sqrt(1 - eks^2)
  25. v0 = sqrt(GM*(2/R - 1/a)) # lähtönopeus m/s
  26. alfarad = pi/4 -θ/2 # lähtökulma (rad),Kuun pinnan suhteen
  27. α = 45 - θ/2*180/pi # lähtökulma asteina
  28. hmax = a*(1+eks)-R # lakikorkeus planeetan pinnasta
  29. vl = R*v0*cos(alfarad)/(a*(1+eks)) # nopeus lakipisteessä
  30. # lentoajan laskeminen, lakipiste apopapsis, ei periapsis
  31. E = acos((eks-cos(θ))/(1-eks*cos(θ)))
  32. t = 2*sqrt(a^3/GM)*(pi-E+eks*sin(E)) # lentoaika
  33. println("Projektiili lentää lähtöpaikasta maaliin")
  34. println("Lentorata on osa ellipsiä, jonka polttopisteenä on planeetan keskipiste")
  35. println("Toinen polttopiste on lähtöpaikan ja maalin yhdysjanan puolivälissä")
  36. println("Näin muodostuva rataellipsi on minimienergiarata")
  37. println("Projektiilin lähtökulma planeetan pinnan tangenttin suhteen = ",round(α,digits=2),"°")
  38. println("Lähtönopeus m/s = ",round(v0,digits=2)," m/s")
  39. println("Projektiilin kantaman kaari S = ",round(S)," m")
  40. println("Lakikorkeus planeetan pinnasta hmax = ",round(hmax)," m")
  41. println("Lakipisteen etäisyys planeetan keskipisteestä = ",round(a*(1+eks))," m")
  42. println("Lakipisteessä nopeus = ",round(vl,digits=2)," m/s")
  43. println("Nousuaika lakikorkeuteen = ",round(t/2,digits=2)," s")
  44. println("Lentoaika maaliin = ",round(t,digits=2)," s")
  45. println("Maaliin iskeytymisen nopeus ",round(v0,digits=2)," m/s")
  46. println("Projektiilin liikemäärämomentti massayksikköä kohti = ",round(hmom)," m²/s")
  47. println("Liikemäärämomentti pysyy vakiona koko lennon ajan")
  48. println("Tietoa rataellipsistä:")
  49. println("Rataellipsin iso puoliakseli a = ",round(a)," m")
  50. println("Rataellipsin pieni puoliakseli b = ",round(b)," m")
  51. println("Rataellipsin semi-latus rectus = ",round(p)," m")
  52. println("Rataellipsin eksentrisyys = ",round(eks,digits=5)," m")
  53. println("Rataellipsin polttopisteiden väli = ",round(R*cos(θ))," m")
  54. end
Add Comment
Please, Sign In to add comment