PROCÉDÉ DE COMMANDE D'UN MOTEUR DE VÉHICULE METTANT EN ŒUVRE UN RÉSEAU DE NEURONES L'invention concerne la commande des moteurs de véhicule, notamment des moteurs à essence.
L'augmentation de la complexité des moteurs à combustion interne requiert l'utilisation plus en plus fréquente de modèles de certaines grandeurs physiques soit parce qu'elles ne sont pas mesurables, soit parce qu'un capteur adapté coûte cher. Ces modèles sont généralement dynamiques de sorte que la sortie est prédite en fonction des valeurs actuelles et passée des variables d'entrée. Ces modèles sont intégrés dans le calculateur de pilotage du moteur. Etant donné que ce dernier est limité en termes de mémoire et de puissance de calcul, on souhaite limiter au maximum la complexité des modèles qui y résident. Par ailleurs, la complexité des systèmes ainsi que l'utilisation précise que l'on veut en faire afin de satisfaire les besoins en termes de contrôle et de normes de dépollution implique une précision d'estimation et de modélisation accrues. En particulier, un moteur à essence utilise en général un système d'injection calculant un besoin de carburant à partir d'informations mesurées concernant la pression dans le collecteur, le régime du moteur et la température d'air dans le collecteur. On cherche alors à modéliser le rendement de remplissage relatif afin de caractériser la quantité d'air entrant effectivement dans le moteur. Cette quantité d'air est ensuite traduite en quantité de carburant à injecter en fonction d'un objectif de richesse. Ce calcul peut être effectué de la façon suivante :
(Pcol - PO) * Vcyl * ψemp = Mair * r * Tair
(Pcol - PO) * Vcyl *ψemp
SOIt Mair = -^ - - - - r *Tair et la masse d'essence associée : Mess=Mair*Ri/14.7 1
Soit le temps d'injection efficace : Ti = = *Mair * Ri
Qstat 14.7 *Qstat
Avec :
Vcyl = Cylindrée unitaire du moteur (en m3) Ri = Richesse de consigne (s.u)
14.7 = rapport stoèckiométrique pour l'essence commerciale (kg d'air/kg d'essence)
Qstat = Débit statique injecteur à pression rampe fixée (kg/s) Pcol = Pression collecteur PO = Pression collecteur de débit nul
Mair = Masse d'air entrant dans le moteur (en kg) Mess = Masse d'essence à injecter (en kg) ηremp = Rendement volumétrique de remplissage (s.u)
Le rendement volumétrique de remplissage ηremp est caractéristique de la configuration du moteur (les volumes associés, la longueur et la forme des collecteurs d'admission et d'échappement, les matières employées et l'état de surfaces des tubulures les constituant). Il est également caractérisé par les lois de levée des soupapes d'admission et d'échappement et leur phasage dans le cycle du moteur. Il dépend de la pression dans le collecteur, du régime du moteur et enfin du calage des arbres à cames (appelé AAC ou encore VVT) d'admission et d'échappement, notamment si le moteur est équipé d'un système de calage variable de ces arbres.
La détermination de ce rendement par des lois paramétriques (de type parabolique ou autres) implique des corrections cartographiques nombreuses et complexes à mettre en œuvre et n'apportant pas de connaissances sur le phénomène physique à traiter.
Plus généralement, il est connu d'estimer le remplissage du moteur par correction cartographique simple pour les moteurs sans décaleur d'arbre à cames d'admission. Cette correction met en œuvre une seule cartographie fonction de la pression dans le collecteur et du régime du moteur.
Il est également connu d'effectuer une correction cartographique double dans les moteurs munis d'un décaleur d'arbre à cames d'admission
ON/OFF. Dans ce cas, le moteur comprend une cartographie par position, marche ou arrêt, du décaleur d'arbre à cames, fonction de la pression dans le collecteur et du régime.
Le document "Modelling the volumetric efficiency of IC engines: parametric, non-parametric and neural techniques" de G. DE NICOLAO propose un procédé de commande d'un moteur dans lequel on détermine un rendement volumétrique de remplissage d'air. Enfin, on connaît des corrections cartographiques plus élaborées dans des moteurs comprenant un décaleur d'arbre à cames d'admission continu. Dans ce cas, une cartographie est mise en œuvre en fonction de la pression et du régime pour une position de référence du décaleur et des corrections paraboliques sont effectuées, associées à des coefficients cartographiés en fonction de la pression et du régime.
Un but de l'invention est donc d'améliorer la commande des moteurs de véhicule, et en particulier d'améliorer l'estimation du rendement de remplissage relatif, par exemple dans le cas d'un moteur équipé d'un double décaleur d'arbre à cames d'admission et échappement.
A cet effet, on prévoit selon l'invention un procédé de commande d'un moteur de véhicule, dans lequel on détermine un rendement volumétrique de remplissage d'air du moteur, caractérisé en ce qu'on détermine une valeur de base du rendement, et une valeur de correction au moyen d'un réseau de neurones artificiels, et on additionne la valeur de base et la valeur de correction.
Le procédé selon l'invention pourra présenter en outre au moins l'une quelconque des caractéristiques suivantes :
- on détermine le rendement en fonction d'un régime du moteur ; - on détermine le rendement en fonction d'une pression dans un collecteur du moteur ;
- on détermine le rendement en fonction d'une différence entre une consigne de calage d'un arbre à cames d'admission et une mesure d'une position de l'arbre ;
- on détermine le rendement en fonction d'une différence entre une consigne de calage d'un arbre à cames d'échappement et une mesure d'une position de l'arbre ;
- on détermine le rendement en fonction d'une différence entre une loi de levée de soupape d'admission et une position de la soupape ;
- on détermine le rendement en fonction d'une différence entre une loi de levée de soupape d'échappement et une position de la soupape ;
- on détermine le rendement en fonction d'un ratio entre un couple de consigne du moteur et un couple maximum ; - on détermine la valeur de base en fonction d'une pression dans le collecteur d'admission et/ou d'un régime du moteur ;
- le réseau comprend une unique couche cachée ;
- le réseau a pour fonction d'activation la fonction tansig ; et
- on discrétise une fonction d'activation du réseau entre des points non équidistants.
On prévoit également selon l'invention un moteur de véhicule comprenant un organe de commande apte à déterminer un rendement volumétrique de remplissage d'air du moteur, l'organe de commande comprenant un réseau de neurones. Avantageusement, le moteur comprendra un dispositif de calage variable d'arbre à cames d'admission et/ou d'arbre à cames d'échappement ou encore un dispositif de levée variable de soupapes d'admission et/ou de soupapes d'échappement.
D'autres caractéristiques et avantages de l'invention apparaîtront encore dans la description suivante d'un mode préféré de réalisation et d'une variante donnés à titre d'exemples non limitatifs en référence aux dessins annexés sur lesquels :
- la figure 1 est un organigramme illustrant la mise en œuvre générale du procédé dans le présent exemple ;
- la figure 2 comprend deux organigrammes illustrant l'obtention des valeurs de correction associées au calage variable des arbres à cames d'admission et d'échappement ;
- la figure 3 est un organigramme illustrant l'utilisation du réseau de neurones dans le procédé de la figure 1 ;
- la figure 4 est un graphe de la fonction d'activation mise en œuvre dans le réseau de la figure 3 ;
- la figure 5 présente d'autres graphes relatifs à cette fonction ;
- la figure 6 est un organigramme illustrant le processus de choix du réseau de neurones et de sa calibration ; et
- la figure 7 est une vue analogue à la figure 3 illustrant une variante de réalisation.
L'invention concerne un moteur à combustion interne à essence de véhicule automobile. Ce moteur comprend un calculateur assurant la commande du moteur et comprenant en l'espèce un réseau de neurones artificiels. Un réseau de ce type est connu en soi et ne sera pas décrit en détails ici.
Le réseau vise à déterminer un rendement volumétrique de remplissage d'air du moteur, et plus précisément à modéliser ce paramètre. Tout d'abord, une cartographie de référence, mise au point sur les calages de référence nominaux du moteur, est utilisée pour définir une valeur de remplissage de référence ou valeur de remplissage de base. Puis, une valeur de correction de remplissage modélisée par le réseau de neurones est utilisée pour corriger ce remplissage, en l'espèce par addition à la valeur de base. On obtient ainsi une caractérisation du remplissage effectif du moteur en-dehors des points nominaux de fonctionnement du moteur.
Le principe de cette détermination a été illustré à la figure 1. L'encadré 2 représente la mise en œuvre d'une cartographie indiquant une valeur de référence du rendement de remplissage du moteur en Z en fonction d'une mesure du régime du moteur suivant l'axe des X en abscisses et en fonction d'une pression mesurée dans un collecteur d'admission du
moteur et portée en Y suivant l'axe des ordonnées. Le moteur étant en l'espèce pourvu d'arbres à cames d'admission et d'échappement à calage variable, la cartographie fournit les valeurs de remplissage sur les points de calage choisis par le metteur au point. Comme indiqué en partie supérieure de la figure 1 , cette valeur de remplissage de référence est ensuite corrigée au bloc 4 par addition d'un terme correctif déterminé quant à lui en parallèle au bloc 6 par le réseau de neurones.
Le réseau de neurones calcule cette correction en fonction des paramètres suivants :
- le régime du moteur mesuré;
- une pression mesurée dans le collecteur d'admission du moteur ;
- une différence entre une valeur de consigne du calage de l'arbre à cames d'admission choisie par le metteur au point et une mesure de la position effective de cet arbre à cames ; et
- une différence entre une valeur de consigne du calage de l'arbre à cames d'échappement choisie par le metteur au point et une mesure de la position effective de cet arbre à cames.
La somme des valeurs de base et du terme correctif fournit la valeur finale du rendement de remplissage à modéliser.
On a illustré à la figure 2 le détail de l'obtention des décalages de position des arbres à cames d'admission et d'échappement.
Le premier schéma indique que pour l'arbre d'admission on effectue la différence entre la position de consigne de calage et la position effective de cet arbre telle qu'elle est mesurée. La soustraction de ces deux valeurs au bloc 8 permet de déterminer la différence de calage sur cet arbre. La valeur de décalage de l'arbre est indiquée en degrés d'angle de vilebrequin.
Quant à la valeur de consigne de calage, elle est déterminée préalablement au bloc 10 par cartographie à partir : - du régime moteur mesuré ;
- du ratio du couple de consigne (issu de la volonté du conducteur via la position de l'accélérateur, du régime moteur et d'autres paramètres) et du couple maximum disponible sur le moteur (essentiellement fonction du régime moteur et de la température de l'air). La détermination de la valeur de décalage concernant l'arbre d'échappement est effectuée exactement de la même façon.
Le contenu et le fonctionnement du réseau de neurones utilisé en l'espèce a été illustré à la figure 3. On introduit en entrée de ce réseau les paramètres de régime du moteur, de la pression dans le collecteur et des différences de calage sur les arbres d'admission et d'échappement par rapport aux calages de référence.
Au bloc 12, ces différentes entrées sont tout d'abord normalisées entre des valeurs de -1 et +1. A l'issue de cet étage de normalisation, elles sont ensuite utilisées dans chaque neurone de la couche cachée 14 du réseau de neurones 6. Précisément, à chaque entrée de neurone (e1 = régime moteur, e2 = pression collecteur, e3 = ΔCaCim, e4 = ΔCeCh) est affecté un poids (w1 pour le régime, w2 pour la pression collecteur, ...). De plus, à chaque neurone 18 de la couche 14 est affecté un biais noté b. On affecte aussi à l'ensemble des neurones une fonction d'activation Fa. Chaque neurone 18 fournit une donnée de sortie, notée S, qui est une combinaison linéaire des données d'entrée (les ei) affectées de leur poids (les wi), cette combinaison étant soumise à la fonction d'activation (Fa). Cette opération répond à la formule suivante : S = Fa (∑ιwi*ei+b) Le réseau de neurones met en œuvre un algorithme d'optimisation des termes de poids (wi) et des biais (b) pour chaque neurone en fonction de la fonction d'activation choisie par l'utilisateur.
La sortie de chaque neurone est ensuite utilisée dans la couche de sortie 20 où une combinaison des sorties de chaque neurone est effectuée suivant le même calcul (mais avec des poids différents et un biais différent) que pour la couche cachée 14.
Au final, la valeur de sortie du réseau de neurones est ensuite dénormalisée au bloc 22 afin de décrire au mieux la variable recherchée qui est ici le rendement de remplissage.
On précise que la normalisation entre -1 et +1 des entrées au bloc 12 permet une optimisation des poids et des biais sur les variables adimensionnelles.
La couche cachée 14 est en l'espèce unique. Il a en effet été démontré que toute fonction continue par morceaux peut être approximée par une telle architecture. Le choix du nombre de neurones de la couche cachée est quant à lui à déterminer en fonction de deux contraintes essentielles : D'une part, la précision du remplissage modélisé par le réseau de neurones, d'autre part le nombre d'opérations et de calibrations acceptables pour un traitement en temps réel par le calculateur de contrôle du moteur. II importe de choisir avec attention la fonction d'activation de chaque neurone pour assurer la performance du réseau. La fonction d'activation retenue en l'espèce est la fonction tansig. Cette fonction mathématique est définie par la formule suivante :
tansig(n) = j— - -1
On a illustré à la figure 4 l'allure de la courbe des fonctions logsig et tansig.
Afin de pouvoir être utilisée par le calculateur mais aussi lors de la procédure d'optimisation du réseau de neurones, cette fonction doit être discrétisée dans une table. Lors des calculs d'optimisation des points et biais du réseau ou pour le calcul du rendement de remplissage, la table est ensuite utilisée de façon discrète par interpolation linéaire.
Le choix du critère d'optimisation de la fonction permet de minimiser l'erreur commise en remplaçant une fonction continue par une fonction linéaire par morceaux. On constate que la solution consistant à discrétiser la fonction en un grand nombre de points équidistants n'est pas la meilleure car
elle est coûteuse en nombre de calibrations. Il s'avère plus avantageux d'utiliser une discrétisation mettant en œuvre des points non équidistants afin de réduire la taille de la cartographie tout en conservant une bonne précision sur la donnée de sortie. Le critère d'optimisation retenu entre la fonction linéaire et la fonction discrétisée est l'optimisation du positionnement des points d'appui (ou breakpoints) en minimisant l'écart de dérivée seconde entre la fonction linéaire et la fonction discrétisée. Il est clair en effet qu'une interpolation linéaire entre les points est d'autant moins correcte que la variation de la pente de la fonction entre ces points est importante.
On a ainsi illustré à la figure 5 le résultat d'une optimisation du positionnement des points (dont le nombre est en l'espèce fixé à 22) par minimisation de l'écart de dérivée seconde entre la fonction continue et la fonction interpolée. On a illustré sur le premier graphe de la figure 5 une courbe en « s » qui est celle de la fonction d'activation utilisée dans tout le réseau de neurones et en l'espèce dans chaque neurone du réseau. La discrétisation linéaire vise à représenter la fonction continue tansig suivant une table à une dimension qui soit facilement utilisable dans le logiciel de contrôle moteur. Cette discrétisation a été illustrée sur le même graphique. Elle est ici optimisée pour minimiser les erreurs de calcul lors de l'utilisation de l'algorithme d'optimisation des poids (wi) et des biais (b) du réseau de neurones. On a ainsi illustré sur cette courbe d'une part l'interpolation par des breakpoints équirépartis et d'autre part l'interpolation par des breakpoints optimisés.
La deuxième figure représente la dérivée seconde, appelée d2, de différentes fonctions :
- la fonction exacte continue tansig ;
- la fonction tansig discrétisée linéairement par des breakpoints équidistants ; et enfin
- la fonction tansig discrétisée linéairement par des breakpoints dont le positionnement est optimisé pour minimiser l'écart en valeur absolue entre la dérivée seconde de la fonction exacte continue et la dérivée seconde de la fonction discrétisée. On conservera à l'esprit que la normalisation des dérivées seconde continues ou interpolées induit en erreur sur la performance véritable de la table correspondant aux breakpoints optimisés.
On a illustré à la figure 6 le processus de choix du réseau de neurones et de sa calibration. En effet, le choix du nombre de neurones est important pour la charge de calcul dans le microprocesseur et pour la précision de la modélisation obtenue.
Ainsi, au bloc 30 a lieu la génération de la base de données du moteur. Elle met en œuvre le balayage des paramètres d'entrée du réseau de neurones dans le champ du moteur complet. Ce bloc conduit au bloc 32 qui effectue une extraction d'une partie de la base pour créer une base de validation.
Au bloc suivant 33 a lieu un pré-traitement sur la base des données (vérification, nettoyage, ...) ainsi qu'une réalisation de l'apprentissage du réseau de neurones suivant un critère de convergence (erreur quadratique+écart type+...).
Au bloc suivant 34 est mis en œuvre un test de la performance du réseau calibré, à la fois sur la base de données et sur la base de validation.
A l'issue de ce bloc, une boucle d'itération 36 renvoie si besoin entre les blocs 32 et 33 en vue d'une modification de la base de données, du type d'apprentissage, du nombre de neurones, etc.
Si le test 34 est concluant, le bloc suivant 36 met en œuvre le choix du réseau (en particulier le nombre de neurones et l'affinage de la fonction d'activation).
Ce bloc conduit ensuite au bloc 38 qui porte sur l'implantation du réseau de neurones dans le calculateur et la caractérisation de la performance en fonctionnement.
A la sortie de ce bloc débute une deuxième boucle d'itération 40 portant sur la révision du nombre de neurones en fonction de la charge de calcul ou encore de compléments sur la base de données. Si aucune itération n'est nécessaire, le bloc 38 conduit au bloc de fin 42. Le procédé selon l'invention permet de prendre en compte dans le cadre du moteur chacun des décaleurs continus d'arbre à cames d'admission et d'échappement dans les corrections paramétriques du remplissage. L'estimation du rendement de remplissage relatif du moteur équipé de ce double décaleur d'arbre à cames est mise en œuvre à partir d'une estimation de la masse d'air admise à l'aide du capteur de pression du collecteur, de la température d'air d'admission et du régime du moteur. Elle permet d'assurer un pilotage optimal de l'injection en-dehors de toute correction du temps d'injection en boucle fermée par utilisation d'informations concernant une sonde de richesse d'échappement. Une variante de mise en œuvre du procédé a été illustrée à la figure
7. Celle-ci est très voisine du mode de la figure 3. Toutefois, le moteur est ici doté d'un système de levée de soupapes variable à l'admission et à l'échappement. Le décalage entre la loi de consigne de levée de soupapes et la position effective des soupapes est pris en compte en tant que deux entrées supplémentaires par rapport aux quatre précédemment énoncées pour le réseau de neurones. En effet, l'architecture avec réseau de neurones est prédisposée à permettre un enrichissement de la modélisation liée à des modifications du moteur.
Bien entendu, on pourra apporter à l'invention de nombreuses modifications sans sortir du cadre de celle-ci.
On pourra choisir une autre fonction d'activation que la fonction tansig.