Hohmann Orbit Transfers

By Dylan Morrison-Fogel

Walter Hohmann 1925 A 's apoapsis altitude can be raised by increasing the spacecraft's at periapsis.

1 Tangent Burst at Periapsis

1 Tangent Burst at Apoapsis A spacecraft's periapsis altitude can be lowered by decreasing the spacecraft's energy at apoapsis.

1 Tangent Burst at Apoapsis

1 Tangent Burst at Periapsis Theoretical :

Mass: 500 kg Altitude for : 19,520 km at Geosync: 1,432 m/s Initial Orbit 2:08:46:03

B = 2.5e-6 kg/s

Thrust 1 = 120s (2min)

Transfer Time = 51040s (14.12h)

Thrust 2 = 205s (3.12min)

Final Orbit Time = 23250s (6.46h) Initial Orbit 2:08:46:03

B = 3e-6 kg/s

Thrust 1 = 120s (2min)

Impact = 46540s (12.93h) Initial Orbit 4:50:50

Initial Orbit R = 6,570 km

B = 2.2e-6 kg/s

Thrust 1 = 220s (3.67min)

Transfer Time = 25950s (7.21h)

Thrust 2 = 290s (4.83min)

Final Orbit Time = 101555s (28.21h)

Final Orbit R = 11,113 km Initial Orbit 4:50:50

Initial Orbit R = 6,570 km

B = 2.186e-6 kg/s

Thrust 1 = 220s (3.67min)

Transfer Time = 14350s (3.986h)

Thrust 2 = 290s (4.83min)

Final Orbit Time = 43555s (12.1h)

Final Orbit R = 28,074 km For Comparis on Governing Equations ODE113 -> [t,y] = ode113(funct, tspan, y0, options)

y = x 1 y’1 = y2

y = x’ 3 3 2 x’’ = -x/r y’2 = -y1 /r r = √(x2 + y2) y = y y’’ = -y/ 3 y’3 = y4 r3 y = y’ 3 4 y’4 = -y3 /r

y0 = [xinitial x’initial yinitial y’ ] dy = [ y(2)initial ; -μy(1)/r3 ; y(4) ; -μy(3)/r3 ]

3 3 dth = [ th(2) ; -μth(1)/r ; th(4) ; -th(3)*thr - y(3)/r ] clf; clear all xaxisx = [2*Re 10]; hold on; xaxisy = [0 0]; Re = 6371000; MATLAB Code xaxisz = [0 0]; = 39860043623300; yaxisx = [0 0]; tspan1 = [0 in_obtT]; yaxisy = [2*Re 10]; y0 = [19520000 0 0 1432]; yaxisz = [0 0]; tspan2 = [0 thr1T]; function dth = thrust_up_twobody_ode(t,th) tspan3 = [0 fltT]; zaxisx = [0 0]; tspan4 = [0 thr2T]; zaxisy = [0 0]; tspan5 = [0 fn_obtT]; r = sqrt(th(1)^2 + th(3)^2); zaxisz = [2*Re 10]; opts = odeset('Reltol',1e-13,'AbsTol',1e-14,'Stats','on'); mu = 39860043623300; grid on; [t1,y1] = ode113(@twobody_ode, tspan1, y0, opts); c=220*9.81; [x,y,z] = sphere(24); y20= [y1(end,1) y1(end,2) y1(end,3) y1(end,4)]; ms=500; h = surf(x*Re, y*Re, z*Re); [t2,y2] = ode113(@thrust_up_twobody_ode, tspan2, y20, B = 0.0000027; colormap([127/255 1 222/255]); opts); thr=(c*B)/ms; set (h, 'edgecolor', [1 1 1]); y30= [y2(end,1) y2(end,2) y2(end,3) y2(end,4)]; dth = [th(2); -mu*th(1)/r^3 ; th(4); (th(3)*thr - [t3,y3] = ode113(@twobody_ode, tspan3, y30, opts); plot3(xaxisx, xaxisy, xaxisz, '-k', 'LineWidth', 1); mu*th(3)/r^3)]; y40= [y3(end,1) y3(end,2) y3(end,3) y3(end,4)]; plot3(yaxisx, yaxisy, yaxisz, '-k', 'LineWidth', 1); [t4,y4] = ode113(@thrust_up_twobody_ode, tspan4, y40, plot3(zaxisx, zaxisy, zaxisz, '-k', 'LineWidth', 1); opts); plot3(-xaxisx, xaxisy, xaxisz, '-k', 'LineWidth', 1); y50= [y4(end,1) y4(end,2) y4(end,3) y4(end,4)]; plot3(yaxisx, -yaxisy, yaxisz, '-k', 'LineWidth', 1); [,y5] = ode113(@twobody_ode, tspan5, y50, opts); plot3(zaxisx, zaxisy, -zaxisz, '-k', 'LineWidth', 1); xlabel('X coordinate (km)', 'FontSize', 12); hold all; ylabel('Y coordinate (km)', 'FontSize', 12); plot(y1(:,1),y1(:,3),'b-') zlabel('Z coordinate (km)', 'FontSize', 12); plot(y2(:,1),y2(:,3),'r*') axis equal; plot(y3(:,1),y3(:,3),'g.') plot(y4(:,1),y4(:,3),'r*') view(50, 40); plot(y5(:,1),y5(:,3),'m-') rotate3d on; title('Satellite ')