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);