使用STK求出坐标转换矩阵

这篇具有很好参考价值的文章主要介绍了使用STK求出坐标转换矩阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、背景介绍

使用STK可以获得一颗卫星的地心惯性系J2000,地心固联坐标系,测站坐标系的x,y,z轴的指向分量,例如通过报告得到了测站坐标系(南东天)三个分量在J2000坐标系下的状态分量。如下图所示,那么从J2000坐标系到测站坐标系的坐标转换矩阵为

那么同样的通过测站坐标系在地心固联系下的状态分量,那么从地心固联系到测站坐标系的坐标转换矩阵为

那么根据坐标转换的传递性,可以求出J2000坐标系到地固系的坐标转换矩阵

二、数据实例

已知某卫星在历元时刻2024年3月17日 02:30:00-05:30:00每隔10s的位置和速度信息,state_Colum,根据STK数据求出的坐标转换矩阵,求出其轨道位置,与直接报表生成其位置进行对比。

(2.1)地固系到测站坐标系的转换

由于地固系和测站坐标系的关系,在115°东经,30°北纬的地方,从地固系到测站坐标系的转移矩阵为

Fixed2Topo=R_y(pi/2-30/180*pi)*R_z(115/180*pi)

求得的结果为使用STK求出坐标转换矩阵,矩阵,线性代数

利用STK的报表生成,测站的南,东,天三个方向的坐标在地固系和J2000里的坐标。

clc;clear
%% 利用STK与matlab交互联合定轨
uiApplication = actxGetRunningServer('STK11.application');
% Get our IAgStkObjectRoot interface
root = uiApplication.Personality2;
checkempty = root.Children.Count;
if checkempty ~= 0
    root.CurrentScenario.Unload
    root.CloseScenario;
end
%% 根据你的需要设定场景的名称
root.NewScenario('OrbitDetermination');
StartTime = '17  Mar 2024 02:30:00.000';    % 场景开始时间
StopTime = '17 Mar 2024 05:30:00.000';     % 场景结束时间
root.ExecuteCommand(['SetAnalysisTimePeriod * "',StartTime,'" "',StopTime,'"']);
root.ExecuteCommand(' Animate * Reset');
root.ExecuteCommand(['New / */Facility Radar_01']);
root.ExecuteCommand(['SetPosition */Facility/Radar_01 Geodetic 30 115 0.0 MSL']);
Facility=root.CurrentScenario.Children.Item('Radar_01');
TopoCentric_Axes=Facility.VO.Vector.RefCrdns.Item(8);
TopoCentric_Axes.Visible=1;
TopoCentric_Axes.LabelVisible=1;
%% 记录每个时刻的测站坐标各个轴的在J2000坐标系下的分量(自己在STK新定义一个表格)
data3=root.ExecuteCommand(['Report_RM */Facility/Radar_01 Style "Vector_Topocentric" TimePeriod "',StartTime,'" "',StopTime,'" TimeStep 10']);
%% 坐标变换矩阵
J20002Topop=zeros(3,3);
Sat_J2000=zeros(3,LineNum-2);
for i=1:LineNum-2
    %% 记录此时刻下的测站坐标对应的变换矩阵
    struct=regexp(data3.Item(i),',','split');
    J20002Topop(1,1)=str2num(struct{2});
    J20002Topop(1,2)=str2num(struct{3});
    J20002Topop(1,3)=str2num(struct{4});
    J20002Topop(2,1)=str2num(struct{5});
    J20002Topop(2,2)=str2num(struct{6});
    J20002Topop(2,3)=str2num(struct{7});
    J20002Topop(3,1)=str2num(struct{8});
    J20002Topop(3,2)=str2num(struct{9});
    J20002Topop(3,3)=str2num(struct{10});
    J2000Topo{i}=J20002Topop;
