Club Aurora

Колко точен е GPS?

След като предшния път се опитахме да разберем какво стои в основата на системата GPS и спътниковата навигация, сега ще продължим темата, като обсъдим друг въпрос, около който витаят доста противоречия – въпросът за точността на GPS. (още…)

GPS устройствата, са още един пример за нещо, което всеки използва, но почти никой няма ни най-малка представа как работи. И както си му е редът, в литературата и в интернет изобилства с повърхността информация, която ни зарива с излишни подробности и дори би могла да създаде погрешна представа у човека, задал си въпроса от заглавието. Не зная дали и аз ще успея да отговоря на него. Мога само да кажа, че съм натрупал известен опит при практическата работа с устройства за спътникова навигация, който може би бил от полза на някого… Така че в този и следващия материал ще се опитам да споделя най-базовото от него.

По-общо за навигацията

Вероятно най-добрият подход при представянето на работата на нещо сложно като системата за глобална спътникова навигация, е да започнем от по-общото към конкретното. Само така ще успеем да си обясним защо тя е такава, каквато е. И така, ако се позамислим, ще се окаже, че пред една система за глобална навигация, независимо от реалното й изпълнение, има редица конкретни изисквания. Тя трябва:

– да осигурява глобално покритие на цялата планета;

– да работи непрекъснато;

– да работи стабилно и точно.

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

В равномерна среда електромагнитните лъчи се разпространяват праволинейно и с известна скорост (скоростта на светлината).

Този принцип има важни следствия. Да речем, че аз нямам идея къде съм, но някъде там има навигационна точка с известна за мен позиция, излъчваща радиосигнал, който мога да засека. Тогава, благодарение на горния принцип,  аз имам две опции.

Вариант 1

Ако засека посоката спрямо магнитния север, от която идва сигналът, то мога да заключа, че на картата аз се намирам някъде на правата, излизаща от навигационната точка в посока, противоположна на тази, която съм засякъл (тази права се нарича пеленг на наблюдателя). Пример: засичам сигнал точно от север – значи на картата аз се падам някъде на правата, спускаща се в посока юг от навигационната точка.

Позицията ми в този случай е някъде върху линията, излизаща от радиостанцията, в посока, обратна на тази, от която аз засичам сигнала й.

Вариант 2

Ако засека времето, за което е дошъл сигналът от навигационната точка до мен, мога да изчисля пътя, който е изминал (скоростта на светлината по времето), и да кажа че аз се намирам в някоя точка от въображаемата сферична повърхност с радиус, равен на този път. Пример: засичам, че даден сигнал е стигнал за 1 милисекунда от навигационната точка до мен – значи аз се намирам на 300 km от навигационната точка, но неизвестно в каква посока.

Позицията ми в този случай е някъде по повърхността на сферата с център радиостанцията и радиус – пътят на сигнала, който засичам. В двуизмерно пространство, мога да огранича възможното си местоположение до окръжност.

Сега нека си представим, че имаме не една, а две навигационни точки. По методиката, описана във вариант 1, аз вече мога да определя точното си местоположение на картата – това е пресечната точка на двата пеленега от навигационните точки. Забележете обаче, че това е в сила само, ако знам посоката на магнитния север и съм допуснал, че се намирам в една равнина с навигационните точки.

Ако пък използвам методиката на вариант 2 ще се окаже, че се намирам някъде по окръжността, получаваща се при пресичането на двете въображаеми сфери с център двете навигационни точки. А ако добавя и още една, трета, навигационна точка, едва тогава мога да определя точното си местоположение като пресечната точка на трите сфери (всъщност пресечните точки в общия случай са две, но реално тази нееднозначност не създава проблем).

Тази рисунка помага донякъде да си представим пресичането на трите сфери. Изображение: www.montana.edu

Три навигационни точки (фактически четири, но за това по-нататък) и засичане на времето, за което сигналите им стигат до нас – това е начинът, по който работи GPS и всяка друга спътникова навигационни система. Забележете – трябват ни три точки, които да се виждат непрекъснато от всяка кътче на Земята. От тук следва, че навигационните точки няма как да са на земната повърхност – в този случай би трябвало да се изгради мрежа, подобна на клетъчната система на мобилните оператори и невъзможна в глобален мащаб. Така че навигационните точки трябва да бъдат високо в небето, на орбита около Земята. Няма друг начин.

