La structure d'une cartographie : points d'appui et interpolation bilinéaire

La fiche lire une cartographie pose le principe : un tableau consulté en continu. Cette fiche-ci descend d'un cran, sur la mécanique interne de cette consultation, parce que c'est elle qui explique pourquoi une valeur lue dans une cellule n'est presque jamais la valeur que le moteur utilise.

LIRE UN DUMP : REPÉRER LES ZONES À LEUR TEXTURE CODE — le programme dense et irrégulier : forte entropie, aucune régularité visible CALIBRATION — les cartographies structurée : des tables régulières, des motifs qui se répètent DONNÉES — identité, adaptations éparse : des valeurs isolées, beaucoup de zones vides l'œil et l'entropie repèrent les cartographies au milieu du code — sans rien décoder
Les zones d'un dump : code dense, cartographies structurées, données éparses

Deux objets, pas un seul

Une cartographie n'est pas un bloc unique. Elle est faite de deux choses distinctes en mémoire :

Un troisième élément les relie : le plan de rangement, qui dit combien d'octets fait chaque valeur, dans quel sens elle se lit, et où commencent les données. C'est ce que décrit le fichier de définition — voir DAMOS, A2L et mappack. Sans lui, on a des octets ; avec lui, on a une carte nommée et graduée.

Les dimensions

Toutes les données de calibration ne sont pas des tableaux à deux entrées :

Ce vocabulaire compte parce que l'effort d'analyse et le risque ne sont pas les mêmes selon la forme — voir reconnaître les familles de cartographies.

Les axes partagés, le piège discret

Un point mal connu : plusieurs cartes peuvent pointer vers le même axe. Un constructeur ne recopie pas dix fois l'axe des régimes ; il le range une fois et le fait référencer par toutes les tables qui en ont besoin. Certains axes sont dits fixes — figés à la compilation — d'autres sont communs, partagés et éditables, d'autres encore sont normalisés, c'est-à-dire calculés à partir d'un autre paramètre.

La conséquence est directe : déplacer un point d'appui partagé décale toutes les cartes qui s'y raccrochent, pas seulement celle qu'on regarde. C'est une des raisons pour lesquelles le motoriste travaille avec la définition exacte du logiciel, et pas à l'aveugle.

La recherche de position

À chaque instant, le programme doit situer l'entrée réelle — disons 1800 tr/min — dans l'axe. Il ne prend pas la case la plus proche : il cherche l'intervalle qui encadre la valeur, par une recherche dichotomique le long des points d'appui, puis calcule une position fractionnaire entre les deux bornes. À 1800 tr/min, entre 1600 et 2000, la fraction vaut 0,5 : pile au milieu.

Si l'entrée tombe exactement sur un point d'appui, il n'y a pas d'interpolation : la cellule est renvoyée telle quelle. Même chose aux coins et aux bords du domaine.

L'interpolation bilinéaire

Sur une carte à deux entrées, l'opération se fait dans les deux dimensions à la fois. Le calculateur charge les quatre cellules voisines qui entourent le point de fonctionnement, interpole d'abord le long d'un axe pour les deux bords, puis entre ces deux résultats le long de l'autre axe. Deux interpolations à une dimension enchaînées : c'est cela, l'interpolation bilinéaire.

Deux conséquences pratiques en découlent, et ce sont elles qui intéressent l'atelier :

Le bornage aux extrémités : pas d'extrapolation

Que se passe-t-il au-delà du dernier point d'appui, si le moteur sort de la plage prévue ? Le calculateur n'extrapole pas : il retient la valeur de bord et la maintient. La sortie sature à la dernière cellule.

C'est une notion décisive pour l'analyse. Un phénomène qui déborde de l'axe se voit servir une valeur figée, celle du bord, quelle que soit son ampleur réelle. Une carte « manque » alors non parce qu'elle est fausse, mais parce que le point de fonctionnement est sorti de son domaine. En datalog, cela se lit comme une grandeur qui plafonne à une valeur ronde et n'en bouge plus — voir lire la forme d'une courbe. C'est aussi pourquoi la résolution et l'étendue des axes conditionnent la finesse d'un réglage : un axe bien pensé resserre ses points là où le comportement doit être fin, et couvre toute la plage réellement rencontrée.

Ce qui est du ressort du reprogrammateur

Rien de ce qui précède n'est une manipulation. C'est une grille de lecture. Elle sert à trois choses : comprendre pourquoi une valeur lue ne correspond pas au comportement mesuré ; savoir qu'un axe partagé ne se déplace pas sans conséquence ; et reconnaître, dans un log, la signature d'une carte qui sature au bord de son domaine. L'édition, elle, appartient au motoriste, qui dispose de la définition exacte et connaît les marges de la mécanique. Le reste — situer la zone de calibration dans le binaire — est traité dans repérer les zones de calibration et repose sur la même logique de rangement que le calcul de la charge.

Voir aussi lire une cartographie, facteur d'échelle et offset et DAMOS, A2L et mappack.


Sur ANP Engineering — file service de reprogrammation moteur pour professionnels : file service ECU, correction de checksum, calculateurs pris en charge, tarifs.

ANP Wiki
ANPFile Service · reprog en ligne
Chargement…