FR 2749668 A1 19971212 FR 9607071 A 19960607 RECEPTEUR DE SIGNAUX DE SATELLITES AVEC FILTRE D'EXTRAPOLATION DE POSITION L'invention concerne les récepteurs de positionnement par satellite tels que les récepteurs GPS (Global Positionning System). Le système GPS utilise une constellation de satellites qui tournent autour de la terre sur des orbites très précisément déterminées, c'est-à-dire qu'on peut connaître à tout instant la position d'un satellite quelconque. Les satellites émettent des signaux radiofréquence contenant des données de navigation et des codes qui permettent d'identifier chaque satellite. Ces codes modulent en phase une fréquence porteuse. Un récepteur GPS, au sol ou sur un véhicule terrestre, aérien ou maritime, peut recevoir les signaux de plusieurs satellites simultanément, calculer précisément sa distance à chacun des satellites, et en déduire sa position précise en latitude, longitude, et altitude, dans un repère terrestre. II peut en déduire aussi la date et l'heure précise de la réception dans le repère temporel du système GPS. II peut enfin en déduire, par des mesures doppler, son propre vecteur vitesse dans le repère terrestre (cas d'un récepteur monté sur un véhicule mobile). Dans le système GPS, chaque satellite est identifié par un code pseudo-aléatoire qui lui est propre et qui module de manière répétitive (toutes les millisecondes par exemple) une fréquence porteuse émise par le satellite. Il existe des systèmes voisins du GPS, notamment le système GLONASS, dans lequel ce code pseudo-aléatoire existe également bien qu'il ne serve pas à identifier un satellite individuel. L'invention qui va être décrite est applicable directement au système GLONASS mais pour plus de simplicité on ne se référera dans la suite qu'au système GPS, et plus précisément à la partie "civile" du système GPS, lequel comporte aussi une partie militaire à laquelle l'invention est également applicable. Le code pseudo-aléatoire est un code long (1023 bits à 1,023 MHz, soit 1 milliseconde), et une de ses fonctions principales est de permettre l'extraction du signal du satellite dans un niveau de bruit beaucoup plus élevé (30 dB par exemple) que le niveau du signal. Cette technique est maintenant bien connue sous le nom d'émission à étalement de spectre. Le signal est extrait du bruit grâce à une opération de corrélation, dans le récepteur, entre le signal reçu et un code pseudoaléatoire périodique qui est identique à celui que l'on s'attend à trouver dans le signal. Si les codes ne coïncident pas temporellement, il n'y a aucune corrélation entre les signaux reçus et le code local engendré par un générateur de code local; s'ils coïncident presque, il y a une certaine corrélation, I'énergie de corrélation étant d'autant plus forte que la coïncidence est plus exacte. On peut donc établir un signal de corrélation permettant d'asservir un générateur de code local jusqu'à obtenir une coïncidence exacte du code local et du code modulant le signal émis par le satellite. Une boucle d'asservissement de code permet ensuite de maintenir cette coïncidence. Le code pseudo-aléatoire est émis par le satellite à des instants extrêmement précis et connus au niveau du récepteur. On se sert de l'opération de corrélation pour déterminer l'instant d'arrivée de ce code dans le récepteur: on détermine l'instant caractéristique ou époque d'émission du code local, et comme ce code local coïncide avec le code reçu lorsque la corrélation maximale est établie, cet instant représente l'instant d'arrivée du code reçu. La différence entre un instant d'émission du code par le satellite et un instant de réception du code par le récepteur permet de déterminer un temps de parcours des signaux entre le satellite et le récepteur. Sachant que la vitesse de parcours des signaux est la vitesse de la lumière, on peut calculer la distance entre le récepteur et un satellite donné. La même opération faite sur deux autres satellites permet, par triangulation, de déterminer la position exacte du récepteur par rapport aux trois satellites. En utilisant un quatrième satellite, on élimine les erreurs d'horloge du récepteur, I'horloge du récepteur n'étant pas aussi précise que celle des satellites. Outre la position du récepteur on peut alors calculer un temps précis de la mesure de position, dans le repère de temps des satellites GPS. La position de chacun des satellites est connue à tout instant elle est calculée à partir de tables stockées dans le récepteur et remises à jour par le message de navigation diffusé par les satellites. La vitesse des satellites à tout instant est également calculable à partir de ces tables. On peut déduire, à partir des signaux envoyés par quatre satellites, le temps et la position du récepteur par rapport aux quatre satellites. Et, par changement de coordonnées, on obtient la position du récepteur dans un repère terrestre fixe. De même, la vitesse du récepteur est calculée à partir d'une mesure d'effet Doppler sur la fréquence porteuse du signal radiofréquence envoyé par les satellites. On peut donc calculer la vitesse relative du récepteur par rapport à chacun des satellites, selon l'axe directeur qui relie ce satellite au récepteur. Quatre satellites sont nécessaires pour éliminer l'ambiguïté sur le temps. On obtient quatre vecteurs de vitesse relative différents, sur les axes directeurs reliant le récepteur aux quatre satellites. Des calculs simples permettent de déterminer la vitesse du récepteur selon trois axes dans le repère terrestre à partir de ces quatre vecteurs vitesse et des informations suivantes - les directions des axes directeurs récepteur-satellite par rapport à un repère terrestre fixe (longitude, latitude, altitude); ces directions sont obtenues elles-mêmes par la connaissance de la position du récepteur à un instant donné et la position de chaque satellite à ce même instant; - les vitesses individuelles des satellites dans le repère terrestre à cet instant. Compte tenu du compromis nécessaire entre la tenue en dynamique et la tenue au bruit des boucles d'asservissement de code, il est difficile d'obtenir plus d'une mesure de position par seconde (mesure déduite des mesures sur le code). Dans certaines applications de récepteurs GPS, cette cadence peut être insuffisante. Ce serait le cas par exemple si un récepteur GPS devait être utilisé par un avion en mode de pilotage automatique dans une phase d'approche à l'atterrissage; c'est pourquoi il n'est pas envisagé actuellement de se servir de récepteurs GPS dans ce cas. Cependant, c'est regrettable car un récepteur GPS aurait par ailleurs toutes les qualités requises pour servir dans ce type d'application. Pour permettre d'utiliser un récepteur GPS sur un mobile dans des applications où la cadence de fourniture de position doit être supérieure à celle que fournit normalement le récepteur, on propose selon l'invention de combiner une mesure de position fournie à un instant donné et une mesure de vitesse fournie par le récepteur, pour extrapoler la position du récepteur aux instants suivants avant une nouvelle mesure de position. Et comme le plus souvent le récepteur est capable de fournir une mesure de vitesse à une cadence supérieure à la cadence de fourniture de position, I'extrapolation peut être encore affinée. Par exemple, un récepteur GPS qui fournit une position par seconde peut fournir une vitesse toutes les 0,2 seconde. Cette solution est particulièrement avantageuse pour obtenir des positions très précises dans une application de récepteur GPS différentiel, c'est-à-dire dans une application où le récepteur reçoit non seulement les signaux de plusieurs satellites, mais également les signaux d'une balise terrestre fixe, de position connue, à proximité du lieu où se trouve le récepteur. En choisissant convenablement les règles de calcul de position extrapolée, on peut également éviter l'influence des sauts brusques de position lors des changements de constellation de satellites : les erreurs de mesure affectant les différents satellites ne sont pas identiques d'un groupe de satellites à un autre, et une mesure faite avec un premier groupe de satellites ne donne pas exactement la même position qu'une mesure faite au même lieu avec un autre groupe. Comme le récepteur et les satellites se déplacent, le récepteur voit successivement différentes constellations et lorsqu'un satellite sort du champ d'observation du récepteur et est remplacé par un autre, la nouvelle position peut sauter brusquement d'une petite valeur. Le cas se présente fréquemment dans un avion car le roulis de l'avion lors des changements de cap modifie les constellations vues par le récepteur GPS. Les calculs de position corrigée à partir de positions précédemment calculées permettent de lisser la transition entre deux mesures différentes, que ce soit en utilisant les informations de vitesse ou non, I'utilisation de la vitesse étant bien entendu préférable. Cet avantage de lissage de position en présence de changements de constellation est obtenu en particulier grâce à des moyens de calcul qui fournissent une position corrigée à un instant donné, cette position corrigée tenant compte de la position mesurée à cet instant et d'une position corrigée calculée à un instant précédent. On calcule de préférence la différence entre ces deux positions, on la multiplie par un coefficient inférieur à 1 et on l'ajoute à la position précédemment corrigée. Si on fait intervenir la vitesse, la procédure est de préférence la suivante pour obtenir une position corrigée à un instant qui suit une fourniture de mesure de position par le récepteur (et qui précède une nouvelle mesure), on ajoute à la position corrigée calculée à l'instant précédent les deux termes suivants: - produit de la vitesse courante (en pratique la vitesse à l'instant actuel ou à l'instant précédent) par l'intervalle de temps dT séparant les deux instants successifs de calcul de position corrigée, et - produit de la différence entre la position mesurée et la position corrigée calculée à l'instant précédent, par un coefficient inférieur à 1. Ceci revient à dire qu'on intègre la vitesse entre deux mesures pour corriger la position, et on rajoute un terme de lissage. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels - la figure 1 représente la constitution générale d'un récepteur GPS dans lequel la présente invention peut être mis en oeuvre; - la figure 2 représente un dispositif de mise en oeuvre de l'invention. La figure 1 rappelle sommairement le principe général d'un récepteur GPS. Le récepteur comporte une partie radiofréquence, comprenant une antenne Al, un amplificateur radiofréquence 20 et divers circuits de filtrage associés, des circuits de conversion de fréquence 30, et un convertisseur analogique-numérique 40. Le convertisseur permet de fournir des signaux numériques à relativement basse fréquence destinés à être traités dans un circuit de traitement de signal numérique 50. Ce circuit est contrôlé par un microprocesseur 60 et des logiciels de calcul et de contrôle associés. Le microprocesseur 60 a deux fonctions - d'une part, il élabore des données numériques utilisées par le circuit de traitement de signal numérique 50, à partir de données numériques fournies par ce circuit; en particulier, il effectue des calculs numériques nécessaires aux boucles d'asservissement numérique présentes dans le circuit de traitement numérique 50; - et d'autre part il fournit des résultats définitifs de calcul de position, de temps, et de vitesse à l'utilisateur, c'est-à-dire soit sur un écran d'affichage numérique soit sur un bus numérique vers d'autres appareils qui ont besoin des résultats. On pourrait évidemment avoir deux processeurs séparés pour effectuer ces deux fonctions. Dans la réalisation avec un seul microprocesseur 60, on a représenté un bus d'échanges 70 entre le microprocesseur 60, le circuit de traitement 50, un périphérique d'entrée/sortie 80, les mémoires de travail 90, et les mémoires de programmes 100 qui contiennent les programmes nécessaires au fonctionnement du microprocesseur. Très sommairement, le circuit de traitement de signal numérique comporte soit un seul canal de traitement, les informations issues des divers satellites étant traitées de manière multiplexée, soit de préférence plusieurs canaux travaillant en parallèle chacun sur un satellite déterminé. Chaque canal comporte une double boucle d'asservissement asservissement de phase de porteuse et asservissement de phase de code. La boucle de phase de porteuse utilise essentiellement un oscillateur local à contrôle numérique de phase, fournissant une phase numérique périodique (en dent de scie) à une fréquence correspondant à la fréquence de porteuse transposée, en tenant compte de l'effet doppler qui affecte la fréquence de porteuse transmise par un satellite. L'effet doppler est pris en compte du fait même de l'existence des boucles d'asservissement. Le microprocesseur 60 calcule un signal d'erreur de phase de porteuse; ce signal sert à commander l'oscillateur local pour asservir une fréquence porteuse locale sur la fréquence porteuse reçue du satellite. La boucle d'asservissement de phase de code comporte un générateur de code local, piloté par un oscillateur à contrôle numérique de phase Elle permet d'asservir les codes locaux sur le code reçu du satellite et de pouvoir ensuite déterminer la position temporelle exacte des codes locaux ainsi asservis. Le code local est corrélé avec le code reçu du satellite; le signal de corrélation est calculé par le microprocesseur et sert à asservir la boucle pour amener le code local en synchronisme avec le code reçu du satellite. Les deux boucles d'asservissement, de code et de porteuse prennent en compte le décalage de fréquence doppler sur la fréquence porteuse et sur le code, résultant du déplacement relatif de l'avion et du satellite détecté. Ce décalage doppler est mesurable dans les boucles. Les calculs de temps et de position GPS sont effectués à partir de l'état des boucles d'asservissement à un instant de mesure déterminé. A cet instant, on lit l'état exact de la phase des deux oscillateurs à contrôle numérique de phase. Les boucles d'asservissement prévues dans le récepteur agissent pour caler une fréquence locale sur la fréquence porteuse reçue des satellites. Le décalage entre cette fréquence locale et la fréquence stable et connue émise par les satellites donne une indication de décalage doppler donc de différence entre la vitesse du satellite et la vitesse du récepteur selon l'axe reliant le satellite au récepteur. Par conséquent, à partir de mesures effectuées sur le code pseudo-aléatoire, on calcule une position dite "position résolue", dans le repère terrestre; et, à partir de mesures effectuées sur les fréquence de porteuse, on calcule une vitesse dans le repère terrestre. Selon un premier aspect de l'invention, on utilise la mesure de vitesse pour fournir une position extrapolée pendant l'intervalle de temps qui sépare la fourniture d'une première position de la fourniture d'une nouvelle position. Soit Pi la position résolue à un instant Ti, et Vi la vitesse résolue à cet instant Ti. Pj et Vi sont des vecteurs dans le repère terrestre. Soit kdT l'intervalle de temps après lequel on obtient une nouvelle mesure de position une nouvelle position est calculée par le récepteur à un instant Ti+1 = Ti + kdT. Soit j un indice (j= 1 à k) représentant des instants intermédiaires Ti,j auxquels on désire obtenir des positions Pi,j extrapolées à partir de la position Pi jusqu'à la fourniture de la position Pi+1. Ces instants sont séparés par la durée dT. Pour j = k, le temps Ti,k correspond au temps T1+1, c'est-à-dire à la mesure de l'échantillon de position suivant. On élabore une position intermédiaire à un instant donné en ajoutant à la position déterminée à l'instant précédent le produit de la vitesse par l'intervalle de temps séparant les deux instants considérés Pi,1 = Pi + Vi.dT, puis Pi,2 = Pi,1 + Vi.dT, Pi j+1 = Pi,j + Vi.dT, etc..., et enfin fi = Pi,k-2 + Vi.dT Si la vitesse Vi est fournie à une cadence plus rapide que la position, on utilise de préférence à chaque incrémentation la dernière valeur de vitesse connue. En particulier, si dT représente l'intervalle de temps séparant deux calculs de vitesse par le récepteur et si alors Vi,j représente la vitesse à l'instant Tj +j.dT, alors, la position corrigée à l'instant Ti + (j+i ).dT s'écrit: Pi,j+1 = Pi,j + Vi,j.dT Indépendamment d'une extrapolation par la vitesse, on peut aussi prévoir de calculer une position corrigée lissée à partir des positions précédemment calculées. Ceci permet notamment d'éviter les sauts de position lors des changements de constellation. Dans ce cas, la position filtrée à un instant Ti,j+1 peut être calculée à partir de la position filtrée à l'instant Pl,j et de la position calculée à l'instant Ti, par la formule: Pi,j+l = Pi,j + CL.(Pi - Pi-1,k) où a est un coefficient de lissage inférieur à 1/k, k étant le nombre d'échantillons intermédiaires entre deux mesures de position Pi et Pi+1. Pi-1,k est la position filtrée au moment de la mesure de position Pi (instant Tj). Elle correspond donc au calcul de position filtrée à l'instant Ti où un nouvel échantillon de position Pi est fourni, ce calcul résultant des mesures de position et de vitesse précédentes. Ceci signifie qu'on corrige par itération convergente la position calculée par une fraction de la différence entre la position résolue et une position précédemment corrigée. Si on combine l'extrapolation de vitesse et le filtrage de lissage, on peut calculer la position corrigée Pi,j+1 à l'instant intermédiaire Ti,j+1 par la formule Pi,j+1 = Pi,j + Vi,j.dT + a (Pi - P11 ,k) On fournit donc à chaque instant d'extrapolation une position corrigée Pi,j+I qui tient compte de la position filtrée Pi1,k calculée à l'instant de mesure de position précédent, de la vitesse Vi,j connue à l'instant d'extrapolation précédent (ou de la dernière vitesse connue), et enfin de la dernière position Pj fournie par les mesures du récepteur. Plus précisément, la position corrigée à l'instant j+l est déduite de la position corrigée à l'instant précédent j par un premier terme qui est l'intégrale de la vitesse pendant l'intervalle qui sépare ces deux instants, et par un second terme qui est une fraction de la différence entre la position mesurée à l'instant Ti et la position corrigée à l'instant Ti-1. Des lors qu'on dispose de la position Pi et la vitesse Vj j on peut mettre en oeuvre l'invention pour calculer à chaque instant une position corrigée. Un mode de mise en oeuvre consiste à intégrer la vitesse Vi,j à chaque instant pour élaborer un terme d'extrapolation représentant Vi,j.dT. Le terme de lissage CL.(P1-P11 ,k) peut être obtenu en élaborant la différence (Pi-Pj 1 k) et en le multipliant par un coefficient d'atténuation a. Mais on peut aussi, dans une réalisation avec calcul numérique, intégrer un terme P(Pi-Pi~l k).dT, ctest-à-dire calculer P(Pi-Pi~llk).dT, dans lequel Q serait un coefficient de lissage, homogène à une fréquence et tel que ss.dT Le dispositif représenté à la figure 2 permet de mettre en oeuvre l'invention dans cette dernière forme. II peut être réalisé sous forme matérielle ou sous forme logicielle. Le microprocesseur 60 de la figure 1 permet d'effectuer les calculs, Le bloc 20 représente une fonction de calcul de position à partir des mesures physiques fournies par le récepteur sur les positions de code aléatoire dans les signaux satellites. Le bloc 22 représente une fonction de calcul de vitesse à partir des mesures de fréquence de porteuse des signaux de satellites. La position calculée par le bloc 20 s'exprime en principe en longitude LG, latitude LT et altitude AL. La vitesse calculée par le bloc 22 s'exprime en vitesse est-ouest VE, en vitesse nord-sud VN, et en vitesse verticale VZ. Si les vitesses VN et VE ne sont pas exprimées à l'aide des mêmes unités de distance que les latitudes et longitudes, des conversions d'unité sont faites par les blocs 24 et 26 (exemple : longitudes et latitudes exprimées en degrés/minutes et vitesses en mètres/seconde). La position corrigée est fournie en longitude, latitude, altitude, sur des sorties LGc, LTc, ALc. Des soustracteurs 28, 30, 32 établissent la différence entre la position mesurée LG, LT, AL et la position corrigée LGc, LTc, ALc au moment de la mesure (temps T1). Ces différences sont mises en mémoire dans les blocs 29, 31, 33 qui conservent ces différences jusqu'à l'instant de mesure de position suivant Tri+1. Des multiplicateurs 34, 36, 38 multiplient ces différences par un même coefficient de lissage Q ou par des coefficients différents, par exemple un coefficient Qh pour les positions mesurées horizontalement (longitude et latitude) et Qv pour les positions mesurées verticalement . Des additionneurs 40, 42, 44 ajoutent les sorties des multiplicateurs respectivement aux vitesses Ve, Vn, et VZ. Enfin, des intégrateurs 46, 48, 50, intègrent les sorties des additionneurs 40, 42, 44, les sorties de ces intégrateurs fournissant les positions corrigées LGc, LTc, ALc. Dans un traitement purement numérique, les intégrateurs se contentent de multiplier les sorties des additionneurs 40, 42, 44 par l'intervalle de temps dT entre deux calculs successifs de position corrigée. Ce dispositif permet donc de fournir les positions corrigées selon les principes exposés ci-dessus. La fréquence de récurrence peut être de 5 Hertz, alors que les mesures de positions non corrigées sont fournies à environ i Hertz. Les formules mathématiques détaillées sont les suivantes, dans lesquelles on a détaillé les composants des vecteurs de position et de vitesse et le coefficient Q de lissage. Ce coefficient peut être différent pour la longitude et la latitude (ssh) et pour l'altitude (qu). LTc LTc Vn. dT lssh l LTj-LTcj1k LGc = LGc + ve. dT + 0 fi0 0.LGiLGc ALc i,j+i ALc i, VZ.dT ij 0 A. alc.l,k Dans un exemple, ssVdT = QhdT = 0,2 REVENDICATIONS 1. Récepteur de positionnement par satellites, comprenant des moyens de calcul de position (20), caractérisé en ce qu'il comprend en outre des moyens pour combiner une mesure de position (LG, LT, LC) fournie à un instant donné et une mesure de vitesse (VE, VN, VZ) fournie par le récepteur, pour extrapoler la position du récepteur aux instants suivants avant une nouvelle mesure de position. 2. Récepteur selon la revendication 1, caractérisé en ce qu'il comprend des moyens pour fournir à un instant donné une position corrigée qui tient compte de la position mesurée à cet instant et d'une position corrigée calculée précédemment. 3. Récepteur selon la revendication 2, caractérisé en ce que les moyens pour fournir une position corrigée comprennent des moyens par additionner à une position corrigée précédente la différence entre la position mesurée et la position corrigée précédente, cette différence étant multipliée par un coefficient de lissage inférieur à 1. 4. Récepteur selon l'une des revendications 1 à 3, caractérisé en ce que la mesure de vitesse utilisée pour calculer une position corrigée à un instant donné est la dernière mesure de vitesse fournie par le récepteur avant l'instant considéré. 5. Récepteur selon la revendication 4, caractérisé en ce que les moyens pour calculer la position corrigée à un instant donné comprennent des moyens pour intégrer la vitesse à un instant précédent pendant une durée correspondant à la différence entre ces deux instants. 6. Récepteur selon la revendication 5, caractérisé en ce que le récepteur comprend des moyens pour fournir une vitesse à une cadence supérieure à la fourniture de position. 7. Récepteur selon l'une des revendications 5 et 6, caractérisé en ce que les moyens pour calculer une position corrigée à un instant donné comprennent des moyens pour ajouter à la position corrigée calculée à l'instant précédent les deux termes suivants: - produit de la vitesse courante par l'intervalle de temps séparant les deux instants, - produit de la différence entre la position mesurée et la position corrigée à un instant de mesure de position précédent, par un coefficient inférieur à 1. 8. Récepteur selon l'une des revendications 5 et 6, caractérisé en ce qu'il comprend des moyens pour intégrer la vitesse mesurée, et des moyens pour intégrer la différence entre la position fournie et la position corrigée, cette différence étant affectée d'un coefficient de lissage Q homogène à une fréquence et tel que QdT soit inférieur à l'unité, où dT est l'intervalle de temps entre deux calculs de position corrigée successifs.