Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Algorithm 2 Hohmann rendezvous algorithm, case 1<br />
1: function hohmann rendezvous 1(θ 0 , r a , r b , µ)<br />
π<br />
2: θ 0 := θ 0 180<br />
⊲ convert from degrees to radian<br />
3: a := ra+r b<br />
2<br />
⊲ Hohmann orbit semi-major axes<br />
√<br />
4: TOF := π<br />
5: θ H := π<br />
6: ω a :=<br />
a 3<br />
µ<br />
⊲ time of flight on Hohmann orbit<br />
( ( ) ) 3/2<br />
1 − ra+r b<br />
2r b<br />
√ µ<br />
r 3 a<br />
⊲ required phase angle before starting Hohmann transfer<br />
⊲ angular speed of lower rad/sec<br />
7: ω b := √ µ<br />
⊲ angular speed of higher satellite rad/sec<br />
rb<br />
3<br />
8: if θ 0 ≤ θ H then ⊲ adjust initial angle if needed<br />
9: θ 0 := θ 0 + 2π<br />
10: end if<br />
11: wait time := θ 0−θ H<br />
ω a−ω b<br />
⊲ how long to wait before starting Hohmann transfer<br />
12: wait time := wait time + TOF ⊲ now ready to go, add Hohmann transfer time<br />
13: return wait time<br />
14: end function<br />
An example implementation is below<br />
1 hohmann_rendezvous_1:= proc({<br />
2 theta::numeric:=0,<br />
3 r1::numeric:=0,<br />
4 r2::numeric:=0,<br />
5 mu::numeric:=3.986*10^5})<br />
6 local theta0,thetaH,TOF,a,omega1,omega2,wait_time;<br />
7 theta0 := evalf(theta*Pi/180);<br />
8 a := (r1+r2)/2;<br />
9 TOF := Pi*(sqrt(a^3/mu));<br />
10 omega1 := sqrt(mu/r1^3);<br />
11 omega2 := sqrt(mu/r2^3);<br />
12 thetaH := evalf(Pi*(1-((r1+r2)/(2*r2))^(3/2)));<br />
13 if theta0