Единое окно доступа к образовательным ресурсам

Спутниковые системы навигации: Лабораторный практикум на компьютере

Голосов: 113

Приводится лабораторный практикум по вопросам спутниковых радионавигационных систем в виде открытых программных комплексов в среде MatLab. Лабораторный практикум в виде 16 работ с заданиями, примерами и контрольными вопросами охватывает направления формирования сигналов спутниковых навигационных систем GPS и ГЛОНАСС, преобразования координат, моделирование орбит навигационных спутников GPS, ГЛОНАСС, GALILEO, декодирования и расшифровка данных навигационных спутников, решение навигационной задачи расчета позиции приемника пользователя. Для студентов, аспирантов и преподавателей дисциплин, изучающих системы и компоненты спутниковых средств навигации.

Приведенный ниже текст получен путем автоматического извлечения из оригинального PDF-документа и предназначен для предварительного просмотра.
Изображения (картинки, формулы, графики) отсутствуют.
    %График 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.




                                       7
                                x 10
                       3

                       2

                       1
        Координата Z




                       0

                       -1

                       -2

                       -3
                        4
                                           2                                                                3
                                                                                                     2
                            7                  0                                              1
              x 10                                                                      0                   7
                                                     -2                         -1                       x 10
                                                                         -2
                                                             -4   -3
                                  Координата Y                                       Координата X

                                 Рис. 4.1. Шесть орбит спутников GPS (из графика 1 файла:Orbita_GPS.m)




                                                                  82


                                                        7
                                                 x 10
                                        3

                                        2

                                        1
                         Координата Z




                                        0

                                        -1

                                        -2

                                        -3
                                         4
                                                            2                                                                                             3
                                                                                                                                          2
                                             7                     0                                                            1
                               x 10                                                                                  0                                    7
                                                                             -2                           -1                                    x 10
                                                                                                  -2
                                                                                     -4    -3
                                                   Координата Y                                                 Координата X

                                             Рис. 4.2. Орбиты 29 спутников за 12 часов (из графика 1 файла:Orbita_GPS.m)


                             8
   Угол азимута,радиан




                             6


                             4


                             2


                           0
                           4.75                    4.8          4.85   4.9        4.95      5     5.05     5.1           5.15       5.2         5.25
                                                                                          Время                                                  5
                             2                                                                                                                x 10


                             1
Угол видимости




                             0


                          -1


                          -2
                          4.75                     4.8          4.85   4.9        4.95      5      5.05        5.1       5.15       5.2          5.25
                                                                                          Время                                                       5
                                                                                                                                               x 10

Рис. 4.3. Углы азимута и видимости 29 спутников за 12 часов (из графика 2 файла:Orbita_GPS.m)




                                                                                           83


                            6000




     Доплеровская частота
                            4000

                            2000

                                   0

                            -2000

                            -4000
                                4.75          4.8     4.85     4.9    4.95        5                       5.05           5.1     5.15   5.2     5.25
                                                                                Время                                                         x 10
                                                                                                                                                     5

                               1


                             0.5
            Широта




                               0


                             -0.5


                              -1
                                    0         1        2       3       4          5                       6              7       8      9       10
                                                                               Долгота




   Рис. 4.4. Доплеровская частота и следы 29 спутников за 12 часов (из графика 3 файла:Orbita_GPS.m)

                                   7                                                                           7
                            x 10                                                                        x 10
                3                                                                                 3.4


                2                                                                                 3.2

                                                                                                   3
                1
                                                                                 Дальность,метр




                                                                                                  2.8
                0
                                                                                                  2.6
          -1
                                                                                                  2.4

          -2
                                                                                                  2.2

          -3                                                                                       2
           -3                           -2    -1      0       1      2     3                       4.6             4.8           5      5.2          5.4
                                        Проекция орбит на плоскость XY x 107                                                   Время           x 10
                                                                                                                                                         5




  Рис. 4.5.Проекции орбит и дальности до 29 спутников за 12 часов (из графика 4 файла:Orbita_GPS.m)


                 Файл Orbita_GPS.m предоставляет широкие возможности для исследования самых
различных вариантов орбитального движения навигационных спутников GPS исследова-
телю, работающему с данной программой.
                 Приведем еще один вариант файла- программы, решающей задачу фильтрации
спутников по здоровью и видимости из конкретной точки в заданное время.


                                                                               84


      4.1.6 Лабораторная работа 4. 2 «Наблюдение спутников GPS»

     Пакет программ для выполнения лабораторной работы нужно сформировать само-
