资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
“GPS广播星历计算卫星位置和速度”及“GPS伪距定位”计算试验1试验内容及上交成果1.1 试验内容应用C语言按预定格式(函数、输入输出变量之名称、类型)编写“GPS广播星历计算卫星位置和速度”函数SatPos_Vel( )、“GPS伪距定位”函数Positioning( )。将此两个函数组成文件F2.cpp,并包含于文件GPS_Positioning.cpp中。编译、连接并运行文件GPS_Positioning.cpp,逐一时刻读取广播星历(Ephemeris.dat)、观测时间及伪距、卫星号(Observation.dat)信息,计算WGS84坐标系中观测时刻相应的卫星位置、速度以及载体位置,结果保存于文件Position.dat中。1.2 上交成果磁盘文件F2.cpp、Position.dat,并存于“学号作者中文姓名”目录中。2函数说明2.1 星历文件读取函数void EFileReading(Efile)功能:读取星历文件,给星历数据结构体Ephemeris赋值。输入变量:EFile字符串,文件名。2.2 观测数据读取函数int ObsReading(fp_Obs,Time,Rho,Mark)功能:从文件Observation.dat中读取某一时刻的伪距、卫星号。读取成功函数值返 回“1”,失败返回“1”(读错,或至文件尾)。输入变量:fp_Obs文件指针;输出变量:Timedouble,时间(秒);Rhodouble12,伪距(米);Markint12,卫星号,“1”表示此通道无卫星、无伪距。2.3 最小二乘估计函数int LeastSquareEstimation(Y,A,P,m,n, X)功能:最小二乘方法求解观测方程Y=AX+,其中观测值方差阵的逆阵为P(也称为权 阵),得未知参数X。成功返回“1”,失败返回“1”(亏秩)。输入变量:Ydoublem,观测方程自由项(米);Adoublemn,系数阵(无量纲),按第1行第1、2n元素,第2行顺序存放;Pdoublem,权矩阵对角线元素,0或1(无量纲);mint,观测值个数;nint,未知参数个数;输出变量:Xdoublen,未知参数(米)。原理:X=(ATPA)-1ATPY例:Y1,2,3,6,A=1,0,0, 0,1,0, 0,0,1, 1,1,1,P=1,1,1,1,m=4,n=3。调用LeastSquareEstimation(Y,A,P,m,n, X),求得X=1,2,3。2.4 计算卫星位置、速度函数int SatPos_Vel(Num,Time, SatPos,SatVel)功能:计算WGS84坐标系中卫星位置、速度。成功返回“1”,失败返回“1”(无星 历)。输入变量:Numint,卫星号;Timedouble,时间(秒)。(隐含引用全局变量Ephemeris32,星历数据结构体)输出变量:SatPosdouble3,位置(米,WGS84);SatVeldouble3,速度(米/秒,WGS84)。2.5 伪距测量定位int Positioning(Time,Rho,Mark, Pos,dt)功能:由单一时刻伪距计算载体位置,并保存接收机钟面时、卫星位置、速度及载体 位置于定位结果文件Position.dat中。成功返回“1”,失败返回“1”(观测 值数量不够,亏秩)。输入变量:Timedouble,伪距观测时刻接收机钟面时(秒);Rhodouble12,伪距(米);Markint12,卫星号,“1”表示此通道无信号;输出变量:Posdouble3,载体位置(米,WGS84);dtdouble,钟差(秒)。3全局变量说明LightVelocity字符常量,光速(米/秒),299 792 458;PI字符常量,圆周率,3.141 592 653 589 793;MU字符常量,地球引力常数(米3秒2),3.986005e14;OMEGAE字符常量,地球自转角速度(弧度秒1),7.292115e-5;fp_Obs文件指针,观测数据文件;fp_Pos文件指针,位置结果文件。Structure Eph_StrMark整型,标识,“1”有,“1”无wn整型,星期数toc卫星钟差改正参考时刻(秒)af2卫星钟差改正系数(秒/秒2)af1(秒/秒)af0(秒)aode数据龄期deltan平均角速度改正(半周/秒)m0参考时刻平近点角(半周)e偏心率;rootaa1/2(米1/2)toe星历参考时刻(秒)cic(弧度)crc(米)cis(弧度)crs(米)cuc(弧度)cus(弧度)omega0准升交点赤经(半周)omega近地点角距(半周)i0轨道倾角(半周)omegadot升交点赤经变化率(半周/秒)idot轨道倾角变化率(半周/秒)Ephemeris32星历数据结构体。注:数据类型除注明整型外,其余为双精度型。4文件说明4.1 观测数据文件Observation.datTime,n伪距观测时间,卫星颗数Rho_1,n_1伪距(米),卫星号Rho_n,n_n伪距(米),卫星号Time,n伪距观测时间,卫星颗数4.2 卫星星历数据文件Ephemeris.datsvprn整数,卫星号wn整数,星期数idot轨道倾角变化率(半周/秒)(详细说明请参见数据结构体Structure Eph_Str Ephemeris32)svprn整数,卫星号4.3 位置计算结果文件Position.datTime伪距观测时刻(秒)n_1,x_1,y_1,z_1, xdot_1,ydot_1,zdot_1卫星号,卫星坐标(米,WGS84),速度(米/秒)n_n,x_n,y_n,z_n, xdot_n,ydot_n,zdot_n卫星号,卫星坐标(米,WGS84),速度(米/秒)x,y,z载体坐标(米,WGS84)Time伪距观测时刻(秒)4.4 GPS_Positioning.cpp作为主函数,调用Parameter.h、Function.h、F1.cpp、F2.cpp。逐一时刻读取广播星历、伪距等信息,计算卫星位置、速度及载体位置。4.5 Parameter.h字符常量定义、全局变量说明。4.6 Function.h函数说明。4.7 F1.cpp包含辅助函数如下;广播星历读取函数EFileReading() ;观测数据(时间、卫星个数、伪距、卫星号)读取函数ObsReading();最小二乘法求解函数LeastSquareEstimation();矩阵相乘计算函数MatrixMultiply();高斯选主元消去法矩阵求逆函数MatrixInverse();三维向量长度计算函数VectorLength()。4.8 F2.cpp包含函数如下:卫星位置、速度计算函数SatPos_Vel();伪距定位函数Positioning()。5首历元观测时刻参考答案(Position.dat)193645.029 -15567798.7 945675.6 21321624.5 249.3 -2743.6 303.3 0 14665363.6 9394841.8 20224091.6 -2310.3 1043.6 1194.920 -10127606.0 21492092.3 -10899994.3 -90.1 -1466.0 -2807.921 -1578334.5 26219741.9 -284477.9 -409.9 -14.9 3151.828 -20375527.0 15214719.7 7639734.1 -975.7 140.2 -2976.324 -2456690.1 16712706.9 20740220.7 -2203.1 -1370.0 828.0 5 -24924627.9 3359562.9 9069955.6 937.9 -673.8 2850.313 11881411.2 12148251.4 20386065.1 -509.3 2539.5 -1217.6-2196881.6 5177555.2 2998042.25
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号