13.11.2015 Views

Dynamics cheat sheet

my dynamics notes - 12000.org

my dynamics notes - 12000.org

SHOW MORE
SHOW LESS

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

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

Saved successfully!

Ooh no, something went wrong!