Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Ballistinen elliptinen lentorata
- # planeetan pinnalla olevasta lähtöpaikasta pinnalla olevaan maaliin
- # laskee projektiilille tarvittavan lähtönopeuden ja lähtökulman
- # ja antaa ellipsiradan parametreja
- # ei ilmanvastusta
- # Testaa lentorata Kuun Copernicus -> Tycho
- # komennolla ballistic(1738000,1623000,4.9028001e12)
- # jossa R=1738000 m, S = 1623000 m, GM = 4.9028001e12
- # Kuun Apollo 11 -> Apollo 17 laskeutumispaikkojen välillä 630.1 km lentorata:
- # ballistic(1738000,630100,4.902800118e12)
- # Juhani Kaukoranta 30.3.2023
- function ballistic(R,S,GM)
- # R = planeetan säde m
- # S = lähtöpaikan ja maalin kaarivälimatka m
- # GM planeetan painovoimavakio*massa SI-yksiköissä
- θ = S/(2*R) # keskuskulman puolisko rad, true anomaly
- L = 2*R*sin(θ) # lähdön ja maalin suora välimatka (m)
- a = (R/2 + L/4) # rataellipsin iso puoliakseli m
- p = L/2 # rataellipsin semilatus rectus
- hmom = sqrt(p*GM) # rataliikemäärämomentti, vakio
- # hmom = R*v0*cos(alfarad) = vakio
- # saatu polttopisteista laskettujen etäisyyksien summa=2a
- eks = R*cos(θ)/(2*a) # radan eksentrisyys e=c/a
- b = a*sqrt(1 - eks^2)
- v0 = sqrt(GM*(2/R - 1/a)) # lähtönopeus m/s
- alfarad = pi/4 -θ/2 # lähtökulma (rad),Kuun pinnan suhteen
- α = 45 - θ/2*180/pi # lähtökulma asteina
- hmax = a*(1+eks)-R # lakikorkeus planeetan pinnasta
- vl = R*v0*cos(alfarad)/(a*(1+eks)) # nopeus lakipisteessä
- # lentoajan laskeminen, lakipiste apopapsis, ei periapsis
- E = acos((eks-cos(θ))/(1-eks*cos(θ)))
- t = 2*sqrt(a^3/GM)*(pi-E+eks*sin(E)) # lentoaika
- println("Projektiili lentää lähtöpaikasta maaliin")
- println("Lentorata on osa ellipsiä, jonka polttopisteenä on planeetan keskipiste")
- println("Toinen polttopiste on lähtöpaikan ja maalin yhdysjanan puolivälissä")
- println("Näin muodostuva rataellipsi on minimienergiarata")
- println("Projektiilin lähtökulma planeetan pinnan tangenttin suhteen = ",round(α,digits=2),"°")
- println("Lähtönopeus m/s = ",round(v0,digits=2)," m/s")
- println("Projektiilin kantaman kaari S = ",round(S)," m")
- println("Lakikorkeus planeetan pinnasta hmax = ",round(hmax)," m")
- println("Lakipisteen etäisyys planeetan keskipisteestä = ",round(a*(1+eks))," m")
- println("Lakipisteessä nopeus = ",round(vl,digits=2)," m/s")
- println("Nousuaika lakikorkeuteen = ",round(t/2,digits=2)," s")
- println("Lentoaika maaliin = ",round(t,digits=2)," s")
- println("Maaliin iskeytymisen nopeus ",round(v0,digits=2)," m/s")
- println("Projektiilin liikemäärämomentti massayksikköä kohti = ",round(hmom)," m²/s")
- println("Liikemäärämomentti pysyy vakiona koko lennon ajan")
- println("Tietoa rataellipsistä:")
- println("Rataellipsin iso puoliakseli a = ",round(a)," m")
- println("Rataellipsin pieni puoliakseli b = ",round(b)," m")
- println("Rataellipsin semi-latus rectus = ",round(p)," m")
- println("Rataellipsin eksentrisyys = ",round(eks,digits=5)," m")
- println("Rataellipsin polttopisteiden väli = ",round(R*cos(θ))," m")
- end
Add Comment
Please, Sign In to add comment