FR 2783017 A1 20000310 FR 9811178 A 19980908 La présente invention est relative à un procédé de commande d'un moteur à combustion interne, et plus particulièrement à un procédé exploitant un modèle du moteur pour définir les commandes à appliquer en vue d'obtenir un résultat escompté. Les techniques modernes de commande des moteurs à combustion interne font de plus en plus appel à la modélisation mathématique des moteurs afin de réaliser des procédés de commande plus robustes, propres à prendre en compte plus précisément les exigences des conducteurs des véhicules automobiles qui en sont équipés et les contraintes des réglementations relatives à la pollution. Ces modèles, tel que celui représenté à la figure 1, permettent, à partir d'un jeu de commandes u tel que I'ensemble formé par l'angle d'ouverture TPS du papillon des gaz, I'angle d'ouverture EGRV d'une vanne de recirculation des gaz d'échappement, I'angle d'avance à l'allumage IGA, la quantité INJ de carburant injecté, etc. d'estimer des variables de sortie y du moteur telles que le couple TQ fourni, la quantité d'air aspirée MAF, la richesse LAM des gaz d'échappement et leur taux de recirculation EGR, variables qui ne sont pas toujours mesurables directement et économiquement sur le moteur réel. On connaît, par exemple de la demande de brevet français 9700648 déposée par la demanderesse, un procédé de commande d'un moteur à combustion interne, représenté de manière simplifiée à la figure 2, dans lequel on détermine à partir de l'enfoncement d'une pédale d'accélérateur 3 un couple de consigne TQSP que l'on applique à un modèle inverse M-l du moteur (ainsi que d'autres consignes éventuelles LAMSP et EGRSP), pour en tirer un jeu de commandes u à appliquer à des moyens de réglage 11 du moteur 1. Cependant, un tel modèle inverse doit être obtenu par une inversion analytique du modèle direct M de la figure 1, ce qui dans le cas de modèles multivariables (multiples entrées et multiples sorties) est une opération extrêmement complexe. De plus, les différents coefficients des équations analytiques formant le modèle direct sont en général obtenus expérimentalement par identification du modèle avec le moteur réel et mémorisés dans de multiples tables cartographiques. Lors d'une inversion du modèle direct, ces tables doivent être inversées ce qui, compte tenu de la non-linéarité des coefficients, entraîne souvent des indéterminations ou des imprécisions nuisibles à l'efficacité du procédé de commande. En outre, toute modification du modèle direct, ne fut-ce que d'un seul coefficient, doit entraîner une nouvelle inversion complète du modèle, rendant ainsi le développement et la mise au point extrêmement longs et coûteux. La présente invention a donc pour but de proposer un procédé de contrôle d'un moteur à combustion interne qui, tout en conservant les avantages des procédés de la technique antérieure, ne présente pas les difficultés liées à l'inversion des modèles utilisés. On atteint ces buts de l'invention, ainsi que d'autres qui apparaîtront dans la suite de la présente description, au moyen d'un procédé de commande d'un moteur à combustion interne, dans lequel on détermine un jeu de consignes de variables de sortie du moteur, on applique ces consignes à un modèle inverse du moteur et on en tire un jeu de commandes à appliquer à des moyens de réglage du moteur, caractérisé en ce que l'on élabore le modèle inverse du moteur à partir d'une exploitation itérative d'une boucle comportant d'une part un modèle direct du moteur et d'autre part une matrice de correction des entrées du modèle direct en fonction de ses sorties. Selon le procédé objet de l'invention, on fournit un jeu de commandes initiales au modèle direct du moteur, on compare l'estimation des variables de sortie fournie par le modèle au jeu de consignes et on en tire un vecteur d'écart, on traite ce vecteur d'écart par la matrice de correction pour en tirer un vecteur de correction des commandes et on somme le vecteur de correction avec le jeu de commandes initiales pour obtenir le jeu de commandes à appliquer aux moyens de réglage. Selon un premier mode de mise en oeuvre du procédé, les étapes ci-dessus sont répétées avec une récurrence temporelle prédéterminée, en utilisant à chaque itération le jeu de commandes obtenu lors de l'itération précédente comme jeu de commandes initiales. Dans un second mode de mise en oeuvre du procédé, une série d'itérations est déclenchée à chaque point mort haut du moteur, on intègre les vecteurs de correction successifs, et le jeu de commandes n'est appliqué aux moyens de réglage que lorsque le vecteur d'écart relatif est inférieur à un seuil prédéterminé. Dans ce dernier mode, on utilise, à chaque point mort haut du moteur, le jeu de commandes appliqué au point mort haut précédent comme jeu de commandes initiales. Suivant une caractéristique importante de la présente invention, la matrice de correction est obtenue par inversion ou pseudo inversion de la matrice jacobienne des dérivées partielles des variables de sortie du moteur par rapport aux commandes. Avantageusement, I'influence des paramètres à variation lente est négligée dans le calcul des coefficients de la matrice jacobienne et le modèle direct reçoit un vecteur d'état représentatif des conditions de fonctionnement actuelles du moteur comprenant une mesure de ces paramètres. Selon une première variante, la matrice de correction est déterminée expérimentalement lors d'essais de mise au point du moteur et ses coefficients sont mémorisés dans une table en fonction des conditions de fonctionnement du moteur. Selon une deuxième variante, la matrice jacobienne est déterminée à chaque itération à partir d'une estimation des dérivées partielles tirée du calcul de la variation des sorties du modèle direct en fonction d'une variation unitaire d'une de ses entrées autour du point de fonctionnement courant. D'autres caractéristiques et avantages du procédé suivant l'invention apparaîtront à la lecture de la description qui va suivre et à l'examen des dessins annexés dans lesquels: - la figure 1 représente un modèle de moteur couramment employé dans la technique antérieure, - la figure 2 représente un exemple d'un procédé de commande de la technique antérieure, - la figure 3 représente un diagramme fonctionnel du procédé de commande selon l'invention et - les figures 4 à 6 représentent des organigrammes de fonctionnement du procédé de commande selon l'invention. Comme on l'a vu dans le préambule, en relation avec la figure 1, un modèle M de moteur à combustion interne est un ensemble d'équations, en général non linéaires, auquel on fournit en entrée un jeu de commandes u représentant les commandes appliquées à différents actionneurs tels qu'un papillon des gaz ou un injecteur de carburant. A partir de ce jeu de commandes, le modèle calcule et fait évoluer des variables d'état internes (non représentées) telles que le régime moteur ou la pression dans le collecteur d'admission, et propose en sortie une estimation y_m de variables de sortie telles que le couple fourni TQ, la quantité d'air aspirée MAF, la richesse de combustion LAM ou le taux de recirculation des gaz d'échappement EGR. Ces estimations sont par exemple utilisées pour évaluer des variables de sortie non directement mesurables. On utilise également ce modèle dans sa forme inverse M-1 (figure 2) pour déterminer le jeu de commande u à appliquer aux moyens de réglage 11 pour obtenir des variables de sortie du moteur 1 correspondant à un jeu de consignes y_sp de ces variables de sortie. On se réfère maintenant à la figure 3 dans laquelle on a représenté sous forme de schéma blocs le procédé de commande selon l'invention. Un jeu de consignes ysp comportant par exemple des consignes de couple (TQSP), de richesse (LAMSP) et de taux de recirculation des gaz d'échappement (EGRSP) est fourni à un bloc 2 d'application du modèle inverse M-1 représenté dans le cadre en pointillés. Ce bloc 2 comporte un bloc 20 d'application d'un modèle direct M du moteur 1 qui reçoit d'une part un vecteur d'état z représentatif des conditions de fonctionnement actuelles du moteur 1. Ce vecteur d'état est constitué par exemple de mesures effectuées en temps réel sur le moteur, comme la pression collecteur MAP, le régime de rotation N, la température du liquide de refroidissement 0, etc. L'utilisation de ce vecteur d'état permet avantageusement d'employer un modèle M simplifié et/ou de limiter la divergence de celui-ci. Le bloc 20 reçoit d'autre part un jeu de commandes u élaboré par un bloc intégrateur 22 qui sera détaillé par la suite. Sur la base du jeu de commandes u et du vecteur d'état z, le modèle direct M du bloc 20 fournit une estimation y_m des variables de sortie du moteur 1. Cette estimation est comparée au jeu de consigne y_sp dans un sommateur 23 pour former un vecteur d'écart Ay. Ce vecteur d'écart est alors fourni à un bloc 21 de calcul et d'application d'une matrice de correction J-1 dont le fonctionnement détaillé sera explicité ultérieurement en relation avec les figures 5 et 6. Le bloc 21 fournit à son tour au bloc intégrateur 22 un vecteur de correction Au à appliquer au jeu de commandes u. Les vecteurs de correction Au successifs sont intégrés par le bloc intégrateur 22 en partant d'un jeu de commandes initiales uo pour obtenir un jeu de commandes u propre à minimiser le vecteur d'écart Ay. On a ainsi réalisé une boucle dont l'exploitation itérative permet à partir d'un jeu de consignes ysp de définir un jeu de commandes u applicable aux moyens de réglage 11 du moteur 1, sans avoir besoin d'inverser de manière analytique le modèle M du moteur. On a également représenté sur la figure 3 un bloc comparateur 24 qui reçoit le vecteur d'écart Ay et commande un commutateur 25 permettant ainsi de ne transmettre le jeu de commande u aux moyens de réglage 11 que sous certaines conditions. Ces deux éléments sont optionnels et ne sont utilisés que dans un second mode de mise en oeuvre du procédé qui sera détaillé ultérieurement. Dans un premier mode de mise en oeuvre du procédé, la boucle décrite ci- dessus est exécutée avec une récurrence temporelle prédéterminée, de façon asynchrone par rapport au cycle de fonctionnement du moteur 1, et le jeu de commande u en sortie du bloc intégrateur 22 est transmis en permanence aux moyens de réglage 11. Lors du démarrage du moteur 1, on procède à une phase d'initialisation du procédé selon le processus décrit à la figure 4. On a en effet remarqué que les conditions de démarrage du moteur dépendaient essentiellement de la température de celui-ci, avantageusement mesurée par la température du liquide de refroidissement e. A la mise sous tension d'un calculateur adapté pour appliquer le procédé de l'invention, le calculateur mesure la température 0 et détermine, dans une table définie par des essais préalables et mémorisée dans le calculateur, un jeu de commandes ui. it(O) comprenant par exemple un angle d'ouverture du papillon des gaz, une quantité de carburant à injecter, un angle d'allumage, etc. Ce jeu de commandes est appliqué aux moyens de réglage 11 et considéré comme jeu de commandes initiales uo. On procède alors à l'étape S101 de la figure 5A dans laquelle on lit le jeu de consignes y_sp et le vecteur d'état z. A l'étape S102, on affecte au jeu de commande u courant la valeur du jeu de commandes initiales u0 et à l'étape S103, on calcule l'estimation des variables de sortie y_m en appliquant le jeu de commande u au modèle M. On forme également le vecteur d'écart Ay en effectuant la différence entre le jeu de consignes y_sp et l'estimation ym obtenue. Lors de l'étape S1 04, on teste si le vecteur d'écart relatif Ay/ysp est inférieur à un ensemble de valeurs prédéterminé ú afin de vérifier si le jeu de commandes u est propre à fournir le résultat escompté. On notera cependant que ce test est optionnel et n'a pour effet que d'éviter les étapes S105 et S106 si le résultat est positif pour économiser du temps de calcul. Si ce test n'est pas effectué ou si le résultat du test est négatif, on procède à la détermination de la matrice de correction à l'étape S105. La matrice de correction J- est constituée par des coefficients qui déterminent le sens et l'intensité de la variation qu'il faut appliquer à chaque élément du jeu de commande u pour obtenir une variation prédéterminée de chacune des variables de sortie y, et ce, pour chaque point de fonctionnement du moteur. Pour déterminer ces coefficients, on commence par déterminer la matrice jacobienne J ou matrice des dérivées partielles du système constitué par le moteur 1 et les moyens de réglage 11 en appliquant à chaque commande u1 du jeu de commande u une variation unitaire et en observant la variation induite des variables de sortie y. Représentant un processus physique, cette matrice jacobienne est régulière et peut être inversée (si la matrice est carrée, c.a.d. si le nombre de commandes en entrée est égal au nombre des variables de sortie observées) ou " pseudo-inversée " selon l'une des formules: j4 =JT = [J jTf1 (nombre d'entrées > nombre de sorties) ou j-1 = JT. j]-I. jT (nombre d'entrées obtient ainsi la matrice de correction J-. Selon une première variante du procédé, les coefficients de la matrice de correction sont obtenus expérimentalement lors d'essais de mise au point du moteur. Ces coefficients sont ensuite mémorisés dans des tables en fonction des conditions de fonctionnement du moteur, par exemple en fonction de la pression dans le collecteur d'admission MAP et du régime de rotation N, éléments essentiels du vecteur d'état z. Selon cette variante, lors de l'étape S105, on extrait des tables les coefficients de la matrice de correction J-' en fonction des valeurs du vecteur d'état. Selon une autre variante, représentée à la figure 6 comme un sous programme appelé par l'étape S105, on utilise une estimation des dérivées partielles tirée du modèle direct M pour déterminer par calcul la matrice de correction. A cette fin, on commence par vérifier si les conditions de fonctionnement du moteur représentées par le vecteur d'état z ont changé. Si ce n'est pas le cas, la matrice de correction précédemment calculée est toujours applicable et on sort du sous programme. Si un changement d'état s'est produit depuis le précédent passage, on entre dans une boucle o à chaque commande, on applique une variation unitaire Aui et on calcule au moyen du modèle direct M, dans les conditions fixées par le vecteur d'état z, une variation Ay_m de I'estimation des variables de sortie. On construit alors la matrice jacobienne J à partir des variations relatives Ay_m/Au, que l'on inverse au moyen de l'une des formules vues précédemment pour obtenir la matrice de correction J-'. Avantageusement, pour réduire la quantité de mémoire nécessaire dans la première variante ou le temps de calcul dans la seconde, on se limite, lors de la détermination des coefficients de la matrice de correction, aux modes gouvernables essentiels, c'est à dire ayant une influence primordiale sur les variables de sortie. De même, on négligera l'influence, sur ces coefficients, des paramètres à variation lente, tels que la température 0 du moteur par exemple. La prise en compte de ces paramètres est alors faite par l'intermédiaire du vecteur d'état z, fourni au modèle direct. On en revient à la figure 5A, o, à l'étape S106, on utilise le vecteur d'écart Ay calculé à l'étape S103 et la matrice de correction J-1 de l'étape S105 pour déterminer un vecteur de correction Au qui est sommé par l'intermédiaire du bloc intégrateur 22 de la figure 3 au jeu de commande actuel pour obtenir un nouveau jeu de commandes u. Ce jeu de commandes est alors appliqué aux moyens de réglage 11 du moteur à l'étape S107 et mémorisé pour servir de jeu de commandes initiales u0 lors de la prochaine itération. Comme on l'a vu précédemment, dans ce mode de mise en oeuvre du procédé, ces itérations sont déclenchées avec une récurrence temporelle prédéterminée et de manière asynchrone par rapport au cycle de combustion du moteur. Dans un second mode de mise en oeuvre du procédé, on déclenche, à chaque point mort haut du moteur, un calcul itératif du jeu de commandes u à appliquer. On se réfère à la figure 5B qui représente un logigramme de ce mode de mise en oeuvre. On remarquera que seul l'enchaînement des étapes du procédé diffère de la figure 5A, les étapes elles-mêmes restant essentiellement identiques à celles de la figure 5A et seront donc repérées de manière identique. Après une initialisation au démarrage du moteur qui s'effectue conformément à la figure 4 déjà décrite, chaque point mort haut (PMH) du moteur déclenche la lecture du jeu de consignes y_sp et du vecteur d'état z (S101), I'initialisation du jeu de commandes courant par le jeu de commandes initiales déterminé lors du précédent PMH (S102) et la détermination de la matrice de correction J-1 (S105) qui s'effectue selon l'une quelconque des variantes décrites en relation avec le premier mode de mise en oeuvre. On procède alors à l'étape S103 dans laquelle on détermine une estimation y_m des variables de sorties à partir de l'application du jeu de commande u courant au modèle M et un vecteur d'écart Ay. On compare ensuite le vecteur d'écart relatif Ay/y_sp à un ensemble de valeurs de seuil e prédéterminé. Si le vecteur d'écart relatif Ay/y_sp n'est pas inférieur à l'ensemble de valeurs de seuil e, on calcule à l'étape S106 un vecteur de correction Au du jeu de commande par application du vecteur d'écart Ay à la matrice de correction J- et on intègre ce vecteur de correction au jeu de commandes pour en tirer un nouveau jeu de commandes u qui sera renvoyé à l'étape S103. On procède ainsi par itération et intégrations successives des vecteurs de correction jusqu'à ce que le test de l'étape S104 soit positif. Dans ce cas, on passe à l'étape S107, dans laquelle le jeu de commande u obtenu est appliqué aux moyens de réglage 11 et mémorisé pour servir de jeu de commandes initiales uo lors du cycle déclenché par le prochain PMH. Bien entendu, I'invention n'est pas limitée aux modes de mise en oeuvre décrits ci-dessus qui n'ont été donnés qu'à titre d'exemples. On pourra également combiner les deux modes en fonction du temps de calcul disponible, en utilisant le second à bas régime, lorsque l'intervalle temporel entre deux PMH est long et le premier5 à haut régime. De même, la détermination de la matrice de correction peut être faite dans un premier temps sur la base d'essais du moteur puis affinée au moyen d'un processus d'apprentissage par les valeurs calculées à partir du modèle. REVENDICATIONS 1. Procédé de commande d'un moteur à combustion interne (1), selon lequel on détermine un jeu de consignes (y sp) de variables de sortie (y) du moteur, on applique ces consignes à un modèle inverse (M-') du moteur et on en tire un jeu de commandes (u) à appliquer à des moyens de réglage (11) du moteur, caractérisé en ce que l'on élabore le modèle inverse du moteur à partir d'une exploitation itérative d'une boucle comportant d'une part un modèle direct (M) du moteur et d'autre part une matrice de correction ($i) des entrées du modèle direct en fonction de ses sorties. 2. Procédé selon la revendication 1, caractérisé en ce que a) on fournit un jeu de commandes initiales (uo) au modèle direct (M) du moteur b) on compare l'estimation (y m) des variables de sortie fournie par le modèle au jeu de consignes (ysp) et on en tire un vecteur d'écart (Ay), c) on traite ce vecteur d'écart par la matrice de correction (Y') pour en tirer un vecteur de correction (Au) des commandes et d) on somme le vecteur de correction avec le jeu de commandes initiales pour obtenir le jeu de commandes (u) à appliquer aux moyens de réglage (11). 3. Procédé selon la revendication 2, caractérisé en ce que les opérations a) à d) sont répétées avec une récurrence temporelle prédéterminée et en ce que le jeu de commandes (u) de l'étape d) sert de jeu de commandes initiales (uO) à l'étape a) de l'itération suivante. 4. Procédé selon la revendication 2, caractérisé en ce qu'une série d'itérations des opérations a) à d) est déclenchée à chaque point mort haut du moteur, en ce que à l'étape d) on intègre les vecteurs de correction (Au) successifs, et en ce que le jeu de commandes (u) de l'étape d) n'est appliqué aux moyens de réglage que lorsque le vecteur d'écart relatif (Ay/ysp) de l'étape b) est inférieur à un seuil prédéterminé. 5. Procédé selon la revendication 4, caractérisé en ce qu'à chaque point mort haut du moteur, le jeu de commandes initiales (uo) de l'étape a) est le jeu de commande (u) appliqué au point mort haut précédent. 6. Procédé selon la revendication 2, caractérisé en ce que la matrice de correction (jl) est obtenue par inversion ou pseudo inversion de la matrice jacobienne (J) des dérivées partielles des variables de sortie (y) du moteur par rapport aux commandes. 7. Procédé selon la revendication 6, caractérisé en ce que l'influence des paramètres à variation lente (e) est négligée dans la calcul des coefficients de la matrice jacobienne et en ce que le modèle direct reçoit un vecteur d'état (z) représentatif des conditions de fonctionnement (MAP, N, 0) actuelles du moteur comprenant une mesure de ces paramètres. 8. Procédé selon la revendication 6, caractérisé en ce que la matrice de correction est déterminée expérimentalement lors d'essais de mise au point du moteur et en ce que ses coefficients sont mémorisés dans une table en fonction des conditions de fonctionnement (MAP, N) du moteur. 9. Procédé selon la revendication 6, caractérisé en ce que la matrice jacobienne est déterminée à chaque itération à partir d'une estimation des dérivées partielles tirée du calcul de la variation des sorties du modèle direct en fonction d'une variation unitaire d'une de ses entrées autour du point de fonctionnement courant. 10. Procédé selon la revendication 2, caractérisé en ce que lors du démarrage du moteur, le jeu de commandes initiales (u0) est déterminé en fonction de la température (0) du moteur.