STK获取实时纬度幅角,实现多传感器量测匹配。

在进行MATLAB与STK联合仿真的过程中,经常会涉及到坐标系之间的转换,特别是空间目标在ECI坐标系以及天基传感器局部LVLH坐标的转换。获取实时的纬度幅角,能够得到天基传感器局部LVLH坐标系的建立位置,从而得到空间目标在ECI坐标系的坐标到天基传感器局部LVLH坐标系下的量测信息。下面主要讲《STK获取空间目标的实时纬度幅角方法》。

1. STK Report可以直接输出纬度幅角。

2. Report输出经典轨道根数,然后用近地点幅角+真近点角。

方法一:

一、在Report属性设置,找到Classical Elements——J2000——Arg of Latitude。

二、然后生成报告就有了。

注:参数设置时,轨道坐标则选你的参数对应的坐标系。

方法二:

一、在报告中直接找Classical Orbit Elements

二、得到报告

另外,本文附上坐标系转换的部分代码,能够实现多部天基传感器的量测匹配。实验结果如下:

转换函数定义代码如下:

如有代码问题,请加V(UltraNextYJ)交流。

%% 函数定义
function [Xk_rV] = fun_Coordinate_ECI2Measurement(Xk, Inf_orbit, Nk)      % 根据轨道信息进行坐标的转换

transform_model = 1;
% transform_model = 1;   ECI转LVLH转VVLH(STK的观测数据是定义在VVLH坐标系下)
% transform_model = 2;   ECI转LVLH转目标坐标系转雷达阵面坐标系再转测量坐标系

%% 通过轨道信息,计算传感器在ECI坐标系下的实时位置
% 传感器在参考轨道坐标系中的实时位置
orbit_a = Inf_orbit.orbit_a;
orbit_omega = Inf_orbit.orbit_omega;
orbit_i = Inf_orbit.orbit_i;
orbit_v = Inf_orbit.orbit_v; % 纬度幅角是实时角度

% 计算纬度幅角的变化,用于得到时变的LVLH坐标系
% 定义地球质量和引力常数
M_earth = 5.972e24;  % 地球质量,单位:千克
Gravitation = 6.674e-11;      % 引力常数,单位:米^3/(千克·秒^2)
T_sate = 2*pi*sqrt(orbit_a^3/Gravitation/M_earth);
delta_orbit_v = Nk / T_sate * 360;  % 卫星转一圈对应360度
disp(['传感器的运行阶段对应的纬度幅角变化值为:', num2str(delta_orbit_v), '度']);

X = [orbit_a, 0, 0]';   % 传感器在轨道参考坐标系的坐标
% 传感器在ECI坐标系的坐标(第三轨道坐标系(平移LVLH坐标系)逆变换到ECI)
X_ECI =  DCM_Z(-orbit_omega) * DCM_X(-orbit_i) * DCM_Z(-(orbit_v+delta_orbit_v)) * X;   
% X_ECI = 1e3 * [6612.091990,595.932077,-722.923417]';   % STK中的实时报告

%% 进行坐标转换
X_Target_ECI = Xk;
% 将ECI坐标转换到    ————>   LVLH坐标
% 第一步:地心惯性ECI坐标系经过平移得到星基惯性坐标系
Xk_LVLH_temp = X_Target_ECI - X_ECI; 
% 第二步:星基惯性坐标系三次旋转得到星基LVLH坐标系
Xk_LVLH = DCM_Z(orbit_v+delta_orbit_v) * DCM_X(orbit_i) * DCM_Z(orbit_omega) *Xk_LVLH_temp;      

% 将LVLH坐标转换到    ————>   卫星本体坐标系oXbYbZb(和VVLH重合)
b_Z = 90;  % LVLH坐标转换到卫星本体坐标系oXbYbZb的第一步:绕Z轴逆时针旋转
b_X = -90; % LVLH坐标转换到卫星本体坐标系oXbYbZb的第二步:绕X轴顺时针旋转
Xk_oXbYbZb = DCM_X(b_X) * DCM_Z(b_Z) *  Xk_LVLH;

% 将卫星本体坐标系oXbYbZb转换到    ————>   量测坐标系oXaYaZa          
a_X = 180;  % 转换过程绕X轴旋转180度即可
Xk_oXaYaZa = DCM_X(a_X) * Xk_oXbYbZb;

if transform_model == 1
    Xk_temp = Xk_oXbYbZb;     % oXbYbZb与VVLH重合
elseif transform_model == 2
    Xk_temp = Xk_oXaYaZa;
end

% 得到方位角
theta_SBR = atan2(Xk_temp(2),Xk_temp(1))/pi*180;
if theta_SBR < 0   % 将方位角控制在[0,360]度
    theta_SBR = theta_SBR + 360;
end
% 得到俯仰角
if transform_model == 1
    phi_SBR = -atan2(Xk_temp(3),sqrt(Xk_temp(1)^2 + Xk_temp(2)^2))/pi*180; 
elseif transform_model == 2
    phi_SBR = atan2(Xk_temp(3),sqrt(Xk_temp(1)^2 + Xk_temp(2)^2))/pi*180;  
end
Xk_rV = [theta_SBR, phi_SBR]';

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UltraMan之神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值