А колко високо? Ако орбитата на навигационните сателити е ниска (т.нар. LEO орбита), отново е в сила съображението, че са нужни множество сателити, така че три сателита да са видими по всяко време. Например системата за глобална спътникова комуникация Iridium, чийто сателити орбитират на височина 780 km, се състои от 72 сателита. При това, за осъществяване на комуникационна сесия, е необходимо от дадена точка да е видим само един сателит, не повече. Ала другият по-сериозен проблем на LEO сателитите е, че ъгловата скорост на такива сателити на небето е много голяма – те прелитат само за около две минути над нас. Това силно би затруднило позиционирането с тях, тъй като за целта е необходимо известно време, често по-голямо от тези две минути, през което навигационният приемник непрекъснато трябва да получава сигнал от един и същ сателит.

Тогава да разположим сателитите в геостационарна орбита? В такъв случай те биха били неподвижни спрямо земната повърхност (спътниците на тази орбита орбитират със същата ъглова скорост, с която Земята се върти около оста си), така че няма да имаме никакви проблеми с проследяването на сигналите. Плюс това височината на геостационарната орбита е достатъчно голяма (36 000 km), за да се изгради система от едва 10-на сателита, които биха могли да осигурят спътниковото позициониране. Уловката този път е, че от геостационарна орбита сателитите няма да покриват полярните области на Земята и освен това, ще трябва да имат доста висока излъчвателна мощност, за да може сигналът им да се възприема от наземни приемници с прости, слабонасочени антени.

В действителност орбитите на навигационните сателити заемат междинно положение между горните два варианта. Всички системи за глобално спътниково позициониране използват орбити с височина 19-24 000 km с орбитален период около 12 часа. Така с относително малък брой сателити (поне 24 са изчислили хората), разпределени в няколко орбитални равнини, се постига пълно покритие на Земята, а гореизброените недостатъци са преодолени до голяма степен. Основният проблем на тази височина е повишената концентрация на високоенергийни частици, идващи от Слънцето, във втория радиационен пояс на Ван Алън. С подходящо екраниране на сателитите това не е чак такава болка за умиране, но запомнете, че рискът GPS да излезе от строя при едно по-мощно слънчево изригване далеч не е за подценяване.

На тази рисунка виждате разпределението на GPS спътниците в орбита и както сами можете да се убедите, иска се доста въображение, за да си го представите триизмерно. GPS спътниците се разполагат в 6 орбити, отклонени на 60 градуса една от друга, като на една орбита има поне четири спътника. Изображение: Smithsonian National Air and Space Museum

 

И тъй стигнахме до извода, че за да имаме глобална навигация, ни трябват минимум 24 сателита в средна околоземна орбита – всички други варианти отпаднаха като напълно неприемливи. Чудесно, само че това ни изправя пред цяла гора от нови проблеми, най-важните от които са:

Проблем 1:

Стана ясно, че сателитите играят ролята на навигационни точки с известно местоположение. Ако то е неизвестно, нищо не правим. Въпросът е как така местоположението им е известно, при условие че всички те непрекъснато се движат и то със скорости от порядъка на 14 000 km/h!? И откъде наземният потребител научава местоположението им?

Проблем 2:

Стана ясно, че за да изчислим собственото си местоположение, първо трябва да сметнем разстоянията до три сателита, на база на времето, което изминава някакъв сигнал от сателитите до нас. Е, хубаво де – ние ще засечем кога сме получили сигнала, но откъде да знаем, кога той е бил излъчен?

Има и още, но нека първо изясним тези два въпроса, защото е важно да им отговорим, ако наистина искаме да разберем как функционира GPS.

Функция на навигационното съобщение и навигационния сигнал в системите за спътникова навигация

Двата отговора се крият в структурата на навигационното съобщение и начинът, по който то достига до нас. Ала преди това нека изясним нещо, за което достатъчво много хора не си дават сметка. Може да ви се стори идиотско, но трябва да съм сигурен, че знаете това – вашето GPS устройство, интегрирано в смартфона ви или в отделен модул не излъчва никакъв сигнал, който да спомага навигацията му. То е напълно пасивно, т.е. то работи единствено чрез приемане на сигнали от GPS спътници и нищо повече.

