Hirdetés

Új hozzászólás Aktív témák

  • INTELligent

    senior tag

    [Hogy működik az alap GNSS algoritmus?]


    Remélem sikerül kb érhető lenni, sajnos most nem találtam ki jobbat, így néhány helyen eléggé szakmai lesz a következő szöveg.

    Kell: X, Y, Z koordináta + E (ez a hibatag, ami a vevő órahibája, mert idő alapú mérésekből számoljuk a távolságot.Azért csak a vevő órahibája, mert a műholdon atomóra van.

    Figyelem: a következőkben nem foglalkozunk atmoszferikus torzításokkal, többutas terjedéssel (amikor a jel például egy közeli hegyről visszaverődve jut el a vevőig - így nem lesz ugyanaz a terjedési idő), és semmi egyébbel.

    - 4 ismeretlen, 4 egyenlet kell (legalább, ha kevesebb van, akkor nem tudjuk egyértelműen mehghatározni a paramétereket, ha több, akkor tudunk egy olyan megoldást becsülni, ami valamilyen módon legjobban illeszkedik az adatokra), ezek az alábbi formában vannak (sqrt = gyökfüggvény).

    (1) R_i = sqrt( [X-x_i]^2+ [Y-y_i]^2 + [Z-z_i]^2) +E-> ebből kell négy, ahol

    - R_i - "pseudorange", vagyis a feltéteklezett távolság az i. műhold és a vevő között
    x_i, y_i, z_i - az i. hold koordinátái

    - Ezek nemlineáris egyenletek (sokkal nehezebb megoldani) -> linearizálunk (elsőrendű Taylor sor = ezt azt csinálja, hogy ha csak konstansok és egyenesek állnak rendelkezésre, akkor abból összerakja azt a függvényt - ami egy elolt egyenes lesz - ami a legközelebb van az eeredeti függvényhez).
    - Ehhez deriválunk X, Y, Z,E szerint (=megnézzük, hogy "mennyire érzékeny" R_i X, Y, Z,E megváltoztatására).
    - És itt jön, hogy miért nem lesz Z-ben nagyobb hiba (igen, itt most nincs atmoszférikus torzítás, az bezavarhat) : vegyük észre, hogy (1)-ben tök ugyanúgy vannak feéhasználva a koordináták (mindegyik a gyök alatt egy összegben négyzetre van emelve).
    - Szóval vannak deriváltak, ebből összerakjuk a Taylor-sort (elsőrendű közelítést), és ezt használjuk iteratívan.

    Legyen a deriváltakból álló mátrix H, a pseudorange hibákból (ezt úgy képezzük, hogy az előző lépésben kapott vevőpozíciókból és a mostani lépésben kapott vevőpozíciókból különbséget képzünk) álló vektort r (a vektorok annyi eleműek, ahány műholdat látunk).
    Ezt belerakva az LS-becslés képletébe megadja nekünk, hogy az előző lépésben kapot tpozícióbecslét mennyivel kell korrigálni -> ha ez kb. 0, akkor leállhatunk.

    [GNSS mythbuster]
    1) Q: miért talál nehezen jelet a komputer (főleg, ha sokáig ki volt kapcsolva)?
    A: Mert nem tudja, hogy melyik műholdak lehetnek a közelben. Ugyanis a GPS műhold által sugárzott adatcsomagban (valószínű a többi is tök ugyanígy csinálja, de én csak a GPS adatcsomagját ismerem behatóan) benne van egy ún. almanach, ami kb leírja, hogy az égbolton hol vannak adott azonosítójú műholdak. Ha sokáig nem volt vétel, akkor nem friss az almanach, így próbálkoznia kell a vevőnek (ezt kb. úgy csinálja, hogy végigpróbálja, hogy milyen műholdkódokra jön ki a legjobb jel - korrelációt számol).
    Plusz infó, hogy a műhold saját magáról sokkal pontosabb pályaadatokat közvetít, így könnyebb lekövetni, ha már megvan.
    Ráadásul ezek az adatok nagyon lassan jönnek (50 bit/s). Csak referenciának, az USB 3.0 5 Gbit/s, ami százmilliószor annyi. Szóval ha nincs semmi jele a komputernek, akkor míg egy műholdról mindent leszed, az kb 12,5 perc (ebben benne van a sajét adat és az almanach, de ennáél azért gyorsabban szokott lenni vétel).

    2) Q: miért ugrál a sebesség ha GNSS alapon mérünk?
    A: Több oka lehet. Egyrészt, mert a vétel simán megadkadhat (ha elveszik egy pozíciócsomag/hibás). Másrészt ha nem egyenesben megyünk, akkor a sebesség a két vétel közötti egyens útból fog számítódni, ami csalóka lehet (igen, ez akkor is fennáll, ha amúgy a pozíció mindkét pontban pontos), mert a komputer és a holdak sem tudják kitalálni a pályádat.

    3) Q: miért nem pontos a pozíció, ha GNSS alapon mérünk (first world problem: a Strava nem észlelte a szegmenst, pedig azon mentem)?
    A: mert például (ha alap algoritmus alapján számolt) nem vette figyelembe a légköri torzítás hatását. Vagy ha figyelembe vette, akkor nem tudta lekövetni a hirtelen jött változást. Kétlem, bár ez pusztán csak mérnöki megérzés, hogy ha korrigálnak is a komputerek, akkor más van bennük, mint esetleg egy sokéves átlag adott napra/órára. Ahhoz, hogy ez real-time menjen, kellene adatkapcsolat, hogy a szervertől megkapja. Esetleg a barométerrel lehet valamit mókolni, de kétlem, hogy az az egész légkörre reprezentatív lenne.

    Flickr: https://bit.ly/2wtfNl5 || https://500px.com/photofan96 || Strava: https://bit.ly/2QzLnok

Új hozzászólás Aktív témák