www.gusucode.com > gps卫星位置预报,MATLAB编写,有动画界面源码程序 > code5/gps_final_new/TestAlmFromNet.m
clear;clc;close all; PRN=zeros(32,1); Health=zeros(32,1); es=zeros(32,1); Toe=zeros(32,1); delta_i=zeros(32,1); dot_omega=zeros(32,1); sqrt_as=zeros(32,1); omega0=zeros(32,1); w=zeros(32,1); M0=zeros(32,1); af0=zeros(32,1); af1=zeros(32,1); week=zeros(32,1); SatPosX=zeros(32,1); SatPosY=zeros(32,1); SatPosZ=zeros(32,1); cnt=0; fid=fopen('almanac_yuma_week0548.txt','r'); while 1 tline=fgetl(fid); cnt=cnt+1; if ~ischar(tline), break, end end fclose(fid); recordnum=floor(cnt/15); fid=fopen('almanac_yuma_week0548.txt','r'); for m=1:recordnum tline=fgetl(fid); tline=fgetl(fid); [temp,tempx]=strread(tline,'%s %d'); i=tempx; PRN(i)=i; tline=fgetl(fid); [temp,Health(i)]=strread(tline,'%s %d'); tline=fgetl(fid); [temp,es(i)]=strread(tline,'%s %f'); tline=fgetl(fid); [temp,temp1,temp2,Toe(i)]=strread(tline,'%s %s %s %f'); tline=fgetl(fid); [temp,temp1,delta_i(i)]=strread(tline,'%s %s %f'); tline=fgetl(fid); [temp,temp1,temp2,temp3,dot_omega(i)]=strread(tline,'%s %s %s %s %f'); tline=fgetl(fid); [temp,temp1,temp2,sqrt_as(i)]=strread(tline,'%s %s %s %f'); tline=fgetl(fid); [temp,temp1,temp2,temp3,omega0(i)]=strread(tline,'%s %s %s %s %f'); tline=fgetl(fid); [temp,temp1,temp2,w(i)]=strread(tline,'%s %s %s %f'); tline=fgetl(fid); [temp,temp1,M0(i)]=strread(tline,'%s %s %f'); tline=fgetl(fid); [temp,af0(i)]=strread(tline,'%s %f'); tline=fgetl(fid); [temp,af1(i)]=strread(tline,'%s %f'); tline=fgetl(fid); [temp,week(i)]=strread(tline,'%s %d'); tline=fgetl(fid); end fclose(fid); for t=0:11 figure(t+1) set (gcf,'Position',[0,30,1200,800], 'color','w') DrawEarth(t); axis([-30000 30000 -30000 30000 -30000 30000]); hold on; T=233472+t*3600*2; for i=1:32 [SatPosX(i),SatPosY(i),SatPosZ(i)]=CompSatPosFromAlm(PRN(i),T,Toe(i),M0(i),sqrt_as(i),es(i),w(i),delta_i(i),omega0(i),dot_omega(i)); DrawSatOrbit(PRN(i),T,Toe(i),M0(i),sqrt_as(i),es(i),w(i),delta_i(i),omega0(i),dot_omega(i)); DrawSat(SatPosX(i),SatPosY(i),SatPosZ(i),1); end drawnow; M(t+1)=getframe; end close all; figure(111); set (gcf,'Position',[0,30,1200,800], 'color','w') axis equal; axis off; movie(M,12,2);