В сигналите, които изпращат навигационните спътници е кодирано съобщение, съдържащо доста неща, включително и т.нар. ефемеридна информация. „Ефемеридна информация” означава информация за орбиталните параметри на спътника, който излъчва сигнала. Тази информация е изключително точна и позволява на навигационния приемник да научи местоположението на спътника спрямо референтен геодезически модел, записан в паметта му, с точност от няколко метра. Ефемеридните данни, излъчвани от всеки спътник за себе си, се изчисляват в наземни центрове, изпращат се от тези центрове към сателитите и се обновяват на всеки няколко часа, защото след повече време неточността се увеличава. Ето така наземният ви приемник разбира точното местоположение на навигационните си точки. Тази ефемеридна информация се излъчва от спътника за 18 секунди на всеки 30 секунди в случая на GPS и това е минималното време за първоначално позициониране при идеални условия, щом като включите приемника си (т.нар. cold start). Тук ще отбележим и че освен тези точни ефемериди, всеки спътник излъчва и по-неточна информация за орбиталните параметри на всички останали спътници от системата (нарича се алманах), която помага на приемника ви по-бързо да ги открие и му позволява почти мигновено позициониране, в случай че загуби сигнал със спътниците за няколко минути (т.нар. warm start).

Да продължим нататък. Как засичаме времето, за което сигналът стига от сателита до нас? С часовник 🙂 Само че тук идва нов проблем – за да имаме метрова точност на позиционирането със спътникова навигация, ние трябва да знаем времето, за което сигналът е стигнал до нас с точност от 20-30 наносекунди. Такава точност за продължително време може да се постигне единствено с атомен часовник. Атомен часовник, какъвто най-вероятно не бихте искали/могли/позволили да носите в джоба си. За сметка на това всеки навигационен спътник има на борда си такъв часовник (всъщност три броя в най-новите спътници, тъй като това са ресурсни компоненти), от който приемникът ви сверява времето на своя обикновен кварцов часовник. И тъй като в първия момент вашият приемник не знае с колко неговият часовник избързва или изостава от сателитното системно врeме (то също се излъчва в навигационното съобщение), това означава, че в задачата му се набърква още едно неизвестно и неизвестните стават общо четири – географска височина, географска дължина, височина и времева грешка. За да даде отговор на тази задача с четири неизвeстни, приемникът ви решава система от четири уравнения (броят на уравненията винаги трябва да е равен на броя на неизвестните), за която са необходими четири сателита, а не три както твърдях по-горе. За вас, любители на математиката, тази система изглежда така:

Тук ρ е „разстоянието” от приемника до сателита, с големи букви са координатите на всеки i сателит, с малки – на приемника, а сτ е грешката на часовника. „Разстояние” е в кавички, защото изчислената от приемника стойност съдържа грешка и поради тази причина то всъщност се нарича псевдоразстояние. Но това е отделна тема, с която засега няма да ви занимавам.

Ако часовникът на приемника ви също беше с атомна точност, щяха да са нужни само три сателита за позициониране. В реалността ни трябват четири. Хубаво е да знаете обаче, че има навигационни приемници, които могат да работят и само с три спътника (лично аз съм срещал такива), при условие че вече е направено първоначално позициониране и след това по някаква причина е изгубен един от четирите спътника. В такъв случай приемникът не изчислява една от координатите (обикновено височината), като в логовете се дава последната валидна стойност за отпадналата координата.

Получаването на навигационните съобщения от спътниците никак не е проста задача. Сигналите им се приемат от наземните приемници с изключително ниска мощност – около 1 х 10^-16 W. Всъщност мощността на навигационния сигнал е толкова ниска, че в честотната лента, в която е разпределен спектъра му, той се намира далеч под мощността на шума. Т.е. ако включите обикновен радиоприемник, настроен на навигационна GPS честота, ще чуете само шум и нищо повече. За да може да работи с толкова ниска мощност, вашият навигационен приемник използва съвсем различен подход от стандартния радиоприемник. Тъй като радиошумът се изменя по случаен закон, а фазата на навигационния сигнал се изменя по известен (за приемника) закон, всичко, което приемникът трябва да направи, е да изчака известно време през което да се натрупа полезен сигнал, така че той да изпъкне на фона на шума. Една далечна аналогия на този процес е снимането на слаби светлини (луна, звезди) през нощта. За да изпъкнат те, блендата на фотоапарата стои отворена продължително време, наричано експозиция, през което се събира светлина. После на снимката вие виждате повече неща, отколкото сте могли да забележите с очите си.

