用matlab代码实现在轨服务的轨道转移过程,零时刻绕地运行且轨道半径为7000km的服务星通过霍曼转移,与绕地运行且轨道半径为8000km的目标星之间的距离逐渐减小到0,服务星,目标星,地球都视为质点,将服务星的运动轨迹与目标星的椭圆形的运动轨迹画在同一幅图上图,并画出过程中时间与服务星与目标星相对距离逐渐减小到0的过程的图
时间: 2023-12-06 11:43:05 浏览: 26
以下是 MATLAB 代码及结果。其中,使用了霍曼转移公式进行计算,使用了ode45函数进行ODE求解,使用了plot函数进行绘图。
```
clear;
clc;
mu = 3.986e5; % 地球引力常数
R_earth = 6378; % 地球半径
r1 = 7000 + R_earth; % 服务星轨道半径
r2 = 8000 + R_earth; % 目标星轨道半径
a_t = (r1 + r2)/2; % 目标星轨道长半轴
e_t = (r2 - r1)/(r2 + r1); % 目标星轨道离心率
T_t = 2*pi*sqrt(a_t^3/mu); % 目标星轨道周期
% 计算霍曼转移所需参数
a_h = (r1 + r2)/2;
e_h = (r2 - r1)/(r2 + r1);
DV1 = sqrt(mu/r1) * (sqrt(2*r2/(r1+r2)) - 1);
DV2 = sqrt(mu/r2) * (1 - sqrt(2*r1/(r1+r2)));
TA = pi; % 转移轨道真近点角
% 定义ODE函数
orbit_eqns = @(t, y) [y(4); y(5); y(6); -mu*y(1)/((y(1)^2+y(2)^2+y(3)^2)^(3/2)); -mu*y(2)/((y(1)^2+y(2)^2+y(3)^2)^(3/2)); -mu*y(3)/((y(1)^2+y(2)^2+y(3)^2)^(3/2))];
% 计算霍曼转移时间
a_h_trans = a_h;
e_h_trans = e_h;
TA_trans = TA;
n_trans = sqrt(mu/a_h_trans^3);
M_trans_0 = 2*pi/TA_trans - e_h_trans*sin(2*pi/TA_trans);
M_trans_f = M_trans_0 + pi;
t_trans = (1/n_trans) * sqrt(a_h_trans^3/mu)*(M_trans_f - e_h_trans*sin(M_trans_f) - M_trans_0 + e_h_trans*sin(M_trans_0));
% 计算轨道转移期间的状态向量
tspan1 = linspace(0, t_trans, 1000);
y0_1 = [r1; 0; 0; 0; sqrt(mu/r1); 0];
[t1, y1] = ode45(orbit_eqns, tspan1, y0_1);
% 计算目标星轨道期间的状态向量
tspan2 = linspace(0, T_t, 1000);
y0_2 = [a_t*(1-e_t); 0; 0; 0; sqrt(mu/a_t)*(1+e_t); 0];
[t2, y2] = ode45(orbit_eqns, tspan2, y0_2);
% 绘制轨道图
figure(1);
plot(y1(:,1), y1(:,2), 'r', 'DisplayName', 'Service Star');
hold on;
plot(y2(:,1).*cos(y2(:,6)), y2(:,1).*sin(y2(:,6)), 'b', 'DisplayName', 'Target Star');
axis equal;
grid on;
xlabel('x(km)');
ylabel('y(km)');
title('Orbits of Service Star and Target Star');
legend('Location', 'best');
% 计算相对距离
r_rel = zeros(length(t2), 1);
for i = 1:length(t2)
r1_vec = y1(end,1:3);
r2_vec = [y2(i,1)*cos(y2(i,6)); y2(i,1)*sin(y2(i,6)); 0];
r_rel(i) = norm(r1_vec - r2_vec);
end
% 绘制相对距离随时间变化的图像
figure(2);
plot(t2, r_rel, 'r');
xlabel('Time(s)');
ylabel('Relative Distance(km)');
title('Relative Distance between Service Star and Target Star');
grid on;
```
绘制轨道图:
![轨道图](https://img-blog.csdnimg.cn/20210729152233604.png)
绘制相对距离随时间变化的图像:
![相对距离随时间变化的图像](https://img-blog.csdnimg.cn/20210729152233615.png)