end
data4=root.ExecuteCommand(['Report_RM */Facility/Radar_01 Style "Vector_Topocentric_Fixed" TimePeriod "',StartTime,'" "',StopTime,'" TimeStep 10']);
%% 坐标变换矩阵
Fixed=zeros(3,3);
Sat_Fixed=zeros(3,LineNum-2);
for i=1:LineNum-2
    %% 记录此时刻下的测站坐标对应的变换矩阵
    struct=regexp(data4.Item(i),',','split');
    Fixed(1,1)=str2num(struct{2});
    Fixed(1,2)=str2num(struct{3});
    Fixed(1,3)=str2num(struct{4});
    Fixed(2,1)=str2num(struct{5});
    Fixed(2,2)=str2num(struct{6});
    Fixed(2,3)=str2num(struct{7});
    Fixed(3,1)=str2num(struct{8});
    Fixed(3,2)=str2num(struct{9});
    Fixed(3,3)=str2num(struct{10});
    Fixed1{i}=Fixed;
end

使用STK求出坐标转换矩阵,矩阵,线性代数

其中Vector_Topocentric_Fixed的内容如图所示

使用STK求出坐标转换矩阵,矩阵,线性代数

Vector_Topocentric的内容如图所示

使用STK求出坐标转换矩阵,矩阵,线性代数

使用STK求出坐标转换矩阵,矩阵,线性代数使用STK求出坐标转换矩阵,矩阵,线性代数

结果与通过旋转矩阵计算的结果一致,证明了三个坐标轴的分量按行排列即为从地心固联系到测站坐标系的转换矩阵。

(2.2)J2000坐标系到地固系的坐标转换

参考上面,我们同样采用两种方式生成坐标转换矩阵,第一个通过旋转坐标轴的方式

使用STK求出坐标转换矩阵,矩阵,线性代数

首先通过VGT模块生成J2000 X轴与Fixed X轴生成一个角度

使用STK求出坐标转换矩阵,矩阵,线性代数

使用STK求出坐标转换矩阵,矩阵,线性代数

通过插入一颗Planet,自己创建一个报告,内容即为theta角,求出02:30:00时刻的夹角为-147.65°,使用坐标转换矩阵,如下代码和结果如图所示

J20002Fixed=R_z(-147.65/180*pi)

使用STK求出坐标转换矩阵,矩阵,线性代数

采用计算测站坐标系在其上的分量的形式,求出测站坐标系的南,东,天三个方向在J2000坐标系的坐标分量为

使用STK求出坐标转换矩阵,矩阵,线性代数

得到从J2000坐标系到测站坐标系的坐标转换矩阵为

使用STK求出坐标转换矩阵,矩阵,线性代数

根据第一部分介绍的公式,从J2000到地心固联系的坐标转换即为

Fixed2To=[ 0.418981         ,        -0.269754          ,       -0.866999;
           0.539441         ,         0.842023          ,       -0.001296;
           0.730383         ,        -0.467151          ,        0.498308];
J20002To=[ -0.211309        ,          0.453154          ,       -0.866025;
                 -0.906308      ,           -0.422618        ,                0;
                 -0.365998      ,            0.784886        ,               0.5];
J20002Fixed=inv(Fixed2To)*J20002To

求出的结果为

使用STK求出坐标转换矩阵,矩阵,线性代数文章来源地址https://www.toymoban.com/news/detail-854539.html

