WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ

(ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ)

Кафедра 604

“Системный анализ и управление”

Пакет программ “Спутниковая навигация”

В.В. Малышев, В.В.Куршин

2005 г.

Предисловие

Пакет программ “Спутниковая навигация”

1. Моделирование орбитальной структуры СНС

2. Моделирование движения СНС

3. Определение положения потребителя на основе дальномерных измерений....... 10 4. Алгоритм автономного контроля целостности данных в приемнике

5. Геометрический фактор

6. Навигация движущегося потребителя

7. ГЛОНАСС навигация

8. Дифференциальная навигация

9. Фазовое сглаживание дальномерных определений

10. Определение положения неподвижного потребителя на основе фазовых измерений

11. Решение задачи неоднозначности фазовых измерений

12. Псевдослучайная шумовая последовательность (C/A код)

13. Анализ многолучевости

14. Алгоритмическая реализация метода LAMBDA

15. Описание программ пакета “Спутниковая навигация”

15.1. Функция cacode

15.2. Функция compkalm

15.3. Функция dops

15.4. Функция ekfpos

15.5. Функция enu2xyz

15.6. Функция genrng

15.7. Функция gensv

15.8. Функция gpscor

15.9. Функция hatch

15.10. Функция hmat

15.11. Функция ionogen

15.12. Функция llh2xyz

15.13. Функции loadgps, loadglo, loadgg

15.14. Функция mpgen

15.15. Функция nmatgen

15.16. Функция olspos

15.17. Функция olsposgg

15.18. Функция pathgen

15.19. Функция raim

15.20. Функция sagen

15.21. Функция satvis

15.22. Функция skyplot

15.23. Функция svpos

15.24. Функция tropgen

15.25. Функция xyz2enu

15.26. Функция xyz2llh

Предисловие Представлено описание пакета программ "Спутниковая навигация". Данное программное обеспечение написано на языке программирования Matlab, который фактически является стандартом при решении технических и научных проблем. Пакет "Спутниковая навигация" включает в себя ряд подпрограмм, на основе которых пользователь сможет не только изучить программную сторону реализации навигационных алгоритмов, но и сконструировать новый навигационный алгоритм, провести расчеты по выбору новой орбитальной группировки и т.д.

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

