Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursah.doc
Скачиваний:
7
Добавлен:
01.03.2025
Размер:
765 Кб
Скачать
☆

7.2Приложение 2. Листинг программы «Yuma_gps_Alm1.M».

function [alm,max_kol] = Yuma_GPS_Alm1(Dat)

fid =fopen(Dat,'rt');

max_kol=28;

max_kol = 1;

while not(feof(fid))

max_kol = max_kol + 1;

s1=fscanf(fid,'%s',6);

if not(feof(fid))

lenstr = length(s1);

while (fscanf(fid,'%s',1) == '*')

end

str1 = fscanf(fid,'%s',1);

lenstr = length(str1);

n_sv = sscanf(str1,'%d');

strID = str1(1:lenstr);

ID = sscanf(strID,'%d');

alm(ID).ID = ID;

t_2=fscanf(fid,'%s',1);

alm(ID).Health=fscanf(fid,'%d',1);

t_3=fscanf(fid,'%s',1);

alm(ID).e = fscanf(fid,'%g',1);

t_4=fscanf(fid,'%s',3);

alm(ID).TOA =fscanf(fid,'%g',1);

t_5=fscanf(fid,'%s',2);

alm(ID).deltai=fscanf(fid,'%g',1);%i0

t_6=fscanf(fid,'%s',4);

alm(ID).OMEGADOT=fscanf(fid,'%g',1);

while not(fscanf(fid,'%c',1) == ':')

end

alm(ID).A05=fscanf(fid,'%g',1);

t_8=fscanf(fid,'%s',4);

alm(ID).omega0 =fscanf(fid,'%g',1);

t_9=fscanf(fid,'%s',3);

alm(ID).omega=fscanf(fid,'%g',1);

t_10=fscanf(fid,'%s',2);

alm(ID).M0=fscanf(fid,'%g',1);

t_11=fscanf(fid,'%s',1);

alm(ID).Af0=fscanf(fid,'%g',1);

t_12=fscanf(fid,'%s',1);

alm(ID).Af1=fscanf(fid,'%g',1);

t_13=fscanf(fid,'%s',1);

alm(ID).Week=fscanf(fid,'%g',1);

end

%C=A';

%Week_Alm(ID) = alm(ID).Week;

end

7.3Приложение 3. Листинг программы «Tim.M».

function [week,modeweek,d,dweek,weeks]=Tim(d2,h,min,s)

%d2='10/35/2003';h=23.0;min=59.0;s=59.0;

%week = ceil(DAYSDIF('1/6/1980',d2,3)/7);% текущая неделя

week = floor(DAYSDIF('1/6/1980',d2,3)/7);% предыдущая неделя

modeweek=week-1024;

d = DAYSDIF('1/6/1980',d2,3);

%dweek=6+fix(d-week*7);

dweek=fix(d-week*7);

weeks=(dweek)*24*60*60+h*60*60+min*60+s;

7.4Приложение 4. Листинг программы «ecefllh.M».

function [Rx,Ry,Rz] = ECEFLLH(lon, lat,hr)

%Преобразование координат

%Входные данные:lon-долгота,lat-широта,h-высота;a,b-большая

%и малая оси эллипсоида

%Выходные данные:Rx,Ry,Rz- координаты в ECEF

%Для WGS-84;

%Rx=3504451.023;Ry=2061316.876;Rz=4897990.975;

%lat=0.881278698506528;lon=0.53169758803674;

%hr=122.899802776054;

a=6378137.0;

b=6356752.314;

n=a*a/sqrt(a*a*cos(lat)*cos(lat)+b*b*sin(lat)*sin(lat));

Rx=(n+hr)*cos(lat)*cos(lon);

Ry=(n+hr)*cos(lat)*sin(lon);

Rz=(b*b/(a*a)*n+hr)*sin(lat);

7.5Приложение 5. Листинг программы «llhecef.M».

function [lons,lats,hrs] = LLHECEF(Xk,Yk,Zk)

a=6378137.0;

b=6356752.314;

%X=3504451.023;Y=2061316.876;Z=4897990.975;

%lat=0.881278698506528;lon=0.53169758803674;

%hr=122.899802776054;

xy = sqrt(Xk*Xk + Yk*Yk);

thet = atan(Zk*a/(xy*b));

esq = 1.0-b*b/(a*a);

epsq = a*a/(b*b)-1.0;

lats = atan((Zk+epsq*b*(sin(thet)^3))/(xy-esq*a*(cos(thet)^3)));

lons = atan2(Yk,Xk);%!

if lons < 0

lons = 2*pi + lons;

end ;

n = a*a/sqrt(a*a*cos(lats)*cos(lats) + b*b*sin(lats)*sin(lats));

hrs = xy/cos(lats)-n;

%[lat,lon,hr]'

end

7.6Приложение 6. Листинг программы «Example_Orbita.M».

clear all

%Закомментируйте все строки, кроме 3 и 9 и исполните программу

%Dat = '02_11_15_30.alm';

%[alm,max_kol] = Yuma_GPS_Alm1(Dat);

%[alm(1:31).ID, alm(1:31).Health,alm(1:31).e, alm(1:31).TOA,...

%alm(1:31).deltai, alm(1:31).OMEGADOT,alm(1:31).A05, alm(1:31).omega0,...

%alm(1:31).omega, alm(1:31).OMEGADOT,alm(1:31).M0, alm(1:31).Af0,...

%alm(1:31).Af1, alm(1:31).Week]'

%max_kol

%Закомментируйте все строки, кроме 11 и 12 и исполните программу

%lat=0.881278698506528;lon=0.53169758803674;hr=122.899802776054;

%[Rx,Ry,Rz] = ECEFLLH(lon, lat,hr)

%Закомментируйте все строки, кроме 14 и 15 и исполните программу

d2='11/02/2004';h=10.0;min=0.0;s=0.0;

[week,modeweek,d,dweek,weeks]=Tim(d2,h,min,s)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]