Млечният път не е нещо, което можете да видите толкова ясно дори и при идеални условия, но с увеличаване на времето на експозиция на снимката започват да изпъкват всички тези детайли, които личат тук. Снимка: Dave Morrow

Разбира се реалната теория в случая на GPS е по-сложна, но няма да задълбаем в нея, тъй като тази статия  ще заприлича на учебник по физика. По-скоро ще се опитам да ви създам една груба представа за това как стоят нещата. На първо място трябва да осъзнаете, че всеки навигационен сигнал, който приема приемникът, е кодиран с двоичен код наред с навигационното съобщение и то с такъв код, който е предварително известен на приемника. В тази част различните навигационни системи се различават, но принципът е общ. Например сателитите от американската GPS излъчват навигационните си съобщения на една и съща общодостъпна носеща честота (наречена L1 = 1 575,42 MHz) и за да ги откроява приемникът един от друг, те са модулирани с уникални кодове. Всеки сателит си има собствен уникален код. Този метод на мултиплексиране (наслагване на множество сигнали в един честотен канал) е стандартен за телекомуникацията, нарича се CDMA (Code Division Multiple Access) и се използва и в мобилните телефони. Основният конкурент на GPS – руската система ГЛОНАСС разчита на малко по-различен подход. Спътниците излъчват на различни честотни канали (от 1 593 до 1 610 MHz), като сигналите им са кодирани от общ код. Методът тук се нарича FDMA (Frequency Division Multiple Access), той също е широкоразпространен и макар да изисква повече ресурс (честотите са ресурс) има някои предимства пред CDMA. Както и да е, важното е, че при всички случаи навигационният приемник разполага с кодовете, кодиращи сигналите.

Да разгледаме работата на един обикновен GPS приемник. Неговата антена е специализирана за работа около носещата честота L1 и действа като филтър за честотите под и над нея. Приетият от нея сигнал+шум отива след някои преобразувания в десетина (поне) отделни канала на приемника. Във всеки един от тези канали приемникът извършва нещо наречено корелация – той сравнява получения сигнал със сигнал, модулиран от код-реплика и генериран – забележете –  от самия приемник. Този код-реплика е същият код, който се използва от един от 30-ната GPS сателити в орбита. В съответния канал приемникът пробва различни комбинации – отмества във времето кода-реплика и променя фазата му, така че да се отчете всяко времезакъснение между евентуално приетия код от сателита и генерираната от приемника реплика, както и Доплеровия ефект, породен от движението на приемника/сателита. Сравнявайки известно време двата сигнала, ако те имат еднакви характеристики (кодирани са от един и същ код), на изхода на канала, корелаторът ще отчете максимум. Бинго! Приемникът вече знае, че е „уловил” сигнал, може да го „захване”, така че да поддържа минимална разлика между получения код и кода-реплика, и да пристъпи към следващата стъпка – декодирането на навигационното съобщение. След като извърши същото в поне още три канала, приемникът може да разреши навигационната си задача и да каже къде сме. И всичко това за по-малко от минута! Ако искате да се запознаете по-обстойно с този процес, то прочетете това – http://www.navipedia.net/index.php/Correlators

Практически приемникът работи с повече спътници, като по този начин подобрява точността на позиционирането си. Нормално един GPS спътник използва около 7-8 спътника в даден момент, а комбинирани приемници GPS+ГЛОНАСС могат да работят и с повече от 15 спътника едновременно.

Подробности

