Home » Posts tagged 'Numerical Solution'
Tag Archives: Numerical Solution
Two Body Problem Numerical Solution,Satellite – Earth, R & V after dT
The initial position and velocity of an earth orbiting satellite in earth centered inertial frame is known. In this example we will numerically solve fundamental equation of relative two-body motion to find the distance of the satellite from the center of the earth and its speed after 24 hours.
clc; clear all; R0 = [6750 0 0]; %[km] V0 = [0 10.5 0]; %[km/s] mu = 398600; % Earth’s gravitational parameter [km^3/s^2] t = 0; % initial time dt = 10; % time step [s] dT = 24*3600; % Time interval [s] % Using fourth-order Runge–Kutta method to solve fundamental equation % of relative two-body motion F_r = @(R) -mu/(norm(R)^3)*R; Rd = V0; R = R0; i = 1; while (t <= dT) Rv(i,:) = R; tv(i) =t; k_1 = dt*F_r(R); k_2 = dt*F_r(R+0.5*k_1); k_3 = dt*F_r(R+0.5*k_2); k_4 = dt*F_r(R+k_3); Rd = Rd + (1/6)*(k_1+2*k_2+2*k_3+k_4); Vv(i,:) = Rd; R = R + Rd*dt; t = t+dt; i = i+1; end rn = (Rv(:,1).^2+Rv(:,2).^2+Rv(:,3).^2).^0.5; % Radius Vector vn = (Vv(:,1).^2+Vv(:,2).^2+Vv(:,3).^2).^0.5; % Speed Vector fprintf('Distance from Earth center = %4.2f [km] \n',norm(R)); fprintf('Satellite speed= %4.4f [km/s] \n',norm(Rd));
Distance from Earth center = 77061.78 [km] Satellite speed= 1.5791 [km/s]
Plots
figure(1); hold on;grid on; plot(tv/3600,rn); ylabel('Altitude [km]'); xlabel('Time [hour]'); title('Distance variation of the satellite from the center of the Earth'); figure(2); hold on;grid on; plot(tv/3600,vn); ylabel('Speed [km/s]'); xlabel('Time [hour]'); title('Satellite speed variation');![]()
Two Body Problem Numerical Solution,Satellite – Earth
Given initial position and velocity of an earth orbiting satellite at a given instant.In this example we will numerically solve fundamental equation of relative two-body motion to find the maximum altitude(apogee altitude) reached by the satellite.
clc; clear all; R0 = [3102 5369 2625]; %[km] V0 = [-6.426 0.7735 5.943]; %[km/s] r = norm(R0); % Initial radius [km] v = norm(V0); % Initial speed [km/s] mu = 398600; % Earth’s gravitational parameter [km^3/s^2] a = mu/(2*mu/r - v^2); % Semimajor Axis [km] T = 2*pi*a^1.5/mu^0.5; % Orbital period [s] R_earth = 6378; % Earth radius [km] dt = T/1000; % time step [s] t = 0; % initial time % Using fourth-order Runge–Kutta method to solve fundamental equation % of relative two-body motion F_r = @(R) -mu/(norm(R)^3)*R; Rd = V0; R = R0; i = 1; while (t <= T) Rv(i,:) = R; tv(i) =t; k_1 = dt*F_r(R); k_2 = dt*F_r(R+0.5*k_1); k_3 = dt*F_r(R+0.5*k_2); k_4 = dt*F_r(R+k_3); Rd = Rd + (1/6)*(k_1+2*k_2+2*k_3+k_4); R = R + Rd*dt; t = t+dt; i = i+1; end rn = (Rv(:,1).^2+Rv(:,2).^2+Rv(:,3).^2).^0.5; Alt = rn - R_earth; % Altitude Vector Alt_max = max(Alt); % [km] fprintf('Maximum Altitude = %4.2f [km] \n',Alt_max);
Maximum Altitude = 6249.10 [km]
Ploting the altitude variation during one orbit
figure(1); hold on;grid on; plot(tv/3600,Alt); ylabel('Altitude [km]'); xlabel('Time [hour]'); title('Satellite altitude variation during one orbit');