FR 3004567 A1 20141017 FR 1453096 A 20140408 Domaine de l'invention La présente invention se rapporte à une unité de calcul de modèle pour des appareils de commande dans lesquels des modèles fonctionnels fondés sur des données sont implémentés pour exécuter par des circuits, des fonctions notamment pour commander un système de moteur. L'invention a également pour objet un procédé de calcul des modèles fonctionnels fondés sur des données dans de telles unités de calcul de modèles. Etat de la technique Selon l'état de la technique, on connaît des appareils de commande équipés d'une unité principale de calcul et d'une unité séparée de calcul de modèle servant à calculer des modèles fonctionnels fondés sur des données. C'est ainsi que, par exemple, le document DE 10 2010 028 266 A 1 décrit un appareil de commande comportant un circuit logique supplémentaire comme unité de calcul de modèle qui est réalisé pour exécuter par des circuits, le calcul de fonctions exponentielles. Cela permet d'exécuter dans une unité de circuit des procédés de régression de Bayes nécessaires notamment pour calculer des modèles de procédé de Gauss. L'unité de calcul de modèle est globalement conçue pour exécuter des procédés mathématiques de calcul de modèle fonctionnel fondé sur des données à partir de paramètres et de points d'appui ou de données d'entraînement. En particulier, l'unité de calcul de modèle est réalisée par un circuit pour calculer efficacement des fonctions expo- nentielles permettant de calculer des modèles de procédé de Gauss avec une vitesse de calcul plus importante que ne le permettrait l'unité principale de calcul. En général, les données de configuration, les paramètres et les points d'appui servant à calculer les modèles fonctionnels fondés sur des données s'obtiennent avant de faire des calculs dans l'unité de calcul de modèle sur les données ainsi introduites et ensuite les calculs fondés sur les données de configuration à l'aide des circuits de l'unité de calcul de modèle. L'implémentation actuelle des circuits d'une telle unité de calcul de modèle peut toutefois se traduire dans le cas de données de configuration défavorables à des problèmes numé- riques pour le calcul de façon que tous les modèles fonctionnels fondés sur des données non toutes définies hors ligne, permettent un calcul stable par l'unité de calcul de modèle. Exposé et avantages de l'invention La présente invention a pour but de remédier aux incon- vénients de l'état de la technique et a ainsi pour objet une unité de calcul de modèle pour calculer un modèle fonctionnel fondé sur des données dans un appareil de commande comportant un coeur de calculateur, le coeur de calculateur comprenant : une unité de multiplication pour effectuer une multiplication par un circuit, une unité d'addition pour effectuer une addition par un circuit, une unité de fonction exponentielle pour calculer une fonction expo- nentielle par un circuit, une mémoire, notamment un registre de configuration pour enregistrer des hyper-paramètres et des données de points d'appui du modèle fonctionnel fondé sur des données à calculer, et un circuit logique pour commander par un circuit le déroulement des calculs dans l'unité de multiplication, dans l'unité d'addition, dans l'unité de fonction exponentielle et dans la mémoire notamment dans le registre de configuration pour obtenir le modèle fonctionnel fondé sur des données. L'unité de calcul de modèle est une unité logique compor- tant un circuit pour effectuer par le circuit, certains calculs pour des modèles fonctionnels fondés sur des données, notamment pour l'intégration commune avec un coeur de calculateur. Cette unité logique effectue un procédé de calcul entraîné au préalable et mis en mémoire dans le circuit pour un modèle de régression de Bayes exécuté en ligne. L'utilisation d'un modèle de procédé de Gauss comme modèle fonction- nel fondé sur des données permet notamment par la transformation de la normalisation d'entrée d'un point d'essai consistant à déterminer une valeur de modèle ainsi par la transformation du terme exponentiel, de déterminer la valeur du modèle du procédé de Gauss comme une suc- cession d'additions et de multiplications ainsi que d'une fonction exponentielle. En particulier, l'unité de calcul de modèle peut être constituée exclusivement des unités évoquées ci-dessus. Le circuit permet de réaliser un bloc fonctionnel de cir- cuit, c'est-à-dire un bloc MAC (MAC = Multiplicateur-Accumulateur) pour des calculs d'entiers ou un bloc FMA (FMA = Addition multiple fusionnée) encore appelé bloc FMAC (FMAC = Accumulation multiple fusionnée) pour les calculs de virgule flottante. Ce bloc fonctionnel de circuit sera appelé unité MAC pour la description des calculs sur entier et avec aussi virgule flottante. L'unité MAC peut effectuer l'opération a+ b x c par sa réalisation directe dans un circuit, d'une manière particulièrement efficace et ainsi rapide. Cela est exécuté, le cas échéant, dans quelques cycles de cadence et dans les cas particuliers également à l'intérieur d'un seul cycle. En prévoyant de manière séparée, une telle unité de calcul de modèle avec une unité MAC réalisée sous la forme d'un circuit et d'une unité de fonction exponentielle réalisée dans un circuit, pour le calcul exclusif d'une fonction exponentielle, permet de disposer d'un circuit logique particulièrement efficace qui peut être intégré comme unité de calcul de modèle avec un coeur de calculateur (permettant d'appliquer les programmes) dans un appareil de commande servant à déterminer des valeurs de modèle pour le modèle fonctionnel fondé sur des données, notamment des modèles de procédé de Gauss. En outre, l'unité de multiplication et l'unité d'addition peuvent être réalisées séparément ou en combinaison dans une unité MAC. Selon un développement, on peut avoir plusieurs coeurs de calculateur qui auront une unité fonctionnelle exponentielle com- mune et/ou une unité MAC commune. En variante, chaque coeur de calculateur peut avoir sa propre unité fonctionnelle exponentielle et sa propre unité MAC. Suivant une autre caractéristique, le modèle fonctionnel attribue une valeur de modèle à plusieurs grandeurs d'entrée et le dé- roulement du calcul consiste chaque fois pour un calcul d'une normali- sation d'entrée des grandeurs d'entrée à l'aide de l'unité MAC, une multiplication et une addition ainsi que pour le calcul d'une normalisation de sortie de la grandeur de sortie à l'aide de l'unité MAC, une multiplication et une addition. Selon un développement, le modèle fonctionnel peut pré- voir le calcul du terme ((xi) - u)2 dans lequel xi représente les points d'appui du modèle fonctionnel fondé sur des données et u représente les grandeurs d'entrée, le circuit logique, l'unité d'addition et l'unité de multiplication ainsi que l'unité MAC sont commandés pour calculer le io terme par une unité d'addition et une unité de multiplication ou par une unité MAC. Selon un autre développement, il est prévu un appareil de commande, notamment pour un système de moteur équipé d'un moteur thermique et qui comprend une unité de calcul et l'unité de calcul 15 de modèle évoquée ci-dessus. Selon un autre développement, l'invention a pour objet un procédé de calcul d'un modèle fonctionnel fondé sur des données, notamment d'un modèle de procédé de Gauss, dans l'unité de calcul de modèle décrites ci-dessus et le modèle fonctionnel est complètement 20 calculé par des étapes de calcul exécutées successivement et ces étapes de calcul se limitent à une multiplication et une addition combinées ainsi qu'à un calcul d'une fonction exponentielle. Dessins La présente invention sera décrite ci-après de manière 25 plus détaillée à l'aide d'une unité de calcul de modèle et de son procédé représentés dans les dessins annexés dans lesquels : la figure 1 est un schéma d'une architecture de circuit d'appareil de commande servant à commander un système physique, la figure 2 est une représentation sous la forme d'un schéma par 30 blocs servant à déterminer la valeur du modèle pour un modèle de procédé Gauss, pour une grandeur d'entrée de dimensions D d'un vecteur de grandeur d'entrée, la figure 3 est une représentation détaillée d'un coeur de calculateur d'une unité de calcul de modèle de l'appareil de commande, la figure 4 est une représentation schématique d'une architecture de circuit pour deux coeurs de calculateur utilisant en commun une unité MAC et une unité fonctionnelle exponentielle, et la figure 5 est une représentation schématique d'une autre architec- ture de circuit pour deux coeurs de calculateur avec des unités MAC distinctes et une unité de fonction exponentielle commune. Description de modes de réalisation La figure 1 est une représentation schématique d'une ar- chitecture de circuit d'un appareil de commande 1 intégré, comportant une unité de calcul 2 et une unité de calcul de modèle 3 pour calculer par un circuit, un modèle fonctionnel fondé sur des données, de manière intégrée. L'unité de calcul 2 et l'unité de calcul de modèle 3 sont reliées par un système de bus 4. En principe, l'unité de calcul de modèle 3 comporte uni- quement des circuits (circuits câblés) et elle est de préférence non réali- sée pour exécuter des codes-programmes. Pour cette raison, il n'est pas nécessaire d'avoir un processeur dans l'unité de calcul de modèle 3. Cela permet une réalisation optimisée du point de vue des ressources pour une telle unité de calcul de modèle 3. L'unité de calcul de modèle 3 peut comporter un ou plu- sieurs coeurs de calculateur 31, une mémoire interne 32 et une unité DMA 33 (DMA = Accès Direct en Mémoire). Les coeurs de calculateur 31 à mémoire interne 32 et l'unité DMA 33 sont reliés par une liaison interne de communication 34. L'utilisation de modèles fonctionnels fondés sur des don- nées non paramétrées, repose sur un procédé de régression de Bayes. Le principe de la régression de Bayes est par exemple décrit dans C.E. Rasmusen et al., « Gaussian Processes for Machine Learning », MIT Press 2006. La régression de Bayes est un procédé fondé sur des don- nées s'appuyant sur un modèle. Pour établir le modèle, il faut des points de mesure de données d'entraînement ainsi que les données de sortie correspondantes pour une grandeur de sortie. On établit le modèle en utilisant des données de points d'appui qui correspondent totalement ou partiellement aux données d'entraînement ou ont été générées à partir de celles-ci. En outre, on définit des hyper-paramètres abstraits qui paramétrisent l'espace des fonctions de modèles et pondèrent efficacement l'influence des différents points de mesure des données d'entraînement sur le futur modèle prévisionnel. Les hyper-paramètres abstraits sont définis par un pro- cédé d'optimisation. Une possibilité pour un tel procédé d'optimisation consiste à optimiser une probabilité marginale p(Y I H,X). La probabilité marginale p(Y I H,X) décrit la plausibilité des valeurs Y mesurées des données d'entraînement représentées comme vecteur Y, le cas échéant, les paramètres de modèle H ainsi que les valeurs x des données d'entraînement. Dans l'entraînement de modèle, on rend maximum la probabilité marginale p(Y I H,X) en ce qu'on cherche les hyperparamètres appropriés permettant d'expliquer particulièrement bien les données. Pour simplifier le calcul, on prend le logarithme de p(Y I H,X) que l'on maximise car le logarithme ne modifie pas la pente de la fonc- es tion de plausibilité. Le procédé d'optimisation assure ainsi automatiquement un compromis entre la complexité du modèle et la précision de la représentation du modèle. Certes, avec une complexité croissante du modèle, on peut arriver à n'importe quelle précision poussée de représentation 20 des données d'entraînement mais cela peut, en même temps, se tra- duire par une sur-adaptation du modèle aux données d'entraînement et en produire ainsi de plus mauvaises propriétés de généralisation. Le calcul du modèle de procédé de Gauss se fait suivant les étapes présentées schématiquement à la figure 2. Les valeurs 25 d'entrée Ûd pour le point d'essai u (vecteur des grandeurs d'entrée) est tout d'abord normé et cela en appliquant la formule suivante : lia - (mx)a Ud = (s,d) Dans cette formule, mx est la fonction de valeur moyenne 30 conservant la valeur moyenne des valeurs d'entrée des données de points d'appui ; sy représente la variance des valeurs d'entrée des données de points d'appui. Le résultat de l'établissement du modèle fonctionnel non paramétré s'obtient par la formule suivante : N D i_((xi) d Ud)2) V = ((2y)i61.eXp - i=1 d=1 La valeur de modèle v ainsi obtenue est normée à l'aide de la norme de sortie suivant la formule : = vsy + m3, Dans cette formule v représente la valeur de modèle nor- mée (valeur de sortie) sur un point d'essai normé u (vecteur de grandeur d'entrée de la dimension D), i3 correspond à une valeur de modèle (non normée) valeur de sortie en un point d'essai it (non normé) (vecteur de grandeur d'entrée de la dimension D), xi représente un point d'appui des données de points d'appui, N représente le nombre de points d'appui des données de points d'appui, D représente la dimension de l'espace données d'entrée/données d'entraînement/données de points d'appui ; /d et o-f représentent les hyper-paramètres résultant de l'entraînement de modèle. Le vecteur Qy est une grandeur calculée à partir des hyper-paramètres et des données d'entraînement. En outre, My correspond à la fonction de valeur moyenne concernant la valeur moyenne des valeurs de sortie des données de points d'appui et sy représente la variance des valeurs de sortie des données de points d'appui. Normer les grandeurs d'entrée et de sortie consiste à cal- culer de façon caractéristique le modèle de procédé de Gauss dans un espace normé. Pour démarrer un calcul, l'unité de calcul 2 sollicite l'unité DMA 33 à charger les données de configuration concernant le modèle fonctionnel à calculer à partir de la mémoire 5 dans la mémoire interne 32 et de commencer le calcul dans le coeur de calculateur 31 ; le calcul sera fait à l'aide des données de configuration. Les données de configuration comprennent les hyper-paramètres d'un modèle de procédé de Gauss ainsi que des données de points d'appui. La chaîne de traitement résultant de la figure 2 n'est pas favorable pour un calcul numérique et dans le cas présent, le cas échéant, il pourra se faire de manière stable dans l'unité de calcul de modèle 3. Il est pour cela prévu de réaliser le coeur de calculateur 31 pour pouvoir exécuter les calculs d'une manière plus simple, plus rapide et/ou numériquement plus stable. Pour cela, on remplace la normalisation d'entrée par : Ud = (Si x) d .1-id + (Mi x) d avec 1 (S x ) d - (s,x).1 et (MX) d (mi X) d = x) En outre, on peut remplacer la prévision du modèle de régression de Bayes par : D 17 = (Q' Y i . exp l' d .((xi)d - ud)2) i=1 d=1 avec (vy), = (Qy),0-1- et 25 1 = 21'd La boucle de sommation interne effectue la sommation des produits de l'd par des différences élevées au carré entre les données de points d'appui et le point d'essai u en ligne. Les échelles de longueur /d sont, de manière caractéristique, différentes pour chaque modèle. La transformation de la normalisation d'entrée et la reformula- tion du modèle de régression de Bayes font que le coeur de calculateur 31 peut utiliser, de façon répétée, des opérations de la forme a+ b x c pour calculer la valeur de modèle. Dans une implémentation par circuit, un calcul de la forme a+ b x c se fait d'une manière particulièrement efficace à l'aide d'une unité MAC. Une telle unité MAC se réalise sous la forme d'un circuit pour pouvoir exécuter le calcul en l'espace de quelques cycles de cadence. Le cas échéant, le calcul peut même se faire à l'intérieur d'un seul cycle. De plus, la transformation indiquée ci-dessus et la reformu- lation se traduisent par un calcul numériquement stable de la valeur de modèle dans le coeur de calculateur 31. Le calcul est réalisé sous la forme d'un circuit comme cela est indiqué dans le pseudo code C. /* Etape 1 : Normalisation d'entrée */ 001 : for (k=0; k La réalisation de la figure 5 montre, en revanche, deux coeurs de calculateur 31 ayant chacun sa propre unité MAC 44 et qui accède à une unité de fonction exponentielle 41 commune.5 NOMENCLATURE DES ELEMENTS PRINCIPAUX 1 Appareil de commande intégré 2 Unité de calcul 3 Unité de calcul de modèle 4 Système de bus 5 Mémoire 31 Coeur de calculateur 32 Mémoire interne 33 Unité DMA 34 Liaison de communication 41 Unité de fonction exponentielle 42 Unité d'addition 43 Unité de multiplication 44 Unité MAC 45 Registre 46 Circuit logique u Point d'essai xi Donnée de point d'appui D Dimension N Nombre de données d'entraînement25 REVENDICATIONS1°) Unité de calcul de modèle (3) pour calculer un modèle fonctionnel fondé sur des données dans un appareil de commande (1) comportant un coeur de calculateur (31), le coeur de calculateur (31) comprenant : une unité de multiplication (43) pour effectuer une multiplication par un circuit, une unité d'addition (42) pour effectuer une addition par un circuit, une unité de fonction exponentielle (41) pour calculer une fonction exponentielle par un circuit, une mémoire, notamment un registre de configuration (45) pour enregistrer des hyper-paramètres et des données de points d'appui du modèle fonctionnel fondé sur des données à calculer, et un circuit logique (46) pour commander par un circuit le déroule- ment des calculs dans l'unité de multiplication (43), dans l'unité d'addition (42), dans l'unité de fonction exponentielle (41) et dans la mémoire notamment dans le registre de configuration (45) pour obtenir le modèle fonctionnel fondé sur des données. 2°) Unité de calcul de modèle (3) selon la revendication 1, caractérisée en ce que l'unité de multiplication et l'unité d'addition sont dans une unité MAC (44) combinée dans un circuit. 3°) Unité de calcul de modèle (3) selon la revendication 1 ou 2, caractérisée en ce qu' elle comprend plusieurs coeurs de calculateur (31) qui ont une unité de fonction exponentielle (41) commune et/ou une unité MAC (44) commune. 4°) Unité de calcul de modèle (3) selon la revendication 1, caractérisée en ce que le modèle fonctionnel attribue une valeur de modèle à plusieurs grandeurs d'entrée, le déroulement du calcul consistant pour un calcul à normaliser l'entrée des grandeurs d'entrée notamment en effectuant, àl'aide de l'unité MAC (44), une multiplication et une addition et pour effectuer un calcul d'une normalisation de sortie des grandeurs de sortie notamment à l'aide de l'unité MAC (44) pour exécuter une multiplication et une addition. 5°) Unité de calcul de modèle (3) selon l'une des revendications 2 à 4, caractérisée en ce que le modèle fonctionnel prévoit le calcul d'un terme ((xi) - u)2, terme dans lequel xi représente les points d'appui du modèle fonctionnel fondé sur des données et u représente les grandeurs d'entrée, le circuit logique exécutant le calcul du terme à l'aide de l'unité MAC (44) ou à l'aide de l'unité de multiplication (43) et de l'unité d'addition (42). 6°) Appareil de commande (1), notamment pour un système de moteur équipé d'un moteur thermique, comprenant : une unité de calcul (2) une unité de calcul de modèle (3) selon l'une quelconque des revendications 1 à 5. 7°) Procédé de calcul d'un modèle fonctionnel fondé sur des données, notamment d'un modèle de procédé de Gauss, dans une unité de calcul de modèle (3) selon l'une quelconque des revendications 1 à 5, le modèle fonctionnel étant calculé complètement par des étapes de calcul exécutées successivement, les étapes de calcul comprenant au moins une multiplication combinée et une addition ou seulement une multiplication combinée et des calculs d'addition ainsi qu'un calcul d'une fonction exponentielle.30