стоятельно. Для выполнения работы в качестве входных данных потребуется альманах
спутников GPS в формате YUMA, который можно получить с нескольких сайтов или с
навигационного приемника, если приемник имеется в лаборатории.
     Рекомендуется следующий порядок действий для выполнения лабораторной работы.
1. Задание 1. Запишите альманах в формате YUMA на жесткий диск компьютера. По
   умолчанию       в     комплексе     программ          установлен   альманах    с    именем
   almanac_yuma_week0371_589824.txt (альманах приведен в приложении). Имя альмана-
   ха внесите в отчет.
2. Задание 2. Создайте папку ORBITA_GPSv2_My.
3. В папку ORBITA_GPSv2_My запишите: файл альманаха, с которым будете работать,
   скопируйте функции ECEFLLH, LLHECEF, Yuma_GPS_Alm1, файл Tim.m из папки
   ORBITA_GPSv1 и файл Orbita_GPS_1.m из папки ORBITA_GPSv2. Эти данные вне-
   сите в отчет в соответствующий раздел задания 2
4. Задание 3. Пользуясь комментариями к файлу Orbita_GPS_1.m установите время, в
   которое должны наблюдаться спутники. Выполните файл и результаты, полученные на
   графике, занесите в отчет.
5. Задание 4. Во входных данных файла Orbita_GPS_1.m измените время на 6 часов, вы-
   полнить файл и полученную конфигурацию наблюдаемых спутников занести в отчет.
   Объяснить разницу между результатами задания 3 и задания 4.
6. Задание 5. Во входных данных файла Orbita_GPS_1.m, пользуясь комментариями ус-
   тановить вывод наблюдаемых спутников в таблицу, появляющуюся в командном окне
   после исполнения файла и сопоставить эту таблицу с данными, полученными с нави-
   гационного приемника на установленное в файле время.
   Примечание: практически все навигационные приемники имеют опцию для отображения на компьютере
   наблюдаемых спутников в полярной системе координат.

      4.1.7 Вопросы и задания для самоподготовки

1. Повторите вопросы к лабораторной работе 4. 1.
2. Рассчитайте, сколько времени спутник GPS находится в зоне видимости неподвижного
   наблюдателя?
3. В каких пределах изменяется угол видимости спутника?
4. В каких пределах изменяется азимут спутника?
5. Сколько спутников GPS могут одновременно находиться в зоне видимости?


                                               85


        4.1.8 Файл из папки ORBITA_GPSv2


      Файл Orbita_GPS_1.m
clear all
      %Имя m-файла:Orbita_GPS_1.m
      %Программа рассчитывает углы видимости, азимута и положение видимых спутников на заданный
      момент времени навигационных спутников GPS
      %Входные данные:
      %файл альманаха в формате Yuma,имя файла альманаха присваивается
      %переменной "Dat",например,Dat = 'имя файла альманаха';
      %данные о начале отсчета "d2",d2='месяц/день/год';h=час;min=минута;s=секунда;
      %координаты позиции приемника -lat(широта в радианах),lon (долгота в радианах,
      %hr (высота в метрах);
      %шаг с каким будут рассчитываться параметры (step,секунды);
      %количество точек (L), в которых будут рассчитываться параметры орбит
      %L=12*3600/step,L читается так: количество часов (например,12)
      %число секунд в часе (3600) деленное на шаг (step)
      %Постоянные:
      %скорость вращения Земли
      OMEGAeDOT=7.2921151467e-005;
      A_WGS84=6378137.0;
      B_WGS84=6356752.314;


      %или
      %OMEGAeDOT=0;
      mu=398600500000000;
      F_CONST                   = 4.442807633E-10;
       kt=3;%установка времени на титульной надписи графика, определяется параметрами d2'; h; min; s и j
      или L;
      %Задание цветов для графики
      j_color = 0;
      color6(1:14) = ['k' 'b' 'g' 'r' 'c' 'm' 'r' ':' 'g' ':' 'b' ':' 'k' 'h'];
      %Входные данные
      Dat = 'almanac_yuma_week0371_589824.txt';
      d2='10/05/2006'; h=23.0; min=0.0; s=0.0;
      lat = 0.88032730015257;%50 градусов 26минут 20.54 секунд
      lon = 0.53109641675259;%30 градусов 25 минут 46.4995секунд
      hr=187.488;% метров
      X_label=['Широта' ':' num2str(lat) ';' 'долгота' ':' num2str(lon) ';' 'высота' ':' num2str(hr)];


                                                                         86


step=3600;%шаг отсчета времени в секундах (300=5 минутам);шаг можно изменять
L=(24*3600) / step;% убрать % перед L для вывода таблицы улов видимости и азимута
%L=1;% установить % перед L для вывода таблицы улов видимости и азимута
%Чтение альманаха


[alm,max_kol] = Yuma_GPS_Alm1(Dat);


nom = 1;
i = 0;
k = 0;
for i = 1 : max_kol
   id = alm(nom).ID;
   Health = alm(nom).Health;
  % fprintf('1: i=%i k=%i nom=%i id=%i Health=%i \n', i, k, nom, id, Health);
   if ( id > 0)
         if ( Health == 0)
            k = k + 1;
            nom_ns(k) = id;
           % fprintf('2: i=%i k=%i nom=%i id=%i Health=%i \n', i, k, nom, id, Health);
            nom = nom + 1;
         else
           nom = nom + 1;
         end;
   else
         nom = nom + 1;
   end;
end; % i
kol = k;
 fprintf('kol=%i \n', kol);


% nom_ns%номер навигационного спутника
[Rx,Ry,Rz] = ECEFLLH(lon, lat,hr);
%Rx=0;Ry=0;,Rz=0;%центр масс Земли
%Начало отсчета текущего времени
[week,modeweek,d,dweek,weeks]=Tim(d2,h,min,s);


for j = 1:L % 0:L
  t( j )=weeks+step*(j); %-step;
  %t1(j) = t(j)/60; %изменение дискретности текущего времени
  %d_wn = (week - alm(i).Week);
  %d_wn = 0;
  d_wn=(modeweek-alm(i).Week);%если в альманахе не учтено 1024


                                                 87


  tk = t(j) + d_wn * 604800 - alm(i).TOA;
  d_wn = abs(modeweek - alm(i).Week);
 dd = 302400.0 + d_wn * 604800;


 for k = 1 : kol
   i = nom_ns(k) ;


%Расчет орбит спутников по формулам
if ( ( alm(i).A05 > 0 ) & ( alm(i).Health == 0 ) )


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));
  j2 = 1082.68E-6;


  re = (A_WGS84 + B_WGS84) / 2.;
  sin55 = sin(55.0 * pi / 180.0);