Картинката в действителност е по-сложна предвид факта, че и GPS, и ГЛОНАСС са възникнали като военни технологии, които не са предназначени за простолюдието. Макар това вече да се променило, дори и днес тези системи са запазили част от „секретността” си. Все още не сме коментирали това (може би следващия път ще развия по-подробно този въпрос), но точността на позициониране би се подобрила съществено, ако приемникът получава навигационен сигнал от сателита на две носещи честоти или повече, не на една. И това всъщност е факт! Втората честота, по която GPS спътник изпраща подобно навигационно съобщение като това, изпратено на L1, e 1 227,6 MHz (L2), ГЛОНАСС спътниците пък са си резервирали честотите около 1 246 MHz. Само че данните от съобщението на втората честота не са достъпни за нас, обикновените хора. А не са достъпни, защото са кодирани от секретен код (известен като P(Y) код), много по-сложен и дълъг от ония кодове (известни като C/A кодове), за които говорихме по-горе. Този P(Y) код е неизвестен на приемника и без него той не може да направи нищо с втория сигнал (макар че хората са измислили някои хитрини за заобикаляне на проблема). Всъщност P(Y) кодът кодира и честотата L1, без да пречи на разкодирането на свободния C/A код. Т.е. ако сте внимавали досега излиза, че носещата честота L1 се кодира от три неща – C/A код, P(Y) код и навигационното съобщение. Объркахте ли се? Ако да, то долната схема може би ще ви помогне да си представите нагледно как се получават навигационните сигнали на GPS.

На тази схема виждате как се получават двата GPS навигационни сигнала. На нея има и някои неща, които не сме коментирали, тъй като са по-маловажни (кодовите честоти, логиката при комбинирането на цифровите данни с кодовете, както и начинът на модулиране на носещата честота – Bipolar Phase Shift Keying)

Логиката да се използва секретен код и на двете честоти е следната. Свободният С/А код може да бъде сменен по всяко време от US Department of Defence, под чието командване все още е програмата GPS. В такъв случай обикновените граждански приемници ще спрат да работят, без това да засегне позиционирането на военните потребители, оторизирани от САЩ. Тези военни приемници могат да работят и само с P(Y) кода, макар позиционирането в този случай да става по-бавно. Въпреки че от GPS твърдят, че това никога не е било правено досега, няма гаранция, че нещо подобно няма да се случи в бъдеще. В този ред на мисли – до 2000г. в навигационното съобщение, кодирано със свободния С/А код се вкарваше умишлено грешка, която водеше до неточност на позиционирането от порядъка на 100 m. Този метод на изкуствено влошаване на позиционирането за неоторизирани потребители, наречен service availability, на теория би могъл да бъде активиран отново само за няколко часа, макар от GPS обещават да не правят такива пакости.

Сами разбирате, че нещо подобно създава зависимост от САЩ и това е причината всяка що-годе напреднала и достатъчно богата държава да се опита да създаде собствена глобална навигационна система. За Русия това е ГЛОНАСС – единствената навигационна спътникова система освен GPS, която към днешна дата има глобално покритие. За ЕС това е Galileo – система, която вече трябваше да е напълно изградена, но заради евробюрокрацията е все още в твърде начален етап. За Китай това е BeiDou (Компас) – система, която засега осигурява непрекъснато покритие само над Азия, но е близо до до осигуряване и на глобално покритие.

Надявам се, че вече разбирате по-добре как работи спътниковата навигация. Спестих доста детайли, които обаче е въпрос на добро желание сами да си набавите. Най-добрият и актуален on-line ресурс по въпросите на GPS и другите системи е www.navipedia.net. На българси достатъчно изчерпателен е учебникът Основи на приложението на GPS в геодезията, който можете да прочетете свободно тук – http://uacg.bg/filebank/att_2805.pdf. А иначе препоръчителна литература, ако наистина имате желание да дълбаете навътре, са книгите:

Hofmann – Wellenhof, B., Lichtenegger, H., Wasle. E. GNSS – Global navigation satellite systems GPS, GLONASS, Galileo and more. Springer.

Groves, P. Principles of GNSS, Inertial, and Multisensor Integrated Navigation Systems, 2nd Edition. Artech House.

и особено:

Kaplan, E. Understanding GPS: Principles and Applications, Second Edition. Artech House,

които можете да закупите… или да откриете в специализираните сайтове…

Следващият път ще разгледаме от какво зависи точността на спътниковата навигация.