Brevet FR3129005A1 — publié le 20230512

L’invention concerne un procédé de contrôle d’un moteur de véhicule comprenant une unité électronique de contrôle du moteur, comprenant un calculateur multicœur (C), un premier module (L1), un deuxième module (L2), et un troisième module (L3) adapté pour mettre en œuvre une commande de mise en sécurité sur requête du deuxième module ou sur détection d’une défaillance du premier module, le premier module étant adapté pour s’exécuter sur un premier cœur (C1) du calculateur, le deuxième module étant adapté pour s’exécuter sur un deuxième cœur (C2) du calculateur, l’unité électronique de contrôle du moteur comprenant un quatrième module (LM) adapté pour assurer de manière redondante les fonctions principales de pilotage du moteur du véhicule, et pour s’exécuter dans le cadre du deuxième module et sur le deuxième cœur, le troisième module assurant l’arbitrage entre une commande produite par le premier module et une commande produite par le quatrième module. Figure d’abrégé : Figure 2 Procédé et dispositif de contrôle et commande d’un moteur de véhicule L’invention concerne le domaine du contrôle et de la commande d’un moteur de véhicule et plus particulièrement de sa sécurité, qu’il s’agisse d’un moteur électrique, thermique ou hybride. Il est connu de piloter toutes les fonctions, tant de commande proprement dite que de maintenance d’un moteur à partir d’un dispositif de contrôle et commande, appelé ECU (pour « Engine Control Unit » ou « Electronic Control Unit » en anglais). Pour cela, tel qu’illustré à la , un dispositif de contrôle et commande comprend typiquement un calculateur C intégré dans l’ECU (non représenté), qui regroupe toute la partie matérielle et au moins un applicatif ou logiciel qui s’exécute sur ledit calculateur C. Plus particulièrement utilisée dans le domaine de l’automobile, un tel dispositif de contrôle et commande est classiquement organisé autour d’un calculateur multicœur C, et comprend un premier module L1, généralement une couche logicielle applicative, adapté pour assurer seul et de manière nominale et complète toutes les fonctions de pilotage du moteur du véhicule, un deuxième module L2, également généralement une couche logicielle applicative, adapté pour surveiller le bon fonctionnement du premier module L1 et pour commander une mise en sécurité du moteur et donc par voie de conséquence du véhicule, en cas de détection d’une défaillance du premier module L1, et un troisième module L3, généralement matériel, adapté pour surveiller le bon fonctionnement du calculateur C et pour mettre en œuvre ladite mise en sécurité, sur requête du deuxième module L2 ou sur détection d’une défaillance, par ses propres moyens de détection. Ainsi en permanence, lorsque le premier module L1 fonctionne, le deuxième module L2 évalue les commandes produites par le premier module L1 à l’attention du moteur. Tant que ces commandes sont cohérentes, le deuxième module L2 ne détecte aucune défaillance et laisse ces commandes transiter jusqu’au moteur. A défaut, le deuxième module L2 détecte une défaillance et réalise une mise en sécurité. Une mise en sécurité peut être réalisée selon au moins trois niveaux comme suit : Un premier niveau dit « mode dégradé » ou en anglais « limp-mode » autorise toutes les fonctions du moteur, mais impose un régime ou une vitesse maximale. Ainsi il reste possible de déplacer le véhicule, typiquement pour le conduire au garage afin de réparer la défaillance, mais à vitesse limitée, afin de limiter les risques de casse moteur. Un deuxième niveau dit « mode stop » arrête le moteur et ainsi immobilise le véhicule. Une telle mise en sécurité est typiquement commandée suite à une détection de défaillance réalisée par le deuxième module L2 ou par le troisième module L3. La mise en sécurité est typiquement commandée par le deuxième module L2. Cette commande est vérifiée et le cas échéant redoublée par le troisième module L3 en cas de défaut d’actionnement. Un troisième niveau dit « mode reset » en anglais, pour « mode réinitialisation » de mise en sécurité réalise une réinitialisation du calculateur C. Une telle mise en sécurité est commandée par le troisième module L3 soit sur une détection par ses propres moyens, soit sur requête du deuxième module L2. Le but est ici de tenter de lever les erreurs logicielles non rémanentes tout en plaçant le moteur et le véhicule dans un état sécurisé. Une telle structure de type connue est par exemple décrite dans les documents EP1577773A1 ou WO2013164224. Une telle approche a pour conséquence de trop privilégier une immobilisation du véhicule, alors même que dans certains cas, une certaine mobilité pourrait être conservée. La présente demande vise à pallier au moins en partie ces inconvénients. Pour cela, l’invention a pour objet un procédé de contrôle et commande d’un moteur de véhicule comprenant une unité électronique de contrôle du moteur comprenant un calculateur multicœur C, un premier module L1 adapté pour assurer seul et de manière nominale et complète les fonctions de pilotage du moteur du véhicule, un deuxième module L2 adapté pour surveiller le bon fonctionnement du premier module L1 et pour commander une mise en sécurité en cas de détection d’une défaillance du premier module L1, et un troisième module L3 adapté pour surveiller le bon fonctionnement du calculateur multicœur C et pour mettre en œuvre ladite commande de mise en sécurité, sur requête du deuxième module L2 ou sur détection par ses propres moyens d’une défaillance du premier module L1. Le procédé selon l’invention est remarquable en ce que le premier module L1 est apte à s’exécuter sur un premier cœur C1 du calculateur multicœur C, en ce que le deuxième module L2 est apte à s’exécuter sur un deuxième cœur C2 du calculateur multicœur C, différent du premier cœur C1, et en ce que l’unité électronique de contrôle du moteur comprend un quatrième module LM adapté pour assurer de manière redondante et simplifiée les fonctions principales de pilotage du moteur du véhicule, adapté en outre pour s’exécuter dans le cadre du deuxième module L2 et sur le deuxième cœur C2, le troisième module L3 assurant l’arbitrage entre une commande produite par le premier module L1 et une commande produite par le quatrième module LM. Selon un mode de réalisation avantageux, l’arbitrage entre une commande produite par le premier module L1 et une commande produite par le quatrième module LM comporte les étapes suivantes : évaluation d’une première condition T1 : une commande produite par le premier module L1 est proche de, ou égale à, une commande produite par le quatrième module LM, évaluation d’une deuxième condition T2 : la surveillance du deuxième module L2 par le troisième module L3 n’a détecté aucune erreur, si la première condition T1 et la deuxième condition T2 sont toutes deux vraies, la commande produite par le premier module L1 est appliquée au moteur, si la première condition T1 est fausse et la deuxième condition T2 est vraie, la commande produite par le quatrième module LM est appliquée au moteur, si la première condition T1 est fausse et la deuxième condition T2 est fausse, une mise en sécurité est commandée, si la première condition T1 est vraie et la deuxième condition T2 est fausse, une mise en sécurité est commandée. Selon un mode de réalisation avantageux, le premier module L1 est mis en œuvre par une couche logicielle applicative, le deuxième module L2 est mis en œuvre par une couche logicielle applicative, le troisième module L3 est mis en œuvre par un module matériel, et le quatrième module LM est mis en œuvre par une couche logicielle applicative. La présente invention se rapporte en outre à une unité électronique de contrôle et commande d’un moteur de véhicule comprenant un calculateur multicœur C, un premier module L1 adapté pour assurer seul et de manière nominale et complète les fonctions de pilotage du moteur du véhicule, un deuxième module L2 adapté pour surveiller le bon fonctionnement du premier module L1 et pour commander une mise en sécurité en cas de détection d’une défaillance du premier module L1, et un troisième module L3 adapté pour surveiller le bon fonctionnement du calculateur multicœur C et pour mettre en œuvre ladite commande de mise en sécurité, sur requête du deuxième module L2 ou sur détection par ses propres moyens d’une défaillance du premier module L1, caractérisée en ce que le premier module L1 est apte à s’exécuter sur un premier cœur C1 du calculateur multicœur C, en ce que le deuxième module L2 est apte à s’exécuter sur un deuxième cœur C2 du calculateur multicœur C, différent du premier cœur C1, et en ce que l’unité électronique de contrôle du moteur comprend un quatrième module LM adapté pour assurer de manière redondante et simplifiée les fonctions principales de pilotage du moteur du véhicule, et adapté en outre pour s’exécuter dans le cadre du deuxième module L2 et sur le deuxième cœur C2, le troisième module L3 assurant l’arbitrage entre une commande produite par le premier module L1 et une commande produite par le quatrième module LM. Selon une caractéristique avantageuse de l’unité électronique de contrôle et commande selon l’invention, le premier module L1 est une couche logicielle, le deuxième module L2 est une couche logicielle, le troisième module L3 est un module matériel, et le quatrième module LM est une couche logicielle. L’invention sera mieux comprise à la lecture de la description qui suit, faite uniquement à titre d’exemple, et en référence aux figures en annexe dans lesquelles : illustre de manière schématique une organisation en trois modules L1, L2, L3 selon l’art antérieur, illustre de manière schématique une organisation en trois modules L1, L2, L3 augmentée selon l’invention, illustre de manière schématique l’arbitrage entre L1 et LM. Procédé de contrôle et commande d’un moteur de véhicule comprenant une unité électronique de contrôle du moteur, comprenant un calculateur multicœur (C) un premier module (L1) adapté pour assurer seul et de manière nominale et complète les fonctions de pilotage du moteur du véhicule, un deuxième module (L2) adapté pour surveiller le bon fonctionnement du premier module (L1) et pour commander une mise en sécurité en cas de détection d’une défaillance du premier module (L1), et un troisième module (L3) adapté pour surveiller le bon fonctionnement du calculateur multicœur (C) et pour mettre en œuvre ladite commande de mise en sécurité, sur requête du deuxième module (L2) ou sur détection par ses propres moyens d’une défaillance du premier module (L1), caractérisé en ce que le premier module (L1) est adapté pour s’exécuter sur un premier cœur (C1) du calculateur multicœur (C) en ce que le deuxième module (L2) est adapté pour s’exécuter sur un deuxième cœur (C2) du calculateur multicœur (C), différent du premier cœur (C1), et en ce que l’unité électronique de contrôle du moteur comprend un quatrième module (LM) adapté pour assurer de manière redondante et simplifiée les fonctions principales de pilotage du moteur du véhicule, et adapté en outre pour s’exécuter dans le cadre du deuxième module (L2) et sur le deuxième cœur (C2), le troisième module (L3) assurant l’arbitrage entre une commande produite par le premier module (L1) et une commande produite par le quatrième module (LM). Procédé de contrôle et commande selon la revendication précédente, où l’arbitrage entre une commande produite par le premier module (L1) et une commande produite par le quatrième module (LM) comporte les étapes suivantes : évaluation d’une première condition (T1) : une commande produite par le premier module (L1) est proche de, ou égale à, une commande produite par le quatrième module (LM), évaluation d’une deuxième condition (T2) : la surveillance du deuxième module (L2) par le troisième module (L3) n’a détecté aucune erreur, si la première condition (T1) et la deuxième condition (T2) sont toutes deux vraies, la commande produite par le premier module (L1) est appliquée au moteur, si la première condition (T1) est fausse et la deuxième condition (T2) est vraie, la commande produite par le quatrième module (LM) est appliquée au moteur, si la première condition (T1) est fausse et la deuxième condition (T2) est fausse, une mise en sécurité est commandée, si la première condition (T1) est vraie et la deuxième condition (T2) est fausse, une mise en sécurité est commandée. Procédé de contrôle et commande selon la revendication 1 ou 2, dans lequel le premier module (L1) est mis en œuvre par une couche logicielle applicative, le deuxième module (L2) est mis en œuvre par une couche logicielle applicative, le troisième module (L3) est mis en œuvre par un module matériel, et le quatrième module (LM) est mis en œuvre par une couche logicielle applicative. Unité électronique de contrôle et commande d’un moteur de véhicule comprenant un calculateur multicœur (C), un premier module (L1) adapté pour assurer seul et de manière nominale et complète les fonctions de pilotage du moteur du véhicule, un deuxième module (L2) adapté pour surveiller le bon fonctionnement du premier module (L1) et pour commander une mise en sécurité en cas de détection d’une défaillance du premier module (L1), et un troisième module (L3) adapté pour surveiller le bon fonctionnement du calculateur multicœur (C) et pour mettre en œuvre ladite commande de mise en sécurité, sur requête du deuxième module (L2) ou sur détection par ses propres moyens d’une défaillance du premier module (L1), caractérisé e en ce que le premier module (L1) est adapté pour s’exécuter sur un premier cœur (C1) du calculateur multicœur (C), en ce que le deuxième module (L2) est adapté pour s’exécuter sur un deuxième cœur (C2) du calculateur multicœur (C), différent du premier cœur (C1), et en ce que l’unité électronique de contrôle du moteur comprend un quatrième module (LM) adapté pour assurer de manière redondante et simplifiée les fonctions principales de pilotage du moteur du véhicule, et adapté en outre pour s’exécuter dans le cadre du deuxième module (L2) et sur le deuxième cœur (C2), le troisième module (L3) assurant l’arbitrage entre une commande produite par le premier module (L1) et une commande produite par le quatrième module (LM). Unité de contrôle et commande selon la revendication 4, dans laquelle le premier module (L1) est une couche logicielle, le deuxième module (L2) est une couche logicielle, le troisième module (L3) est un module matériel, et le quatrième module (LM) est une couche logicielle.