到了这里,关于使用STK求出坐标转换矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线性代数:线性方程求解、矩阵的逆、线性组合、线性独立

    本文参考www.deeplearningbook.org一书第二章2.3 Identity and Inverse Matrices 2.4 Linear Dependence and Span 本文围绕 线性方程求解 依次介绍矩阵的逆、线性组合、线性独立等线性代数的基础知识点。 本文主要围绕求解线性方程展开,我们先把线性方程写出来,方程如下: 其中,是已知的;,

    2024年02月08日
    浏览(54)
  • 0203逆矩阵-矩阵及其运算-线性代数

    定义7 对于 n n n 阶矩阵A,如果有一个 n n n 阶矩阵B,使 A B = B A = E AB=BA=E A B = B A = E 则说矩阵A是可逆的,并把矩阵B称为A的逆矩阵,简称逆阵。 定理1 若矩阵A可逆,则 ∣ A ∣ ≠ 0 vert Avert not = 0 ∣ A ∣  = 0 证明: A 可逆,即有 A − 1 ,使得 A A − 1 = E ∣ A A − 1 ∣ = ∣ A

    2024年04月13日
    浏览(60)
  • 线性代数3:矩阵

    目录 矩阵研究的是什么呢? 逆阵 什么叫做逆阵?  例题1:  例题2:  逆阵的存在性 定理1: 定理2: 定理3: 定理4: 拉普拉茨方程 方阵可以的条件  例题3:  Note1: 例题4  Note2:  Note3: Note4:  Note5:  Note6: Note7:  例题5:  逆矩阵的求法: 方法1:伴随矩阵法:  方

    2024年02月13日
    浏览(58)
  • 线性代数基础--矩阵

     矩阵是由排列在矩形阵列中的数字或其他数学对象组成的表格结构。它由行和列组成,并且在数学和应用领域中广泛使用。 元素:矩阵中的每个数字称为元素。元素可以是实数、复数或其他数学对象。 维度:矩阵的维度表示矩阵的行数和列数。一个 m × n 的矩阵有 m 行和

    2024年02月11日
    浏览(47)
  • 线性代数基础【2】矩阵

    一、基本概念 ①矩阵 像如下图示的为矩阵,记为A=(aij)m*n ②同型矩阵及矩阵相等 若A、B为如下两个矩阵 如果A和B的行数和列数相等,那么A和B为同型矩阵,且A和B的元素相等(即:aij=bij),则称A和B相等 ③伴随矩阵 设A为n阶矩阵(如上图所示),设A的行列式|A|,则A中aij的余子式为Mij,代数余

    2024年02月04日
    浏览(53)
  • 线性代数——矩阵

    学习高等数学和线性代数需要的初等数学知识 线性代数——行列式 线性代数——矩阵 线性代数——向量 线性代数——线性方程组 线性代数——特征值和特征向量 线性代数——二次型 本文大部分内容皆来自李永乐老师考研教材和视频课。 从矩阵的转置章节到方阵和行列式

    2023年04月08日
    浏览(271)
  • 线性代数(七) 矩阵分析

    从性线变换我们得出,矩阵和函数是密不可分的。如何用函数的思维来分析矩阵。 通过这个定义我们就定义了矩阵序列的 收敛性 。 研究矩阵序列收敛性的常用方法,是用《常见向量范数和矩阵范数》来研究矩阵序列的极限。 长度是范数的一个特例。事实上,Frobenius范数对

    2024年02月08日
    浏览(50)
  • 投影矩阵推导【线性代数】

    如果两个向量垂直,那么满足。但如果两个向量不垂直,我们就将 b 投影到 a 上,就得到了二者的距离,我们也称为向量 b 到直线 a 的误差。这样就有出现了垂直:                (1) 投影向量 p 在直线上,不妨假设  ,那么误差 。带入式(1)中得到: 投影矩阵:  

    2024年02月06日
    浏览(61)
  • 线性代数-矩阵的本质

    线性代数-矩阵的本质

    2024年02月11日
    浏览(48)
  • 线性代数:矩阵的秩

    矩阵的秩(Rank)是线性代数中一个非常重要的概念,表示一个矩阵的行向量或列向量的线性无关的数量,通常用 r ( A ) r(boldsymbol{A}) r ( A ) 表示。具体来说: 对于一个 m × n mtimes n m × n 的实矩阵 A boldsymbol{A} A ,它的行秩 r ( A ) r(boldsymbol{A}) r ( A ) 定义为 A boldsymbol{A} A 的各

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包