📄 trace_even.m
字号:
function [long,lat]=trace_even(long0,lat0,theta,v0,t0,Xu_start,Yu_start,Zu_start,Disstart_end)
%匀速过程
Re=6378137;
f=1/298.157;
trans=2*pi/360;
v=50;
dt=10;
Tacc=600;%前一段的加速时间
a=v/Tacc;
i=1;
while v0==v0;%m/s
vn=v0*sin(theta);%速度分解为北向
ve=v0*cos(theta);%东向
Rm=Re*(1+2*f-3*f*sin(trans*lat0)^2);
Rn=Re/((1-f)^2*sin(trans*lat0)^2+cos(trans*lat0)^2);
deltalong=ve*dt/(Rm*cos(trans*lat0)*trans);
deltalat=vn*dt/(Rn*trans);
long(i)=long0+deltalong;
lat(i)=lat0+deltalat;
[Xu,Yu,Zu]=user_ecef(long0,lat0,0);
Dis=sqrt((Xu_start-Xu)^2+(Yu_start-Yu)^2+(Zu_start-Zu)^2);
%当前点与起始点的距离
if Dis<=Disstart_end-0.5*a*Tacc^2%如果该距离大于匀速要求的距离,则开始减速
t0=t0+dt;
v0=v;
else
t2=t0;
break;
end
long0=long(i);
lat0=lat(i);
i=i+1;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -