Спутниковые системы навигации. Учебное пособие. Учебное пособие ( Лабораторный практикум на компьютере ) Київ 2008 1
Скачать 4.49 Mb.
|
РАЗДЕЛ 4 Орбитальное движение навигационных спутников 4.1 Орбитальное движение спутников GPS 4.1.1 Краткие сведения из теории Орбитального движения спутников имеет исключительно важное значение при ре- шении основной навигационной задачи – определении координат, скорости и времени на основании измерений псевдодальностей до спутников и использовании информации, пе- редаваемой в соответствующих сообщениях спутников. Представленные ниже программ- ные продукты написаны в полном соответствии с интерфейсным контрольным докумен- том для GPS [9]. Подробные сведения о примененных алгоритмах даются в книге [1] ( подраздел 2. 2, стр. 87- 96, подраздел 4. 2, стр. 201- 204) и ICD GPS [9]. Отметим, что по- лучаемые по приведенным программам данные соответствуют экспериментальным ре- зультатам, полученным с навигационных приемников различного типа. Для изучения и исследования орбитального движения спутников GPS применяются следующие m-файлы и функции: ECEFLLH.m, LLHECEF.m-функции для преобразования координат; Tim.m- функция для расчета времени; Yuma_GPS_Alm1.m- функция считыва- ния данных альманаха и m-файл Orbita_GPS.m, рассчитывающий орбиты спутников GPS по данным альманаха, представленного в формате YUMA. Более полные сведения о пере- численных программах даются в комментариях к ним. Цель лабораторных работ: изучение основ вторичной обработки информации в навигационных приемниках, работающих со спутникам GPS. 4.1.2 Лабораторная работа 4. 1 «Орбитальное движение спутников GPS» Пакет программ для выполнения лабораторной работы расположен в папке ORBITA_GPSv1. Для выполнения работы в качестве входных данных потребуется аль- манах спутников GPS в формате YUMA, который можно получить с нескольких сайтов или с навигационного приемника, если приемник имеется в лаборатории. Рекомендуется следующий порядок выполнения лабораторной работы. 1. Задание 1. Запишите альманах в формате YUMA на жесткий диск компьютера. По умолчанию в комплексе программ установлен альманах с именем almanac_yuma_week0371_589824.txt (альманах приведен в приложении). Имя альмана- ха внесите в отчет. 2. Создайте папку ORBITA_GPSv1_My и скопируйтев ее все программы из папки ORBITA_GPSv1 и альманах, с которым Вы будете работать. 70 3. Запустите MatLab [7, 8]. 4. Обратитесь к папке ORBITA_GPSv1_My и откройте ее. 5. Последовательно откройте функции и m- файлы из папки ORBITA_GPSv1: Orbita_GPS.m, Yuma_GPS_Alm1.m, Tim.m, LLHECEF.m, ECEFLLH.m, PR_Tim.m, PR_Yuma_GPS_Alm1.m, almanac_yuma_week0371_589824.txt. Изучите тексты про- грамм и комментарии в каждой программе. Выполните задания 2 и 3. 6. Задание 2. Выполните m- файл PR_Tim.m и изучите в командном окне полученный результат. Сформируйте на основе m- файла PR_Tim.m файл с именем PR_Tim_My.m. Введите в сформированный файл данные, соответствующие дате выполнния работы, сохраните файл и выполните файл. Результат из командного окна запишите в отчет. 7. Задание 3. . Выполните m- файл PR_Yuma_GPS_Alm1.m и изучите в командном окне полученный результат. Сопоставьте данные из командного окна с данными альманаха almanac_yuma_week0371_589824.txt. Сформируйте на основе m- файла PR_Yuma_GPS_Alm1.m файл с именем PR_Yuma_GPS_Alm1_My.m. Введите в сфор- мированный файл имя записанного альманаха, сохраните файл и выполните файл, сравните результат из командного окна с данными альманаха и результат запишите в отчет. 8. Очистите командное окно из папки ORBITA_GPSv1_My, откройте m файл с именем Orbita_GPS.m, выполните m-файл, ознакомьтесь с графическим результатом и выпол- ните задание 4. 9. Задание 4. Присвойте переменной Dat в файле Orbita_GPS.m имя альманаха из п.1 и введите данные о начале отсчета как указано в комментариях к файлу. Установите скорость вращения Земли равную нулю. Убедитесь, что все графики, кроме графика 1 закомментированы. Исполните файл. Результат выполнения график 1 запишите на дискету, как приложение к отчету. В отчет внесите описание графика 1. 10. Задание 5. Установите скорость вращения Земли, равную 7.2921151467e-005. Выбери- те номер спутник, с которым будете работать. Рекомендация: для генерации вариантов для каждого студента можно задавать номер спутника равный, например, номеру дня рождения, поскольку число спутников GPS, как правило, близко к 30. Разблокируйте график 2, исполните файл. Дайте объяснения зависимостям улов азимута и видимости. График запишите на сменный диск, а интерпретацию результатов в отчет. 11. Задание 5. Разблокируйте график 3, исполните файл. Дайте объяснения зависимостям доплеровской частоты, широты от долготы. График запишите на сменный диск, а ин- терпретацию результатов в отчет. 71 12. Задание 6. Разблокируй график 4, исполните файл. Объясните поведение проекции орбиты на плоскость XY и изменение дальности до спутник от времени. График запи- шите на сменный диск, а интерпретацию результатов в отчет. 13. Задание 7. Выберите группу спутников, принадлежащих одной из 6 орбит и повторите расчетные процедуры заданий 4- 6. График запишите на сменный диск, а интерпрета- цию результатов в отчет. 14. Оформите отчет. Графики результатов моделирования можно предъявить на сменном диске, как приложение к отчету. 4.1.3 Вопросы и задания для самоподготовки 1. Объясните, какой смысл вкладывается в содержание составляющих альманаха YUMA: ID, Health, Eccentricity, Time of Applicability(s), Orbital Inclination(rad), Rate of Right As- cen(r/s), SQRT(A) (m 1/2), Right Ascen at Week(rad), Argument of Perigee(rad), Mean Anom(rad), Af0(s) Af1(s/s), week. 2. Объясните зависимость изменения доплеровской частоты при движении спутника по орбите. 3. Объясните зависимость изменения дальности до спутника от времени для неподвиж- ного наблюдателя. 4. Для каких целей используются данные альманаха в спутниковых навигационных при- емниках. 5. Запишите уравнение для расчета дальностей до спутников и найдите это уравнение в текстах программ. 6. С помощью какого фрагмента программного комплекса рассчитываются углы видимо- сти и азимута спутников? 7. Какой содержательный смысл имеет таблица в командном окне, появляющаяся после выполнения файла Orbita_GPS.m. 4.1.4 Функции и файлы из папки ORBITA_GPSv1 Функция ECEFLLH function [Rx,Ry,Rz] = ECEFLLH(lon, lat,hr) %Имя функции: ECEFLLH.m %Функция выполняет преобразование координат %Входные данные:lon-долгота,lat-широта,h-высота;a,b-большая %и малая полуоси эллипсоида %Выходные данные:Rx,Ry,Rz- координаты в ECEF %Для WGS-84 72 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); Функция LLHECEF function [lons,lats,hrs] = LLHECEF(Xk,Yk,Zk) %Имя функции: LLHECEF.m %Функция выполняет преобразование координат. %Входные данные:Rx,Ry,Rz- координаты в ECEF %Выходные данные:lon-долгота,lat-широта,h-высота %a,b-большая и малая полуоси эллипсоида a=6378137.0; b=6356752.314; 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; end Функция Tim function [week,modeweek,d,dweek,weeks]=Tim(d2,h,min,s) %Имя функции:Tim.m %Функция Tim.m работает совместно со стандартной функцией MatLab DAYSDIF.m и рассчитывает: %week- текущую GPS-неделю, modeweek- модифицированную GPS неделю, d- количество дней, %dweek- день недели ,weeks- время GPS %Входные данные:d2='10/23/2007' - 'номер месяца/номер дня месяца/номер года', h=23.0 -часы, %;min=59.0- минуты, s=59.0- секунды на которые рассчитываются выходные данные %d2='10/35/2003';h=23.0;min=59.0;s=59.0; week = floor(DAYSDIF('1/6/1980',d2,3)/7);% текущая GPS-неделя modeweek=week-1024;% модифицированная GOS-неделя d = DAYSDIF('1/6/1980',d2,3);%количество дней dweek=fix(d-week*7);%номер дня недели (нулевой день-воскресенье) weeks=(dweek)*24*60*60+h*60*60+min*60+s;% время GPS в неделе (секунды) Файл PR_Tim.m 73 %Пример применения функции Tim.m %Имя m- файла: PR_Tim.m d2= '10/13/2006'; h=22.0; min=40.0; s=11.0; [week,modeweek,d,dweek,weeks]=Tim(d2,h,min,s); [week,modeweek,d,dweek,weeks] %=1396 372 9777 5 513611-результат расчета; %1396-неделя GPS, отсчитываемая с ночи с 5 на 6 января 1980 года, 372=1396-1024- модифициро- ванная % неделя GPS, 9777- количество дней прошедших с 6 января 1980 года, 5-пятый день недели (пятни- ца), %считая с понедельника, 513611-количество секунд от начала текущей недели. d = DAYSDIF('1/6/1980',d2,3);%функция MatLab Функция Yuma_GPS_Alm1 function [alm,max_kol] = Yuma_GPS_Alm1(Dat) %Имя функции:Yuma_GPS_Alm1.m %Функция читает данные альманаха, записанные в формате YUMA %Входные данные записываются в переменную Dat, например, %Dat='Имя файла альманаха в формате YUMA' %Выходные данные:1. Численные значения альманаха спутников GPS, представляемые %в виде структуры в переменной alm =[%alm(ID).ID(1); alm(ID).Health(2); alm(ID).e(3); %alm(ID).TOA(4); alm(ID).deltai(5);%alm(ID).OMEGADOT(6); alm(ID).A05(7); alm(ID).omega0(8); %alm(ID).omega(9);%alm(ID).M0(10); alm(ID).Af0(11); alm(ID).Af1(12); alm(ID).Week(13)], где % цифра в скобках обозначает порядковый номер параметра альманаха в формате YUMA . %Для чтения альманаха в m-файл фикция записывается в виде [alm,max_kol] = Yuma_GPS_Alm1(Dat). %2. Количество спутников GPS записывается в переменную max_kol. for i=1:32% цикл alm(i).ID = 0;% обнуление массива alm(i).Health=63;% обнуление массива end; fid =fopen(Dat,'rt');% открыть файл для чтения %чтение данных из файла max_kol = 0; while not(feof(fid)) s1=fscanf(fid,'%s',6); if not(feof(fid)) lenstr = length(s1); 74 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); max_kol = max_kol+1 ; end end fclose(fid) Файл Orbita_GPS.m clear all 75 %Имя m-файла:Orbita_GPS.m %Программа рассчитывает орбиты навигационных спутников GPS %Входные данные: %файл альманаха в формате Yuma,имя файла альманаха присваивается %переменной "Dat",например,Dat = 'имя файла альманаха'; %данные о начале отсчета "d2",d2='месяц/день/год';h=час;min=минута;s=секунда; %координаты позиции приемника –lat (широта в радианах),lon (долгота в радианах, %hr (высота в метрах); %шаг, с каким будут рассчитываться параметры орбит (step,секунды); %количество точек (L), в которых будут рассчитываться параметры орбит %L=12*3600/step,L читается так: количество часов (например,12) %число секунд в часе (3600) деленное на шаг (step) %В программе применяются функции: Yuma_GPS_Alm1.m- считывание данных альманаха, %заданного в формате YUMA; ECEFLLH.m, LLHECEF.m - преобразование координат;Tim.m- расчет времени; %Постоянные: %скорость вращения Земли OMEGAeDOT=7.2921151467e-005; %или %OMEGAeDOT=0; mu=398600500000000; F_CONST = 4.442807633E-10; %Задание цветов для графики j_color = 0; color6(1:16) = [':' 'k' '.' 'r' 'g' 'r' 'c' 'm' 'r' ':' 'g' ':' 'b' ':' 'k' 'h']; %Входные данные Dat = 'almanac_yuma_week0371_589824.txt'; d2='10/06/2006';h=13.0;min=8.0;s=55.0; lat = 0.88032730015257; %50 град; 26 мин.; 20.54 с lon = 0.53109641675259;%30 град; 25 мин.; 46.4995 с hr=184;%высота в метрах step=300; L=(10*3600)/step; %Чтение альманаха [alm,max_kol] = Yuma_GPS_Alm1(Dat); kol = 0; for i = 1 : max_kol id=alm(i).ID; if id > 0 kol = kol + 1; 76 nom_ns(kol) = id; end nom_ns;%номер навигационного спутника end %Преобразование координат [Rx,Ry,Rz] = ECEFLLH(lon, lat,hr); %Rx=0;Ry=0;,Rz=0;%центр масс Земли %Выбор спутников: %для выбора спутников вводится параметры kol-количеество спутников для %исследования и номера спутников, например, kol =4; nom_ns(1:kol) = [3 6 7 31], %такая запись обозначает, что исследуются (рассчитываются орбиты 4 спутников %с номерами 3,6,7,31; количество номеров спутников должно совпадать с kol %Варианты (можно любые другие) %kol =9 %nom_ns(1:kol) = [1 3 4 5 6 7 8 9 10]; %kol =5 %nom_ns(1:kol) = [1 13 14 26 29]; %1 спутники орбиты 1 %kol =5 %nom_ns(1:kol) = [2 5 22 28 30]; %2 спутники орбиты 2 %kol =4 %nom_ns(1:kol) = [3 6 7 31]; %3 спутники орбиты 3 %kol =5 %nom_ns(1:kol) = [4 11 15 17 24 ]; %4 спутники орбиты 4 %kol =4 %nom_ns(1:kol) = [8 9 25 27]; %5 спутники орбиты 5 %kol =5 %nom_ns(1:kol) = [10 18 20 21 23]; %6 спутники орбиты 6 %kol =29 %nom_ns(1:kol) = [1 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31] ; %kol =14; %nom_ns(1:kol) = [1 3 4 5 6 7 8 9 10 11 13 14 15 16];% 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31] ; kol =2; nom_ns(1:kol)=[1 3 ]; str1 = num2str(nom_ns(1:kol)); for k = 1 : kol i = nom_ns(k); %Начало отсчета текущего времени [week,modeweek,d,dweek,weeks]=Tim(d2,h,min,s); %Расчет орбит спутников по формулам ( ) 77 for j = 1:L % 0:L t( j )=weeks+step*j; %-step; %t1(j) = t(j)/60; %изменение дискретности текущего времени %d_wn = (week - alm(i).Week);%если в альманахе учтены 1024 %d_wn = 0; d_wn=(modeweek-alm(i).Week);%если в альманахе не учтено 1024 tk = t(j) + d_wn * 604800 - alm(i).TOA; d_wn = abs(modeweek - alm(i).Week); dd = 302400.0 + d_wn * 604800; while (abs(tk) > dd) if tk > dd tk = tk - 604800; else if tk < -dd tk = tk + 604800; end end % if end % while %Справочник по альманаху- цифра в скобках обозначает порядковый номер %параметра альманаха в формате YUMA %alm(ID).ID(1); alm(ID).Health(2); alm(ID).e(3); alm(ID).TOA(4); alm(ID).deltai(5); %alm(ID).OMEGADOT(6); alm(ID).A05(7); alm(ID).omega0(8); alm(ID).omega(9); %alm(ID).M0(10); alm(ID).Af0(11); alm(ID).Af1(12); alm(ID).Week(13); n0=sqrt((mu)/(alm(i).A05^6)); n=n0; Mk = alm(i).M0+n*tk; e=alm(i).e; %Решение уравнения Кеплера eps = 1.0E-15; y = e * sin(Mk); x1 = Mk; x = y; for k = 0 : 15 x2 = x1; x1 = x; y1 = y; y = Mk - (x - e * sin(x)); if (abs(y - y1) < eps) break 78 end x = (x2 * y - x * y1) / (y - y1); end %k Ek = x; deltr = F_CONST * alm(i).e * alm(i).A05 * sin(Ek); dt1 = alm(i).Af0 + alm(i).Af1 * tk + deltr; tk = tk - dt1; nuk =atan2(sqrt(1-alm(i).e^2)*sin(Ek),(cos(Ek)-alm(i).e)); Ek = acos((alm(i).e+cos(nuk))/(1+alm(i).e*cos(nuk))); Fk =nuk + alm(i).omega; uk =Fk; ik=alm(i).deltai; rk =(alm(i).A05^2)*(1.0-alm(i).e*cos(Ek)); xkk =rk*cos(uk); ykk =rk*sin(uk); OMEGAk =alm(i).omega0+(alm(i).OMEGADOT-OMEGAeDOT)*tk-OMEGAeDOT*alm(i).TOA; %Координаты спутников Xk(j) = xkk *cos(OMEGAk)-ykk*cos(ik)*sin(OMEGAk); Yk(j) = xkk*sin(OMEGAk)+ykk*cos(ik)*cos(OMEGAk); Zk(j) = ykk*sin(ik); %Дальности до спутников PR(j) = sqrt((Xk(j) - Rx)^2 + (Yk(j) - Ry)^2 + (Zk(j) - Rz)^2); %Перевод в географическую систему если требуется %[lons,lats,hrs] = LLHECEF(Xk,Yk,Zk); %(Llon(j),Llat(j),Hhr(j)) = [lons,lats,hrs]; xls = Xk(j) - Rx; yls = Yk(j) - Ry; zls = Zk(j) - Rz; range1 = sqrt(xls*xls+yls*yls+zls*zls); if j>1 doppler(j-1) = (range1 - range2) * 5.2514 / step;%расчет доплеровской частоты end range2 = range1; P = sqrt(Rx * Rx + Ry * Ry + Rz * Rz); tdot = ( Rx*xls+Ry*yls+Rz*zls)/range1/P; xll = xls/range1; yll = yls/range1; zll = zls/range1; %Расчет угла видимости if tdot >= 1.00 79 b = 0.0; elseif tdot <= -1.00 b = pi; else b = acos( tdot); end satang = pi/2.0 - b; TT(j) =satang; %Расчет угла азимута xn =-cos(lon)*sin(lat); yn =-sin(lon)*sin(lat); zn = cos(lat); xe =-sin(lon); ye = cos(lon); xaz = xe*xll + ye*yll; yaz = xn*xll + yn*yll + zn*zll; if (xaz == 0) or (yaz == 0) az(j)= 0; else az(j) = atan2(xaz,yaz); end if az(j) < 0 az(j) = az(j) + pi*2; end end % j for j = 1:L [Llon(j),Llat(j),Hhr(j)] = LLHECEF(Xk(j),Yk(j),Zk(j));%преобразование координат if j > 1 if abs(Llon(j)-Llon(j-1)) > pi Llon(j) = Llon(j) + 2*pi; end end end j_color = j_color + 1; if (j_color > 14 ) j_color = 1; end %F_ont=get(gcf,'CurrentAxes'),'FontSize',16,'FontName','TimesNewRoman';%формат текста на графиках S = color6(j_color); %Графика 80 %График 1 для вывода графика убрать символы %{ и %} относящиеся к данному графику %{ h_F1=gca; plot3( Xk(:),Yk(:),Zk(:),S), hold on, set(get(gcf,'CurrentAxes'),'FontSize',12,'FontName','TimesNewRoman'); set(h_F1,'Position',[0.1 0.1 0.85 0.9]) ; xlabel('Координата X') ylabel('Координата Y'), zlabel ('Координата Z'),grid on %} %{ %График 2 для вывода графика убрать символы %{ и %} относящиеся к данному графику subplot(2,1,1),plot(t,az(:),S), set(get(gcf,'CurrentAxes'),'FontSize',12,'FontName','TimesNewRoman') hold on, xlabel('Время'), ylabel('Угол азимута,радиан') grid on subplot(2,1,2),plot(t,TT(:),S), set(get(gcf,'CurrentAxes'),'FontSize',12,'FontName','TimesNewRoman') hold on,xlabel ('Время'), ylabel('Угол видимости'), grid on %} %{ %График 3 для вывода графика убрать символы %{ и %} относящиеся к данному графику subplot(2,1,1),plot(t(1:(j-1)),doppler(:),S), set(get(gcf,'CurrentAxes'),'FontSize',12,'FontName','TimesNewRoman') hold on, xlabel('Время '), ylabel('Доплеровская частота'), grid on subplot(2,1,2), plot(Llon(1:j),Llat(1:j),S), set(get(gcf,'CurrentAxes'),'FontSize',12,'FontName','TimesNewRoman') hold on, xlabel('Долгота'),ylabel('Широта') grid on %} %График 4 для вывода графика убрать символы %{ и %} относящиеся к данному графику %hF=figure('Color','w','MenuBar','none') subplot(1,2,1) ,plot(Xk(:),Yk(:),S), 81 set(get(gcf,'CurrentAxes'),'FontSize',12,'FontName','Times New Roman') hold on, xlabel('Проекция орбит на плоскость XY') grid on subplot(1,2,2), plot(t,PR(:),S), set(get(gcf,'CurrentAxes'),'FontSize',12,'FontName','Times New Roman') hold on, xlabel('Время'), ylabel('Дальность,метр '),grid on end % i clear Для работы с приведенными программами необходимо их скопировать в отдельную папку и изменяя входные данные выполнить желательные расчеты. 4.1.5 Примеры расчетов с помощью m-файла : Orbita_GPS.m. -3 -2 -1 0 1 2 3 x 10 7 -4 -2 0 2 4 x 10 7 -3 -2 -1 0 1 2 3 x 10 7 Координата X Координата Y Ко ор ди на та Z Рис. 4.1. Шесть орбит спутников GPS (из графика 1 файла:Orbita_GPS.m) 82 -3 -2 -1 0 1 2 3 x 10 7 -4 -2 0 2 4 x 10 7 -3 -2 -1 0 1 2 3 x 10 7 Координата X Координата Y К оорд ин ат а Z Рис. 4.2. Орбиты 29 спутников за 12 часов (из графика 1 файла:Orbita_GPS.m) 4.75 4.8 4.85 4.9 4.95 5 5.05 5.1 5.15 5.2 5.25 x 10 5 0 2 4 6 8 Время Уг ол аз им ут а ,рад иа н 4.75 4.8 4.85 4.9 4.95 5 5.05 5.1 5.15 5.2 5.25 x 10 5 -2 -1 0 1 2 Время У го л ви ди м ос ти Рис. 4.3. Углы азимута и видимости 29 спутников за 12 часов (из графика 2 файла:Orbita_GPS.m) 83 4.75 4.8 4.85 4.9 4.95 5 5.05 5.1 5.15 5.2 5.25 x 10 5 -4000 -2000 0 2000 4000 6000 Время Д оп л е ро в ск а я ча ст от а 0 1 2 3 4 5 6 7 8 9 10 -1 -0.5 0 0.5 1 Долгота Ши р от а Рис. 4.4. Доплеровская частота и следы 29 спутников за 12 часов (из графика 3 файла:Orbita_GPS.m) -3 -2 -1 0 1 2 3 x 10 7 -3 -2 -1 0 1 2 3 x 10 7 Проекция орбит на плоскость XY 4.6 4.8 5 5.2 5.4 x 10 5 2 2.2 2.4 2.6 2.8 3 3.2 3.4 x 10 7 Время Дал ьн ост ь, ме тр Рис. 4.5.Проекции орбит и дальности до 29 спутников за 12 часов (из графика 4 файла:Orbita_GPS.m) Файл Orbita_GPS.m предоставляет широкие возможности для исследования самых различных вариантов орбитального движения навигационных спутников GPS исследова- телю, работающему с данной программой. Приведем еще один вариант файла- программы, решающей задачу фильтрации спутников по здоровью и видимости из конкретной точки в заданное время. 84 |