FR 3034891 A1 20161014 FR 1651932 A 20160308 1 DESCRIPTION OSCILLATEUR À COMMANDE NUMÉRIQUE À VIRGULE FIXE COMPENSÉ EN PHASE POUR UNE DIAGRAPHIE DE FOND DE PUITS Domaine technique La présente divulgation concerne de manière générale des techniques permettant de générer un signal à commande numérique à virgule fixe compensé en phase et, plus spécifiquement, un oscillateur à commande numérique (OCN). Contexte Les opérations de champ de pétrole peuvent requérir une grande quantité d'informations relatives aux paramètres et conditions rencontrés en fond de puits. Des outils de diagraphie de fond de puits peuvent collecter ou diagrapher de telles informations en réalisant une « diagraphie en cours de forage » (LWD pour « Logging While Drilling ») ou une diagraphie au câble. Avec la diagraphie au câble, une sonde est abaissée dans le trou de forage après que la totalité ou une partie du puits a été forée. La sonde peut pendre à l'extrémité d'un long câble ou « câble » qui sert de support mécanique à la sonde tout en assurant une connexion électrique entre la sonde et l'équipement électrique situé à la surface du puits. Avec la LWD, l'ensemble forage inclut des instruments de détection qui mesurent divers paramètres à mesure qu'une formation terrestre est pénétrée. Bien que la LWD permette des mesures de formation plus contemporaines, les opérations de forage aboutissent à des environnements où une instrumentation électronique et 3034891 2 des capteurs importants ou gourmands en ressource ne sont typiquement pas souhaitables. Un oscillateur à commande numérique (OCN) est un générateur de signal numérique qui crée une 5 représentation synchrone (par exemple cadencée par horloge), à temps discret, à valeur discrète d'une forme d'onde, où la forme d'onde est typiquement sinusoïdale. Un OCN peut être utilisé conjointement avec un convertisseur numérique-analogique (CNA) pour créer un 10 signal de sortie analogique. Un OCN peut être utilisé dans des instruments de communications et de traitement de signal. Un OCN offre une largeur de bande de sortie élevée, une résolution de fréquence fine, et une vitesse de syntonisation rapide. Pour de nombreux cas et 15 applications d'utilisation, tels que des opérations de champ de pétrole, il est souhaité que la dérive de phase et la gigue d'un OCN soient extrêmement petites, si bien que les conceptions d'OCN soient très complexes. Un OCN peut générer une fréquence et un signal de 20 sortie syntonisable en phase avec une horloge à fréquence fixe de précision. Dans le domaine du temps, la fréquence de sortie d'un OCN est fonction de l'horloge du système. Dans la réalisation d'un OCN, il y a deux aspects conflictuels qui ont besoin d'être abordés, à savoir 25 l'exactitude de phase et la consommation de ressources. Afin de maintenir des niveaux acceptables d'exactitude de phase à de hautes fréquences, la consommation de ressources et d'énergie nécessite habituellement d'être très élevée. À l'inverse, afin de réduire ou minimiser la 30 consommation de ressources et d'énergie, les OCN sacrifient habituellement l'exactitude de phase. 3034891 3 Brève description des dessins La figure 1 est un schéma graphique d'un environnement de diagraphie en cours de forage (LWD), selon certains exemples illustratifs de la présente 5 divulgation. La figure 2 est un schéma graphique d'un environnement de diagraphie au câble, selon certains exemples illustratifs de la présente divulgation, selon certains exemples illustratifs de la présente 10 divulgation. La figure 3 est un schéma fonctionnel d'une architecture du système pour un oscillateur à commande numérique (OCN) à virgule fixe, selon certains exemples illustratifs de la présente divulgation. 15 La figure 4 est un organigramme illustrant un procédé de compensation de phase efficace qui garantit une exactitude de phase, selon certains aspects illustratifs de la présente divulgation. La figure 5 montre une sortie d'OCN à virgule fixe, 20 selon certains exemples illustratifs de la présente divulgation. La figure 6 montre une sortie d'OCN longue durée, selon certains exemples illustratifs de la présente divulgation. 25 La figure 7 montre l'erreur d'OCN au cours du temps, selon certains exemples illustratifs de la présente divulgation. La figure 8 montre une erreur d'OCN avec compensation de phase, selon certains exemples 30 illustratifs de la présente divulgation. La figure 9 est un schéma fonctionnel d'un système d'ordinateur intégré en fond de puits, dans lequel des 3034891 4 modes de réalisation de la présente divulgation peuvent être implémentés. Description détaillée 5 Certains aspects et certaines particularités ont trait à un système d'oscillateur à commande numérique (OCN) configuré pour être utilisé pour une diagraphie de fond de puits. Des exemples illustratifs et des méthodologies apparentées de la présente divulgation 10 sont décrits ci-dessous tels qu'ils pourraient être employés dans un système d'OCN qui utilise une conception à virgule fixe, pour minimiser l'usage des ressources sans sacrifier l'exactitude. Dans certains modes de réalisation, une technique de compensation corrige ou 15 compense l'erreur de phase et la dérive de phase. Un OCN à virgule fixe efficace est proposé, lequel maintient une sortie de haute précision tout en réduisant la consommation d'énergie et de ressources de l'OCN. On peut utiliser les techniques avec tous dispositifs de fond de 20 puits qui requièrent des oscillations à commande numérique. Par exemple, on peut utiliser les techniques avec des outils de diagraphie de fond de puits. On propose des procédés et systèmes permettant de générer automatiquement des signaux à commande numérique 25 avec une haute précision tout en minimisant aussi l'usage des ressources informatiques et la consommation d'énergie. Selon certains modes de réalisation, on y parvient par la séparation des parties en temps réel et en temps non réel du système, l'implémentation d'un 30 algorithme d'OCN à virgule fixe, et un procédé efficace de compensation de phase. Un exemple d'OCN inclut un compensateur de phase qui requiert très peu de ressources de système car le 5 3034891 compensateur de phase utilise simplement un compteur et un comparateur. L'OCN peut allouer un calcul d'une valeur de compensation dans un module de configuration en temps non réel. L'OCN augmente la précision avec uniquement une 5 très petite augmentation de consommation de ressources. Dans certains cas où la valeur de compensation calculée n'est pas un entier, des compteurs de compensation additionnels peuvent être implémentés pour augmenter encore la précision de l'OCN. 10 Dans certains exemples, l'OCN est basé sur un micrologiciel. Dans d'autres exemples, l'OCN est basé sur du matériel. Dans un aspect de la présente divulgation, l'OCN est implémenté comme un circuit intégré ayant des portes logiques et des blocs RAM comme, par exemple, une 15 matrice prédiffusée programmable par l'utilisateur (FPGA pour « Field-Programmable Gate Array »). Par exemple, l'OCN peut être implémenté comme une FPGA comportant des registres, des additionneurs/compteurs, un comparateur numérique, et un convertisseur numérique- 20 analogique (CNA). Certains aspects concernent un OCN qui produit rapidement et efficacement une sortie de signal en éliminant l'exigence concernant un grand nombre de registres ou de portes. L'OCN produit une sortie de 25 signal extrêmement précise comme requis pour une haute précision numérique en minimisant la dérive de phase et la gigue. Dans ce contexte, la dérive de phase est une différence entre une fonction sinusoïdale ou cosinusoïdale pure qu'un OCN tente de calculer et la 30 sortie de signal effective par l'OCN. Lorsqu'une dérive de phase se produit, la sortie de signal issue du dispositif OCN ne concorde pas avec la fonction sinusoïdale ou cosinusoïdale pure à un instant donné. À 3034891 6 savoir, la dérive de phase représente la différence entre la fonction sinusoïdale ou cosinusoïdale pure qu'un OCN s'efforce de calculer et ce que l'OCN peut effectivement calculer. La dérive de phase est une inexactitude 5 numérique qui se manifeste comme une dérive ou une erreur en comparaison à une fonction sinusoïdale ou cosinusoïdale de telle sorte que la sortie de signal issue de l'OCN est incorrecte en comparaison à une fonction sinusoïdale ou cosinusoïdale à un instant donné. 10 La gigue se réfère à des inexactitudes sporadiques dans une sortie calculée d'une fonction sinusoïdale ou cosinusoïdale. Par exemple, la gigue peut apparaître lorsqu'une sortie de signal bondit sporadiquement à des intervalles aléatoires par rapport à des valeurs 15 effectives d'une fonction sinusoïdale ou cosinusoïdale. En utilisant un nombre relativement petit de portes en comparaison à des FPGA plus complexes, des exemples de modes de réalisation réduisent la quantité de ressources informatiques et de puissance nécessaires pour produire 20 la sortie de signal, tout en maintenant pourtant une haute exactitude de phase et une faible gigue sans requérir beaucoup de résolution numérique et d'exactitude numérique. À savoir, certains exemples produisent rapidement une sortie de signal précise avec une faible 25 dérive de phase en utilisant relativement peu de calculs et ressources. Dans un exemple, une architecture du système OCN inclut un composant en temps réel et un composant en temps non réel. Avec cette architecture, un moniteur 30 efficace mais complexe peut être inclus dans des dispositifs de fond de puits, tels que, par exemple, des outils de diagraphie de fond de puits. Dans un exemple, 3034891 7 le système d'OCN peut être utilisé pour une imagerie par résonance magnétique nucléaire (RMN). Des exemples illustratifs décrits ici procurent une conception d'OCN efficace à virgule fixe avec 5 compensation de phase afin de garantir qu'une erreur de phase de l'OCN entre dans des exigences de système spécifiées. Dans certains modes de réalisation, une implémentation d'OCN à virgule fixe peut être configurée pour réduire la consommation de ressources, et un procédé 10 de compensation de phase efficace est utilisé pour garantir un niveau acceptable d'exactitude de phase. L'OCN peut être configuré pour garantir des niveaux acceptables d'exactitude de phase à de hautes fréquences tout en gardant relativement basses les exigences en 15 termes de ressources. À savoir, l'OCN peut procurer des niveaux élevés d'exactitude de phase à de hautes fréquences sans nécessiter de grandes quantités de puissance ou de ressources informatiques (par exemple mémoire, stockage, et puissance de traitement). Des 20 exemples de l'architecture et de la logique d'une telle implémentation OCN sont décrits en détail en référence aux figures 3 et 4 ci-dessous. Dans un exemple, l'OCN est intégré comme un dispositif numérique configuré pour générer une fonction sinusoïdale ou cosinusoïdale 25 continue avec une dérive de phase qui entre dans un seuil prédéterminé pour une tolérance d'erreur ou marge d'erreur. La conception de l'OCN peut être incluse dans tout système électronique, dont des systèmes électroniques 30 utilisés dans des environnements de champ de pétrole. Par exemple, l'OCN peut être utilisé dans des environnements de diagraphie en cours de forage (LWD) et des environnements de mesure en cours de forage (MWD pour 3034891 8 « Measurement While Drilling »). Dans un mode de réalisation, l'OCN peut être inclus dans un système électronique utilisé pour des complétions intelligentes pour surveiller et contrôler les puits. Dans certains 5 modes de réalisation, l'OCN peut être utilisé comme un composant de divers systèmes électroniques tels que des systèmes aux complétions intelligentes utilisés pour optimiser la production de puits en collectant, transmettant, et analysant des données de complétion, de 10 production, et de réservoir. Exemples d'environnements de diagraphie La figure 1 montre un environnement 100 de diagraphie en cours de forage (LWD) illustratif. Une 15 plateforme de forage 102 supporte un derrick 104 comportant une moufle mobile 106 permettant d'élever ou d'abaisser un train de tiges de forage 108. Une tige d'entraînement 110 supporte le train de tiges de forage 108 à mesure qu'il est abaissé par l'intermédiaire 20 d'une table de rotation 112. Un trépan 114 est entraîné par un moteur de fond de puits ou une rotation du train de tiges de forage 108. À mesure que le trépan 114 tourne, il peut créer un trou de forage 116 qui traverse diverses formations terrestres 118. Une pompe 120 fait 25 circuler un fluide de forage à travers une nourrice 122 vers la tige d'entraînement 110, en fond de puits à travers l'intérieur du train de tiges de forage 108, à travers des orifices dans le trépan 114, de retour vers la surface via l'annulaire autour du train de tiges de 30 forage 108, et à l'intérieur d'une alvéole de rétention 124. Le fluide de forage transporte des déblais de forage du trou de forage dans l'alvéole de 3034891 9 rétention 124 et assiste le maintien de l'intégrité du trou de forage. Un outil d'imagerie de résistivité LWD 126 (par exemple un outil de diagraphie 126) peut être intégré 5 dans l'ensemble de fond de puits près du trépan 114. À mesure que le trépan étend le trou de forage à travers les formations, l'outil de diagraphie 126 peut collecter ou diagrapher des mesures relatives à diverses propriétés de formation ainsi que la position de trépan, et diverses 10 autres conditions de forage. L'outil de diagraphie 126 peut prendre la forme d'un collier de forage, tel qu'un collier tubulaire à paroi épaisse qui confère poids et rigidité pour assister le processus de forage. Dans certains modes de réalisation, l'outil de diagraphie 126 15 peut inclure un OCN. Étant donné que l'environnement 100 peut être un environnement à haute température, l'OCN est configuré pour utiliser des ressources limitées. Par exemple, l'OCN peut être implémenté comme une FPGA relativement simple qui limite la consommation d'énergie 20 et calcule efficacement un signal de sortie. Selon certains modes de réalisation, l'outil de diagraphie 126 est un outil de diagraphie de fond de puits incluant un OCN qui est capable de fonctionner dans des environnements à haute température tout en minimisant 25 l'usage de l'énergie électrique et les ressources informatiques sans réduire le niveau de précision de son signal de sortie. Un sous-système de télémesure 128 peut être inclus pour transférer des mesures d'outil de diagraphie à un 30 récepteur de surface 130 et recevoir des ordres du récepteur de surface. À divers instants pendant le processus de forage, le train de tiges de forage 108 peut être enlevé du trou de forage. 3034891 10 La figure 2 montre un environnement de diagraphie au câble 200 illustratif. Comme le montre la figure 2, une fois que le train de tiges de trou de forage a été éliminé, des opérations de diagraphie peuvent être 5 conduites à l'aide d'un outil de diagraphie au câble 234. L'outil de diagraphie au câble 234 peut être implémenté comme un outil de diagraphie de fond de puits incluant une sonde d'instrument de détection suspendue par un câble 242 comportant des conducteurs permettant de 10 transporter l'énergie vers l'outil de diagraphie au câble 234 et la télémesure de l'outil à la surface. Une portion d'imagerie de résistivité de l'outil de diagraphie au câble 234 peut comporter des coussins de détection 236 configurés pour coulisser le long de la 15 paroi du trou de diagraphie au le dépeint diagraphie 244 diagraphie au 20 informatiques forage à mesure que l'outil de câble 234 est tiré en haut de puits. Comme la figure 2, une installation de peut collecter des mesures de l'outil de câble 234, et peut inclure des dispositifs configurés pour traiter et stocker les mesures réunies à l'aide de l'outil de diagraphie de fond de puits. Dans certains modes de réalisation, l'outil de diagraphie de fond de puits peut inclure un OCN. Étant donné que l'environnement 200 est un environnement 25 contraint dans l'espace, l'OCN inclus dans l'outil de diagraphie de fond de puits aura une taille relativement petite. Par exemple, l'OCN peut être implémenté comme une FPGA qui s'ajuste dans l'espace confiné de l'outil de diagraphie au câble 234. 30 Les environnements 100 et 200 peuvent être des environnements haute pression, hautes températures. Par exemple, on peut s'attendre à ce que l'outil de diagraphie 126 dans l'environnement 100 et l'outil de 3034891 11 diagraphie au câble 234 dans l'environnement 200 soient robustes vis-à-vis de hautes températures (par exemple des températures approchant ou excédant 185 degrés Fahrenheit) et d'une haute pression (par exemple 5 approximativement 20 000 livres par pouce carré/psi). De surcroît, dans les environnements 100 et 200, l'outil de diagraphie 126 et l'outil de diagraphie au câble 234 peuvent être soumis à des fluides corrosifs et des chocs mécaniques sévères à des profondeurs de plus de 3 miles. 10 Afin d'obtenir et de diagrapher des données issues de tels environnements extrêmes, l'outil de diagraphie 126 et l'outil de diagraphie au câble 234 peuvent avoir des limitations en termes de taille et puissance. Par suite, l'outil de diagraphie 126 et l'outil de diagraphie au 15 câble 234 peuvent être configurés pour être efficaces en termes de consommation d'énergie et être relativement petits. Exemple d'architecture du système 20 La figure 3 illustre une architecture d'un exemple de système 300 pour un OCN à virgule fixe avec une faible consommation de ressources. Comme le montre la figure 3, le système 300 se compose de deux modules, un module de configuration 306, et un module en temps réel 308. Le 25 module de configuration 306 est configuré pour recevoir une entrée d'ordre, une entrée de fréquence 302, et calculer des valeurs de registre de réglage. Le module en temps réel 308 est configuré pour calculer une valeur de phase et générer une sortie de signal 336 effective. Un 30 bénéfice de la séparation du système d'OCN 300 en modules 306 et 308 est que le module en temps réel 308 est isolé par rapport aux composants en temps non réel tels que le module de configuration 306. Le module en 3034891 12 temps réel 308 est configuré pour être extrêmement efficace à chaque cycle d'horloge (par exemple, chaque cycle d'une fréquence d'horloge du système 304) afin de générer une sortie de signal 336 valide. Par ailleurs, le 5 module de configuration en temps non réel 306 n'a pas à réaliser des calculs dans un cycle d'horloge de la fréquence d'horloge du système 304. En séparant les composantes de configuration et en temps réel en modules 306 et 308 séparés, et en exécutant le système 300 à une 10 vitesse inférieure, le système 300 peut économiser les ressources informatiques et réduire sa consommation d'énergie. En raison du besoin réduit en ressources informatiques et énergie, le système 300 peut être incorporé dans des systèmes et dispositifs de fond de 15 puits. Par exemple, le système 300 peut être utilisé avec les outils de diagraphie décrits ci-dessus en référence aux environnements de fond de puits 100 et 200 dépeints sur les figures 1 et 2. L'entrée de fréquence 302 et d'autres entrées dans 20 le module de configuration 306 ne sont pas un retour en temps réel ou des paramètres en temps réel. En revanche, ces entrées représentent une précision souhaitée, une fréquence qu'un utilisateur tente d'atteindre, et une marge d'erreur tolérable. Dans certains exemples, de 25 telles entrées peuvent être fournies via une interaction d'utilisateur avec une interface utilisateur et des dispositifs d'entrée/sortie (E/S). Par exemple, un utilisateur peut fournir au module de configuration 306 des paramètres d'entrée dont une entrée de fréquence 302, 30 puis le module de configuration 306 peut convertir l'entrée de fréquence 302 en une valeur de phase delta d'horloge. Cette fréquence à la conversion de phase delta d'horloge peut être réalisée en temps non réel. L'entrée 3034891 13 de fréquence 302 peut représenter la fréquence qu'un utilisateur veut que le système 300 atteigne. Dans l'exemple dépeint sur la figure 3, le module de configuration 306 réalise également un calcul d'erreur. 5 L'erreur calculée avec le module de configuration 306 peut représenter la marge d'erreur que le système 300 peut autoriser ou tolérer. Le module de configuration 306 peut calculer ce qu'une onde sinusoïdale serait avec une résolution plus faible que ce qui est requis par le 10 système 300, puis modéliser l'erreur qui résulterait de cette résolution inférieure. Ce calcul et cette modélisation d'erreur sont réalisés séparément des calculs réalisés en utilisant le module en temps réel 308. Dans un exemple, le module de configuration 306 15 calcule comment une marge d'erreur tolérable devrait être réfléchie, et fournit des paramètres à un registre de compensation 322 du module en temps réel 308 pour que le module en temps réel 308 puisse compenser la marge d'erreur. Après détermination des paramètres, réalisation 20 de la conversion de fréquence en phase delta d'horloge, et calcul d'une marge d'erreur, le module de configuration 306 peut fournir cette information en tant que configuration au module en temps réel 308. Comme le montre l'exemple de la figure 3, le module 25 de configuration 306 peut alimenter la marge d'erreur calculée dans le registre de compensation 322 du module en temps réel 308 pour que le module en temps réel 308 puisse soustraire l'erreur calculée hors de sa sortie avant de produire la sortie de signal 336 final. Le 30 module en temps réel 308 peut également charger la valeur de phase delta convertie dans le registre de phase delta 310 et charger la marge d'erreur ou tolérance d'erreur calculée dans un registre de compensation 322. 3034891 14 Après réception de paramètres de configuration incluant la phase delta et la tolérance d'erreur converties, le module en temps réel 308 peut assurer la fonction d'OCN afin de générer la sortie de signal 336 finale à faible 5 dérive de phase. Dans l'exemple fourni sur la figure 3, on a deux parties principales au sein du module en temps réel 308. Une partie, montrée dans la portion supérieure du module en temps réel 308, inclut un accumulateur de phase avec 10 des composants 312, 314, 316, et 318, qui calculent la fonction d'OCN. L'autre partie, montrée dans la portion inférieure du module en temps réel 308, inclut un module de compensation et des composants de compensation en temps réel 324, 326, et 328 qui agissent comme un 15 compensateur de phase qui compense la tolérance d'erreur calculée. Regroupées, ces deux parties produisent une sortie de signal 336 ayant une faible dérive de phase qui se situe dans la tolérance d'erreur calculée. Les composants de ces deux parties sont décrits dans les 20 paragraphes suivants. Une partie du module en temps réel 308 est un accumulateur de phase. L'accumulateur de phase démarre avec une valeur de phase delta reçue stockée dans le registre de phase delta 310, puis calcule une phase delta 25 d'incrément de phase à l'aide du bloc de sommation 312 et du bloc 314. Ensuite, l'accumulateur de phase détermine une phase de courant au bloc 316, et stocke une valeur dans le tampon de phase 318. Au bloc 314, l'accumulateur de phase peut incrémenter ou décrémenter la valeur 30 stockée dans le tampon de phase 318 au besoin. Dans un exemple, le bloc 314 peut être implémenté en utilisant un additionneur ou un compteur d'une FPGA. Dans certains 3034891 15 modes de réalisation, la phase delta d'incrément de phase peut être calculée à l'aide de l'équation suivante : PhaseDelta Fsig *TableLen Fclk 5 Dans l'équation ci-dessus, Fsig représente le signal souhaité, TableLen correspond à une longueur de table sinusoïdale, et Fclk représente la fréquence d'horloge du système numérique. Comme le montre la figure 3, la Fclk 10 peut être reçue par le module en temps réel 308 comme la fréquence d'horloge du système 304. La fréquence d'horloge du système 304 peut correspondre à une vitesse d'horloge d'une horloge en temps réel effective. Afin de réduire la consommation de ressources du système, la 15 valeur de phase delta peut être réglée pour avoir un format à virgule fixe. Par exemple, la longueur entière de la valeur de phase delta peut être directement reliée à une longueur de table sinusoïdale, alors que la longueur fractionnaire de la valeur de phase delta peut 20 déterminer la précision de phase. Puisque la précision du format à virgule fixe est directement déterminée par la longueur de la longueur fractionnaire, une longueur fractionnaire plus élevée aboutira à une précision de phase plus élevée. Néanmoins, une longueur fractionnaire 25 plus élevée peut également conduire à une plus haute consommation de ressource du système. Pour atténuer le besoin en consommation de ressources plus élevé par le système 300, pour chaque cycle d'horloge de la fréquence d'horloge du système 304, 30 l'accumulateur de phase peut être augmenté par la valeur de phase delta à l'aide du bloc 314. Le résultat de 3034891 16 l'augmentation de l'accumulateur de phase peut être équivalent à la progression ou l'avancement d'une onde sinusoïdale par la valeur de phase delta. S'il est déterminé au bloc 316 que la valeur 5 calculée avec l'accumulateur de phase correspond à la phase de courant, la commande passe au bloc 320. Sinon, la valeur est stockée dans le tampon de phase 318. Au bloc 320, la sortie peut être reconvertie en une valeur entière pour indexation de table. Avec cette approche, 10 seul un accumulateur à virgule fixe est consommé, et la consommation de ressources du système 300 peut être minimisée. Comme le montre la figure 3, l'indexation de table 330 peut être réalisée à l'aide d'une table de consultation sinusoïdale 332. Dans l'exemple de la 15 figure 3, la table de consultation sinusoïdale 332 peut être stockée dans une mémoire morte (ROM pour « Read Only Memory ») du système 300. En concevant correctement la taille de longueur fractionnaire de la table de consultation sinusoïdale 332, la précision de phase du 20 système 300 peut être atteinte et maintenue dans une durée limitée. Après que l'indexation de table est achevée, le signal de sortie d'OCN numérique est fourni en sortie. Dans un exemple, si un signal de sortie analogique est nécessaire, le signal de sortie d'OCN 25 numérique est passé à un convertisseur numérique-analogique (CNA) 334. Selon cet exemple, le CNA 334 convertit le signal d'OCN numérique en une sortie de signal analogique 336. Comme noté ci-dessus, la seconde partie du module en 30 temps réel 308 est le module de compensation, qui inclut des composants de compensation en temps réel 324, 326, et 328 qui compensent la tolérance d'erreur calculée. Une fois que le système 300 commence le traitement, pour 17 3034891 chaque cycle d'horloge de la fréquence d'horloge du système 304, un compteur en fonctionnement libre peut être incrémenté de 1. Dans l'exemple de la figure 3, le compteur en fonctionnement libre est stocké à l'aide d'un 5 compteur de compensation 326 et incrémenté au bloc 328. Dans un exemple, le bloc 328 peut être implémenté à l'aide d'un additionneur ou compteur d'une FPGA. Lorsque le système 300 détermine que le compteur en fonctionnement libre a atteint la valeur d'une valeur de 10 compensation précalculée ou prédéterminée, un incrément ou décrément sera réalisé sur le tampon de phase. Cet incrément ou décrément peut être réalisé au bloc 314 de l'accumulateur de phase, ce qui est évoqué ci-dessus. Comme le montre l'exemple de la figure 3, le compteur en 15 fonctionnement peut être comparé à la valeur de compensation au bloc 324. Dans un exemple, le bloc 324 peut être implémenté à l'aide d'un comparateur numérique. Si la valeur de calcul est calculée comme un entier, le tampon de phase n'aura jamais d'accumulation plus grande 20 qu'un bit le moins significatif (LSB pour « Least Significant Bit »). L'erreur d'accumulation due à la précision à virgule fixe utilisée dans le système 300 est fixée dans chaque accumulation, et l'erreur peut être calculée lors du 25 calcul de la valeur de phase delta. Dans le système 300, cette erreur est convertie en une valeur de décompte quant à la fréquence d'horloge du système 304. La valeur de décompte représente le nombre de cycles d'horloge qu'il faut pour que l'erreur augmente d'un LSB à virgule 30 fixe. Dans un exemple, le LSB représente un bit le moins significatif de l'accumulateur de phase. Cette valeur de compensation est chargée dans un registre de compensation 322 préalloué conjointement avec la valeur 3034891 18 de phase delta. Dans certains modes de réalisation, une valeur de compensation à virgule fixe est utilisée car le registre de compensation 322 fonctionne avec des entiers. Néanmoins, avec des valeurs à virgule flottante pour une 5 erreur effective et une valeur de compensation entière à virgule fixe, une erreur peut s'accumuler ou augmenter au cours du temps. À savoir, un premier module de compensation peut introduire sa propre erreur, laquelle peut être prise en compte par un ou plusieurs modules de 10 compensation additionnels. Dans des cas où la valeur de compensation n'est pas un entier, un deuxième voire un nombre plus élevé de modules de compensation peut être implémenté pour augmenter encore la précision du système 300. Par 15 exemple, le système 300 peut inclure de multiples modules de compensation avec des compteurs de compensation 326 respectifs fonctionnant en parallèle. Dans de tels cas où la valeur de compensation n'est pas un entier, puisque l'erreur effective peut être un nombre à virgule 20 flottante, une compensation d'erreur additionnelle peut être nécessaire pour atteindre un niveau d'erreur inférieur. Dans cet exemple, la valeur de compensation représente une erreur non corrigée et la valeur de compensation est une valeur de capture. 25 Exemple d'un processus Au vu de la description précédente, on décrira à présent un procédé illustratif en référence à l'organigramme de la figure 4. Le procédé 400 dépeint sur 30 la figure 4 est décrit en référence aux particularités de la figure 3. Néanmoins, le procédé 400 n'est pas limité à ces particularités. On peut faire varier l'ordre des blocs présentés sur la figure 4. Par exemple, les blocs 19 3034891 du procédé 400 peuvent être réordonnés, combinés, et/ou cassés en sous-blocs. Les blocs peuvent être réalisés en série, en parallèle, ou dans toute autre manière. De surcroît, certains blocs peuvent être omis dans des 5 implémentations. Comme le montre la figure 4, le procédé 400 commence au bloc 402. Dans un exemple, le bloc 402 inclut la réception de inclure, par 10 l'entrée de d'horloge du système, et une tolérance d'erreur ou marge d'erreur calculée. Dans un exemple, le bloc 402 inclut le calcul d'une tolérance ou marge d'erreur. Dans un exemple, le bloc 402 peut être réalisé avec le module de 15 configuration 306 décrit ci-dessus en référence à la figure 3. Par exemple, la tolérance ou marge d'erreur peut être calculée avec le module de configuration 306. Au bloc 404, une fréquence est convertie en une valeur de phase delta d'horloge. Comme le montre la 20 figure 4, le bloc 404 peut inclure le calcul de la valeur de phase delta d'après des paramètres reçus au bloc 402. Dans un exemple, le bloc 404 peut être réalisé à l'aide du module de configuration 306. Après que la valeur de phase delta est calculée, la commande passe au bloc 406 25 où des réglages de configuration sont générés. Comme montré, le bloc 406 peut inclure la génération de réglages de configuration pour un module en temps réel. Dans un exemple, le module en temps réel est le module en temps réel 308 décrit ci-dessus en référence à la 30 figure 3. Après que les réglages de configuration sont générés, la commande passe au bloc 408. Au bloc 408, un signal d'OCN est généré. Comme montré, le signal d'OCN est basé sur les réglages de paramètres. De tels paramètres peuvent exemple, l'entrée de fréquence (par exemple fréquence 302), une vitesse/fréquence 3034891 20 configuration générés au bloc 406. Dans un exemple, le bloc 408 est réalisé avec des composants du module en temps réel 308 décrit ci-dessus en référence à la figure 3. Le signal d'OCN généré au bloc 408 est un 5 signal numérique. Si un signal de sortie analogique est nécessaire, le signal d'OCN peut être converti avec le CNA 334 pour produire un signal analogique tel que la sortie de signal 336. Ensuite, au bloc 410, une erreur d'accumulation est 10 calculée, et celle-ci est convertie dans le compteur en fonctionnement libre. Dans un exemple, le bloc 410 est réalisé en utilisant des composants d'un module de compensation, tel que le registre de compensation 322 et le compteur de compensation 326 décrits ci-dessus en 15 référence à la figure 3. Ensuite, au bloc 412, on détermine si le compteur en fonctionnement libre est supérieur ou égal à une valeur de compensation précalculée ou prédéterminée. S'il est déterminé que le compteur en fonctionnement est égal à la 20 valeur de compensation, la commande passe au bloc 416. Sinon, s'il est déterminé que le compteur est inférieur à la valeur de compensation, la commande passe au bloc 414 où le compteur est incrémenté pour le cycle d'horloge de courant. Dans un exemple, l'incrémentation dans le 25 bloc 414 peut être réalisée avec l'additionneur 328 décrit ci-dessus en référence à la figure 3. Après que le compteur est incrémenté, la commande repasse au bloc 412. Au bloc 416, un tampon de phase est ajusté. Comme le montre l'exemple de la figure 4, le bloc 416 peut inclure 30 une compensation d'erreur. Dans un exemple, le tampon de phase 318 est utilisé pour stocker le tampon de phase ajusté calculé au bloc 416. Après que le tampon de phase est ajusté, la commande passe au bloc 418, où une 3034891 21 conversion de virgule fixe en indice est réalisée. Le bloc 418 peut inclure la conversion d'un signal de sortie en une valeur entière. Après la conversion, la commande passe au bloc 420. 5 Au bloc 420, une indexation de table est réalisée. Dans un exemple, le bloc 420 peut inclure l'indexation de table 330 à l'aide de la table de consultation sinusoïdale 332 décrite ci-dessus en référence à la figure 3. Après l'indexation de table, le signal de 10 sortie numérique est disponible. Si un signal de sortie analogique est nécessaire, la commande peut passer au bloc optionnel 422 où une conversion numérique-analogique est réalisée sur le signal de sortie. Le bloc optionnel 422 peut être réalisé à l'aide d'un 15 convertisseur numérique-analogique (CNA), tel que, par exemple, le CNA 334. Après la conversion numérique-analogique, la commande passe au bloc 424, où le signal de sortie final est fourni en sortie puis le procédé 400 s'achève. Dans un exemple, la sortie de signal final dans 20 le bloc 424 est la sortie de signal 336 décrite ci-dessus en référence à la figure 3. En réalisant les blocs montrés sur la figure 4, le procédé 400 calcule une onde sinusoïdale avec une résolution inférieure à ce qui est effectivement requis 25 puis modélise l'erreur qui résulterait de cette résolution inférieure séparément, puis une alimentation, basée sur les paramètres de configuration reçus au bloc 402, de ce qu'est la tolérance d'erreur calculée est telle que la tolérance d'erreur calculée peut être 30 soustraite de la sortie de signal final avant que le procédé ne s'achève au bloc 424. De cette manière, le procédé 400 accomplit une compensation de phase efficace qui garantit une exactitude de phase. 3034891 22 Exemples de sorties d'OCN Un exemple de sortie 500 d'un OCN à virgule fixe est dépeint sur la figure 5. Comme le montre l'exemple de la 5 figure 5, la sortie 500 peut tracer une valeur de CNA 502 d'un signal de sortie théorique 506 et d'un signal de sortie d'OCN de résolution inférieure 508 sur une durée limitée 504. Sur la figure 5, le signal de sortie théorique 506 est un signal de sortie cosinusoïdale 10 direct, et le signal de sortie d'OCN 508 est la sortie d'OCN effective. Comme montré, initialement, il n'y a pas de dérive du signal de sortie d'OCN 508 quant au signal de sortie théorique 506 dans la durée 504. Dans l'exemple de la figure 5, en utilisant un OCN à virgule fixe, la 15 précision de phase entre une valeur de signal de sortie théorique 506 et un signal de sortie d'OCN 508 peut être maintenue dans la durée 504. La figure 6 dépeint un exemple de sortie 600 d'un OCN sur une longue durée 604 lorsqu'il y a une 20 compensation d'erreur insuffisante. Comme montré, une erreur dans la sortie d'OCN 608 peut s'accumuler sur la durée 604. La sortie 600 peut montrer comment, bien que la conception à virgule fixe utilisant le module de configuration 306 et le module en temps réel 308 puisse 25 minimiser la consommation de ressources, la précision du format à virgule fixe peut être limitée sur une durée étendue. De plus, quelque erreur résiduelle peut être accumulée avec chaque opération d'accumulation de phase. Sur une longue durée telle que la durée 604, l'erreur 30 d'accumulation peut ressortir et peut amener la sortie d'OCN 608 à être déphasée quant à une sortie théorique 606. Comme on peut le voir sur la figure 6, sans compensation d'erreur adéquate, la sortie d'OCN 608 3034891 23 peut commencer à perdre sa fidélité de phase quant à la sortie théorique 606 sur une longue durée 604. La figure 7 montre l'erreur de sortie d'OCN accumulée 700. En particulier, la figure 7 montre comment 5 la valeur de CNA 702 de l'erreur de phase d'OCN 700 peut s'accumuler sur une durée 704. L'erreur de sortie d'OCN 700 peut provenir d'une précision à virgule fixe utilisée par l'OCN. Cette erreur peut augmenter au cours du temps 704 comme une erreur d'accumulation. Une telle 10 erreur d'accumulation est fixée dans chaque accumulation, et elle peut être calculée lors du calcul de la valeur de phase delta. Ce procédé de compensation de phase efficace et l'approche à deux modules évoquée ci-dessus en référence aux figures 3 et 4 peuvent être utilisés pour 15 compenser l'erreur d'accumulation de phase montrée sur la figure 7. Avec cette approche, au lieu d'accumuler une erreur telle que l'erreur de sortie d'OCN 700 qui augmente au cours du temps 704, l'erreur peut être limitée tout en maintenant également une faible 20 consommation de ressources du système. La figure 8 illustre une erreur de sortie d'OCN 800 (par exemple une erreur de phase) qui est limitée ou bornée en utilisant un compensateur de phase. Dans l'exemple de la figure 8, l'erreur de sortie 25 d'OCN 800 correspond à un OCN avec compensateur de phase. L'erreur de sortie d'OCN 800 (par exemple l'erreur de phase) est bornée par des valeurs de CNA supérieure et inférieure 802, et ne s'accumule pas ou n'augmente pas au cours du temps 804. Dans un exemple, l'erreur de sortie 30 d'OCN 800 est purement liée à un bit le moins significatif (LSB) à virgule fixe. 3034891 24 Exemple d'une implémentation de système d'ordinateur Bien que des exemples de modes de réalisation aient été décrits en termes d'appareils, systèmes, services, et procédés, il est envisagé que certaines fonctionnalités 5 décrites ici puissent être implémentées en logiciel sur des microprocesseurs, comme une puce de microprocesseur incluse dans des dispositifs informatiques tels que le système d'ordinateur embarqué en fond de puits 900 illustré sur la figure 9. Dans divers modes de 10 réalisation, une ou plusieurs des fonctions des divers composants peuvent être implémentées en logiciel qui commande un dispositif informatique, tel que le système d'ordinateur intégré 900, qui est décrit ci-dessous en référence à la figure 9. 15 Pour implémenter les diverses particularités et fonctions décrites ci-dessus, on peut implémenter la totalité ou une partie des éléments des outils de fond de puits (par exemple l'outil de diagraphie au câble 234 de la figure 2, comme montré), des systèmes (par exemple le 20 système 300 de la figure 3) et des procédés (par exemple le procédé 400 de la figure 4) en utilisant des éléments du système d'ordinateur de la figure 9. Plus particulièrement, la figure 9 illustre un exemple de système d'ordinateur de fond de puits 900 permettant 25 d'implémenter les techniques en conformité avec la présente divulgation. Dans l'exemple de la figure 9, des modes de réalisation peuvent être implémentés dans un ou plusieurs éléments parmi une logique programmable 914, un processeur intégré 904 et un circuit intégré tel qu'une 30 FPGA. Des aspects de la présente divulgation montrés sur les figures 1 à 8, ou toute(s) partie(s) ou fonction(s) de ceux-ci, peuvent être implémentés à l'aide de 3034891 25 matériel, modules logiciels, micrologiciel, support tangible lisible par ordinateur stockant une logique ou des instructions, ou l'une de leurs combinaisons et peuvent être implémentés dans un ou plusieurs systèmes 5 d'ordinateur ou autres systèmes de traitement. La figure 9 illustre un exemple de système d'ordinateur intégré en fond de puits 900 dans lequel des modes de réalisation de la présente divulgation, ou des portions de ceux-ci, peuvent être implémentés comme des 10 instructions ou un code lisibles par ordinateur. Par exemple, certaines fonctionnalités réalisées avec le système 300 montré sur la figure 3 peuvent être implémentées dans le système d'ordinateur intégré 900 à l'aide de matériel, logiciel, micrologiciel, support 15 lisible par ordinateur non transitoire stockant des instructions, ou l'une de leurs combinaisons et peuvent être implémentées dans un ou plusieurs systèmes d'ordinateur ou autres systèmes de traitement. Le matériel, le logiciel, ou toute combinaison de ceux-ci 20 peut intégrer certains modules et composants utilisés pour implémenter le système 300 illustré par la figure 3 évoquée ci-dessus. De façon similaire, du matériel, un logiciel, ou toute combinaison de ceux-ci peut intégrer certains modules et composants utilisés pour implémenter 25 des blocs dans l'organigramme illustré par la figure 4 évoquée ci-dessus. Si une logique programmable est utilisée, une telle logique peut s'exécuter sur une plateforme de traitement disponible dans le commerce ou sur un dispositif 30 spécialisé. Dans l'exemple de la figure 9, la logique programmable peut être incluse dans la logique 914 du système informatique intégré en fond de puits 900. L'homme du métier peut apprécier que des modes de 3034891 26 réalisation du sujet divulgué puissent être mis en pratique avec diverses configurations de système d'ordinateur, dont des systèmes multiprocesseurs multicoeurs, des mini-ordinateurs, des ordinateurs 5 centraux, des ordinateurs liés ou groupés avec des fonctions réparties, ainsi que des ordinateurs omniprésents ou miniatures qui peuvent être intégrés dans quasiment tout dispositif. Par exemple, au moins un processeur intégré 904 et 10 une mémoire 908 peuvent être utilisés pour implémenter les modes de réalisation décrits ci-dessus. Le processeur intégré 904 peut être un dispositif de processeur unique, une pluralité de processeurs, ou leurs combinaisons. Des dispositifs de processeur peuvent comporter un ou 15 plusieurs « coeurs » de processeur. Certains modes de réalisation sont décrits par rapport à cet exemple de système d'ordinateur de fond de puits 900. Après lecture de cette description, il apparaîtra à l'homme du métier la manière dont on peut 20 implémenter les exemples divulgués à l'aide d'autres systèmes d'ordinateur ou architectures d'ordinateur. Bien que des opérations puissent être décrites sous forme de processus séquentiel, certaines des opérations peuvent en fait être réalisées en parallèle, simultanément, ou dans 25 un environnement réparti, et avec un code de programme stocké localement ou à distance pour accès par des machines mono- ou multiprocesseurs. De surcroît, dans certains modes de réalisation, l'ordre des opérations peut être réagencé sans s'écarter de l'esprit du sujet 30 divulgué. Le processeur intégré 904 peut être un dispositif de processeur spécialisé ou universel. Comme l'appréciera l'homme du métier, le processeur intégré 904 peut être un 3034891 27 processeur unique dans un système multicoeur/multiprocesseur, un tel système fonctionnant seul, ou dans une grappe de dispositifs informatiques fonctionnant dans une grappe ou une batterie de serveurs. 5 Le processeur intégré 904 est connecté à une source d'alimentation coeur 912, qui reçoit l'alimentation d'une source d'alimentation du système 910. La source d'alimentation 910 peut fournir l'énergie électrique à l'électronique dans le système d'ordinateur de fond de 10 puits 900, comme des convertisseurs de signal 934, le processeur 904, des dispositifs d'entrée/sortie (E/S), et autres électroniques. Des exemples non limitants de la source d'alimentation 910 incluent des batteries, des condensateurs, et une connexion électrique à une autre 15 source d'alimentation située à distance. Dans certains aspects, la source d'alimentation 910 peut être omise et l'alimentation peut être fournie via un câble électrique couplé à un connecteur 924 ou un câble électrique acheminé à travers le câble 242 qui suspend l'outil de 20 diagraphie au câble 234. Comme le montre la figure 9, le système d'ordinateur de fond de puits 900 peut inclure un ou plusieurs capteurs 920. Dans l'exemple de la figure 9, les capteurs 920 peuvent inclure un capteur de température, 25 un capteur de pression, un capteur de résistivité, et un capteur de rayon gamma. Chacun des capteurs 920 peut être connecté à des amplificateurs 922 respectifs. Les amplificateurs 922 peuvent amplifier des lectures de capteur et des signaux fournis en sortie par les 30 capteurs 920. Les amplificateurs 922 peuvent être connectés à un ou plusieurs convertisseurs de signal 934. Les convertisseurs de signal 934 peuvent être des convertisseurs analogiques-numériques (CAN) ou des 3034891 28 convertisseurs numériques-analogiques (CNA), selon le type de conversion nécessaire. Les convertisseurs de signal 934 peuvent recevoir l'alimentation de l'alimentation du système 910. Les signaux convertis 5 fournis en sortie par les convertisseurs de signal 934 peuvent être envoyés au processeur 904. Le système embarqué 900 peut également inclure une horloge du système 918. Dans un mode de réalisation, l'entrée de 10 fréquence 302 du système 300 décrit ci-dessus en référence à la figure 3 peut être reçue via l'interface 916 montrée sur la figure 9. Selon un mode de réalisation, un processeur du système 300 décrit ci-dessus en référence à la figure 3 peut être réalisé comme 15 le processeur 904 montré sur la figure 9. Le système d'ordinateur intégré en fond de puits 900 inclut également une mémoire 908, par exemple une mémoire morte (RAM), une mémoire flash, ou similaire. Dans un exemple non limitant, le stockage utilisé pour stocker un 20 ou plusieurs parmi un tampon de phase 318, un indice de table 330 et une table de consultation sinusoïdale 332 du système 300 de la figure 3 peuvent être réalisés comme la mémoire 908 montrée sur la figure 9. Comme l'appréciera l'homme du métier, la mémoire 908 peut inclure un support 25 de stockage non transitoire lisible par ordinateur stockant des instructions exécutables, un logiciel d'ordinateur, ou des données. Dans des implémentations alternatives, la mémoire 908 peut inclure d'autres moyens similaires 30 permettant à une logique 914, à des programmes d'ordinateur ou d'autres instructions d'être chargés dans le système d'ordinateur intégré 900. De tels moyens peuvent inclure, par exemple, l'interface 916 et le 3034891 29 connecteur 924. Des exemples de tels moyens peuvent inclure une puce de mémoire amovible (par exemple EPROM, ou EEPROM) et une douille associée, et d'autres unités et interfaces de stockage amovibles 916 qui permettent de 5 transférer un logiciel et des données des unités de stockage amovibles au système d'ordinateur de fond de puits 900. Le système d'ordinateur intégré en fond de puits 900 peut également inclure l'interface 916. L'interface 916 10 permet de transférer un logiciel et des données entre le système d'ordinateur intégré 900 et des dispositifs, outils et systèmes externes via le connecteur 924. L'interface 916 peut inclure un modem, une interface de réseau (telle qu'une carte Ethernet), un port de 15 communications, une fente et carte PCMCIA, ou similaire. Le logiciel et les données transférés via l'interface 916 et le connecteur 924 peuvent se présenter sous la forme de signaux, qui peuvent être des signaux électroniques, électromagnétiques, optiques, OU autres capables d'être 20 reçus par l'interface 916. Ces signaux peuvent être fournis à l'interface 916 via un chemin de communications qui porte des signaux et peut être implémenté à l'aide d'un fil ou d'un câble, de fibres optiques, d'une ligne téléphonique, ou d'un lien de téléphone cellulaire, d'un 25 lien RF ou d'autres canaux de communications. Telles qu'utilisées ici, les expressions « support lisible par ordinateur » et « support lisible par ordinateur non transitoire » sont utilisées pour se référer de manière générale à des supports, tels qu'une 30 mémoire 908, qui peuvent inclure des semi-conducteurs à mémoire (par exemple DRAM, etc.). Le support lisible par ordinateur et le support lisible par ordinateur non transitoire peuvent également se référer à une 3034891 30 logique 914. Des signaux portés sur un chemin de communications incluant l'interface 916 et le connecteur 924 peuvent également intégrer la logique 914. Ces produits de programme d'ordinateur peuvent être des 5 moyens permettant de fournir un logiciel à un système d'ordinateur intégré en fond de puits 900. Des programmes d'ordinateur (également appelés logique de commande d'ordinateur) peuvent être stockés dans la mémoire 908 ou comme partie de la logique 914. 10 Des programmes d'ordinateur peuvent également être reçus via l'interface 916 et le connecteur 924. De tels programmes d'ordinateur, lorsqu'ils sont exécutés, permettent au système d'ordinateur de fond de puits 900 d'implémenter les présents exemples comme évoqué ici. En 15 particulier, les programmes d'ordinateur, lorsqu'ils sont exécutés, permettent au processeur intégré 904 d'implémenter les processus de la présente divulgation, tels que les blocs dans le procédé illustré par l'organigramme de la figure 4 évoqué ci-dessus. En 20 conséquence, de tels programmes d'ordinateur représentent des organes de commande du système d'ordinateur intégré en fond de puits 900. Lorsque des particularités sont implémentées à l'aide de logiciel, le logiciel peut être stocké dans un produit de programme d'ordinateur et 25 chargé dans le système d'ordinateur de fond de puits 900 à l'aide de la mémoire 908, de l'interface 916, et du connecteur 924. Comme le montre la figure 9, le système d'ordinateur intégré 900 peut également inclure une source 30 d'alimentation coeur 912 permettant de fournir l'alimentation à des dispositifs d'entrée/sortie (E/S). Les dispositifs E/S peuvent se connecter à l'interface 916 et au connecteur 924 pour recevoir une 31 3034891 entrée, telle que, par exemple, une entrée d'utilisateur spécifiant une tolérance d'erreur et d'autres paramètres et réglages de configuration. Alors que le présent sujet a été décrit en détail 5 quant à des modes de réalisation spécifiques de celui-ci, il sera apprécié par l'homme du métier, lorsqu'il comprendra la partie précédente, qu'il puisse produire aisément des aménagements, variations, ou équivalents de tels modes de réalisation. En conséquence, il convient de 10 comprendre que la présente divulgation a été proposée à titre d'exemple plutôt que de limitation, et n'exclut pas l'inclusion de telles modifications, variations, et/ou additions au présent sujet comme cela apparaîtra aisément à l'homme du métier. En effet, les processus, procédés et 15 systèmes décrits ici peuvent être intégrés dans une variété d'autres formes ; de plus, diverses omissions, substitutions et modifications dans la forme des processus, procédés et systèmes décrits ici peuvent être réalisées sans s'écarter de l'esprit de la présente 20 divulgation. Les revendications annexées et leurs équivalents sont censés couvrir de telles formes ou modifications telles qu'elles entreraient dans la portée et l'esprit de la présente divulgation. Sauf spécification contraire, on apprécie que 25 partout dans ce mémoire, des discussions utilisant des termes tels que « traitement », « calcul », « détermination », et « identification » ou similaire se réfèrent à des actions ou processus d'un dispositif informatique, tel qu'un ou plusieurs ordinateurs ou 30 autre(s) dispositif(s) informatique(s) électronique(s) similaire(s) qui manipule(nt) ou transforme(nt) des données représentées par des quantités électroniques ou magnétiques physiques au sein de mémoires, registres ou 3034891 32 autres dispositifs de stockage d'informations, dispositifs de transmission, ou dispositifs d'affichage. Le mode conditionnel utilisé ici tel que, entre autres, « peut », « pourrait », « pourra », « par exemple » et 5 similaire, sauf indication spécifique contraire, ou compris autrement dans le contexte tel qu'utilisé, est généralement censé indiquer que certains exemples incluent, alors que d'autres exemples n'incluent pas, certains particularités, éléments, blocs ou étapes. Les 10 termes « comprenant », « incluant », « ayant », et similaires sont synonymes et sont utilisés de manière inclusive, au sens large et n'excluent pas d'éléments, particularités, actes, opérations additionnels, et c&tera. De même, le terme « ou » est utilisé dans son 15 sens inclusif (et non dans son sens exclusif) si bien que lorsqu'il est utilisé, par exemple, pour relier une liste d'éléments, le terme « ou » signifie tout ou partie des éléments dans la liste. De surcroît, l'utilisation de « basé sur » est censée être au sens large et inclusif, 20 en ce qu'un processus, un bloc, une étape, un calcul ou une autre action « basé sur » une ou plusieurs conditions ou valeurs citées, peut, en pratique, être basé sur des conditions ou valeurs additionnelles au-delà de celles citées. 25 La description précédente des modes de réalisation, y compris les modes de réalisation illustrés, a été présentée uniquement à titre d'illustration et de description et n'est pas censée être exhaustive ou limitée aux formes précises divulguées. Nombre de 30 modifications, adaptations, et leurs utilisations apparaîtront à l'homme du métier. Des modes de réalisation et procédés décrits ici concernent en outre un ou plusieurs quelconques des 3034891 33 paragraphes suivants. Telle qu'utilisée ici, toute référence à une série d'exemples doit être comprise comme une référence à chacun de ces exemples de façon disjointe (par exemple « exemples 1 à 4 » doit être 5 compris comme « exemples 1, 2, 3, ou 4 »). L'exemple 1 est un système qui inclut un processeur, un dispositif de fond de puits incluant un module de configuration et un module en temps réel, et une mémoire stockant des instructions qui, si elles sont exécutées 10 par le processeur, amènent le processeur à réaliser des opérations. Les opérations incluent la réception de paramètres incluant une fréquence d'entrée et une valeur de compensation. Les opérations incluent en outre la conversion, avec le module de configuration, basée sur 15 les paramètres, de la fréquence d'entrée à une valeur de phase delta. Les opérations incluent également le calcul, avec le module en temps réel, d'une erreur d'accumulation pour un signal numérique. En réaction au fait de déterminer que l'erreur d'accumulation est supérieure ou 20 égale à la valeur de compensation, les opérations incluent l'élimination de l'erreur d'accumulation du signal numérique pour générer un signal de sortie. L'exemple 2 est le système de l'exemple 1, où les opérations incluent en outre, avant réception des 25 paramètres, le calcul de la valeur de compensation avec le module de configuration, la valeur de compensation correspondant à une tolérance d'erreur. L'exemple 3 est le système des exemples 1 ou 2, où la réception des paramètres inclut : la réception d'une 30 fréquence d'horloge du système ; et le calcul, avec le module de configuration, basé sur les paramètres, de réglages de configuration pour le module en temps réel et d'une tolérance d'erreur pour le signal de sortie. 3034891 34 L'exemple 4 est le système des exemples 1 à 3 où le calcul de l'erreur d'accumulation inclut la conversion, avec le module en temps réel, de l'erreur d'accumulation dans un compteur en fonctionnement, les opérations 5 comprenant en outre, en réaction au fait de déterminer que l'erreur d'accumulation est inférieure à la valeur de compensation, l'incrémentation, avec le module en temps réel, du compteur en fonctionnement. L'exemple 5 est le système des exemples 1 à 4, où la 10 réception de paramètres est réalisée avec le module de configuration, et dans lequel la détermination et l'élimination sont réalisées avec le module en temps réel. L'exemple 6 est le système des exemples 1 à 5, 15 incluant en outre un convertisseur numérique-analogique (CNA), les opérations comprenant en outre la conversion, avec le CNA, du signal de sortie pour générer un signal de sortie analogique. L'exemple 7 est un procédé qui inclut la réception, 20 au niveau d'un dispositif de fond de puits, de paramètres incluant une fréquence d'entrée et une valeur de compensation. Le procédé convertit, basé sur les paramètres, la fréquence d'entrée en une valeur de phase delta. Le procédé inclut en outre le calcul, avec le 25 dispositif de fond de puits, d'une erreur d'accumulation pour un signal numérique. En réponse au fait de déterminer que l'erreur d'accumulation est supérieure ou égale à la valeur de compensation, le procédé élimine l'erreur d'accumulation du signal numérique pour générer 30 un signal de sortie. L'exemple 8 est le procédé de l'exemple 7, où la valeur de compensation est une valeur prédéterminée 3034891 correspondant à une tolérance d'erreur calculée pour le signal de sortie. L'exemple 9 est le procédé des exemples 7 ou 8, où le procédé inclut en outre, avant réception de 5 paramètres, le calcul, avec un module de configuration du dispositif de fond de puits, de la valeur de compensation, la valeur de compensation correspondant à une tolérance d'erreur. L'exemple 10 est le procédé des exemples 7 à 9, où 10 la réception de paramètres inclut : la réception d'une fréquence d'horloge du système ; et le calcul, avec un module de configuration, basé sur les paramètres, de réglages de configuration pour un module en temps réel du dispositif de fond de puits et d'une tolérance d'erreur 15 pour le signal de sortie. L'exemple 11 est le procédé des exemples 7 à 10, où le calcul de l'erreur d'accumulation inclut la conversion, avec un module en temps réel du dispositif de fond de puits, de l'erreur d'accumulation dans un 20 compteur en fonctionnement, le procédé comprenant en outre, en réaction au fait de déterminer que l'erreur d'accumulation est inférieure à la valeur de compensation, l'incrémentation, avec le module en temps réel, du compteur en fonctionnement. 25 L'exemple 12 est le procédé des exemples 7 à 11, où la réception de paramètres et la conversion de la fréquence d'entrée sont réalisées avec un module de configuration, et dans laquelle le calcul, la détermination, et l'élimination sont réalisés avec un 30 module en temps réel. L'exemple 13 est le procédé des exemples 7 à 12, où la génération du signal de sortie comprend : la conversion de la valeur de phase delta en une valeur 3034891 36 entière ; la recherche de la valeur entière dans une table de consultation sinusoïdale pour déterminer une valeur sinusoïdale pour le signal numérique ; la conversion du signal numérique en un signal analogique à 5 l'aide d'un convertisseur numérique-analogique (CNA) ; et la fourniture du signal analogique en tant que signal de sortie. L'exemple 14 est le procédé des exemples 7 à 13 où le calcul et l'élimination sont réalisés avec un 10 compensateur de phase incluant un registre de compensation et un compteur de compensation. L'exemple 15 est un support de stockage lisible par ordinateur qui stocke des instructions exécutables. Si les instructions sont exécutées par un dispositif de fond 15 de puits, les instructions amènent le dispositif de fond de puits à réaliser des opérations. Les instructions incluent : des instructions destinées à recevoir des paramètres incluant une fréquence d'entrée et une valeur de compensation ; et des instructions destinées à 20 convertir, basées sur les paramètres, la fréquence d'entrée en une valeur de phase delta. Les instructions incluent en outre des instructions destinées à calculer une erreur d'accumulation pour un signal numérique. En réponse au fait de déterminer que l'erreur d'accumulation 25 est supérieure ou égale à la valeur de compensation, les instructions incluent en outre des instructions destinées à éliminer l'erreur d'accumulation du signal numérique pour générer un signal de sortie. L'exemple 16 est le support de stockage de 30 l'exemple 15, où la valeur de compensation est une valeur prédéterminée correspondant à une tolérance d'erreur calculée pour le signal de sortie. 37 3034891 L'exemple 17 est le support de stockage des exemples 15 ou 16, où les instructions destinées à recevoir des paramètres comprennent : des instructions destinées à recevoir une fréquence d'horloge du système ; 5 et des instructions destinées à calculer, avec un module de configuration, basé sur les paramètres, des réglages de configuration pour un module en temps réel et une tolérance d'erreur pour le signal de sortie. L'exemple 18 est le support de stockage des 10 exemples 15 à 17, où les instructions de calcul comprennent des instructions destinées à convertir, avec un module en temps réel, l'erreur d'accumulation dans un compteur en fonctionnement. L'exemple 19 est le support de stockage des 15 exemples 15 à 18, où les instructions incluent en outre des instructions destinées à incrémenter, avec le module en temps réel, le compteur en fonctionnement, en réaction au fait de déterminer que l'erreur d'accumulation est inférieure à la valeur de compensation. 20 L'exemple 20 est le support de stockage des exemples 15 à 19, où les instructions destinées à générer le signal de sortie incluent : des instructions destinées à convertir la valeur de phase delta en une valeur entière ; des instructions destinées à rechercher la 25 valeur entière dans une table de consultation sinusoïdale pour déterminer une valeur sinusoïdale pour le signal numérique ; des instructions destinées à convertir le signal numérique en un signal analogique à l'aide d'un convertisseur numérique-analogique (CNA) et des 30 instructions destinées à fournir le signal analogique en tant que signal de sortie. REVENDICATIONS1. Système comprenant : un processeur ; un dispositif de fond de puits incluant un module de configuration et un module en temps réel ; et une mémoire stockant des instructions qui, si elles sont exécutées par le processeur, amènent le processeur à réaliser des opérations comprenant : la réception de paramètres incluant une fréquence d'entrée et une valeur de compensation ; la conversion, avec le module de configuration, d'après les paramètres, de la fréquence d'entrée en une valeur de phase delta ; le calcul, avec le module en temps réel, d'une erreur d'accumulation pour un signal numérique ; en réaction au fait de déterminer que l'erreur d'accumulation est supérieure ou égale à la valeur de compensation, l'élimination de l'erreur d'accumulation du 20 signal numérique pour générer un signal de sortie. 2. Système selon la revendication 1, les opérations comprenant en outre, avant réception de paramètres, le calcul de la valeur de compensation avec le module de 25 configuration, dans lequel la valeur de compensation correspond à une tolérance d'erreur. 3. Système selon la revendication 1, dans lequel la réception de paramètres comprend : 30 la réception d'une fréquence d'horloge de système ; et le calcul, avec le module de configuration, d'après les paramètres, de réglages de configuration pour le 3034891 39 module en temps réel et d'une tolérance d'erreur pour le signal de sortie. 4. Système selon la revendication 1, dans lequel le 5 calcul de l'erreur d'accumulation inclut la conversion, avec le module en temps réel, de l'erreur d'accumulation dans un compteur en fonctionnement, les opérations comprenant en outre : en réaction au fait de déterminer que l'erreur 10 d'accumulation est inférieure à la valeur de compensation, l'incrémentation, avec le module en temps réel, du compteur en fonctionnement. 5. Système selon la revendication 1, dans lequel la 15 réception de paramètres est réalisée avec le module de configuration, et dans lequel la détermination et l'élimination sont réalisées avec le module en temps réel. 6. Système selon la revendication 1, comprenant en outre un convertisseur numérique-analogique (CNA), les opérations comprenant en outre la conversion, avec le CNA, du signal de sortie pour générer un signal de sortie analogique. 7. Procédé comprenant : la réception, au niveau d'un dispositif de fond de puits, de paramètres incluant une fréquence d'entrée et une valeur de compensation ; la conversion, d'après les paramètres, de la fréquence d'entrée en une valeur de phase delta ; le calcul, avec le dispositif de fond de puits, d'une erreur d'accumulation pour un signal numérique ; et 40 3034891 en réponse au fait de déterminer que l'erreur d'accumulation est supérieure ou égale à la valeur de compensation, l'élimination de l'erreur d'accumulation du signal numérique pour générer un signal de sortie. 5 8. Procédé selon la revendication 7, dans lequel la valeur de compensation est une valeur prédéterminée correspondant à une tolérance d'erreur calculée pour le signal de sortie. 10 9. Procédé selon la revendication 7, comprenant en outre, avant la réception de paramètres, le calcul, avec un module de configuration du dispositif de fond de puits, de la valeur de compensation, dans lequel la 15 valeur de compensation correspond à une tolérance d'erreur. 10. Procédé selon la revendication 7, dans lequel la réception de paramètres comprend : 20 la réception d'une fréquence d'horloge de système ; et le calcul, avec un module de configuration, d'après les paramètres, de réglages de configuration pour un module en temps réel du dispositif de fond de puits et 25 d'une tolérance d'erreur pour le signal de sortie. 11. Procédé selon la revendication 7, dans lequel le calcul de l'erreur d'accumulation inclut la conversion, avec un module en temps réel du dispositif de fond de 30 puits, de l'erreur d'accumulation dans un compteur en fonctionnement, le procédé comprenant en outre : en réaction au fait de déterminer que l'erreur d'accumulation est inférieure à la valeur de 3034891 41 compensation, l'incrémentation, avec le module en temps réel, du compteur en fonctionnement. 12. Procédé selon la revendication 7, dans lequel la 5 réception de paramètres et la conversion de la fréquence d'entrée sont réalisées avec un module de configuration, et dans laquelle le calcul, la détermination, et l'élimination sont réalisés avec un module en temps réel. 10 13. Procédé selon la revendication 7, dans lequel la génération du signal de sortie comprend : la conversion de la valeur de phase delta en une valeur entière ; la recherche de la valeur entière dans une table de 15 consultation sinusoïdale pour déterminer une valeur sinusoïdale pour le signal numérique ; la conversion du signal numérique en un signal analogique à l'aide d'un convertisseur numérique-analogique (CNA) ; et 20 la fourniture du signal analogique en tant que signal de sortie. 14. Procédé selon la revendication 7, dans lequel le calcul et l'élimination sont réalisés avec un 25 compensateur de phase incluant un registre de compensation et un compteur de compensation. 15. Support de stockage lisible par ordinateur stockant des instructions exécutables qui, si elles sont 30 exécutées par un dispositif de fond de puits, amènent le dispositif de fond de puits à réaliser des opérations, les instructions comprenant : 3034891 42 des instructions destinées à recevoir des paramètres incluant une fréquence d'entrée et une valeur de compensation ; des instructions destinées à convertir, d'après les 5 paramètres, la fréquence d'entrée en une valeur de phase delta ; des instructions destinées à calculer une erreur d'accumulation pour un signal numérique ; et en réaction au fait de déterminer que l'erreur 10 d'accumulation est supérieure ou égale à la valeur de compensation, des instructions destinées à éliminer l'erreur d'accumulation du signal numérique pour générer un signal de sortie. 15 16. Support de stockage lisible par ordinateur selon la revendication 15, dans lequel la valeur de compensation est une valeur prédéterminée correspondant à une tolérance d'erreur calculée pour le signal de sortie. 20 17. Support de stockage lisible par ordinateur selon la revendication 15, dans lequel les instructions destinées à recevoir des paramètres comprennent : des instructions destinées à recevoir une fréquence d'horloge de système ; et 25 des instructions destinées à calculer, avec un module de configuration, d'après les paramètres, des réglages de configuration pour un module en temps réel et une tolérance d'erreur pour le signal de sortie. 30 18. Support de stockage lisible par ordinateur selon la revendication 15, dans lequel les instructions de calcul comprennent des instructions destinées à 3034891 43 convertir, avec un module en temps réel, l'erreur d'accumulation dans un compteur en fonctionnement. 19. Support de stockage lisible par ordinateur selon 5 la revendication 18, les instructions comprenant en outre : en réaction au fait de déterminer que l'erreur d'accumulation est inférieure à la valeur de compensation, des instructions destinées à incrémenter, 10 avec le module en temps réel, le compteur en fonctionnement. 20. Support de stockage lisible par ordinateur selon la revendication 15, dans lequel les instructions 15 destinées à générer le signal de sortie comprennent : des instructions destinées à convertir la valeur de phase delta en une valeur entière ; des instructions destinées à rechercher la valeur entière dans une table de consultation sinusoïdale pour 20 déterminer une valeur sinusoïdale pour le signal numérique ; des instructions destinées à convertir le signal numérique en un signal analogique à l'aide d'un convertisseur numérique-analogique (CNA) ; et 25 des instructions destinées à fournir le signal analogique en tant que signal de sortie.