Пакет программ “Спутниковая навигация” Несмотря на обилие уже созданной и использующейся навигационной аппаратуры существует потребность в разработке более совершенных, надежных алгоритмов и навигационных приемников. Необходимо также отметить, что существует ряд проектов по разработке новых навигационных систем, в первую очередь это европейский проект Galileo. Также необходимо отметить различные дополнения к системам GPS и ГЛОНАСС – широкозонные дифференциальные системы американская WAAS (Wide Area Augmentation System) и две системы, находящиеся на различных стадиях работ: японская MSAS (Japan's Multifunctional Transport Satellite Space-based Augmentation System) и EGNOS (European Geostationary Navigation Overlay System).

Поэтому существует потребность в проведении различного рода расчетов и имитационного моделирования в области спутниковой навигации: выбор оптимального орбитального построения системы; построение навигационных одномоментных и рекуррентных алгоритмов; дифференциальная коррекция;

обработка фазовых измерений и проблема фазовой неоднозначности и др. Для решения этих задач и служит пакет программ "Спутниковая навигация".

Данный пакет написан на языке программирования Matlab, который фактически является стандартом при решении технических и научных проблем. Пакет "Спутниковая навигация" включает в себя ряд подпрограмм, на основе которых пользователь сможет не только изучить программную сторону реализации навигационных алгоритмов, но сам сконструировать новый навигационный алгоритм, провести расчеты по выбору новой орбитальной системы и т.д.

1. Моделирование орбитальной структуры СНС Вначале рассмотрим процедуру формирования орбитальной структуры СНС.

Исходные данные о системе GPS содержатся в файле gpskep.mat, а о системе ГЛОНАСС – в файле glokep.mat. Эти данные являются кеплеровыми параметрами орбит. Считается, что орбиты всех навигационных спутников являются круговыми. Для примера в таблице 1 приведены данные из файла gpskep.mat.



Таблица 1. Орбитальная структура GPS системы (файл gpskep.mat)

ID M V OGMV RV IN CLV TOEV

Обозначения:

SVIDV – номер спутника MV – средняя аномалия, град.

OMGV – долгота восходящего узла орбиты, град.

RV – радиус орбиты, м.

INCLV – наклонение орбиты, град.

TOEV – время, с.

Как правило, параметр TOEV есть время недели, то есть TOEV < 604800.

Нумерация спутников системы ГЛОНАСС в файле glokep.mat начинается с 51.

Для решения навигационных задач при совместном использовании систем GPS и ГЛОНАСС файл ggkep.mat содержит объединенные данные о кеплеровых параметрах орбит этих двух систем. То есть файл ggkep.mat состоит из данных файлов gpskep.mat и glokep.mat. Нетрудно видеть, что размерность массива данных файла ggkep.mat есть 48 x 6.

Для изменения кеплеровых параметров орбит или количества спутников используется встроенный редактор MatLab.

Загрузка в память данных о той или иной НС осуществляется при помощи функций loadgps, loadglo или loadgg:

• loadgps загружает конфигурационные параметры системы GPS • loadglo загружает конфигурационные параметры системы ГЛОНАСС • loadgg загружает конфигурационные параметры объединенной системы GPS+ГЛОНАСС Теперь рассмотрим, как задается вектор положения потребителя.

Геодезические координаты потребителя задаются при помощи трехмерного массива usrllh. Первый элемент – это долгота (рад.), второй – широта (рад.), третий – высота (м.). Например, вектор положения потребителя есть:

usrllh = [0*pi/180 0*pi/180 0];

В данном примере используется пересчет угловых величин из градусной меры в радианы.

Для преобразования геодезических координат в геоцентрические служит функция llh2xyz:

usrxyz = llh2xyz(usrllh);

В результате мы получаем трехмерный массив usrxyz, элементами которого являются координаты потребителя в системе WGS-84.

Для определения расположения навигационных спутников, которые могут быть использованы для навигации потребителя { usrxyz } в момент времени t, служит функция gensv. Данная функция определяет номера спутников и их координаты, относительные положения потребителя:

[svxyzmat, svid] = gensv (usrxyz, t, e_min);

здесь svxyzmat – массив, содержащий координаты видимых потребителю спутников, svxyzmat(i, 1:3) есть координаты {x,y,z} i-го спутника;

t – время GPS;

e_min – минимальный угол возвышения спутника над горизонтом, при котором еще возможна навигация, размерность – град.

Графическое отображение видимых потребителю спутников осуществляет функция skyplot. Аргументами этой функции являются массивы svxyzmat, svid, usrxyz.

Таким образом, для того, чтобы увидеть расположение видимых спутников системы GPS на небе для потребителя с координатами {0, 0, 0} в момент времени t=0 необходимо выполнить следующий m-файл:

% sndemo01.m Example of satellite position generation and plotting t = 0;

usrllh = [0*pi/180 0*pi/180 0];

usrxyz = llh2xyz(usrllh);

loadgps [svxyzmat,svid] = gensv(usrxyz,t,0);

skyplot(svxyzmat,svid,usrxyz) На рис. 1. приведен результат выполнения sndemo01.m.

Рис.1. Расположение GPS-спутников на небе для одного момента времени.

2. Моделирование движения СНС Очевидно, что для моделирования движения навигационной системы необходимо просто изменять величину времени t, для которой вычисляются координаты спутников СНС. С этой целью организовать цикл по времени. В следующем примере вычисления проводятся для неподвижного потребителя {0, 0, 0} на отрезке времени от 0 до 3600 с с шагом 200 с.

% sndemo02.m Short example of satellite motion through sky usrllh = [0*pi/180 0*pi/180 0];

usrxyz = llh2xyz(usrllh);

loadgps for t = 0:200:3600, [svxyzmat,svid] = gensv(usrxyz, t, 0);

pause(0.1) skyplot(svxyzmat, svid, usrxyz, 0, 1) hold on end На рис. 2. приведен результат выполнения sndemo02.m.

Рис.2. Изменение расположений GPS-спутников в течение 1 часа.

Заметим, что данные результаты были получены с использованием команды Matlab "hold on", которая сохраняет на экране предыдущие данные.

Применение такого приема позволяет, например, исследовать возможности GPS-навигации для всей поверхности Земли. С этой целью увеличим верхний предел изменения переменной времени t до величины, равной длительности суток. Шаг изменения времени также увеличим – вычисления будем проводить через 2000 с.

% sndemo03.m Satellite Motion/Visibility: 24 hours on the equator usrllh = [0*pi/180 0*pi/180 0];

usrxyz = llh2xyz(usrllh);

loadgps for t = 0:2000:86000, [svxyzmat,svid] = gensv(usrxyz,t,0);

pause(0.1) skyplot(svxyzmat,svid,usrxyz,0,0) hold on end Результат исследования возможности GPS-навигации для всей поверхности Земли приведен на рис. 3 (файл sndemo03.m). Нетрудно видеть, что в районах Северного и Южного полюсов GPS-навигация не возможна. Причина заключается в орбитальной конфигурации системы GPS, использующей наклонения орбит 55 и обеспечивающей видимость большого числа спутников в экваториальных районах.

Рис. 3. Изменение расположений GPS-спутников в течение суток.

Для более подробного исследования видимости GPS-спутников в полярных районах "поместим" потребителя в точку, близко расположенную к Северному полюсу {89, 0, 0}. Текст программы sndemo04.m приведен ниже.

% sndemo04.m Satellite Motion/Visibility: 24 hours near the north pole usrllh = [89*pi/180 0*pi/180 0];

usrxyz = llh2xyz(usrllh);

loadgps for t = 0:2000:86000, [svxyzmat,svid] = gensv(usrxyz,t,0);

pause(0.1) skyplot(svxyzmat,svid,usrxyz,0,0) hold on end Результаты моделирования видимости GPS-спутников потребителем, расположенным около Северного полюса, приведены на рис.4.

Рис. 4. Видимость GPS-спутников потребителем, расположенным вблизи Северного полюса.

дальномерных измерений После решения задачи моделирования СНС, для определения положения потребителя на основе дальномерных измерений, нам необходимо уметь генерировать эти дальномерные измерения. Напомним, что навигационному определению подлежат три координаты потребителя и величина ухода его часов.

Для моделирования дальномерных измерений служит функция genrng. Эта функция генерирует псевдодальномерные prvec и интегральные доплеровские adrvec измерения. Например:

[prvec,adrvec] = genrng(1, usrxyz, svxyzmat, svid, t, [1 1 1 0 1]);

Заметим, что при обычной дальномерной навигации интегральные доплеровские измерения не используются; здесь просто показано, как их можно генерировать.

Первый параметр определяет номер приемника – для одиночного приемника эта величина равна 1. Следующие три параметра были определены ранее.

Последний параметр – вектор [1 1 1 0 1] – определяет какие ошибки должны быть добавлены к дальномерным измерениям, соответственно: тепловой шум приемника, тропосферная погрешность, ошибка, вносимая селективным доступом, многолучевость (не добавляется), ионосферная погрешность. Более подробно описание функции genrng см. ниже.

Для моделирования ошибок, вносимых селективным доступом служит функция sagen :

samat=sagen(24, 3600, 3, 54321);

Селективный доступ генерирует дальномерные погрешности по некоторому алгоритму "a priory". Массив samat содержит заранее вычисленные погрешности SA для всех 24 спутников системы GPS на 1 час. Третий параметр определяет тип модели селективного доступа (в данном случае выбрана авторегрессионная модель), четвертый параметр инициализирует генератор случайных чисел.

Вычисление положения потребителя и ухода его часов на основе одномоментных дальномерных измерений с использованием метода наименьших квадратов осуществляется при помощи вызова функции olspos (OLS – ordinary least square method /МНК/).

Функция xyz2enu обеспечивает преобразование координаты потребителя из WGS-84 в топоцентрическую прямоугольную систему координат.

Пример моделирования решения навигационной задачи для неподвижного потребителя на основе одномоментных дальномерных измерений с использованием метода наименьших квадратов приведен ниже (файл sndemo05.m):

% sndemo05.m Static User OLS positioning samat=sagen(24,3600,3,54321);

usrllh = [0*pi/180 0*pi/180 0];

usrxyz = llh2xyz(usrllh);

loadgps i=0;

for t = 1000:10:2800, i=i+1;

fprintf(1,'t = %i \n',t) [svxyzmat,svid] = gensv(usrxyz, t, 5);

[prvec,adrvec] = genrng(1, usrxyz, svxyzmat, svid, t, [1 1 1 0 1], samat);

estusr = olspos(prvec,svxyzmat);

enuerr(i,:) = ( xyz2enu(estusr(1:3), usrxyz) )';

terr(i) = estusr(4); % true clk bias is zero end close plot(enuerr(:,1),enuerr(:,2),'*') axis([-50 50 -50 50]) axis('square') axis('equal') grid title('GPS Positioning Error - Static User - Half-Hour Scenario') ylabel('north error (m)') xlabel('east error (m)') Результат моделирования задачи навигации неподвижного потребителя с использованием системы GPS при наличии селективного доступа приведен на рис. 5.

Рис. 5. GPS навигация при наличии селективного доступа (SA).

4. Алгоритм автономного контроля целостности данных в приемнике Назначение алгоритма автономного контроля целостности данных в приемнике (RAIM) является обнаружение и исключение из рабочего созвездия потребителя неверного навигационного измерения. Неверным измерение может быть по следующим двум причинам. Первая причина – это неисправность самого навигационного спутника. Навигационная спутниковая система осуществляет непрерывный контроль исправности всех компонентов системы, в том числе и передаваемых навигационных данных. Время, необходимое для индикации неисправного спутника системы ГЛОНАСС, составляет около 1 минуты. И в течение этого времени потребитель будет использовать этот плохой спутник, не зная о его неисправности. Вторая причина неверного измерения – это плохие условия приема навигационного сигнала со спутника, обусловленные в первую очередь малым углом видимости спутника над горизонтом и многолучевостью, а также шумы в канале приемника. Алгоритм RAIM должен это неверное измерение найти и исключить из состава измерений. Возможность такого подхода основана избыточности проводимых измерений: при использовании системы GPS потребителю видны не менее 6-8 спутников, а минимальное число спутников равно 4.

Рис. 6. Неверные измерения отсутствуют.

Вначале рассмотрим пример навигационных определений, когда отсутствуют неверные измерения (рис. 6). Программа sndemo06.m иллюстрирует именно такую ситуацию. В качестве меры целостности данных используется норма вектора ошибок дальномерных измерений (корень квадратный из суммы квадратов ошибок дальномерных измерений).

Следующий пример sndemo07.m показывает как изменяется мера целостности данных при наличии ошибки дальномерных измерений (рис. 7). С этой целью после 1750 с дальность одного спутника искусственно увеличивалась на 200 м.

То есть после 1750 с одно из навигационных измерений содержало систематическую ошибку.

Рис. 7. Измерение дальности до одного спутника содержит постоянную ошибку.

Пример sndemo08.m показывает изменение меры целостности данных при наличии нарастающей ошибки дальномерных измерений. В этом примере после 1750 с дальность одного спутника искусственно увеличивалась со скоростью 1м/с. На рис.8 показан характер поведения норма вектора ошибок дальномерных измерений.

Рис. 8. Измерение дальности до одного спутника содержит нарастающую ошибку.

Для принятия решения о наличии в составе данных неверного измерения используется, например, заранее вычисленное некоторое предельное значение, зависящее от числа и характера измерений. Если величина меры целостности данных превышает это предельное значение, то считается, что в составе измерений присутствует по крайней мере одно неверное измерение и его надо исключить. Необходимо отметить, что мера целостности данных измерений зависит не только от дальномерных ошибок, но и от взаимного расположения потребителя и навигационных спутников, то есть от геометрии рабочего созвездия. Поэтому для исключения влияния геометрии на принятие решения о наличии в составе данных неверного измерения необходимо корректно выбирать предельное значение величины меры целостности данных.

5. Геометрический фактор Как известно, геометрия спутникового созвездия играет ключевую роль в точности определения положения потребителя. Моделирование с использованием пакета "Спутниковая навигация" позволяет наглядно продемонстрировать данное положение.

В примере sndemo09.m вычисляется ошибка навигации при фиксированном положении потребителя и спутниковой системы, то есть при неизменной геометрии спутникового созвездия. Исследуется влияние различных факторов на дальномерные измерения. В частности, в данном примере анализируется влияние шума приемника на точность навигации. Расчеты проводятся с использованием статистического моделирования навигационной задачи, число испытаний равно 200. По умолчанию в программе genrng считается, что дальномерная ошибка, порожденная шумом приемника, имеет среднее квадратическое отклонение равное 1 м. Текст данной программы приведен ниже:

% sndemo09.m Compute DOP's and compare with Monte Carlo trials time = 0;

usrllh = [0*pi/180 0*pi/180 0];

usrxyz = llh2xyz(usrllh);

loadgps for i = 1:200, fprintf(1,'Monte Carlo trial number = %i \n',i) [svxyzmat,svidvec] = gensv(usrxyz,time);

[prvec,adrvec] = genrng(1,usrxyz,svxyzmat,svidvec,time,[1 0 0 0 0]);

estusr = olspos(prvec,svxyzmat);

err(i,1:3) = estusr(1:3) - usrxyz(1:3);

terr(i) = estusr(4); % true clk bias is zero end dopvec = dops(svxyzmat,usrxyz);

plot(err(:,1),err(:,2),'*') axis([-5 5 -5 5]) title('Monte Carlo Results: WGS-84 Coordinates') ylabel('y position error in meters') xlabel('x position error in meters') Результаты вычисления приведены на рис. 9.

Как видим, при таких исходных данных ошибка определения положения не превышает 3-4 метров. Причем ошибка определения координаты х существенно превышает ошибку определения координаты у. Напомним, что в данных расчетах используется система координат WGS-84, а координаты потребителя есть {0, 0, 0}. Нетрудно видеть, что в этом случае координата X фактически является ошибкой определения положения по высоте. Таким образом, мы получили наглядную иллюстрацию известного факта: при спутниковой навигации определение высоты происходит с худшей точностью, чем определение положения в горизонтальной плоскости.

Рис. 9. Ошибка определения положения неподвижного потребителя;

положения спутников также фиксированные.

В теории спутниковой навигации используется понятие геометрического фактора ГФ. В англоязычной литературе данная величина называется Geometric Dilution of Precision (геометрическое разбавление точности – GDOP) или просто Dilution of Precision (DOP). Связь между статистическими характеристиками дальномерной ошибки и ошибки определения положения, например, координаты X есть:

где среднее квадратическое отклонение ошибки определения координаты X потребителя;

X DOP – геометрический фактор в направлении оси OX;

PR – среднее квадратическое отклонение ошибки измерения дальностей до спутников.

Необходимо отметить, что данное уравнения справедливо, если дальномерные ошибки являются независимыми и распределенными по нормальному закону.

В действительности же ошибки, порожденные тропосферными и ионосферными задержками, а также многолучевостью, не являются независимыми и не распределены по нормальному закону. Тем не менее, это уравнение с приемлемой точностью позволяет проводить численные расчеты по оценке точности навигации.

Убедимся в справедливости этого утверждения. В состав программного обеспечения Matlab входит функция std, вычисляющая среднее квадратическое отклонение случайной величины по ее реализациям.

Следовательно, функция std(err(:,1)) вычисляет СКО ошибки определения координаты X потребителя.

Напомним, в программе sndemo09.m при задании дальномерных ошибок использовался только шум приемника, следовательно, среднее квадратическое отклонение дальномерной ошибки равно 1 м. В этом случае среднее квадратическое отклонение ошибки определения координаты X потребителя равно величине X DOP (xdop) – геометрическому фактору в направлении оси OX. Величина estxdop есть оценка геометрического фактора в направлении оси OX, полученная на основе статистического моделирования. Это дает возможность провести сравнение теоретических, то есть в соответствии с уравнением (1), и вычисленных на основе статистики значений величин X, Y, Z.

Для этого в командном окне Matlab выполним следующие команды (в скобках приведен результат):

estxdop = std(err(:,1)) ( estxdop = 1.5037 ) estydop = std(err(:,2)) ( estydop = 0.6850) estzdop = std(err(:,3)) ( estydop = 0.5921) Как видим, сравниваемые значения достаточно близки. Для повышения точности оценивания число статистических испытаний рекомендуется увеличить.

6. Навигация движущегося потребителя Очень часто при моделировании задачи навигации потребителя с использованием спутниковой системы требуется имитировать движение потребителя. Это связано с тем, что практически все потребители совершают движение: суда, автомобили, вертолеты, самолеты, космические аппараты.

Пакет программ "Спутниковая навигация" предоставляет такую возможность.

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

% sndemo10.m Demonstrate vehicle path generator and effects of SA samat=sagen(24,3600,3,54321);

orgllh = [0*pi/180 0*pi/180 0];

orgxyz = llh2xyz(orgllh);

loadgps startt=1000; t = startt; deltat=5;

segp = [150 90.2; 150 90.2; 150 90.2];

usrenu = pathgen([0 0 0],[5 0],segp,deltat);

i=0;

while i < max(size(usrenu)), fprintf(1,'t = %i Stop time is %i\n',t,startt+max(size(usrenu))*deltat) usrxyz=enu2xyz(usrenu(i,:),orgxyz);

[svxyzmat,svid] = gensv(usrxyz,t,5);

[prvec,adrvec] = genrng(1,usrxyz,svxyzmat,svid,t,[1 1 1 0 1],samat);

estusr = olspos(prvec,svxyzmat);

estenu(i,:) = ( xyz2enu(estusr(1:3),orgxyz) )';

err(i,1:3) = estenu(i,1:3) - usrenu(i,:);

terr(i) = estusr(4); % true clk bias is zero end clf reset close plot(usrenu(:,1),usrenu(:,2),'-',estenu(:,1),estenu(:,2),'*') title('True and Estimated Trajectories') ylabel('north direction [meters]') xlabel('east direction [meters]') Данный пример аналогичен ранее рассмотренной навигационной задаче sndemo05.m, за исключением одного – координаты потребителя изменяются во времени. Массив координат потребителя начиная с момента start=1000 с через каждые deltat=5 с вычисляется при помощи функции pathgen. Данная функция генерирует движение потребителя в соответствии со следующими данными.

Первый аргумент ( [0 0 0] ) позволяет скорректировать начальное положение потребителя, заданное вектором orgxyz. Корректирующий вектор определяет смещение в топоцентрической системе координат. Нулевые величины означают, что движение начинается из точки с точки с географическими координатами {0, 0, 0}.

Второй аргумент ( [5 0] ) задает начальную скорость: 5 м/с в восточном направлении. Напомним, что функция pathgen моделирует движение только в горизонтальной плоскости, поэтому второй аргумент имеет размерность 2.

Третий аргумент – segp= [150 90.2; 150 90.2; 150 90.2] – определяет, что движение потребителя состоит из трех прямолинейных фрагментов.

Продолжительность каждого фрагмента равна 150 с. Завершается каждый фрагмент поворотом на 90 налево, причем при повороте величина центростремительного ускорения равна 0.2 м/с.

Результат моделирования навигационной задачи представлен на рис. 10.

Тонкая кривая линия означает точные координаты имитируемого объекта, а линия, состоящая из символов " * " – оценка координат объекта.

Рис. 10. Навигация движущегося потребителя.

Напомним, что при решении навигационной задачи предполагалось, что в системе GPS применяется селективный доступ, поэтому ошибки определения положения достигали несколько десятков метров.

Скачок в данных оценки координат потребителя (отмечено стрелкой) объясняется потерей одного спутника из-за условий радиовидимости и, вследствие этого, изменения геометрического фактора. Поэтому в решении навигационной задачи с использованием метода наименьших квадратов и наблюдается скачок.

7. ГЛОНАСС навигация Как уже отмечалось ранее, пакет программ "Спутниковая навигация" предоставляет пользователю возможность моделирования задачи навигации с использованием системы ГЛОНАСС. Пример sndemo11.m иллюстрирует решение задачи определения положения неподвижного потребителя на основе измерения дальностей до спутников системы ГЛОНАСС. Данный пример аналогичен примеру sndemo05.m, за исключением двух моментов. Вопервых, используется функция loadglo, которая загружает кеплеровы параметры орбит системы ГЛОНАСС. Во-вторых, в функции genrng при формировании ошибок дальномерных измерений не используется селективный доступ: в системе ГЛОНАСС он отсутствует.

Рис. 11. ГЛОНАСС навигация неподвижного потребителя.

На рис. 11 приведен результат решения задачи ГЛОНАСС навигации.

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

Пакет программ "Спутниковая навигация" также позволяет проводить имитационное моделирование навигации потребителя с совместным использованием систем GPS и ГЛОНАСС. Комплексирование GPS и ГЛОНАСС систем позволяет увеличить число видимых потребителю навигационных спутников, составляющих рабочее созвездие, и тем самым увеличить число проводимых измерений. Это дает возможность повысить качество навигационного обеспечения.

Совместное использование GPS и ГЛОНАСС систем существенно улучшает точность GPS навигации в случае, если в системе GPS применяется селективный доступ. Данный факт иллюстрирует пример sndemo12.m, решающий задачу совместной навигации GPS+ГЛОНАСС. Сравнивая результаты GPS+ГЛОНАСС навигации, представленные на рис. 12, и результаты GPS навигации, представленные на рис. 5, убеждаемся в справедливости данного замечания.

Рис. 12. GPS+ГЛОНАСС навигация потребителя (смещение между системным временем GPS и ГЛОНАСС отсутствует).

Необходимо отметить, что пример sndemo12.m использует достаточно упрощенный подход к совместному использованию систем GPS и ГЛОНАСС, а именно: используется единое системное время. В действительности же, существует различие между системным временем GPS и ГЛОНАСС. Системы GPS и ГЛОНАСС используют свои собственные центры системного эталона времени и частоты, на основе данных которых и происходит синхронизация всех временных процессов в рассматриваемых навигационных системах.

Никакой взаимной корректировки системных времен GPS и ГЛОНАСС нет, поэтому смещение между временем GPS и ГЛОНАСС есть переменная величина, обусловленная уходами часов. Следовательно, при навигации с использованием систем GPS и ГЛОНАСС оценке подлежат пять параметров:

три координаты потребителя, уход часов приемника и смещение между временными шкалами систем GPS и ГЛОНАСС. Вычисление положения потребителя, ухода его часов и смещения между GPS и ГЛОНАСС временными шкалами на основе одномоментных измерений дальностей до спутников систем GPS и ГЛОНАСС с использованием метода наименьших квадратов осуществляется при помощи вызова функции olsposgg. Пример sndemo13.m иллюстрирует использование данной функции, а результат приведен на рис. 13.

Рис. 13. GPS+ГЛОНАСС навигация потребителя (смещение между системным временем GPS и ГЛОНАСС оценивается).

Заметим, что представленные данные о точности GPS+ГЛОНАСС навигации были получены при условии, что в системе GPS применяется селективный доступ.

8. Дифференциальная навигация Как известно, для повышения точности спутниковой навигации гражданского потребителя широко используется дифференциальная коррекция. И наиболее распространенным является применение корректирующих дальномерных поправок. Для локального дифференциального режима поправки формируются одной базовой станцией, а затем эти поправки передаются, например, по радиоканалу. Дифференциальные поправки есть разность между вычисленными дальностями и измеренными. Поскольку координаты базовой станции известны с высокой точностью, то вычисленные дальности между базовой станцией и навигационными спутниками также обладают достаточно высокой точностью. Данные корректирующие поправки позволяют уточнить потребителю измеренные дальности и таким образом повысить качество навигации. Применяется локальная дифференциальная коррекция на расстоянии от базовой станции не превышающем 100-200 км.

Пример моделирования задачи навигации с использованием дифференциальной коррекции приведен ниже (файл sndemo14.m):

% sndemo14.m DGPS (Range corrections) No Carrier-Smoothing samat=sagen(24,3600,3,54321);

mpmatusr=mpgen(24,3600,1,22222);

mpmatref=mpgen(24,3600,1,33333);

refllh = [0*pi/180 0*pi/180 0];

refxyz = llh2xyz(refllh);

usrllh = [0.1*pi/180 0.1*pi/180 0];

usrxyz = llh2xyz(usrllh);

loadgps i=0;

for t = 1000:10:2800, i=i+1;

fprintf(1,'t = %i Stop Time = %i \n',t,2800) % Reference Station clear svxyzmat svid prvec adrvec [svxyzmat,svid] = gensv(refxyz,t);

prvec = genrng(1,refxyz,svxyzmat,svid,t,[1 1 1 0.1 1],samat,mpmatref);

prc=9999*ones(1,24);

for k = 1:max(size(svid)), true_range = norm([svxyzmat(k,:) - refxyz]);

prc(svid(k)) = prvec(k) - true_range;

% User clear svid svxyzmat prvec adrvec [svxyzmat,svid] = gensv(usrxyz,t);

prvec = genrng(2,usrxyz,svxyzmat,svid,t,[1 1 1 0.1 1],samat,mpmatusr);

for k = 1:max(size(svid)), if prc(svid(k)) ~= 9999, prvec_cr(j) = prvec(k) - prc(svid(k));

svmat_cr(j,:) = svxyzmat(k,:);

estusr = olspos(prvec_cr,svmat_cr);

enuerr(i,:) = ( xyz2enu(estusr(1:3),usrxyz) )';

terr(i) = estusr(4); % true clk bias is zero clear prvec_cr svmat_cr j k end plot(enuerr(:,1),enuerr(:,2),'*') axis([-5 5 -5 5]) axis('square') axis('equal') grid title('DGPS {Range Corrections} Positioning Error - Half-Hour Scenario') ylabel('north error (m)') xlabel('east error (m)') В данном примере при моделировании псевдодальностей учитывается многолучевость. Поскольку дальномерные ошибки из-за многолучевости зависят от условий приема и от характеристик антенны навигационного приемника, то дифференциальная коррекция не может компенсировать эти ошибки. Поэтому в примере sndemo14 дальномерные ошибки из-за многолучевости генерируются для базовой станции и потребителя раздельно.

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

Результат моделирования навигации потребителя с использованием дифференциальной коррекции приведен на рис. 14. Сравнивая эти данные с примером sndemo05 (рис. 5) мы убеждаемся в высокой эффективности использования дифференциальной коррекции.

Рис. 14. Дифференциальная GPS навигация при наличии селективного доступа.

9. Фазовое сглаживание дальномерных определений Высокая точность дифференциальной коррекции может быть еще улучшена, если в навигационном алгоритме будет использоваться сглаживание дальномерных измерений при помощи фазовых измерений. Помимо ошибок из-за многолучевости, шум приемника также не удаляется в дифференциальной навигации. Однако, в отличие от многолучевости, шум приемника можно уменьшить при помощи фильтрации. Эта фильтрация осуществляется на основе так называемого процесса "carrier-smoothing" (сглаживания несущей). Главные идея заключается в оценке смещения в интегральных доплеровских измерениях на основе которых и определяется дальность до спутника. Пакет программ "Спутниковая навигация" предоставляет пользователю возможность использования двух функций, обеспечивающих сглаживание дальномерных измерений.

Функция hatch реализует так называемый фильтр Хатча (Hatch filter).

Данный фильтр для каждого спутника оценивает смещение в интегральных доплеровских измерениях на основе разности между псевдодальностью и интегральным доплеровским измерением.

Функция compkalm обеспечивает сглаживание измерений при помощи фильтра Калмана. Данный алгоритм использует предыдущую оценку плюс прогноз изменения в интегральных доплеровских измерениях для текущей эпохи измерений. И измеренная дальность корректируется априорной информацией.

Рассмотрим, как изменилась точность дифференциальной GPS навигации, представленной на рис. 14, если применим дополнительное фазовое сглаживание. То есть, измеренные дальности корректируются при помощи и дифференциальных поправок, и фазовым сглаживанием. Результат приведен на рис. 15. Эти данные были получены с использованием фильтра Хатча.

Рис. 15. Дифференциальная GPS навигация с использованием фазового сглаживания псевдодальностей.

Как видим, ошибка определения горизонтального положения не превышает нескольких десятков сантиметров. Несколько отдельных точек – это ошибки навигации в первые моменты времени, когда фильтрация еще не стала работать в полной мере.

10. Определение положения неподвижного потребителя на основе фазовых измерений На основе использования только одних фазовых измерений потребитель может определить свое положение с сантиметровой точностью. Возможность такой точности навигации основывается на том, что длина волны передаваемого GPS сигнала на частоте L1 1575.42 МГц приблизительно равна 19 см. Поэтому для достижения сантиметровой точности потребитель необходимо уметь вычислять точное число циклов фазы принимаемого сигнала. Пакет программ "Спутниковая навигация" реализует алгоритм фазовой навигации. На рис. приведены данные о точности навигации неподвижного потребителя на основе фазовых измерений, полученные при помощи программы sndemom.

Рис. Навигация неподвижного потребителя на основе фазовых измерений (e_min=15 ).

Для исключения параметров неоднозначности фазовых измерений из состава оцениваемых параметров обычно используется метод двойных разностей.

Используя этот метод, в примере sndemo16 и вычисляются точные значения циклов фазы принимаемого сигнала для каждого спутника. Как видим, точность навигации не превышает 5 см.

Необходимо отметить, что подобная точность не всегда возможна. И одной из причин является изменение состава измерений. В примере sndemo16 при вызове функции gensv была установлена величина минимального угла видимости над горизонтом равной 15. Причина заключается в следующем.

Повторим данные вычисления при величине минимального угла видимости равной 5 (это файл sndemo17.m). Результат моделирования sndemo приведен на рис. 17.

Рис. 17. Навигация неподвижного потребителя на основе фазовых измерений (e_min=5 ).

Как видим, точность навигации ухудшилась: в ряде случаев точность определения положения хуже 10 см. И причиной такого ухудшения является использование в навигации спутника с номером 4, который вскоре после начала навигационного сеанса исчез из зоны видимости. Рис. 18 и иллюстрируют сказанное. Данные, представленные на рис. 18 были получены при помощи sndemo18, а на рис. 19 – sndemo19.

Рис. 18. Используемые в навигационном сеансе спутники.

Рис. 19. Расположение спутников на звездном небе в начальный момент времени.

Угол возвышения четвертого спутника менее 10, а при таких малых углах возвышения задержки в распространении сигнала в атмосфере очень плохо прогнозируются. Именно это и является причиной ухудшения точности навигации при использовании измерений от данного спутника. Поэтому, для достижения высокой точности фазовой навигации необходимо использовать измерений от спутников, углы возвышения которых имеют большие значения.

Правда при этом уменьшается число используемых измерений.

11. Решение задачи неоднозначности фазовых измерений Решение задачи навигации с использованием фазовых измерений возможно не только для неподвижного потребителя, но и для движущегося. Англоязычное название таких алгоритмов – "Real Time Kinematic" (RTK). Большинство алгоритмов реального времени при первоначальном оценивании параметров неоднозначности фазовых измерений используют решение, полученное на основе псевдодальностей, сглаженных фазовыми измерениями. Далее, при движении объекта, навигационный алгоритм вычисляет оценку разности между текущей величиной неоднозначности фазовых измерений и первоначальной оценкой. Данный метод и реализован в примере sndemo20.m.

12. Псевдослучайная шумовая последовательность (C/A код) Основой структуры сигналов системы GPS является псевдослучайная шумовая последовательность (pseudorandom noise – PRN). Гражданский C/A код системы GPS образуется при помощи двух кодов G1 и G2. Как известно, система GPS использует кодовое разделение сигнала. То есть каждый навигационный спутник генерирует свой собственный PRN сигнал. Различные C/A коды образуются при помощи изменения величины задержки кода G относительно кода G1. Так например, код C/A PRN 10 образован при величине задержки кода G2 равной 251 бит (chips), а затем этот смещенный код умножается на код G1. Функция cacode генерирует все 1023 возможные гражданские C/A коды. Необходимо отметить, что около 40 C/A кодов специально зарезервированы для использования навигационными GPS спутниками.

Примеры sndemo21 - sndemo25 позволяют подробно исследовать процессы кодирования и декодирования данных системы GPS.

13. Анализ многолучевости Ранее было отмечено, что ошибки измерений вследствие многолучевости и тепловых шумов приемника не компенсируются дифференциальными методами. И если влияние ошибок из-за теплового шума приемника может быть уменьшено при помощи фазового сглаживания дальномерных определений, то многолучевость остается основным источником ошибок в дифференциальной навигации.

Данные исследований показывают, что ошибки из-за многолучевости могут изменить данные интегральных доплеровских измерений всего на несколько сантиметров, в то время как псевдодальности могут меняться на метры.

Иными словами, влияние многолучевости на интегральные доплеровские измерения является крайне незначительным по сравнению с влиянием на псевдодальность. Напомним, что в интегральных доплеровских измерениях существует неоднозначность в данных.

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

Остаются только ошибки из-за многолучевости, теплового шума приемника, ионосферной дивергенции (ионосферные задержки для псевдодальномерных и интегральных доплеровских измерений равны по величине, но противоположны по знаку).

Данные на рис. 20, полученные при помощи программы sndemo26.m, показывают изменение величины невязки дальномерных измерений для спутника номер 8 при использовании дифференциальной коррекции.

Ошибки из-за теплового шума приемника имеют высокочастотную компоненту, многолучевость имеет среднечастотную компоненту.

Ионосферная дивергенция же проявляет себя как небольшой тренд в величине невязки измерений. На основе данных измерений, полученных, например, на часовом интервале времени, ионосферная дивергенция может быть аппроксимирована полиномом первого или второго порядка. И далее ошибки из-за ионосферной дивергенции уже могут быть удалены.

Рис. 20. Невязка дальномерных дифференциальных измерений, SV #8.

Для определения параметров тренда воспользуемся функцией Matlab polyfit.

Выполним в командном окне Matlab следующие операторы:

x = 1:600;

p = polyfit(x,resi,1);

yfit = polyval(p,x);

plot(x,resi,x,yfit) title('Residuals and Straight-Line Fit') Вектор yfit содержит значения дальномерных ошибок, причина которых есть ионосферная дивергенция.

На рис. 21 приведены данные о невязке дальномерных дифференциальных измерений для спутника #8 и показан тренд ионосферной дивергенции.

Рис. 21. Невязка дальномерных дифференциальных измерений и тренд ионосферной дивергенции, SV #8.

Теперь мы можем убрать влияние ионосферной дивергенции на ошибки измерений. Для этого вычтем из невязки дальномерных дифференциальных измерений соответствующую величину тренда ионосферной дивергенции:

resi_fit = resi – yfit;

plot(x,resi_fit) title('Multipath and Noise with Iono Removed') ylabel('residuls in meters') xlabel('run time in seconds') Результат приведен на рис. 22.

Рис. 22. Невязка дальномерных дифференциальных измерений и тренд ионосферной дивергенции, SV #8.

Таким образом, остаются только ошибки из-за многолучевости и теплового шума навигационного приемника.

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

14. Алгоритмическая реализация метода LAMBDA Для запуска программного обеспечения необходимо указать рабочую директорию, в которой находятся LAMBDA-файлы, и запустить демонстрационную вызывающую программу ldemo. Данная программа показывает возможности метода LAMBDA при разрешении фазовых неоднозначностей.

После запуска программы ldemo появится окно, приведенное на рис. 12.23.

Рис.23. Окно демонстрационной программы ldemo.

Далее, пользователь в поле "Select Inputfile" должен выбрать один из трех заранее подготовленных вариантов исходных данных: geofree, sixdim, small.

В поле "Select Outputfile" пользователь может указать имя выходного файла, в который будут записаны результаты вычислений.

После нажатия кнопки "Compute!" происходит вычисление.

Результаты вычислений также выводятся в окне программы ldemo.

15. Описание программ пакета “Спутниковая навигация” Данный раздел посвящен рассмотрению всех функций пакета, их назначению.

Приводится описание всех входных и выходных параметров.

Назначение. Генерация C/A кода Вызов функции. [ca, g1, g2] = cacode(g2shift) Описание. Последовательности максимальной длины g1 и g2 используются для образования C/A кода. Хотя все C/A коды и базируются на кодах G1 и G2, каждый C/A код однозначно определяется величиной смещения кода G2.

Длина всех последовательностей 1023 бит. Величина g2shift может меняться в пределах от 0 до 1022.

Алгоритм. Функция cacode использует при генерации последовательности, составленные из +1 и -1, и далее проводит операции умножения. Заметим, что в реальности цифровые данные образуются 0 и 1.

Смежные функции. gpscor Назначение. Решает задачу фазового сглаживания дальномерных измерений при помощи фильтра Калмана.

Вызов функции.

[prsm, Pvec, prevadr] = compkalm(pr, adr, svid, P, Q, R, Pvec, prevsm, prevadr) Описание. Интегральные доплеровские фазовые данные (вектор adr) применяются для сглаживания псевдодальностей (вектор pr). Результирующий вектор, представляющий собой сглаженные пседодальности, записывается в prsm.

Вектор svid содержит идентификационные номера спутников, соответствующие сгенерированным функцией gensv измерениям.

Матрицы P, Q, R – традиционные переменные, используемые в фильтре Калмана:

P – ковариационная матрица ошибки определения вектора потребителя, начальное значение элементов 10 м ;

Q – ковариационная матрица возмущений (0.001 м );

R – ковариационная матрица погрешностей дальномерных измерений, порожденных тепловым шумом приемника (4 м ) Pvec – вектор априорных ошибок измерений.

prevsm – вектор сглаженных псевдодальностей для предыдущей эпохи измерений.

prevadr – вектор интегральных доплеровских измерений для предыдущей эпохи измерений.

Когда функция compkalm вызывается в первый раз, вектора Pvec, prevsm и prevadr должны быть установлены как [].

Алгоритм. При прогнозировании дальномерных измерений фильтр Калмана использует интегральные доплеровские измерения. Априорные псевдодальности для текущей эпохи измерений есть сумма апостериорных (сглаженных) псевдодальностей для предыдущей эпохи и приращений в интегральных доплеровских измерениях за эпоху.

Смежные функции. hatch Назначение. Вычисляет геометрический фактор.

Вызов функции. dopvec = dops(svxyzmat, usrxyz) Описание. Геометрическая матрица (или матрица направляющих косинусов) расположения спутников в пространстве вычисляется относительно положения потребителя. Координаты навигационных спутников задаются массивом svxyzmat.

Элементы svxyzmat(i,1:3) есть x,y,z координаты i-го спутника (см. gensv).

Координаты потребителя – usrxyz.

dopvec(1) = геометрический фактор в направлении оси OX dopvec(2) = геометрический фактор в направлении оси OY dopvec(3) = геометрический фактор в направлении оси OZ если svxyzmat задан в топоцентрической системе координат относительно положения потребителя, то dopvec(3) = VDOP dopvec(4) = геометрический фактор в плоскости OXY если svxyzmat задан в топоцентрической системе координат относительно положения потребителя, то dopvec(4) = HDOP dopvec(5) = TDOP dopvec(6) = PDOP dopvec(7) = GDOP Элементы dopvec равны -1, если потребителю видны менее 4 спутников.

Пример. Вычислим величину геометрического фактора для потребителя, расположенного в точке пересечения нулевого меридиана и экватора в полночь, при навигации с использованием системы GPS:

usrllh = [0 0 0];

usrxyz = llh2xyz(usrllh);

loadgps svxyzmat = gensv(usrxyz, t);

dopvec = dops(svxyzmat, usrxyz);

В данном примере геометрический фактор вычислен в системе координат ECEF. Если необходимо вычислить величины HDOP и VDOP, то:

usrllh = [0 0 0];

usrxyz = llh2xyz(usrllh);

loadgps svxyzmat = gensv(usrxyz, t);

[m, n] = size(svxyzmat);

svenumat(i,: ) = xyz2enu(svxyzmat(i, :), usrxyz)';

dopvec = dops(svxyzmat, usrxyz);

Алгоритм. Для вычисления матрицы направляющих косинусов вызывается функция hmat. Далее, на основе этой матрицы определяется ковариационная матрица ошибок определения положения потребителя. Величины DOP есть функции от диагональных элементов ковариационной матрицы ошибок определения положения потребителя. Например, квадратный корень из (1,1) элемента есть XDOP, квадратный корень из (4,4) элемента есть TDOP.

Смежные функции. hmat, gensv Назначение. Вычисляет расширенный вектор потребителя на основе известных координат спутников и измерений дальностей до них при помощи фильтра Калмана.

Вызов функции. [est_stat, predstat, Pest, Ppred] = … ekfpos(prvec, svxyzmat, predstat, delta_t, Ppred, Sp, Sf, Sg, r_rho) Описание. На основе фильтра Калмана оценивается восемь параметров: три координаты положения, три координаты скорости, уход часов и скорость ухода часов потребителя.

prvec – вектор измеренных псевдодальностей до спутников, указанных в sxyzmat(i, 1:3) – координаты i-го спутника в выбранной прямоугольной predstat – априорный расширенный вектор потребителя (положение, скорость, уход часов и скорость ухода часов). При первом вызове функции ekfpos вектор predstat должен содержать некоторые начальные значения координат потребителя.

delta_t – интервал времени между эпохами измерений, сек.

Ppred – априорная ковариационная матрица ошибок определения расширенного вектора потребителя.

Sp, Sf, Sg – параметры, характеризующие точность часов потребителя;

используются для формирования матрицы Q.

r_rho – СКО ошибок дальномерных измерений.

est_stat – оценка расширенного вектора потребителя:

est_stat(1), est_stat(3), est_stat(5) – оценки координат x,y,z потребителя est_stat(2), est_stat(4), est_stat(6) – оценки скорости Vx,Vy,Vz потребителя est_stat(7), est_stat(8) – оценки ухода часов и скорости ухода часов Pest – оценка ковариационной матрицы ошибок определения расширенного вектора потребителя.

После вызова функции ekfpos данные в массивах predstat и Ppred обновляются и соответствуют следующей временной эпохе.

Смежные функции. olspos, olsgg, genrng, gensv 15.5. Функция enu2xyz Назначение. Преобразует координаты {e, n, u} из топоцентрической прямоугольной системы (ENU) c центром в заданной точке {orgx, orgy, orgz} в координаты {x, y, z} геоцентрической прямоугольной гринвичской системы (ECEF) WGS-84.

Вызов функции. xyz = enu2xyz(enu, orgxyz) Описание.

enu(1) – координата {e} заданной точки в топоцентрической прямоугольной системе (ENU), размерность – метры.

enu(2) – координата {n} заданной точки в топоцентрической прямоугольной системе (ENU), размерность – метры.

enu(3) – координата {u} заданной точки в топоцентрической прямоугольной системе (ENU), размерность – метры.

orgxyz(1) – координата {x} центра топоцентрической прямоугольной системы (ENU) в системе ECEF WGS-84, размерность – метры.

orgxyz(2) – координата {y} центра топоцентрической прямоугольной системы (ENU) в системе ECEF WGS-84, размерность – метры.

orgxyz(3) – координата {z} центра топоцентрической прямоугольной системы (ENU) в системе ECEF WGS-84, размерность – метры.

xyz(1,1) – координата {x} заданной точки в системе ECEF WGS-84, xyz(2,1) – координата {y} заданной точки в системе ECEF WGS-84, xyz(3,1) – координата {z} заданной точки в системе ECEF WGS-84, Пример. Пусть известны координаты первого приемника в географической системе координат: широта 39, долгота -82, высота 150 м. Определить координаты второго приемника, расположенного на 1 км восточнее и на 2 км первого приемника.

Вычислить также координаты второго приемника в системе WGS-84.

rx1llh = [39*pi/180 -82*pi/180 150];

rx1xyz = llh2xyz(rx1llh) rx2enu = [1000 2000 0] rx2xyz = enu2xyz(rx2enu, rx1xyz) Алгоритм. Первоначально вычисляются географические координаты центра топоцентрической прямоугольной системы, заданной параметром orgxyz. Далее, пересчет из ENU в ECEF осуществляется как поворот и смещение координатных осей.

Смежные функции. xyz2enu, xyz2llh, llh2xyz Назначение. Генерирует вектор "измеренных" псевдодальностей и накопленных приращений дальностей, т.е. интегральных доплеровских (или фазовых) измерений, для всех видимых спутников.

Вызов функции.

[prvec, adrvec] = genrng(rxid, usrxyz, svmat, svidvec, time, esf, samat, mpmat) Описание.

rxid – идентификационный номер приемника (должен иметь положительное значение). Для моделирования навигации с использованием одиночного приемника величина rxid устанавливается равной 1.

usrxyz(1:3) – точное положение потребителя в системе координат ECEF.

svmat(i, 1:3) – положение i-го спутника в системе координат ECEF.

svid – вектор, содержащий идентификационные номера всех видимых потребителю спутников, соответствующих svmat.

time – время недели, сек.

esf – флаг типа ошибки и масштабирующий коэффициент.

Если esf равен 0, то генерируемые псевдодальности не содержат ошибок.

Если esf есть некоторая скалярная величина, то генерируемые псевдодальности содержат все типы ошибок с масштабирующим коэффициентом, равным этой скалярной величине. То есть к истинным дальностям добавляются погрешности измерений, обусловленными всеми факторами.

Если esf есть вектор, то этот вектор определяет факторы ошибок:

esf(1) – тепловой шум приемника esf(2) – тропосферная погрешность esf(3) – ошибка, вносимая селективным доступом esf(4) – многолучевость esf(5) – ионосферная погрешность Например, esf=[1 0 0 0 0] означает, что будет добавлена только ошибка, вносимая тепловым шумом приемника.

Величина масштабирующего коэффициента должна быть в пределах от 0 до 1, рекомендуемое значение (по умолчанию) равно 1.

Для теплового шума приемника по умолчанию СКО дальномерной ошибки равно 1 м, а СКО интегральной доплеровской ошибки равно 1 см/c.

Для тропосферной погрешности создаваемые функцией tropgen по умолчанию дальномерные ошибки составляют приблизительно задержку 3 м для спутника, находящегося в зените, и 25 м для спутника, угол возвышения которого равен 5.

Для селективного доступа величина ошибки определяется матрицей samat.

Элемент samat(t,i) есть дальномерная ошибка для i-го спутника в момент времени t, вносимая селективным доступом. Время t (сек.) отсчитывается от начала каждого GPS часа. Матрица samat формируется функцией sagen.

Для многолучевости величина ошибки определяется матрицей mpmat, формируемая при помощи функции mpgen. Элемент mpmat(t,i) есть дальномерная ошибка, вносимая многолучевостью, для i-го спутника в момент времени t при нулевом угле возвышения. Время t (сек.) отсчитывается от начала каждого GPS часа. Функция genrng модифицирует элементы mpmat(t,i) в соответствии с действительной величиной угла возвышения (умножается на косинус угла возвышения). Для фазовых измерений функция genrng дополнительно умножает элементы mpmat(t,i) на коэффициент 0.001. При дифференциальной навигации для каждого приемника необходимо использовать соответствующие разные матрицы mpmat. За дополнительной информацией следует обратиться к описанию функции mpgen.

Ионосферная задержка формируется функцией ionogen.

prvec – вектор "измеренных" псевдодальностей для всех спутников, соответствующих svmat.

adrvec – вектор "измеренных" накопленных приращений дальностей для всех спутников, соответствующих svmat.

Необходимо отметить, что ошибки селективного доступа и многолучевости генерируются заранее, то есть до моделирования самого процесса навигации.

Во-первых, это сделано для повышения быстродействия моделирования. Вовторых, при дифференциальной навигации это обеспечивает корректную корреляцию сигналов, создаваемых для базовой станции и приемника потребителя.

Функция genrng использует данные mpmat и samat только для 3600 сек. И если моделируется навигационный сеанс с длительностью более 1 часа, то необходимо учесть, что данные mpmat и samat будут повторяться. Для корректного моделирования длительного навигационного сеанса пользователь может установить нулевые флаги для селективного доступа и многолучевости в векторе esf, а соответствующие ошибки прибавлять к измерениям дополнительно (см. mpgen и sagen).

Следующее замечание касается моделированию совместной навигации GPS и ГЛОНАСС. Функция genrng добавляет ошибки селективного доступа только для спутников, чьи идентификационные номера меньше 25. Причина этого – отсутствие селективного доступа в системе ГЛОНАСС. Напомним, что функция loadgg создает такую конфигурацию навигационной системы GPS+ГЛОНАСС, в которой номера GPS спутников изменяются от 1 до 24, а номера ГЛОНАСС спутников – от 51 до 74.

Функция genrng не учитывает процесс вращения Земли и для вычисления дальностей используется соответствующее время при определении координат спутников и потребителя.

Пример. Пусть приемник находится в точке со следующими координатами: широта N 39, долгота W 82, высота 0 м. Вычислить псевдодальномерные и интегральные доплеровские измерения для всех видимых GPS спутников в момент времени, равный 2000 с после полуночи. Считать, что угол видимости над горизонтом должен быть не менее 15 и учитывать все факторы ошибок.

samat = sagen(24, 3600);

mpmat = mpgen(24, 3600);

rxllh = [39*pi/180 -82*pi/180 0];

rxxyz = llh2xyz(rxllh);

[svmat, svid] = gensv(rxxyz, t, 15);

[pr, adr] = genrng(1, rxxyz, svmat, svid, t, [1 1 1 1 1], samat, mpmat);

Алгоритм. Функция genrng определяет истинные расстояния до каждого спутника в требуемый момент времени (не учитывается эффект вращения Земли).

"Измеренные" псевдодальномерные измерения генерируются путем прибавления ошибок к истинным расстояниям.

При вычислении ошибок селективного доступа и многолучевости если время навигационного сеанса не равно целому числу секунд, то функция genrng использует интерполяцию.

Ионосферная задержка добавляется к дальномерным измерениям, а у интегральных доплеровских измерений вычитается. Это сделано для имитации рассеивающего эффекта при распространении радиоволн в ионосфере.

Моделирование неоднозначности фазовых измерений для каждого спутника обеспечивается при помощи добавления к интегральному доплеровскому измерению величины:

где rxid – идентификационный номер приемника, svid – идентификационный номер соответствующего спутника, lambda – длина волны, м.

Для GPS спутников длина волны передаваемого сигнала на частоте L1 1575.42 МГц приблизительно равна 19 см. Для ГЛОНАСС спутников, передающих на разных частотах, величина lambda будет различаться для каждого спутника. В настоящей версии пакета программ "Спутниковая навигация" данные особенности системы ГЛОНАСС не эмулируются.

Смежные функции. loadgps, loadglo, loadgg, gensv, sagen, mpgen, Назначение. Вычисляет координаты положений видимых спутников.

Вызов функции. svxyzmat = gensv(usrxyz, time, masking, orgxyz) или [svxyzmat, svid] = gensv(usrxyz, time, masking, orgxyz) Описание. Вычисляет координаты положений спутников (три координаты), которые видны потребителю, расположенному в точке usrxyz. Если вектор orgxyz не задан, то положения спутников вычисляются в системе ECEF WGS-84. Если же вектор orgxyz задан, то он используется как центр топоцентрической прямоугольной ENU системы координат и координаты спутников вычисляются уже в этой системе координат.

usrxyz(1:3) – положение потребителя в системе ECEF WGS-84, если вектор orgxyz не задан. Если вектор orgxyz задан, то usrxyz(1:3) определяет положение потребителя в топоцентрической прямоугольной ENU системе координат с центром orgxyz.

time – время недели в сек.

maskang – величина минимального угла видимости спутника над горизонтом, град.

Если при вызове функции gensv величина masking не указана, то по умолчанию используется значение 5.

orgxyz(1:3) – дополнительный параметр. Определяет координаты центра топоцентрической прямоугольной ENU системы координат в системе ECEF WGSsvxyzmat – массив координат положений видимых спутников прямоугольной системе координат. svxyzmat(i, 1:3) – есть координаты {x, y, z} i-го спутника. svid – вектор идентификационных номеров видимых спутников, соответствующих svxyzmat.

Функция gensv предполагает, что спутниковые орбитальные параметры уже были загружены и доступны как глобальные переменные. Такую возможность предоставляют функции loadgps, loadglo или loadgg.

Пример. Пусть приемник находится в точке со следующими координатами: широта N 39, долгота W 82, высота 0 м. Вычислить координаты положений всех GPS спутников в момент времени, равный 2000 сек. после полуночи. Считать, что угол видимости над горизонтом должен быть не менее 15.

rxllh = [39*pi/180 -82*pi/180 0];

rxxyz = llh2xyz(rxllh);

[svmat, svid] = gensv(rxxyz, t, 15);

Алгоритм. Функция gensv вычисляет координаты положений всех спутников, орбитальные параметры которые были предварительно загружены функциями loadgps, loadglo или loadgg. Угол видимости для каждого спутника вычисляется относительно положения потребителя usrxyz. Координаты спутников для которых выполняется условие видимости, записываются в массив svxyzmat, а идентификационные номера – в svid.

Смежные функции. genrng, loadgps, loadglo, loadgg, dops Назначение. Задает периодическую круговую кросс-корреляцию для C/A кода.

Вызов функции. [lag, r] = gpscor(x1, x2, numlag) Описание. В отличие от стандартных кросс-корреляционных функций (см.

например, функцию Matlab xcorr ), функция gpscor учитывает тот факт, что C/A код (и другие ограниченные по длине последовательности, используемые для формирования кода C/A, например, коды G1 и G2) являются периодическими последовательностями. Поэтому функция gpscor создает периодическую корреляцию последовательностей x1 и x2 и прерывает метками r результирующую последовательность lag. Длительность периодической последовательности задается при помощи величины numlag.

Замечание: поскольку функция gpscor предназначена для работы с C/A кодами, то требуется, чтобы длина последовательностей x1 и x2 была бы 1023.

Пример. Генерировать C/A код. Вычислить и графически отобразить первые значений автокорреляционной функции C/A кода и двух максимально длинных последовательностей, используемых для генерации C/A кода:

[ca, g1, g2] = cacode(5);

[lagg1, rg1] = gpscor(g1, g1, 25);

plot(lagg1, rg1) [lagg2, rg2] = gpscor(g2, g2, 25);

plot(lagg2, rg2) [lagca, rca] = gpscor(ca, ca, 25);

plot(lagca, rca) Генерировать два различных C/A кода, вычислить и графически отобразить первые 25 значений кросс-корреляционной функции:

[ca5, g1, g2] = cacode(5);

[ca6, g1, g2] = cacode(6);

[lagca56, rca56] = gpscor(ca5, ca6, 25);

plot(lagca56, rca56) axis([0 25 -200 1200]) Смежные функции. cacode Назначение. Решает задачу фазового сглаживания дальномерных измерений при помощи фильтра Хатча (Hatch filter).

Вызов функции.

[prsm, prmat, adrmat] = hatch(pr, adr, svid, smint, prmat, adrmat) Описание. Фильтр Хатча использует интегральные доплеровские измерения для сглаживания псевдодальностей.

pr – вектор измеренных пседодальностей для текущей эпохи.

adr – вектор интегральных доплеровских измерений для текущей эпохи.

svid – вектор идентификационных номеров видимых спутников, соответствующих pr и adr.

smint – интервал сглаживания (целое число секунд).

prmat – матрица псевдодальностей для предыдущей эпохи измерений.

adrmat – матрица интегральных доплеровских измерений для предыдущей эпохи измерений.

Когда функция hatch вызывается в первый раз, матрицы prmat и adrmat должны быть установлены как []. Эти матрицы обновляются функцией hatch при переходе к следующей эпохе измерений.

prsm – вектор сглаженных псевдодальностей.

prmat – обновленная матрица предыдущих псевдодальностей.

adrmat – обновленная матрица предыдущих интегральных доплеровских Пример. Задать некоторое положение потребителя. Вычислить положения спутников и дальности. Генерировать "измеренные" псевдодальности с ошибками только из-за теплового шума приемника. Провести фазовое сглаживание псевдодальностей и вычислить положение потребителя на основе использования обычных и сглаженных псевдодальностей. Результат отобразить графически.

usrllh = [39*pi/180 -82*pi/180 150];

usrxyz = llh2xyz(usrllh);

fprintf(1, ' time = %i stop time = 200\n ', t) [svxyzmat, svid] = gensv(usrxyz, t);

[prvec,adrvec] = genrng(1, usrxyz, svxyzmat, svid, t, [1 0 0 0 0]);

[prsm,prmat, adrmat] = hatch(prvec, adrvec, svid, 25, prmat, adrmat);

estusr = olspos(prvec, svxyzmat);

smestusr = olspos(prsm, svxyzmat);

err(i, :) = estusr – [usrxyz 0];

smerr(i, :) = smestusr – [usrxyz 0];

plot(time, err(:, 1), 'r', time, smerr(:, 1), 'g') Алгоритм. Основой фазового сглаживания является оценивание разности между псевдодальномерными и интегральными доплеровскими измерениями. Оценка этой разности прибавляется к интегральным доплеровским измерениями для уменьшения шума измерений. Необходимо заметить, что величина временного интервала smint ограничена вследствие кодо/фазовой ионосферной дивергенцией.

Смежные функции. compkal, loadgps, loadglo, loadgg, gensv, genrng Назначение. Вычисляет матрицу направляющих косинусов Вызов функции. h = hmat(svmat, usrpos) Описание. Матрица направляющих косинусов или, иначе, геометрическая матрица вычисляется для потребителя в точке usrpos и спутникового созвездия, заданного координатами svmat.

svmat – матрица прямоугольных координат спутников.

svmat(i, 1:3) – координаты {x, y, z} i-го спутника.

usrpos – координаты положения потребителя (оценка положения) в прямоугольной системе координат.

h – матрица направляющих косинусов спутниковой навигации.

15.11. Функция ionogen Назначение. Вычисление задержки распространения навигационного сигнала в ионосфере.

Вызов функции. delta = ionogen(usrxyz, svxyz, time) Описание. Значение delta есть величина ионосферной задержки навигационного радиосигнала, передаваемого спутником, координаты которого svxyz, и принимаемым потребителем в точке usrxyz в момент времени time.

usrxyz(1:3) – положение потребителя в ECEF.

svxyz(1:3) – положение навигационного спутника в ECEF.

time – GPS время недели, сек.

delta – величина ионосферной задержки, м.

Алгоритм. Вычисления базируются на традиционной модели, соответствующей изменению ионосферной задержки от значения в зените как функции косинус в первой половине интервала [4]. Модель учитывает отклонение распространения радиосигнала от прямой линии [5], но не эмулирует неоднородность ионосферы.

15.12. Функция llh2xyz Назначение. Преобразует координаты {широта, долгота, высота} из географической WGS-84 в координаты {x, y, z} геоцентрической прямоугольной гринвичской системы (ECEF) WGS-84.

Вызов функции. xyz = llh2xyz(llh) Описание.

xyz(1) – координата {x} в системе ECEF WGS-84, размерность – метры.

xyz(2) – координата {y} в системе ECEF WGS-84, размерность – метры.

xyz(3) – координата {z} в системе ECEF WGS-84, размерность – метры.

llh(1) – широта (latitude) точки в радианах.

llh(2) – долгота (longitude) точки в радианах.

llh(3) – высота (height) над эллипсоидом WGS-84 в метрах.

Пример. Пусть известны координаты приемника в географической системе координат: широта 39, долгота -82, высота 150 м. Пересчитать координаты в систему ECEF WGS-84.

usrllh = [39*pi/180 -82*pi/180 150];

usrxyz = llh2xyz(usrllh) Смежные функции. enu2xyz, xyz2enu, xyz2llh 15.13. Функции loadgps, loadglo, loadgg Назначение. Загружает орбитальные параметры навигационной системы GPS или ГЛОНАСС или GPS+ГЛОНАСС в память как глобальные данные.

Вызов функции. loadgps Описание. Кеплеровы параметры круговых идеальных орбит загружаются в память как глобальные переменные:

SVIDV – вектор идентификационный номеров спутников.

MV – вектор средних аномалий на базовый момент времени (reference time) для спутников с номерами SVIDV, град.

RV – вектор радиусов круговых орбит спутников SVIDV, м.

TOEV – вектор базовых моментов времени, для которых заданы кеплеровы параметры спутников SVIDV (time of ephemeris), сек.

OMGV – вектор долгот восходящих узлов орбит спутников SVIDV, град.

INCLV – вектор наклонений орбитальных плоскостей спутников SVIDV, град.

Необходимо отметить, что при определении долгот восходящих узлов орбит спутников используется время недели.

Функция loadgps загружает только параметры системы GPS. Функция loadglo загружает только параметры системы ГЛОНАСС. Функция loadgg загружает параметры систем GPS и ГЛОНАСС. Напомним, что идентификационные номера спутников системы ГЛОНАСС изменяются от 51 до 74.

Пример. Загрузить параметры системы GPS и вычислить координаты всех видимых спутников для заданного положения:

usrllh = [39*pi/180 -82*pi/180 150];

usrxyz = llh2xyz(usrllh);

[svxyzmat, svid] = gensv(usrxyz, t);

Смежные функции. gensv, genrng Назначение. Генерация дальномерных ошибок из-за многолучевости.

Вызов функции. delta = mpgen(numsat, duration, model, mpseed) Описание.

delta – матрица дальномерных ошибок из-за многолучевости, соответствующих числу спутников (numsat – число столбцов в delta) и длине временного интервала в секундах (duration – число строк в delta).

model – задает одну из двух возможных моделей многолучевости. Если model=1, то ошибки многолучевости имеют СКО равное 1.6 м и временная константа равна мин. Если model=2, то ошибки многолучевости имеют СКО равное 0.4 м и временная константа равна 15 с.

mpseed – позволяет пользователю инициализировать генератор псевдослучайных чисел. Применение одного и того же числа дает возможность повторить последовательность псевдослучайных чисел. (См. функции Matlab rand и randn для получения более подробной информации о генераторе псевдослучайных чисел).

Пример. Генерировать ошибки многолучевости для 24 спутников на часовой интервал времени. Использовать модель многолучевости с наибольшей временной константой. Графически отобразить ошибки многолучевости для любого одного спутника.

delta = mpgen(24, 3600, 1);

plot(delta(:, 1)) Алгоритм. Функция mpgen создает ошибки многолучевости при помощи фильтра Butterworth первого порядка, на вход которого подается белый шум.

Смежные функции. genrng, sagen, ionogen, tropgen 15.15. Функция nmatgen Назначение. Вычисляет матрицу возможных параметров неоднозначности фазовых измерений для 5 спутников (то есть 4 двойных разностей) с неопределенностью меньше 1 метр (плюс-минус 5 длин волны).

Вызов функции. Nmat = nmatgen Описание.

Nmat – матрица возможных параметров неоднозначности фазовых измерений.

Строки матрицы Nmat имеют значения от [-5 -5 -5 -5] до [5 5 5 5].

Пользователь также может загрузить в память матрицу Nmat непосредственно из файла nmat.mat.

Назначение. Вычисляет положение потребителя на основе известных координат спутников и измерений дальностей до них при помощи метода наименьших квадратов.

Вызов функции. estusr = olspos(prvec, svxyzmat, initpos, tol) Описание.

prvec – вектор измеренных псевдодальностей до спутников, указанных в svxyzmat(i, 1:3) – координаты i-го спутника в выбранной прямоугольной initpos – априорное положение потребителя (три координаты положения и уход часов) в выбранной системе координат. Данный параметр является необязательным и влияет на скорость решения.

По умолчанию начальное значение ухода часов равно 0.

tol – определяет точность итеративного решения. Данный параметр является необязательным. По умолчанию это значение равно 1e-3.

estusr – оценка вектора потребителя:

est_stat(1), est_stat(2), est_stat(3) – оценки координат x,y,z потребителя est_stat(4) – оценка ухода часов потребителя.

Все элементы вектора estusr имеют одну размерность, что и вектор prvec.

Пример. См. раздел 15.3.

Алгоритм. Априорное начальное значение положения потребителя используется при линеаризации дальномерной навигации. Задача состоит в перемещении оценки положения потребителя из начальной точки в истинное положение. Эта процедура носит итерационный характер, окончание которой наступает, если норма изменения положения будет меньше параметра tol. Для предотвращения зацикливания число итераций ограничено 10. Заметим, что даже если центр Земли будет использоваться в качестве начального положения, то для решения потребуется менее 10 итераций.

Смежные функции. genrng, gensv 15.17. Функция olsposgg Назначение. Вычисляет положение потребителя, уход часов и смещения между GPS и ГЛОНАСС временными шкалами на основе известных координат спутников систем GPS и ГЛОНАСС и измерений дальностей до них при помощи метода наименьших квадратов.

Вызов функции. estusr = olsposgg(prvec, svxyzmat, svid, initpos, tol) Описание.

prvec – вектор измеренных псевдодальностей до спутников, указанных в svxyzmat(i, 1:3) – координаты i-го спутника в выбранной прямоугольной svid – вектор идентификационных номеров видимых спутников, соответствующих svxyzmat.

initpos – априорное положение потребителя (три координаты положения, уход часов и GPS/ГЛОНАСС смещение между системным временем) в выбранной системе координат.

Данный параметр является необязательным и влияет на скорость решения.

По умолчанию начальное значение ухода часов и GPS/ГЛОНАСС tol – определяет точность итеративного решения. Данный параметр является необязательным. По умолчанию это значение равно 1e-3.

estusr – оценка вектора потребителя:

est_stat(1), est_stat(2), est_stat(3) – оценки координат x,y,z потребителя est_stat(4) – оценка ухода часов потребителя est_stat(5) – смещение между GPS и ГЛОНАСС временными шкалами.

Все элементы вектора estusr имеют одну размерность, что и вектор prvec.

Пример. См. раздел 15.7 (функция gensv).

Алгоритм. Априорное начальное значение положения потребителя используется при линеаризации дальномерной навигации. Задача состоит в перемещении оценки положения потребителя из начальной точки в истинное положение. Эта процедура носит итерационный характер, окончание которой наступает, если норма изменения положения будет меньше параметра tol. Для предотвращения зацикливания число итераций ограничено 10. Заметим, что даже если центр Земли будет использоваться в качестве начального положения, то для решения потребуется менее 10 итераций.

Поскольку при GPS/ГЛОНАСС навигации необходимо определить пять параметров (три координаты положения, уход часов приемника и смещение между GPS и ГЛОНАСС временными шкалами), то минимальное число измерений равно 5, причем не менее по одному измерению от каждой системы.

Смежные функции. olspos, genrng, gensv 15.18. Функция pathgen Назначение. Моделирование движения объекта. Траектория движения состоит из произвольного числа прямолинейных участков, соединенных криволинейными участками с фиксированным радиусом поворота. При движении величина линейной скорости не изменяется.

Вызов функции. path = pathgen(initpos, initvel, segparam, deltat) Описание.

initpos – начальное положение объекта в прямоугольной топоцентрической системе координат (ENU), размерность - метры.

initvel – начальная скорость объекта в горизонтальной плоскости, {Ve, Vn} – проекции скорости на оси East и North, размерность – м/сек.

Величина линейной скорости есть величина постоянная для всей траектории движения.

segparam – характеристики прямолинейных участков и поворотов:

segparam(i, 1) – длительность (в секундах) i-го прямолинейного участка segparam(i, 2) – направление и величина (в градусах) i-го поворота.

Нулевая величина означает отсутствие поворота.

Положительная величина – поворот налево.

segparam(i, 3) – величина центростремительного ускорения i-го поворота, deltat – временной интервал приращения, сек.

path – траектория движения объекта в системе координат ENU.

Функция pathgen поддерживает только горизонтальное движение. Если в начальном положении initpos задана не нулевая высота, то движение будет осуществляться на этой постоянной высоте.

Пример. Пусть необходимо смоделировать следующее движение объекта.

Первоначально объект находится в центре системы координат ENU. Начальная скорость равна 50 м/с, направление – на север. Спустя 1 минуту объект совершает поворот вправо на 90 с ускорением 1 g. Далее прямолинейное движение длительностью 1 мин. Затем правый поворот на 45 с ускорением 1 g и снова прямолинейное движение длительностью 1 мин.

initpos = [0 0 0];

initvel = [0 50];

segparam = [60 -90 9.8; 60 -45 9.8; 60 0 0];

deltat = 1;

path = pathgen(initpos, initvel, segparam, deltat);

plot(path(:,1),path(:,2)) Алгоритм. При моделировании поворота величина радиуса вычисляется как квадрат тангенциальной скорости, деленный на центростремительное ускорение.

Угловая скорость есть тангенциальная скорость деленная на радиус поворота.

После поворота направление вектора скорости совпадает с направлением движения на следующем прямолинейном участке.

Назначение. Алгоритм автономного контроля целостности данных в приемнике.

Функция raim вычисляет вектор ошибок дальномерных измерений.

Вызов функции. parvec = raim(prvec, svxyzmat, initpos, tol) Описание.

prvec – вектор измеренных псевдодальностей до спутников, указанных в svxyzmat(i, 1:3) – координаты i-го спутника в выбранной прямоугольной initpos – априорное положение потребителя (три координаты положения и уход часов) в выбранной системе координат. Данный параметр является необязательным и влияет на скорость решения.

По умолчанию начальное значение ухода часов равно 0.

tol – определяет точность итеративного решения. Данный параметр является необязательным. По умолчанию это значение равно 1e-3.

parvec – вектор ошибок дальномерных измерений, размерность этого вектора есть n-4, где n – число дальномерных измерений.

Пример. См. раздел 15.4 (функция ekfpos).

Алгоритм. Вычисление вектора ошибок дальномерных измерений основывается на QR-декомпозиции (см. описание функции Matlab qr), позволяющее выделить область решения (с использованием МНК) из области ошибок данных. Эта возможность основывается на избыточности числа измерений. В качестве меры целостности данных используется норма вектора ошибок дальномерных измерений (корень квадратный из суммы квадратов ошибок дальномерных измерений).

Смежные функции. olspos, genrng, gensv Назначение. Вычисление ошибок измерений из-за селективного доступа.

Вызов функции. delta = sagen(numsat, duration, model, saseed) Описание.

numsat – число спутников, для которых будут вычислены ошибки измерений из-за селективного доступа, то есть для этих спутников будет применяться селективный доступ.

duration – длительность действия селективного доступа, целое число с.

Для model=4 или 5 длительность не может быть меньше 1200 с.

model – дополнительный необязательный параметр, характеризующий модель селективного доступа:

1 – Марковский процесс 2-го порядка, моделируются только дальномерные ошибки измерений 2 – Марковский процесс 2-го порядка, моделируются в том числе ошибки 3 – Авторегрессионная модель 4 – Rater analytic модель 5 – Rater analytic модель, моделируются в том числе ошибки скорости и ускорения saseed – дополнительный необязательный параметр, инициализирующий генератор псевдослучайных чисел.

По умолчанию saseed = sum(100*clock).

Если model = 1,3 или 4, то параметр delta есть матрица дальномерных ошибок измерений из-за селективного доступа. Строки в матрице delta соответствуют временным эпохам измерений для указанного числа спутников.

Если model = 5, то ошибки измерений есть:

delta(:, 3*i - 2) – дальномерные ошибки в метрах;

delta(:, 3*i - 1) – ошибки скорости в м/с;

delta(:, 3*i ) – ошибки ускорений в м/с.

Если model = 2, то ошибки измерений есть:

delta(:, 2*i - 1) – дальномерные ошибки в метрах;

delta(:, 2*i ) – ошибки скорости в м/с.

Ошибки селективного доступа рассчитываются заранее для указанной длительности каждую секунду.

Пример. Используя авторегрессионную модель вычислить ошибки измерений из-за селективного доступа для одного спутника на получасовой интервал времени.

Результат представить в виде графика.

delta = sagen(1, 1800, 3, 2345);

plot(delta) Смежные функции. mpgen, ionogen, tropgen, genrng Назначение. Отображает картину видимости спутников.

Вызов функции.

vismat = satvis(usrxyz, tstart, tstop, tinc, sasflg, plotflg, masking) Описание.

usrxyz – положение потребителя в ECEF.

tstart, tstop, tinc – начало, конец и шаг временного интервала при расчете sysflg – 1 для GPS и 2 для ГЛОНАСС plotflg – 1 - для вывода общего числа видимых спутников в каждый момент времени 2 - для вывода видимости каждого спутника в каждый момент времени maskang – минимальный угол видимости спутников.

Необязательный параметр. Значение по умолчанию 5.

Если plotflg=1, то vismat(:, 1) есть общее число видимых спутников для момента времени, заданного в vismat(:, 2).

Если plotflg=2, то vismat(:, 25) есть момент времени, для которого рассчитывается видимость спутников. Элементы vismat(:, 1)-vismat(:, 24) определяют видимость каждого спутника системы (GPS или ГЛОНАСС).

Отсутствие видимости спутника в некоторый момент времени означает нулевое значение.

Пример. Графически представить суточную видимость числа спутников системы GPS для потребителя, расположенного в точке: широта 39, долгота -82.

usrllh = [39*pi/180 -82*pi/180 150];

usrxyz = llh2xyz(usrllh);

vismat = satvis(usrxyz, 0, 86000, 1000, 1, 1, 5);

Для этого же положения показать видимость каждого спутника:

vismat = satvis(usrxyz, 0, 86000, 1000, 1, 2, 5);

Смежные функции. gensv, loadgps, loadglo, loadgg, skyplot Назначение. Отображает картину расположения спутников на Вызов функции. skyplot(svxyzmat, svid, usrxyz, figflg, idflg) Описание.

svxyzmat(i, 1:3) – координаты i-го спутника в прямоугольной ECEF svid – вектор, содержащий идентификационные номера всех спутников, соответствующих svxyzmat.

usrxyz(1:3) – точное положение в прямоугольной ECEF figflg – 1 - если функция Matlab close выполняется до вывода графика 0 - если функция Matlab close не выполняется до вывода графика Значение по умолчанию 1.

idflg – 1 - если требуется показать идентификационные номера спутников на графике, 0 - иначе.

Значение по умолчанию равно 1.

Пример. Графически представить видимость GPS спутников потребителю, расположенному в точке: широта 39, долгота -82 в начале GPS недели.

usrllh = [39*pi/180 -82*pi/180 150];

usrxyz = llh2xyz(usrllh);

[svxyzmat, svid] = gensv(usrxyz, t, 0);

skyplot (svxyzmat, svid, usrxyz) Смежные функции. gensv, loadgps, loadglo, loadgg, satvis Назначение. Вычисление положений спутников в системе координат WGS-84 для заданного момента времени на основе известных кеплеровых орбитальных параметров, при условии движения по идеальным круговым орбитам.

Вызов функции. svxyz = svpos(r, toe, Mo, OMGo, incl, t) Описание.

r – вектор радиуса круговой орбиты спутника, м.

toe – базовый момент времени, для которого заданы кеплеровы параметры спутника (time of ephemeris), с.

Mo – средняя аномалия на базовый момент времени (reference time), град.

OMGo – долгота восходящего узла орбиты спутника, град.

incl – наклонение орбитальной плоскости орбиты спутника, град.

t – момент времени, на который рассчитываются координаты положений спутников, сек.

svxyz(1, 1) – {x} координата спутника в системе WGS-84, м.

svxyz(2, 1) – {y} координата спутника в системе WGS-84, м.

svxyz(3, 1) – {z} координата спутника в системе WGS-84, м.

Смежные функции. loadgps, loadglo, loadgg, gensv, dops 15.24. Функция tropgen Назначение. Вычисление задержки распространения навигационного сигнала в тропосфере.

Вызов функции. delta = tropgen(usrxyz, svxyz, humid) Описание. Значение delta есть величина тропосферной задержки навигационного радиосигнала, передаваемого спутником, координаты которого svxyz, и принимаемым потребителем в точке usrxyz при значении влажности humid.

usrxyz(1:3) – положение потребителя в ECEF.

svxyz(1:3) – положение навигационного спутника в ECEF.

humid – необязательный параметр означает величину влажности в delta – величина тропосферной задержки, м.

Алгоритм. Вычисления базируются на модели Хопфильда (Hopfield).

15.25. Функция xyz2enu Назначение. Преобразует координаты {x, y, z} в геоцентрической прямоугольной гринвичской системе координат (ECEF) WGS-84 в координаты {e, n, u} топоцентрической прямоугольной системы (ENU) c центром в заданной точке {orgx, orgy, orgz}.

Вызов функции. enu = xyz2enu(xyz, orgxyz) Описание.

xyz(1,1) – координата {x} заданной точки в системе ECEF WGS-84, xyz(2,1) – координата {y} заданной точки в системе ECEF WGS-84, xyz(3,1) – координата {z} заданной точки в системе ECEF WGS-84, orgxyz(1) – координата {x} центра топоцентрической прямоугольной системы (ENU) в системе ECEF WGS-84, размерность – метры.

orgxyz(2) – координата {y} центра топоцентрической прямоугольной системы (ENU) в системе ECEF WGS-84, размерность – метры.

orgxyz(3) – координата {z} центра топоцентрической прямоугольной системы (ENU) в системе ECEF WGS-84, размерность – метры.

enu(1) – координата {e} заданной точки в топоцентрической прямоугольной системе (ENU), размерность – метры.

enu(2) – координата {n} заданной точки в топоцентрической прямоугольной системе (ENU), размерность – метры.

enu(3) – координата {u} заданной точки в топоцентрической прямоугольной системе (ENU), размерность – метры.

Алгоритм. Первоначально вычисляются географические координаты центра топоцентрической прямоугольной системы, заданной параметром orgxyz. Далее, пересчет из ECEF в ENU осуществляется как поворот и смещение координатных осей.

Смежные функции. enu2xyz, xyz2llh, llh2xyz 15.26. Функция xyz2llh Назначение. Преобразует координаты {x, y, z} в геоцентрической прямоугольной гринвичской системе координат (ECEF) WGS-84 в координаты {latitude, longitude, height} геодезической WGS-84 системы координат.

Вызов функции. llh = xyz2llh(xyz) Описание.

xyz(1) – координата {x} заданной точки в системе ECEF WGS-84, xyz(2) – координата {y} заданной точки в системе ECEF WGS-84, xyz(3) – координата {z} заданной точки в системе ECEF WGS-84, llh(1) – широта заданной точки в геодезической системе WGS-84, размерность – радианы.

llh(2) – долгота заданной точки в геодезической системе WGS-84, размерность – радианы.

llh(3) – высота заданной точки над поверхностью геоида WGS-84, Смежные функции. enu2xyz, xyz2enu, llh2xyz



Похожие работы:

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ Ульяновская государственная сельскохозяйственная академия Агрономический факультет Кафедра земледелия и мелиорации РАБОЧАЯ ПРОГРАММА ПО УЧЕБНОЙ ПРАКТИКЕ по дисциплине ЗАЩИТА РАСТЕНИЙ Ульяновск – 2009 1 2 СОДЕРЖАНИЕ Цель и задачи учебной практики, ее место в учебном процессе.. 1. 4 Форма проведения практики.. 2. Место и время проведения учебной практики.. 3. Инструктаж по технике безопасности.. 4. Структура и содержание учебной практики.. 5....»

«Государственное автономное образовательное учреждение высшего профессионального образования Тюменской области ТЮМЕНСКАЯ ГОСУДАРСТВЕННАЯ АКАДЕМИЯ МИРОВОЙ ЭКОНОМИКИ, УПРАВЛЕНИЯ И ПРАВА 2.5. Реализация образовательных программ СМК – РОП - РУП - 2.5.21 МЕЖДУНАРОДНАЯ ЭКОНОМИКА СОГЛАСОВАНО УТВЕРЖДЕНО Проректор по учебной работе Решением Учёного совета _ Т.А. Кольцова (протокол № 9 от 23.03.2011 г.) _ 2011 г. Д. Ю. РУДЕНКО МЕЖДУНАРОДНАЯ ЭКОНОМИКА Рабочая учебная программа Направление подготовки 080100...»

«Пояснительная записка Настоящая программа составлена на основе следующих нормативных документов: ФГОС ООО Утвержден приказом Министерства образования и науки Российской • Федерации от 17 декабря 2010 г. № 1897 • Примерные программы по учебным предметам Изобразительное искусство, Музыка, Искусство (стандарты второго поколения). Проект, М., Просвещение, 2010. • Рабочие программы Изобразительное искусство ФГОС. Предметная линия учебников под редакцией Б.М. Неменского 1 – 4 класс. Пособие для...»

«Об учебно-методическом комплексе Одним из наиболее известных в стране проектов издательства Просвещение является учебнометодический комплекс (УМК) для начальных классов Школа России. УМК Школа России построен на единых для всех учебных предметов основополагающих принципах, имеет полное программнометодическое сопровождение и гарантирует преемственность с дошкольным образованием Ведущая целевая установка и основные средства ее реализации, заложенные в основу УМК Школа России, направлены на...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ, Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Саратовский государственный аграрный университет имени Н.И. Вавилова СОГЛАСОВАНО УТВЕРЖДАЮ Заведующий кафедрой Декан факультета /Карпунина Л.В./ _ /Молчанов А.В./ _ _2013 г. _ 2013 г. РАБОЧАЯ ПРОГРАММА ДИСЦИПЛИНЫ БИОТЕХНОЛОГИЧЕСКИЕ СПОСОБЫ Дисциплина ПОЛУЧЕНИЯ ЛЕКАРСТВЕННЫХ ПРЕПАРАТОВ Направление 240700.62 Биотехнология подготовки Профиль...»

«Гл. 4. ОБУЧЕНИЕ ОДАРЕННЫХ ДЕТЕЙ Обучение одаренных детей в школе Любой процесс обучения преследует по крайней мере две цели. С одной стороны, мы даем ребенку совокупность знаний, необходимых ему для ориентации в жизни и профессии, с другой стороны, учим мыслить его самого. Умственное развитие подростка или ребенка идет не только в плане усиления общих интеллектуальных возможностей, но и в плане увеличения компетентности в конкретных областях: математике, гуманитарных науках, искусствах и т.д....»

«Рассмотрено Согласовано Утверждаю Заседание ММО Зам. директора по УВР Директор школы: Учителей начальных классов _ / _ / Протокол№_ _2012г. _2012г От __2012г Рабочая программа по курсу Технология для учащихся 4 класса МБОУБуныревская средняя общеобразовательная школа №14 на 2012-2013 учебный год Планирование разработано: учителем начальных классов Гайдук В.П. Вторая категория 8 лет 2012 г. Технология 4 класс Пояснительная записка Рабочая программа по трудовому обучению для 4 класса разработана...»

«Балаковский институт техники, технологии и управления (филиал) федерального государственного бюджетного образовательного учреждения высшего профессионального образования Саратовский государственный технический университет Кафедра Технология и автоматизация машиностроения АННОТАЦИЯ К РАБОЧЕЙ ПРОГРАММЕ по дисциплине Б.3.2.10.1 Интегрированные компьютерные технологии проектирования и производства (CAD/CAM-системы) направления подготовки 151900.62 Конструкторско-технологическое обеспечение...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ЭКОНОМИЧЕСКИЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Проректор по учебной работе Л. М. Капустина _2011 г. РАБОЧАЯ ПРОГРАММА ПРАКТИКИ ДЛЯ ПОЛУЧЕНИЯ ПЕРВИЧНЫХ ПРОФЕССИОНАЛЬНЫХ НАВЫКОВ Наименование специальности (направления подготовки) 080501.51 Менеджмент (по отраслям) Екатеринбург 2011 Составлена в соответствии Государственными требованиями к минимуму содержания и уровню подготовки выпускников по специальности 08501 Менеджмент...»

«Российская академия наук Русское ботаническое общество Отделение биологических наук Ботанический институт им. В.Л. Комарова Институт экологии Волжского бассейна Правительство Самарской области Министерство лесного хозяйства, охраны окружающей среди и природопользования Мэрия городского округа Тольятти Волжский университет им. В.Н. Татищева XIII СЪЕЗД РУССКОГО БОТАНИЧЕСКОГО ОБЩЕСТВА СОВРЕМЕННАЯ БОТАНИКА В РОССИИ ПРОГРАММА И ПРИГЛАСИТЕЛЬНЫЙ БИЛЕТ Тольятти, 16-22 сентября 2013 г. Уважаемые...»

«Пояснительная записка В соответствии с ФГОС среднего (полного) общего образования учебный предмет Химия входит в предметную область Естественные науки. Представленная рабочая образовательная программа Химия 10-11 класс (базовый уровень) составлена на основе примерной программы для среднего общего образования по химии. Программа базового курса химии 10-11 классов отражает современные тенденции в школьном химическом образовании, связанные с реформированием средней школы. Курс рассчитан на 1 ч в...»

«Содержание 1. Общие положения. 2. Годовой календарный учебный график МОУ СОШ № 87 г. Сочи на 2013 -2014 учебный год 3. Учебный план МОУ СОШ № 87 г. Сочи для 4-11 классов на основе Буп-2004 г на 2013-2014 учебный год. 4. Перечень рабочих программ, реализуемых в МОУ СОШ № 87 г. Сочи в 2013 -2014 учебном году. 5. Перечень учебников и учебных пособий, используемых в МОУ СОШ № 87 г. Сочи в 2013 -2014 учебном году. 6. Перечень учебного и лабораторного оборудования, используемого для реализации...»

«Институт Йога Гуру Ар Сантэма -Кафедра Йоги Требования к инстуруктору-методисту 1-го ранга -Утверждаю Ректор Института Йога Гуру Ар Сантэма _ Г.Г. Стаценко 2013 г. Требования для сдачи квалификационного экзамена на звание Инструктор-методист 1-го ранга по курсу Йога, с правом работы с группами населения по программе Школы Йоги 1 - 2 годов обучения. Экзаменуемому присваивается квалификация Инструктор-методист 1-го ранга в рамках курса Йога, если он имеет: 1. Образование не ниже среднего. 2....»

«УТВЕРЖДЕНА постановлением администрации муниципального образования Город Кирово-Чепецк Кировской области от _ № Муниципальная программа РАЗВИТИЕ ТРАНСПОРТНОЙ СИСТЕМЫ на 2014-2016 годы г. Кирово-Чепецк 2013 г. Паспорт муниципальной программы Развитие транспортной системы на 2014-2016 годы (далее - муниципальная программа) Ответственный исполнитель Управление жилищно-коммунального муниципальной программы хозяйства администрации муниципального образования Город Кирово-Чепецк Кировской области...»

«Балаковский инженерно-технологический институт - филиал федерального государственного автономного образовательного учреждения высшего профессионального образования Национальный исследовательский ядерный университет МИФИ Кафедра Социальные и гуманитарные науки РАБОЧАЯ ПРОГРАММА по дисциплине ОПД.Ф.17 Методика исследований в социальной работе для специальности 040101.65 - Социальная работа для студентов очной формы обучения Курс 4 Семестр 8 Лекции 17 ч. Экзамен (семестр) 8 Практические занятия 17...»

«Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Казанский государственный технологический университет В.М. Борисов ТЕХНОЛОГИЯ МАШИНОСТРОЕНИЯ Текст лекций. 2007 Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Казанский государственный технологический университет В.М. Борисов ТЕХНОЛОГИЯ МАШИНОСТРОЕНИЯ Текст лекций. Казань 2007 УДК 621.658.512 (075.8)...»

«1 ТРИ ПРЕДВАРИТЕЛЬНЫХ ДОКЛАДА ПО ЭКОНОМИКЕ ОХРАНЫ ТРУДА Питер Дорман г. Женева, апрель 2000 г. Каким образом экономический анализ может быть использован для целей создания безопасных и безвредных для здоровья условий труда? В нижеследующих докладах рассматриваются три большие темы: расчет экономических затрат, связанных с несчастными случаями и ущербом для здоровья, использование экономических стимулов в общенациональных программах по охране труда на производстве, а также пределы, в рамках...»

«Кашина Елена Викторовна – преподаватель английского языка г.Москва Кто не знает чужих языков,не знает ничего о своем (Иоганн Вольфганг Гете) 1 сентября 2012 года начался переход на Федеральный государственный стандарт основного общего образования (ФГОС ООО). Стандарт устанавливает новые требования к результатам освоения обучающимися основной образовательной программы основного общего образования: личностным, метапредметным и предметным. Результаты изучения предмета...»

«http://www.brusov.am/docs/library/testelec.htm Тестелец Я.Г. Введение в общий синтаксис Рекомендовано НМС по филологии У МО университетов РФ в качестве учебника УДК 801.56(075) ББК81.2Рус-923 Т36 Художник Михаил Гуров Учебная литература по гуманитарным и социальным дисциплинам для высшей школы и средних специальных учебных заведений подготовлена при содействии Института Открытое общество (фонд Сороса) в рамках программы Высшее образование Тестелец Я.Г., 2001 ) Российский государственный ISBN...»

«ИННОВАЦИОННАЯ ОБРАЗОВАТЕЛЬНАЯ ПРОГРАММА УГТУ-УПИ КАФЕДРА ДЕТАЛИ МАШИН ПРЕЗЕНТАЦИЯ К КОНСПЕКТУ ЛЕКЦИЙ ПО КУРСУ ДЕТАЛИ МАШИН Раздел Цилиндрические зубчатые передачи Профессор Г.Л. Баранов ЛЕКЦИЯ 5 Расчет на выносливость по контактным напряжениям Схема сжатия цилиндров в задаче Герца Fn - нагрузка, равномерно распределенная вдоль образующих Формула Герца для стальных цилиндров: Fn E пр H = 2 (1 2 ) пр b H - наибольшее значение контактных напряжений – коэффициент Пуассона; b – длина контактных...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.