理论基础
摘自 惯性导航、卫星定位及其组的基本原理
下属代码只是核心代码,非完整代码 完整代码下方链接下载
完整代码下载地址
坐标转换公式
地球常用几何数据
代码
注:代码是用matlab 写的
大地坐标系到笛卡尔坐标系的变换
%% 大地坐标系到笛卡尔坐标系的转换
%e 表示地球离心率
%R_N 地球N轴长度
%Lat lon分别表示经纬度
function DescartesPos=e2d(Lat,Lon,h)
e=0.08181919;
eth=earth([Lat Lon h],[0 0 0]);
R_N=eth.N;
NplusH=R_N+h;
DescartesPos(1)=(NplusH)*cos(Lat)*cos(Lon);
DescartesPos(2)=(NplusH)*cos(Lat)*sin(Lon);
DescartesPos(3)=((R_N)*(1-e*e)+h)*sin(Lat);
end
笛卡尔坐标系到大地坐标系的变换
%% 笛卡尔坐标系到大地坐标系的转换
%e 表示地球离心率
%R_N 地球N轴长度
%Lat lon分别表示经纬度
function pos=d2e(x,y,z)
a=6378137;
b=6356752.3142;
e=0.08181919;
dot_e=sqrt((a^2-b^2)/b^2);
p=sqrt(x*x+y*y);
theta=atan2(z*a,p*b);
pos(2)=2*atan2(y,x+sqrt(x^2+y^2));
pos(1)=atan2((z+(dot_e^2)*b*sin(theta)^3),(p-e^2*a*cos(theta)^3));
Lat=pos(1);
N=(a*a)/sqrt(a*a*cos(Lat)^2+b^2*sin(Lat)^2);
h=(p/cos(Lat))-N;
pos(3)=h;
end