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