FR 2987403 A1 20130830 FR 1251709 A 20120224 DISPOSITIF DE COMMANDE D'ALLUMAGE ANTI-CLIQUETIS DE MOTEUR A COMBUSTION DE VEHICULE AUTOMOBILE [0001] L'invention concerne le contrôle de la combustion d'un moteur à allumage commandé, et plus précisément les stratégies de corrections visant à limiter l'apparition de cliquetis. [0002] Une stratégie anti-cliquetis connue est bâtie sur différentes corrections. Elle comporte d'abord une correction curative, qui consiste à supprimer rapidement le phénomène de cliquetis lors de son apparition. On applique un retrait d'avance d'allumage à chaque occurrence de cliquetis, et on retourne dans des conditions d'avance normales lorsqu'on n'a pas eu de combustions anormales pendant une durée suffisamment importante. Elle comporte en outre une correction préventive, laquelle produit une correction d'avance en fonction des conditions de fonctionnement telles que régime, charge moteur, température d'eau ou encore température d'air d'admission. Cette correction a pour objectif de prévenir l'apparition du phénomène et est calibrée lors d'une mise au point initiale du moteur. Enfin, une telle stratégie anti-cliquetis connue comporte une correction adaptative, selon laquelle le système va apprendre tout ou partie de la correction curative dans le même objectif d'éviter la réapparition du phénomène et/ou de limiter son intensité. Cet apprentissage est aujourd'hui réalisé par zones (régime, charge), et est censé combler les dérives liées à l'usure du moteur, son encrassement, les dispersions d'un moteur à l'autre, les différentes qualités de carburant, etc. [0003] L'invention vise notamment mais non exclusivement ce dernier type de correction, et notamment les stratégies d'apprentissage des corrections d'avance d'allumage appliquées pour limiter le phénomène de cliquetis en fonction des conditions de fonctionnement. [0004] Pour qu'une stratégie d'apprentissage soit efficace, il faut chercher à maximiser le rapport entre précision, vitesse d'apprentissage et coût mémoire. Les stratégies actuelles sont des apprentissages par zones et selon deux dimensions, et sont donc loin d'être optimales vis-à-vis de ces critères. Pour augmenter leur précision, il faudrait augmenter le nombre de dimensions suivant lesquelles on apprend, le cliquetis étant dépendant de nombreux autres phénomènes, comme par exemple une valeur de température d'air d'admission ou une valeur de balayage dans le cylindre, et ceci avec un nombre de points d'appui suffisamment important dans chaque dimension. En ce qui concerne la vitesse d'apprentissage, il faut parcourir une zone et s'y stabiliser pendant un certain temps pour y apprendre une correction. Imaginons un apprentissage par zones sur 4 dimensions, avec 10 points d'appui par dimension pour être suffisamment précis : on aura alors 10 000 zones à parcourir afin de balayer l'intégralité du champ. [0005] Avec l'exemple précédent, on obtient ainsi 10^4, soit 10 000 valeurs à mémoriser. On mesure immédiatement l'effet extrêmement négatif en termes d'utilisation d'espace mémoire de l'ajout d'une dimension dans la stratégie d'apprentissage. [0006] De plus, les stratégies actuelles ne permettent d'apprendre une correction que dans le sens du retrait d'avance : on ne peut donc pas optimiser les performances du moteur et la consommation, dans le cas d'utilisation d'un carburant de RON - Research Octane Number en anglais - ou indice d'octane, lequel serait supérieur par exemple. L'enjeu est donc de développer une stratégie d'apprentissage maximisant le compromis cité ci-dessus et d'autoriser l'apprentissage « négatif », c'est-à-dire une augmentation des avances. [0007] Ce but est atteint selon l'invention grâce à un dispositif de commande d'allumage de moteur à combustion de véhicule automobile, comprenant un aménagement de mesure d'une série de paramètres influant sur l'apparition d'un cliquetis dans le moteur, un module de calcul prenant en compte ces paramètres et produisant à partir de ces paramètres une valeur d'avance d'allumage à mettre en oeuvre pour assurer une non-apparition de cliquetis dans le moteur, caractérisé en ce que le module de calcul produit la valeur d'avance d'allumage en mettant en oeuvre un réseau de neurones appliqué à un champ de dimension n où n est le nombre de paramètres pris en compte et influant sur l'apparition du cliquetis. [0008] Avantageusement, le réseau de neurones consiste en un découpage d'un espace à n dimensions en zones correspondant chacune à un neurone et dans lesquelles zones la correction à apporter varie selon une fonction linéaire de ces mêmes paramètres pris en 25 compte. [0009] Avantageusement, la fonction linéaire de correction associée respectivement à une zone i est définie par un jeu de paramètres de poids 17v, (wo, - - w2, -"- - wn, ) de sorte que la correction à mettre en oeuvre pour un point de fonctionnement se trouvant dans la zone i considérée est sensiblement égale à (woi + wli.xl + - - - + wni - xn) où 30 (x1,- - - ,xn ) sont les valeurs des paramètres pris en compte au point de fonctionnement. [0010] Avantageusement, le module de calcul met en oeuvre une mise à jour des poids en tenant compte d'une erreur entre une correction appliquée à l'instant t et une correction théorique idéale. [0011] Avantageusement, le module de calcul détermine la correction théorique idéale à 35 partir d'une correction curative de cliquetis mesurée par le dispositif. [0012] Avantageusement, le module de calcul produit une valeur y d'avance d'allumage laquelle valeur y est définie par l'égalité : y =Rwoi+wii.x1+---+ wni - xi (13 i(xi,x2,---,-xn)] où cl),(x1,x2,...,xn ) est une i=1 fonction prenant une valeur sensiblement constante sur une zone i et sensiblement nulle en dehors de la zone i. [0013] Avantageusement, le dispositif met en oeuvre une mise à jour comprenant une modification de poids d'une quantité où i est un indice représentant le paramètre influant sur le cliquetis et j est un indice représentant la zone considérée, la quantité étant définie par : Aw,,j -77* e*0.1* x où r7 est une valeur constante et e est une mesure d'erreur entre une correction appliquée à l'instant t et une correction théorique idéale. [0014] Avantageusement, pour un nombre M de zones dans l'espace des paramètres pris en compte comme influant sur le cliquetis, la fonction cl), x2,..., x') est définie par : (Di xn) = 1 où z, est une fonction gaussienne des paramètres pris enM zj J=1 compte comme influant sur le cliquetis laquelle est centrée sur un point de la zone i. [0015] On propose en outre selon l'invention un moteur à combustion de véhicule automobile, caractérisé en ce qu'il comprend un dispositif de commande d'allumage selon l'invention. [0016] On propose en outre selon l'invention un procédé de commande d'allumage de moteur à combustion de véhicule automobile, comprenant les étapes consistant à prendre en compte une série de n paramètres influant sur l'apparition d'un cliquetis dans le moteur et l'étape consistant à produire à partir de ces paramètres une valeur d'avance d'allumage à mettre en oeuvre pour assurer une non-apparition de cliquetis dans le moteur, l'étape de production de la valeur d'avance d'allumage comprenant la mise en oeuvre d'un réseau de neurones appliqué à un champ de dimension n où n est le nombre de paramètres pris en compte comme influant sur l'apparition du cliquetis. [0017] D'autres caractéristiques, buts et avantages de l'invention apparaitront à la lecture de la description détaillée qui va suivre, faite en référence aux figures annexées, sur lesquelles : - la figure 1 représente un réseau de neurone conforme à un mode de réalisation de l'invention, - la figure 2 représente une architecture logique conforme à ce même mode de réalisation de l'invention, - la figure 3 est un organigramme illustrant une série d'étapes mises en oeuvre dans ce même mode de réalisation de l'invention, - les figures 4 et 5 représentent une correction sur un champ à deux dimensions à deux instants consécutifs. [0018] Nous allons ici décrire un réseau de neurones utilisé dans un mode de réalisation préféré de l'invention, lequel s'approche de réseaux de type LOLIMOT ou ADALINE dans la littérature spécialisée. Les illustrations seront faites pour un espace en deux dimensions correspondant à deux paramètres influant sur l'apparition de cliquetis, qui seront ici le régime moteur et la charge du moteur, et ce afin de permettre une représentation graphique simple. Toutefois le présent mode de réalisation s'applique également à un nombre de dimensions supérieur à deux. Nous nous efforcerons d'expliquer systématiquement l'application concrète de l'invention dans le cadre de ce mode de réalisation à deux dimensions. [0019] Selon la présente approche en réseau de neurones, on découpe l'espace défini par les entrées du réseau en zones, dans chacune desquelles la sortie est une combinaison linéaire des entrées. On définit chacune de ces zones référencées par un indice j par un neurone, lequel neurone correspond ici à une gaussienne z, de centre C Cli, C2J, Cni) et d'écart type a (a a - ,-,j, -2j, ---, an;) avec n le nombre d'entrées du réseau. Le nombre n est donc également la dimension de l'espace considéré. z . = exp 1 ( (x, - e, J )2 (x2 - e2 j (Xri Cru )2 26i (12 2 2 Uni ) [0020] La Figure 1 représente une série de telles gaussiennes associées à 9 neurones référencés de 0 à 8, placés dans un champ défini par les dimensions régime Nmot et charge AirLd. [0021] Pour notre application, les n dimensions représentent les n paramètres dont nous souhaitons tenir compte lors de notre apprentissage : ici régime Nmot, charge AirLd, température d'admission Tair, température moteur Teau, D'autres paramètres, par exemple plus nombreux, peuvent être pris en compte en variante. Le découpage en neurones nous permet de diviser l'espace en différentes zones où l'on estime que le comportement de la correction adaptative va varier. Le centre d'un neurone indique notre point de fonctionnement de référence pour une zone, tandis que l'écart type indique sur quelle étendue autour du centre on souhaite modéliser le comportement de tout point de la même manière que le point de référence. [0022] Ainsi, on caractérise l'espace de dimension n par un réseau de neurones, définis chacun par une gaussienne de dimension n. En tout point de cet espace, la correction à apprendre sera considérée comme une combinaison linéaire de l'ensemble des gaussiennes normalisées. Ainsi, on n'apprendra plus directement une valeur de correction associée à un point de fonctionnement mais un ensemble de poids commun à tous les points, qui, associés à ces fonctions mathématiques, permettent de modéliser l'ensemble de l'espace. [0023] Ensuite, on associe à chaque neurone une fonction d'activation qui est une normalisation de ces gaussiennes. En chaque point de la plage de fonctionnement on a: zi cip (x,ci,o-i)= Ez; j=1 [0024] Enfin, la sortie du réseau de neurones est définie comme une combinaison linéaire des fonctions d'activations en chaque point, pondérées par une combinaison de poids w,,,. Ces poids sont propres à une entrée selon un neurone et activés par la fonction d'activation, quel que soit le point de fonctionnement. Ce sont les poids qui varient au fur et à mesure de l'apprentissage, comme on le décrira dans la suite. Rwoi - + + wni - xn ) - cl)i Lx, ci , o-i [0025] Prenons un exemple simple : soit l'espace en deux dimensions, découpé en 9 neurones référencés de 0 à 8, représenté à la figure 1. [0026] On souhaite lire dans le contrôle adaptatif la correction à appliquer pour un point de fonctionnement proche du centre du neurone 7 (Nkw =3500, Rfkr=90%). Dans ce cas on aura 07-=1 tandis que toutes les autres fonctions d'activation seront quasi-nulles. [0027] La correction à appliquer vaudra donc y , = - w0,7 - w nkw,7.n kW Wrfkr,7.rfkr [0028] Pour un autre point se situant entre différents neurones, la correction sera la combinaison linéaire des poids et fonctions d'activations associées aux neurones influents dans cette zone de l'espace. [0029] Les poids sont ici calculés de la façon suivante. A chaque instant t, la valeur de la correction adaptative est donc définie par les conditions de fonctionnement à cet instant telles que le régime moteur Nmot, la charge AirLd, une température d'air d'admission Tair, et éventuellement d'autres paramètres. Les conditions de fonctionnement à cet instant incluent également ici les poids associés à chacun de ces paramètres à l'instant t, pour chaque neurone j w : _ , WAirLd,j WTair,j etc. Les différents neurones ont ici une calibration fixe. [0030] L'apprentissage de la correction d'avance d'allumage à appliquer se traduit donc par une modification de ces poids w,,,. Ils sont mis à jour en permanence par une fonction d'optimisation telle qu'une fonction de minimisation d'un écart, ou une fonction de moindres carrés par exemple, qui est telle que l'écart entre une correction à apprendre pour atteindre une limite cliquetis réelle et la correction apprise soit minime. On cherche donc à minimiser l'erreur quadratique entre la sortie du réseau de neurones et la valeur à apprendre. [0031] On peut traiter chaque neurone séparément, la part à apprendre sur chaque neurone étant défini par sa fonction d'activation (1)i. [0032] Soit 5C(1, xt, x2,..., xn) le vecteur d'entrées par exemple (1, régime, charge, Teau, Tair) et soit 17v.i (woi W 2i, " - Wni) le vecteur des poids à mettre à jour. [0033] La sortie du réseau de neurones vaut : [0034] Et l'écart quadratique imputé au neurone j s'écrit : E(wi - -2* 0'. * (S -0)2 avec S la valeur à apprendre par le réseau. [0035] Afin de minimiser cette erreur, on applique selon le présent mode de réalisation un algorithme de descente du gradient simplifié, appelé algorithme de Widrow-Hoff. Pour cela, on calcule la dérivée partielle de E par rapport au poids wi : a a S-1715i.1)=-e* .* x. aE(1-15) a 1 , o,*(s =2**0i*(S-0)*-(S-0)-e*Oi âw âwi 2*- 2 [0036] Par application de la méthode de Widrow-Hoff on modifie chaque poids wi d'une quantité Awi,; définie par : . = [0037] A chaque pas de calcul, on met donc chaque poids à jour à l'aide de cette formule. Le réseau de neurones s'adapte donc en permanence afin de modéliser au mieux l'avance limite cliquetis réelle. [0038] Nous allons maintenant décrire une architecture logique permettant de mettre en oeuvre une telle stratégie de correction adaptative. [0039] Tel que représenté sur la figure 2, un premier élément de cette architecture consiste en un réseau de neurones 10. [0040] Le réseau de neurones 10 est ici représenté par un bloc admettant, sur une entrée 11, la calibration des n neurones, incluant les valeurs définissant le centre et l'écart type de chacun des neurones. Le réseau de neurones 10 reçoit sur une entrée 12 la combinaison des différents poids à l'instant t, et sur une entrée 13 la valeur des conditions de fonctionnement à l'instant t : Nmot (t), AirLd (t), Tair(t), etc. Le réseau de neurones 10 délivre sur une sortie 14 la valeur de la correction d'avance calculée à partir des informations d'entrée, calculée de la manière décrite ci-dessus. [0041] Un second élément de l'architecture est un bloc d'apprentissage des poids 20. Ce bloc 20 réalise l'apprentissage de la correction d'avance, comme présenté ci-dessus. Il comporte une entrée 21 sur laquelle il reçoit la combinaison des poids à l'instant t-1. Il comporte en outre une entrée 22 sur laquelle il reçoit l'écart entre la correction apprise, délivrée par le réseau de neurones 10 et la correction à apprendre, calculée à partir de la correction curative. Enfin, il comporte une entrée 23 sur laquelle il reçoit la valeur des conditions de fonctionnement à l'instant t : Nmot (t), AirLoad (t), Tair(t), etc. [0042] Le bloc d'apprentissage des poids 20 présente une sortie 24 sur laquelle il délivre la combinaison des poids mise à jour. [0043] Sur la figure 2, l'architecture logique présente une entrée 30 sur laquelle elle reçoit une valeur de correction à apprendre laquelle est considérée comme dérivée d'une correction curative anti-cliquetis moyenne. Toutefois, en pratique l'écart de correction à apprendre n'est pas exactement égal à la correction curative moyenne car ce qu'on cherche à apprendre est la différence entre l'avance appliquée et l'avance telle que l'on se situe en limite cliquetis, ce qui peut être différent de la simple correction curative. L'écart de correction peut donc tenir compte de ce phénomène. C'est notamment le cas si la correction curative est proche de zéro : on corrige peut être alors trop et on souhaite ré-augmenter les avances pour gagner en consommation et en performances, c'est-à-dire appliquer une correction négative. [0044] C'est également le cas si on utilise un carburant de RON - Research Octane Number en anglais ou indice d'octane - supérieur à celui pour lequel la calibration de base a été effectuée, par exemple pour un carburant SP98. [0045] La figure 3 est un logigramme montrant temporellement les étapes de l'apprentissage de l'avance limite cliquetis mis en oeuvre ici. A une étape 100, le moteur effectue au moins une phase de combustion. Suite à une détection de cliquetis, une étape 110 consiste à calculer et à appliquer une correction curative, de manière connue en soi. Une étape 120 consiste à déduire de la correction curative une valeur de correction idéale à apprendre. Ensuite, à une étape 130, un test est effectué pour déterminer si, à l'instant considéré, une mise en oeuvre de l'apprentissage est autorisée. Ce test peut prendre en compte, comme dans le présent exemple de réalisation, le fait que la phase de démarrage soit terminée ou non, le fait que l'on soit dans une zone critique vis-à-vis du cliquetis, ou encore le fait que le moteur soit dans des conditions de fonctionnement stabilisées ou non. Si l'apprentissage n'est pas autorisé, alors à une étape 140 les poids sont maintenus à leur valeur actuelle. A contrario, si l'apprentissage est autorisé, alors une étape 150 consiste à réaliser une mise à jour des poids conforme à celle décrite ci-dessus. La correction adaptative est alors calculée à une étape 160, puis une coordination des avances est réalisée à une étape 170. L'étape de combustion 100 est alors réalisée à nouveau avec l'avance d'allumage calculée. [0046] Les figures 4 et 5 illustrent un tel apprentissage de la correction adaptative d'avance anti-cliquetis, réalisé avec une configuration de 5 neurones répartis dans l'espace en 2 dimensions correspondant aux paramètres régime Nmot et charge AirLd. Les figures 4 et 5 représentent la correction sur l'ensemble du champ Régime, Charge respectivement à un instant t et à un instant t + At. [0047] Cette stratégie d'apprentissage présente d'importants bénéfices en termes de performances par rapport à un apprentissage par zones. Considérons un exemple numérique correspondant à un apprentissage suivant 4 dimensions sur 10 points d'appuis. [0048] En termes de précision, la sortie du réseau de neurones résulte d'une interpolation linéaire entre les différents neurones placés dans l'espace, et dépendant des conditions de fonctionnement à l'instant t. On n'a donc pas de « plateaux » correspondant à une zone de fonctionnement, chaque point à sa correction propre, d'où une correction plus précise. Cet apport est bien visible sur les cartographies des figures 4 et 5, où l'on observe la continuité de cette correction dans le champ. [0049] En termes de vitesse d'apprentissage, avec cette méthode d'apprentissage, l'apprentissage d'un point représentatif de chaque neurone suffit à définir une correction pour le champ complet. On a donc un apprentissage beaucoup plus rapide que l'apprentissage par zones, où il faut parcourir chaque zone pour caractériser le champ. [0050] En termes d'utilisation mémoire, pour un apprentissage par réseau de neurones, sur 10 neurones et 4 dimensions, on doit mémoriser un poids par dimension et par neurone, plus un poids par neurone pour une dérive de correction ou « offset » en langue anglaise, soit 10*(4+1)=50 valeurs à mémoriser. Pour un apprentissage par zones, sur 4 dimensions avec 10 points d'appui par zone, on devrait a contrario mémoriser 10M= 10 000 valeurs. [0051] Enfin, cette stratégie permet d'apprendre une correction dans les deux sens, à savoir augmentation ou diminution des avances maximales. [0052] La stratégie proposée permet de minimiser l'apparition de combustions anormales dangereuses pour le moteur par un apprentissage plus précis et plus rapide, ainsi que de réduire la surconsommation et d'améliorer les performances du moteur lors de l'utilisation d'un carburant de RON supérieur, ainsi que de limiter l'occupation de la mémoire en diminuant le nombre de valeurs à mémoriser en permanence.10 REVENDICATIONS: 1. Dispositif de commande d'allumage de moteur à combustion de véhicule automobile, comprenant un aménagement de mesure d'une série de paramètres (Nmot, AirLd) influant sur l'apparition d'un cliquetis dans le moteur, un module de calcul (10, 20, 30) prenant en compte ces paramètres et produisant à partir de ces paramètres une valeur d'avance d'allumage (y) à mettre en oeuvre pour assurer une non-apparition de cliquetis dans le moteur, caractérisé en ce que le module de calcul (10, 20, 30) produit la valeur d'avance d'allumage (y) en mettant en oeuvre un réseau de neurones appliqué à un champ de dimension n où n est le nombre de paramètres pris en compte (Nmot, AirLd) et influant sur l'apparition du cliquetis. 2. Dispositif de commande d'allumage de moteur à combustion de véhicule automobile selon la revendication 1, caractérisé en ce que le réseau de neurones consiste en un découpage d'un espace à n dimensions (Nmot, AirLd, Tair, Teau) en zones (0,...,8, ....,M) correspondant chacune à un neurone et dans lesquelles zones la correction à apporter varie selon une fonction linéaire de ces mêmes paramètres (Nmot, AirLd, Tair, Teau) pris en compte. 3. Dispositif selon la revendication précédente, caractérisé en ce que la fonction linéaire de correction associée respectivement à une zone i est définie par un jeu de paramètres de poids 17v.i (woi w2i wni de sorte que la correction à mettre en oeuvre (y) pour un point de fonctionnement se trouvant dans la zone i considérée est sensiblement égale à (wo, + wli .x1 + - - - + wn, - xi, ) où (xi ,- - - , xn ) sont les valeurs des paramètres (Nmot, AirLd, Tair, Teau) pris en compte au point de fonctionnement. 4. Dispositif selon la revendication 3, caractérisé en ce que le module de calcul (10,20,30) met en oeuvre une mise à jour des poids (w,J) en tenant compte d'une erreur entre une correction appliquée à l'instant t et une correction théorique idéale. 5. Dispositif selon la revendication précédente, caractérisé en ce que le module de calcul (10,20,30) détermine la correction théorique idéale à partir d'une correction curative de cliquetis mesurée par le dispositif. 6. Dispositif selon l'une quelconque des revendication 3 à 5, caractérisé en ce que le module de calcul (10,20,30) produit une valeur y d'avance d'allumage laquelle valeur y est définie par l'égalité : y =[(woi + w1i.x1+ - - - + wni - xn)-(13 i(x1,x2,...,xn)] i=1 où ci (x1, x2,..., xn) est une fonction prenant une valeur sensiblement constante sur une zone i et sensiblement nulle en dehors de la zone i. 7. Dispositif selon la revendication précédente en combinaison avec la revendication 4, caractérisé en ce que le dispositif met en oeuvre une mise à jour comprenant une modification de poids d'une quantité où i est un indice représentant le paramètre influant sur le cliquetis et j est un indice représentant la zone considérée, la quantité 3,w, étant définie par : =Ir e* * xi où /7 est une valeur constante et e est une mesure d'erreur entre une correction appliquée à l'instant t et une correction théorique idéale. 8. Dispositif selon la revendication 6 ou la revendication 7, caractérisé en ce que, pour un nombre M de zones dans l'espace des paramètres (Nmot, AirLd, Tair, Teau) pris en compte comme influant sur le cliquetis, la fonction ci (x1, x2,..., xn) est définie par : (13 = M où z, est une fonction gaussienne des paramètres pris en J=1 zj compte comme influant sur le cliquetis laquelle est centrée sur un point de la zone i. 9. Moteur à combustion de véhicule automobile, caractérisé en ce qu'il comprend un dispositif de commande d'allumage selon l'une quelconque des revendications précédentes. 10. Procédé de commande d'allumage de moteur à combustion de véhicule automobile, comprenant les étapes consistant à prendre en compte (140,160,170) une série de n paramètres influant sur l'apparition d'un cliquetis dans le moteur (Nmot, AirLd, Tair, Teau) et l'étape consistant à produire (160,170) à partir de ces paramètres (140,160,170) une valeur d'avance d'allumage (y) à mettre en oeuvre pour assurer une non-apparition de cliquetis dans le moteur, l'étape de production (160,170) de la valeurd'avance d'allumage (y) comprenant la mise en oeuvre d'un réseau de neurones (0,...,8) appliqué à un champ de dimension n où n est le nombre de paramètres (140,160,170) pris en compte comme influant sur l'apparition du cliquetis.5