• 大小: 275KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-06
  • 语言: C/C++
  • 标签:

资源简介

利用vc++平台,通过c++编程实现卫星位置计算

资源截图

代码片段和文件信息

#include 
#include 
#include 

#define GM               3.986005e14

void main()
{
long double toe =  0.720000000000e+04; //星历表参考历元
long double a =  0.2656013544884677e+08; //轨道长半径
long double e   =  0.678421219345e-02; //轨道偏心率
long double i0  =  0.958512160302e+00; //按参考历元toe计算的轨道倾角
long double w   =  -0.258419417299e+01; //近地点角距
long double o0  = -0.137835982556e+01; //按参考历元toe计算的升交点赤径
long double M0  = -0.290282040486e+00; //按参考历元toe计算的平近点角
long double delta_n =  0.451411660250e-08; //由精密星历计算得到的卫星平均角速度与按给定参数计算所得的平均角速度之差
long double o   = -0.819426989566e-08; //升交点赤径变化率
long double I   = -0.253939149013e-09; //轨道倾角变化率
long double cus =  0.912137329578e-05; //纬度俯角的正弦调和项改正的振幅
long double cuc =  0.189989805222e-06; //纬度俯角的余弦调和项改正的振幅
long double cis =  0.949949026108e-07; //轨道倾角的正弦调和项改正的振幅
long double cic =  0.130385160446e-07; //轨道倾角的余弦调和项改正的振幅
long double crs =  0.406250000000e+01; //轨道半径的正弦调和项改正的振幅
long double crc =  0.201875000000e+03; //轨道半径的余弦调和项改正的振幅
long double we =  7.29211567e-5; //地球自转的速率
long double t   = 0.720000000000e+04; //观测时刻
long double n0ntk;
long double Mk Ek  Vk fk;
long double u r i uk rk ik ok xk yk;
long double Xk Yk Zk;
int diedai;
         
n0 = sqrt(GM/(a*a*a));                
n = n0 + delta_n;
tk = t - toe;
Mk = M0 + n*tk;
Ek = Mk;
for(diedai=0; diedai<3; diedai++) Ek = Mk + e*sin(Ek);  
Vk = atan( sqrt(1.0-e*e)*sin(Ek)/(cos(Ek)-e)); 
fk = Vk + w;
u = cuc*cos(2.0*fk) + cus*sin(2.0*fk);
r = crc*cos(2.0*fk) + crs*sin(2.0*fk);
i = cic*cos(2.0*fk) + cis*sin(2.0*fk);
uk = fk + u;
rk = a*(1.0-e*cos(Ek)) + r;
ik = i0 + i + I*tk;
xk = rk*cos(uk);
yk = rk*sin(uk);
ok = o0 + (o-we)*tk - we*toe;
Xk = xk*cos(ok) - yk*sin(ok)*cos(ik);
Yk = xk*sin(ok) + yk*cos(ok)*cos(ik);
Zk = yk*sin(ik);
 
cout <<“卫星运行平均角速度n0:“<cout <<“校正过的卫星运行平均角速度n:“<cout <<“归化时间tk:“<cout <<“卫星平近点角Mk:“<cout <<“卫星偏近点角Ek:“<cout <<“卫星真近点角Vk:“<cout <<“卫星升交距角fk:“<cout <<“摄动改正项uri:“<cout <<“经过摄动改正的升交距角uk:“<cout <<“经过摄动改正的卫星矢径rk:“<cout <<“经过摄动改正的轨道倾角ik:“<cout <<“卫星在轨道平面坐标系的坐标xk,yk:“<cout <<“观测时刻升交点经度ok:“<cout <<“卫星在地心固定坐标系中的直角坐标为XkYkZk:“<}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-12-01 22:48  z\
     目录           0  2015-12-01 22:51  z\GPS卫星位置计算\
     目录           0  2015-12-01 22:50  z\GPS卫星位置计算\Debug\
     文件      229462  2015-12-01 22:50  z\GPS卫星位置计算\Debug\GPS卫星位置计算.exe
     文件      254596  2015-12-01 22:50  z\GPS卫星位置计算\Debug\GPS卫星位置计算.ilk
     文件      277092  2015-12-01 22:50  z\GPS卫星位置计算\Debug\GPS卫星位置计算.pch
     文件      418816  2015-12-01 22:50  z\GPS卫星位置计算\Debug\GPS卫星位置计算.pdb
     文件       41984  2015-12-01 22:51  z\GPS卫星位置计算\Debug\vc60.idb
     文件       61440  2015-12-01 22:50  z\GPS卫星位置计算\Debug\vc60.pdb
     文件       10412  2015-12-01 22:50  z\GPS卫星位置计算\Debug\z.obj
     文件        4378  2015-12-01 22:50  z\GPS卫星位置计算\GPS卫星位置计算.dsp
     文件         538  2015-12-01 22:48  z\GPS卫星位置计算\GPS卫星位置计算.dsw
     文件       33792  2015-12-01 22:51  z\GPS卫星位置计算\GPS卫星位置计算.ncb
     文件       48640  2015-12-01 22:51  z\GPS卫星位置计算\GPS卫星位置计算.opt
     文件        1334  2015-12-01 22:50  z\GPS卫星位置计算\GPS卫星位置计算.plg
     文件        2784  2015-12-01 22:50  z\GPS卫星位置计算\z.cpp

评论

共有 条评论

相关资源