(Capteurs de pression de l’EFIS, page mise à jour par Benjamin le 20/04/2024)
L’EFIS AvionicsDuino utilise deux capteurs de pression. Un capteur de pression absolue (ou barométrique) pour mesurer la pression statique ambiante, et un capteur différentiel pour mesurer la différence entre la pression statique et la pression totale à l’extrémité de la sonde de Pitot. Grâce au capteur absolu, l’EFIS peut calculer l’altitude, et grâce au capteur différentiel, il peut calculer la vitesse de l’avion.
Principes des capteurs de pression
Les capteurs de pression absolue possèdent un seul port. Ils mesurent une pression par rapport au vide absolu. Ils peuvent être représentés schématiquement sous la forme de deux compartiments séparés par une membrane étanche (fig. 1). La pression à mesurer P1 est appliquée d’un côté de la membrane, tandis que l’autre compartiment est fermé hermétiquement, il y règne le vide absolu, donc une pression P0 nulle. La déformation de la membrane reflète la pression appliquée à l’entrée.
![](https://avionicsduino.com/wp-content/uploads/2024/03/absolute_pressure_sensors.jpg)
Les capteurs de pression différentielle possèdent deux ports, ils mesurent la pression P1 d’un compartiment par rapport à celle de l’autre, P2 (fig. 2). La déformation de la membrane reflète la différence de pression entre les deux ports.
![](https://avionicsduino.com/wp-content/uploads/2024/03/difference_pressure_sensors.jpg)
Caractéristiques des capteurs utilisés
Les capteurs utilisés dans l’EFIS sont commercialisés par la société AMSYS. Il s’agit des références AMS5915-1500-A pour la pression absolue, et AMS5915-0050-D pour la pression différentielle. Bien sûr la membrane et les deux compartiments des schémas ci-dessus ne sont qu’une analogie commode pour expliquer le principe de base des capteurs de pression. Dans la réalité, ces capteurs combinent un élément piézo-résistif en silicium de haute qualité, sensible à la pression, et un circuit intégré dédié spécifiquement à cette application, circuit qui se charge du conditionnement du signal pour offrir une sortie digitale avec une interface I2C.
Le choix de capteurs à sortie numérique s’est imposé pour des raisons de simplicité d’utilisation, de fiabilité, de précision et d’exactitude, bien que le coût soit plus élevé que celui des capteurs analogiques. De plus, ces capteurs numériques sont calibrés, compensés en température (grâce à un capteur de température intégré) et offrent une sortie corrigée des écarts de linéarité. Ils offrent une excellente résolution sur 14 bits. Tout cela est possible grâce au microcontrôleur qu’ils embarquent et à une EEPROM qui permet la sauvegarde des réglages individuels de calibration d’usine. Les avantages par rapport à un capteur analogique sont donc évidents.
Un critère de choix important de ces capteurs était aussi la présence de ports faciles à connecter aux circuits de pressions statique et dynamique de l’avion.
Choix du capteur utilisé pour l’altimétrie
Pour les calculs d’altitude, dans la série AMS5915, on avait le choix entre deux gammes de pressions : 700 à 1200 mbar, ou 0 à 1500 mbar. Le premier choix aurait permis en théorie une meilleure résolution d’altitude entre 0 et 3000 mètres (soit 10000 ft ou 700 hPa), mais ne permettait pas de mesurer des altitudes supérieures à 10.000 ft.
Notre choix s’est donc porté sur le capteur AMS5915-1500-A (0-1500 mbar). Il permet de mesurer les altitudes entre 0 et 5000 mètres (16666 ft) que le MCR Sportster est capable d’atteindre. Soit des mesures de pressions entre 1040 hPa au niveau de la mer et 540 hPa à 5000 mètres. Donc une étendue de 500 hPa seulement sur les 1500 possibles, soit 1/3 de la gamme.
Quelle résolution d’altitude cela permet-il d’obtenir ? Dans la datasheet, on peut lire que le “full span output” (FSO) des capteurs de la série AMS5915 (c’est à dire la différence algébrique entre le signal de sortie à la pression maximale spécifiée, soit 14745 counts, et le signal de sortie à la pression minimale spécifiée, soit 1638 counts) est de 13107 counts (au lieu des 16384 auxquels on aurait pu s’attendre avec une résolution “pleine” de 14 bits).
Un tiers du FSO représentent donc 13107/3 counts, soit 4369 counts. Donc pour des altitudes de 0 à 5000 mètre (16666ft), on peut calculer une résolution altimétrique théorique de 16666/4369=3.8 ft, soit à peine plus d’un mètre. La résolution théorique d’altitude que ce capteur permet d’obtenir est donc amplement suffisante, et largement supérieure à la résolution d’un altimètre analogique traditionnel à aiguilles.
Choix du capteur utilisé pour les mesures de vitesses
Pour choisir le bon capteur, il convient de calculer préalablement la pression différentielle obtenue à la VNE de l’avion, soit 320 km/h (173 kts, ou 89 m/s) pour le MCR Sportster. A cette vitesse largement inférieure à 0.3 Mach, on peut considérer le régime d’écoulement comme incompressible, et donc utiliser la formulation simple du théorème de Bernoulli :
V2 = 2Pd/1.225
où :
– V est la vitesse en m/s,
– Pd est la pression différentielle entre la pression statique et la pression totale, exprimée en Pascals,
– 1.225 est la masse volumique de l’air en conditions standards au niveau de la mer, exprimée en kg/m3.
Pour une vitesse de 320 km/h, soit environ 89 m/s, la pression différentielle sera donc :
Pd = 89 x 89 x 1.225 / 2 = 4852 Pa, soit 48.5 mbar
Le capteur AMS5915-0050-D, capable de mesurer des pressions différentielles comprises entre 0 et 50 mbar, est donc parfaitement adapté au MCR Sportster. Sur cet avion, quasiment toute la gamme de pression du capteur est donc exploitée.
Quelle résolution de vitesse ce capteur permet-il d’obtenir ? Le FSO (de 0 à 50 mbar) est de 13107 counts, comme pour tous les capteurs de la série AMS5915. En utilisant l’équation ci-dessus, on peut calculer qu’une pression différentielle de 50 mbar correspond à une vitesse de 325 km/h. La résolution théorique est donc de 325/13107, soit 0.02 km/h. Compte tenu de cette excellente résolution, qui excède même très largement les besoins courants, on voit donc que ce même capteur est également parfaitement adapté à des aéronefs moins rapides.
Test des capteurs AMSYS
Deux capteurs en service dans un EFIS ont été testés en conditions réelles, en vol. Deux autres capteurs, acquis récemment, spécialement pour l’occasion, ont été testés au banc.
Les capteurs testés en vol
Les tests en vol des capteurs de pression ont consisté à comparer les valeurs des vitesses et altitudes de l’EFIS AvionicsDuino avec les valeurs correspondantes d’un EFIS Dynon D10A installé sur le même avion. Voir ces comparaisons en bas de la page EFIS.
Les tests de vitesse en vol (capteur différentiel)
Avant l’installation, on avait remarqué une erreur de zéro du capteur différentiel AMS5915-0050-D. Son signal de sortie pour une pression différentielle nulle était de 1569 counts au lieu des 1638 counts spécifiés dans la datasheet. Par contre, pour une pression différentielle de 50 mbar, on obtenait bien des valeurs très proches des 14745 counts précisés dans la datasheet. On avait donc modifié en conséquence la constante digOutPmin dans la bibliothèque AMS5915_simplified du programme de l’EFIS, pour remplacer la valeur 1638 par 1569 (ligne 32 du fichier AMS5915_simplified.cpp). Pour un capteur ne présentant pas cette erreur de zéro, la valeur de la constante digOutPmin doit être de 1638.
L’utilitaire permettant d’afficher le nombre de counts en sortie du capteur AMS5915-0050-D pour une pression différentielle quelconque, comprise entre 0 et 50 mbar, est téléchargeable dans le dépôt GitHub de l’EFIS. Il s’agit du fichier test_AMS5915-0050-D_sensor.ino dans le dossier util.
Pour les tests en vol, on avait au préalable vérifié de la façon la plus rigoureuse possible l’exactitude des données des autres indicateurs de vitesse existants dans l’avion.
Vérification manométrique des anémomètres existants
Tout d’abord au sol, grâce à un manomètre à eau, on s’est assuré de l’exactitude de la vitesse indiquée par le Dynon D10A et par l’anémomètre Winter certifié qui est installé juste à côté (fig. 3, 4, 5 et 6).
En utilisant les formules mentionnées plus haut, on peut calculer la vitesse indiquée qui doit être lue sur l’instrument en appliquant une pression donnée sur le tube de Pitot (fig. 3)
![](https://avionicsduino.com/wp-content/uploads/2024/04/TestVitesses04.png)
En utilisant un manomètre à eau et une seringue, on applique une pression connue sur le tube de Pitot (fig. 4). C’est exactement le même dispositif que celui qui est utilisé pour l’étalonnage des capteurs de pression, et qui est schématisé sur la figure 9. Accessoirement, ce dispositif permet aussi de s’assurer de la stricte étanchéité du circuit Pitot.
![](https://avionicsduino.com/wp-content/uploads/2024/04/TestVitesses03.png)
La figure 5 ci-dessous montre que la pression appliquée est de 300 mm H2O.
![](https://avionicsduino.com/wp-content/uploads/2024/04/TestVitesses02.png)
Cette pression de 300 mm H2O correspond à une vitesse indiquée de 249 km/h (tableau de la figure 3). On voit sur la figure 6 que la vitesse indiquée par le Dynon D10A et par l’EFIS AvionicsDuino est identique et strictement égale à la valeur calculée, à savoir 249 km/h. Il faut passer le curseur de la souris sur la photo pour l’agrandir.
![](https://avionicsduino.com/wp-content/uploads/2024/04/TestVitesses01.png)
Vérification de cohérence
On avait aussi vérifié en vol la cohérence des indications de vitesse fournies par l’anémomètre Winter et l’EFIS Dynon (fig. 7).
![](https://avionicsduino.com/wp-content/uploads/2024/03/WinterEtDynon.png)
Vérification par la technique des trois routes au GPS
Enfin, on avait également vérifié par la technique des 3 routes au GPS (références ici et là) l’exactitude de la vitesse propre de l’avion, ce qui est également la preuve de l’exactitude de la pression statique et donc du bon positionnement des prises statiques de l’avion (fig.8).
![](https://avionicsduino.com/wp-content/uploads/2024/03/GPS_3tracks.png)
La figure 13 de la page EFIS montre des vitesses parfaitement identiques entre les EFIS Dynon et AvionicsDuino. Ce qui valide le capteur utilisé, et les calculs afférents. Aucune autre correction logicielle que la modification de la constante digOutPmin n’a donc été nécessaire.
Les tests altimétriques en vol (capteur absolu)
Le réglage logiciel du calcul des altitudes a été un peu plus complexe. En affichant au sol le QNH du moment et du lieu sur les EFIS Dynon et AvionicsDuino, la bonne altitude du lieu s’affichait correctement sur le Dynon, mais on obtenait toujours une petite erreur de l’altitude AMSL lue sur l’EFIS AvionicsDuino. Cette différence était constante en signe et en valeur absolue à chaque essai.
Correction au sol
Cette différence a donc été prise en compte en introduisant l’option de menu PrsCor dans le menu GEN de l’EFIS. Cette option permet d’ajouter un offset constant, sous la forme de la variable globale pressureCorrection, à la variable pressure. Cette dernière est la pression statique mesurée par le capteur de pression absolue. Pour ajuster au sol l’option de menu PrsCor, sans utiliser un autre altimètre, il faut connaître le QNH local et l’altitude exacte du terrain.
En réglant le QNH sur la valeur connue, il faut ajuster PrsCor avec le codeur rotatif jusqu’à lire l’altitude correcte du terrain. Il faut éventuellement faire plusieurs essais sur différents aérodromes, à différentes dates, et avec différentes valeurs de QNH, en notant à chaque fois les écarts pour les moyenner. En effet, le QNH fourni par les ATIS ou les organismes de contrôle est également sujet à de petites erreurs de mesures, et il n’offre une précision qu’à 1 hPa près, soit 28 ft d’altitude.
Correction en vol
La figure 11 de la page EFIS montre la comparaison des altitudes indiquées par les EFIS Dynon et AvionicsDuino lors d’une montée entre 0 et 5000 ft. Plusieurs essais analogues avaient mis en évidence un minime excès d’altitude sur l’EFIS AvionicsDuino par rapport au Dynon.
On avait postulé que le Dynon affichait une valeur exacte, et on avait donc introduit dans le logiciel AvionicsDuino un coefficient correcteur, sous la forme de la variable altitudeCorrection, égale (pour notre EFIS) à 0.995 (donc pour corriger une erreur très faible, de l’ordre de 0.5%). Voir à la ligne 217 de la version 3.01 du programe de l’EFIS. Toutes les altitudes calculées par l’EFIS sont multipliées par ce coefficient avant affichage sur l’écran.
Les éléments de comparaison
Pour cette comparaison, comme indiqué plus haut, on avait donc postulé l’exactitude des indications d’altitude de l’EFIS Dynon. En fait, on disposait dans l’avion utilisé pour les tests de trois autres points de comparaison altimétrique qui permettaient de faire ce postulat sans trop de risque de se tromper : un altimètre analogique, l’altimètre intégré au transpondeur, et l’altitude fournie par le GPS.
En l’absence de ces quatre moyens permettant de comparer en vol les données altimétriques de l’EFIS AvionicsDuino, l’exactitude de ces données aurait été plus difficile à démontrer. Faire des mesures dans un autre aéronef nécessite de pouvoir connecter l’altimètre à tester au circuit statique. L’emport en voiture de l’altimètre à tester lors d’un trajet en montagne est une option simple, à condition d’être en zone montagneuse. En connaissant l’altitude du lieu (indiquée sur les cartes) et le QNH régional, il est facile de tester ainsi un altimètre. On va voir plus bas dans cette page comment vérifier au sol un altimètre avec uhn manomètre à eau.
Cela nous donne l’occasion de rappeler au lecteur l’importance 1) des avertissements de la page d’accueil du site AvionicsDuino, et 2) du respect de la règlementation. Pour des données aussi importantes à la conduite du vol que la vitesse et l’altitude, il est prudent, voire obligatoire, de disposer de redondances.
Les capteurs testés au banc
Pour les besoins de ces tests, deux capteurs neufs récemment acquis ont été utilisés, un AMS5915-0050-D pour la pression différentielle, et un AMS5915-1500-A pour la pression absolue.
Test du capteur différentiel AMS5915-0050-D
Le manomètre
Pour ce test on a fabriqué et utilisé le manomètre à eau schématisé ci-dessous en figure 9. Un tube clair en U est partiellement rempli d’eau, éventuellement additionnée d’un colorant. Ce tube est positionné parfaitement verticalement. Une règle graduée en millimètres permet de mesurer la différence de hauteur des niveaux dans les deux branches du U (Fig. 4 et 5).
Une des extrémités du tube du manomètre est laissée à l’air libre, tandis que l’autre est connectée à un port du capteur de pression à tester, l’autre port est laissé à l’air libre. Un connecteur en T est inséré entre le manomètre et le capteur de pression, il permet de connecter une seringue de 20 ml, laquelle permet d’appliquer au dispositif la pression à mesurer.
![](https://avionicsduino.com/wp-content/uploads/2024/04/TestCapteurPression.png)
Le montage
Le capteur de pression était connecté en I2C à une carte Teensy 4.1 (fig. 10). N’importe quelle carte Teensy ou Arduino pourrait faire l’affaire.
![](https://avionicsduino.com/wp-content/uploads/2024/04/MontageCapteruDiff-1024x534.png)
Méthodologie du test
La carte Teensy 4.1 utilisée dans notre exemple était alimentée en USB par un PC. Le logiciel utilitaire de test cité plus haut était téléchargé sur la carte Teensy (test_AMS5915-0050-D_sensor.ino). Les résultats étaient affichés sur l’écran du moniteur série de l’IDE Arduino. On a ainsi relevé le nombre de counts pour différentes valeurs de pressions réparties sur l’étendue de la gamme de mesure du capteur.
Résultats
Les résultats des 43 points de mesure réalisés ont été saisis dans Microsoft Excel, ce qui a permis d’obtenir le tracé de la figure 11. Il faut passer le curseur de la souris sur le graphique pour l’agrandir.
![](https://avionicsduino.com/wp-content/uploads/2024/04/GraphiqueTestCapteurDiff-1.png)
On voit sur la figure 11 que la réponse du capteur est parfaitement linéaire sur toute l’étendue de la gamme de mesure. L’équation de la droite de tendance est affichée sur le graphique, elle montre que la courbe croise l’axe des ordonnées très exactement à 1638 counts, ce qui est exactement la valeur attendue pour une pression différentielle nulle. On voit aussi que pour une pression de 510 mm H2O, soit 50 millibars, c’est à dire la pression maximale spécifiée, le nombre de counts est au voisinage immédiat des 14745 counts attendus dans la datasheet.
On peut en conclure que l’exactitude du capteur étudié est excellente. La précision est également excellente, puisque la dispersion des mesures autour de la droite de tendance est très faible. Le lecteur attentif aura cependant remarqué que cette précision est artificiellement améliorée par le filtrage digital assuré par le logiciel de test.
Test du capteur absolu AMS5915-1500-A
Le manomètre
Le problème pratique pour le capteur altimétrique est un peu plus complexe, car la gamme théorique de pression absolue à étudier est plus étendue, environ 500 hPa, comme on l’a vu plus haut. Si on voulait employer un manomètre à eau, cela représenterait une colonne d’eau de plus de cinq mètres, ce qui n’est pas facile à mettre en œuvre.
Les choses seraient plus simples avec un manomètre à mercure, mais ce type de manomètre se fait rare, et sa précision est inférieure à celle du manomètre à eau. L’idéal serait de pouvoir utiliser un manomètre étalon de laboratoire, mais c’est un outil peu répandu, onéreux, et rarement accessible aux constructeurs amateurs d’aéronefs. Enfin, les manomètres ordinaires du commerce sont loin d’avoir la précision nécessaire.
Nous avons donc choisi d’utiliser malgré tout un manomètre à eau, car c’est un instrument très précis, mais en limitant les mesures à une colonne d’eau de seulement trois mètres. Ce qui représente une altitude d’environ 3000 mètres (soit 10.000 ft) ce qui est déjà appréciable, la plupart des vols VFR se déroulent en effet en dessous de 10.000 ft. Le dispositif expérimental est représenté en figure 12. Le principe est sensiblement le même que précédemment, mais adapté à une dépression importante, donc une hauteur d’eau beaucoup plus grande.
![](https://avionicsduino.com/wp-content/uploads/2024/04/Test-capteur-pression02-2.png)
Montage et méthodologie du test
Pour ce test, le capteur de pression était connecté en I2C à une carte Teensy 4.1 alimentée par la prise USB d’un PC. Les résultats obtenus étaient affichés sur l’écran du moniteur série de l’IDE Arduino. Le montage expérimental était identique à celui de la figure 10.
L’utilitaire permettant d’afficher la pression absolue mesurée en Pascals et le nombre de counts en sortie du capteur AMS5915-1500-A est téléchargeable dans le dépôt GitHub de l’EFIS. Il s’agit du fichier test_AMS5915-1500-A_sensor.ino dans le dossier util.
Résultats
On a réalisé une série de 64 points de mesure en appliquant des dépressions variables entre 0 et -3000 millimètres d’eau. Pour chaque valeur de dépression, on notait le nombre de counts, la pression absolue en pascals mesurée par le capteur AMS5915-1500-A (calculée à partir du nombre de counts), et la pression absolue mesurée par le manomètre à eau.
Cette dernière mesure résulte d’un calcul prenant en compte d’une part la dépression mesurée par le manomètre à eau et d’autre part la pression atmosphérique du moment (QNH d’un aéroport situé à 7 km) et l’altitude du lieu des mesures (relevé topographique établi par un géomètre).
Les résultats des mesures ont été saisis dans Microsoft Excel, ce qui a permis d’obtenir le tracé de la figure 13. Il faut passer la souris sur le graphique pour zoomer.
![](https://avionicsduino.com/wp-content/uploads/2024/04/ComparaisonCapteurAbsoluVSManoH2O.png)
On note d’une part la stricte linéarité de la réponse du capteur, et d’autre part la superposition quasi parfaite de la droite de tendance représentant les mesures en pascals du capteur avec celle des mesures faites à l’aide du manomètre à eau.
Là encore, on peut conclure que l’exactitude du capteur absolu étudié est excellente. La précision est également excellente, la dispersion des mesures autour de la droite de tendance est faible.
Sur le graphique ci-dessous (fig. 14), tiré des mêmes données expérimentales, on a représenté l’évolution de la sortie du capteur en counts en fonction de la pression absolue mesurée par le manomètre à eau. En abscisse la pression absolue mesurée en millibars (hectopascals), et en ordonnée le nombre de counts du capteur.
L’axe des abscisses s’étend de 0 à 1500 millibars, soit la plage de pression absolue du capteur AMS5915-1500-A, et l’axe des ordonnées s’étend de 0 à 15.000 counts, ce qui correspond au “full span output” (FSO) des capteurs de la série AMS5915 (pour rappel : la différence algébrique entre le signal de sortie à la pression maximale spécifiée, ici 1500 millibars, soit 14745 counts, et le signal de sortie à la pression minimale spécifiée, ici 0 millibars, soit 1638 counts).
Les différents points de mesure sont représentés en rouge sur le graphique. La courbe de tendance linéaire est étendue de part et d’autre de la plage des mesures.
![](https://avionicsduino.com/wp-content/uploads/2024/04/Test-capteur-pression-absolue03-1.png)
On remarque sur la figure 14 que le nombre de counts extrapolé pour une pression nulle est de 1620, donc très proche de la valeur attendue de 1638. Et pour 1500 millibars, l’équation de la droite de tendance permet de calculer un nombre de counts égal à 14.736, également très proche de la valeur attendue de 14.745.
Conclusions
Les capteurs de pression, comme tous les capteurs, peuvent être entachés d’erreurs qui affectent la précision, l’exactitude, ou les deux.
La précision, qui traduit la plus ou moins grande dispersion des valeurs, peut être améliorée par le filtrage. On a vu sur les graphiques obtenus lors des essais au banc que la précision des capteurs testés est très satisfaisante, la dispersion des différents points de mesure de part et d’autre de la droite de tendance est faible, les points sont quasiment alignés.
L’exactitude traduit l’écart entre une mesure et la valeur réelle de la grandeur mesurée. Les capteurs testés au banc se sont avérés très exacts. On a vu que certains capteurs peuvent souffrir d’inexactitude, mais qu’il est parfois possible de corriger par voie logicielle cette erreur de façon satisfaisante, avec l’exemple du capteur différentiel installé dans l’EFIS AvionicsDuino. Un capteur différentiel neuf affecté d’une erreur de zéro significative (>1% du FSO) comme nous l’avons observé devrait cependant plutôt faire l’objet d’une demande d’échange sous garantie. D’où l’intérêt de pouvoir tester ces capteurs.
Les capteurs de pression numériques équipés de ports connectables aux circuits statique et dynamique d’un avion, et dont les prix restent compatibles avec un projet DIY comme celui de l’EFIS AvionicsDuino sont plutôt rares.
En dehors des capteurs AMSYS de la série AMS5915 que nous avons choisis pour l’EFIS, d’autres fabricants comme Honeywell et TE Connectivity proposent des capteurs aux caractéristiques voisines et sensiblement dans la même gamme de prix. Le capteur absolu Honeywell MPRLS 0025PA est utilisé dans l’EMS AvionicsDuino pour la mesure de la pression d’admission. Et nous avons testé un capteur différentiel TE Connectivity de la série 4515DO pour un projet en cours d’évaluation concernant la régulation automatique de l’AFR (Air Fuel Ratio) sur un moteur Rotax 912.