13.11.2015 Views

Dynamics cheat sheet

my dynamics notes - 12000.org

my dynamics notes - 12000.org

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Algorithm 1 Hohmann Walking Rendezvous Orbit, case 1<br />

1: function hohmann walking rendezvous(θ 0 , r, altitude, µ)<br />

2: θ 0 := θ 0<br />

π<br />

180<br />

⊲ convert from degrees to radian<br />

3: r a := r + altitude<br />

4: T := 2π√<br />

r 3 aµ<br />

⊲ period of circular orbit<br />

5: n := 1<br />

6: done:=false<br />

7: while not(done) do<br />

(<br />

8: TOF := N − θ 0<br />

9: a := solve<br />

10: r p := 2a − r a<br />

11: if rp < r then<br />

12: N = N + 1<br />

13: else<br />

14: done:=true<br />

15: end if<br />

16: end while<br />

2π<br />

)<br />

T<br />

(<br />

T OF = 2π<br />

√<br />

17: V befor := µ<br />

h<br />

√<br />

18: V after := µ ( 2<br />

h − 1 )<br />

a<br />

19: ∆V := 2(V after − V before )<br />

20: return (TOF, ∆V )<br />

21: end function<br />

√<br />

An example implementation is below<br />

)<br />

a 3<br />

µ<br />

for a<br />

1 hohmannRendezvousSameOrbit[\[Theta]00_, r_, alt_, mu_] :=<br />

2 Module[{\[Theta]0 = \[Theta]00*Pi/180, n = 1, delT, v1, v2, period, a,<br />

3 rp, ra, done = False, vBefore, vAfter},<br />

4 ra = r + alt;<br />

5 period = 2 Pi Sqrt[ra^3/mu];<br />

6 While[Not[done],<br />

7 delT = (n - \[Theta]0 /(2 Pi)) period ;<br />

8 a = First@Select[a /. NSolve[delT == 2 Pi Sqrt[a^3/mu], a], Element[#, Reals] &];<br />

9 rp = 2 a - ra;<br />

10 If[rp < r,(*we hit the earth, try again*)<br />

11 n = n + 1,<br />

12 done = True<br />

13 ]<br />

14 ];<br />

15 vBefore = Sqrt[mu/h];<br />

16 vAfter = Sqrt[mu (2/h - 1/a)];<br />

17 {delT, 2 (vAfter - vBefore)}<br />

18 ]<br />

And calling the above<br />

82

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!