dn = 1.5 * j2 * re * re / (alm(i).A05^4 ) * (1. - 1.5 * sin55 * sin55);
  %dn = 0;
  n=n0 * (1 + dn);
  Mk = alm(i).M0 + n*tk;
  e=alm(i).e;


  %решение уравнения Кеплера
 eps = 1.0E-15;
 y = e * sin(Mk);
 x1 = Mk;
 x = y;


                                                     88


 for k = 0 : 15 % количество итераций
    x2 = x1;
    x1 = x;
    y1 = y;
    y = Mk - (x - e * sin(x));
    if (abs(y - y1) < eps)
         break
    end
   x = (x2 * y - x * y1) / (y - y1);
 end % kepler
  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;
 vd = 1. - alm(i).e * cos(Ek);
nuk =atan2(sqrt(1-alm(i).e^2)*sin(Ek) / vd,(cos(Ek)-alm(i).e) / vd);
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,i) = xkk *cos(OMEGAk)-ykk*cos(ik)*sin(OMEGAk);
Yk(j,i) = xkk*sin(OMEGAk)+ykk*cos(ik)*cos(OMEGAk);
Zk(j,i) = ykk*sin(ik);
%Дальности до спутников
PR(j,i) = sqrt((Xk(j,i) - Rx)^2 + (Yk(j,i) - Ry)^2 + (Zk(j,i) - Rz)^2);
%Перевод в географическую систему если требуется
%[lons,lats,hrs] = LLHECEF(Xk,Yk,Zk);
%(Llon(j),Llat(j),Hhr(j)) = [lons,lats,hrs];
 %расчет угла видимости спутника
xls = Xk(j,i) - Rx;
  yls = Yk(j,i) - Ry;
  zls = Zk(j,i) - Rz;
range1 = sqrt(xls*xls+yls*yls+zls*zls);
if j>1


                                                   89


   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
      b = 0.0;
  elseif tdot <= -1.00
      b = pi;
  else
      b = acos( tdot);
  end
  satang = pi/2.0 - b;
  TT =satang;
TT(j,i) =TT;%угол видимости спутников
  %расчет угла азимута спутников
  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,i) = atan2(xaz,yaz);
end
if az(j,i) < 0
  az(j,i) = az(j,i) + pi*2;
end


  AZ(j,i) =az(j,i) *180/pi;%угла азимута спутников в градусах
  EL(j,i) = TT(j,i) *180/pi;%угла видимости спутников в градусах


% ПЕРЕСЧЕТ ВРЕМЕНИ
   A(j)=mod(t(j),86400);


                                                  90



    
Яндекс цитирования Яндекс.Метрика