Brevet FR3095705A1 — publié le 20201106

Description Titre de l'invention : Procédé de supervision d'une unité de contrôle moteur Domaine technique de l'invention [0001] L'invention concerne les turbomachines, tel qu'un turboréacteur ou un turbo- propulseur d'aéronef, et plus particulièrement les unités de contrôle de telles turbomachines. Etat de la technique antérieure [0002] Le fonctionnement des turbomachines des aéronefs est contrôlé par le biais d'unités de contrôle, apte à piloter et réguler les turbomachines, lors des différentes phases de vol de l'aéronef. [0003] Ces unités de contrôle comprennent des calculateurs électroniques embarqués, com- municant entre eux, et réalisant en parallèles des calculs en parallèles, à partir de mêmes données d'entrées provenant par exemple de capteurs, afin d'établir les commandes pour les différents organes de la turbomachine. [0004] Lors d'un cycle de calcul d'un calculateur, trois tâches sont réalisées. Une première tâche, appelée tâche OS (de l'anglais Operating System), consiste à lancer le système d'exploitation, c'est-à-dire l'ensemble des programmes gérant l'utilisation des ressources par des tâches applicatives. Une seconde tâche dite applicative ou AS (acronyme provenant de l'anglais Applicative System), consiste à réaliser des calculs nécessaires pour déterminer les commandes pour piloter et réguler les turbomachines. La tâche AS représente 80 à 90 % du temps nécessaire à un cycle de calcul. Une troisième tâche clôture le cycle de calcul, il s'agit d'une tâche OS identique à la première tâche. [0005] Ces calculateurs, comprenant de nombreux composants, réalisent des autotests, afin de vérifier qu'aucun de leurs composants ne présentent un dysfonctionnement majeur. Ces autotests sont réalisés lors des tâches OS, c'est-à-dire en début et fin de cycles de calculs. La figure 1 illustre le séquencement des tâches et des autotests, comme cela est connu dans l'art antérieur. Un unique autotest 26 est lancé lors de la tâche OS du début du cycle de calcul 24. [0006] Néanmoins, des dysfonctionnements de composants peuvent survenir au niveau des composants des calculateurs lors des tâches applicatives. De tels dysfonctionnement peuvent ainsi être à l'origine de perturbations au niveau de l'unité de contrôle moteur. Il possible par une analyse post traitement, à partir des perturbations, de remonter au composant défaillant et donc au calculateur défaillant. Cela permet alors d'isoler le calculateur défaillant. 2 100071 11 est nécessaire que cette isolation soit réalisé le plus rapidement possible, afin de réduire l'impact du dysfonctionnement sur le pilotage et la régulation des turbomachines. L'invention a notamment pour but d'apporter une solution simple, efficace et économique aux inconvénients de la technique actuelle exposée ci-dessus. Résumé de l'invention [0008] A cette fin, il est proposé un procédé de supervision d'une unité de contrôle moteur à au moins cieux voies distinctes comprenant chacune un calculateur, chacune desdites deux voies comprenant au moins : - des moyens d'exécution d'une tâche applicative donnée, la tâche applicative consistant en partie en une pluralité de calculs exécutés successivement entre lesquels s'écoulent des périodes de latence ; - un premier composant aptes à réaliser les calculs de ladite tâche applicative, à partir de données d'entrée ; - un second composant apte à stocker des données ; la tâche applicative de la première voie et la tâche applicative de la seconde voie étant aptes à communiquer l'une avec l'autre, le procédé comprenant les étapes suivantes lors d'un cycle d'exécution courant j de la tâche applicative pour chaque voie a) Détecter une période de latence ; h) Exécuter, lors de cette période de latence, un test d'état de fonctionnement d'au moins l'un des premier et second composants; c) Déterminer un état dudit composant correspondant à un état de défaillance ou un état sain. [0009] Un tel procédé, permet ainsi à chaque calculateur, d'effectuer des autotests lors des tâches applicatives, en particulier lors des périodes de latence, de sorte à pouvoir déterminer, sans attendre la fin d'un cycle de calcul, l'état des différents composants compris dans le calculateur. Ainsi, grâce à un tel procédé, il possible détecter un calculateur défaillant sans attendre la fin d'un cycle de calcul, et d'isoler convenablement, à la fin du cycle, le calculateur défaillant. [0010] Cela permet en outre, de réaliser un diagnostic pour la maintenance en augmentant le nombre d'autotests, pour faciliter par la suite les opérations de maintenances au sol. [0011] Egalement, les étapes a) à c) peuvent être réalisées suite à l'étape suivante : - Détecter un symptôme résultant d'une défaillance d'au moins un des composants des deux voies. [0012] Ainsi, le procédé de supervision permet de déclencher des autotests de composants dès lors qu'un symptôme, résultant d'une défaillance de composants, est détecté. Ainsi, les autotests sont déclenchés au besoin, sur apparition de symptômes identifiés au 3 préalable et résultant de défaillances de composants des calculateurs de l'unité de contrôle moteur. [0013] L'invention permet donc de relier des défaillances de composants à des évènement et /ou comportement non souhaités d'une unité de commande moteur. Cela permet ainsi d'obtenir une table de correspondance, reliant des symptômes à des défaillances du matériel électronique embarqué, en d'autres termes des composants. [0014] Ainsi, lors de chaque cycle, les symptômes détectés (ainsi que les pannes en résultant) sont enregistrés dans une mémoire non volatile, ainsi que différentes informations sur l'environnement, par exemple thermique et/ou vibratoire, de sorte à faciliter les opérations de maintenance. [0015] En outre, le symptôme peut être une différence de signature entre les deux voies et/ou une perte de communication entre les deux calculateurs. [0016] Il s'agit d'identifier les symptômes d'une panne touchant les calculateurs. Ces symptômes pouvant être liées à une différence de signature entre les deux voies c'est-à-dire à une différence entre les résultats de calculs effectué par chacun des calculateurs au terme d'une tâche applicativc, ou pouvant être lié à de données non arrivées empêchant alors la réalisation de calculs de la tâche applicative sur au moins une des voies. [0017] Les deux voies peuvent être constituées chacune par un calculateur. [0018] De plus, si le symptôme détecté est une différence de signature entre les deux voies alors la détection peut être réalisée lors d'un cycle d'exécution j-1 qui précède un cycle d'exécution courant j. Le cycle d'exécution j-1 est appelé « cycle d'exécution précédent » ou « cycle précédent ». [0019] La différence de signature peut consister à comparer, à l'issue du cycle j et en parallèle sur les deux voies, la somme des calculs de la tâche applicative réalisés lors du cycle d'exécution courant j. [0020] Si le symptôme détecté est une perte de communication entre les calculateurs, alors la détection peut être réalisée lors du cycle d'exécution courant j. [0021] Selon une autre caractéristique, des instructions pour l'exécution du test de l'étape b) peuvent être envoyées par la tâche applicative. [0022] Ainsi, la tâche applicative enclenche les tests d'état de fonctionnement à la bonne fréquence et lors de période de latence de sorte à pouvoir établir l'état de fonctionnement des composants régulièrement, sans impacter les calculs de la tâche applicative. [0023] Selon une autre caractéristique, le premier composant peut être un circuit intégré re- programmable ou FPGA. [0024] De plus, le deuxième composant peut être une mémoire vive dynamique. Brève description des figures [0025] [fie.1] représente le séquencement de tâches et des tests d'état de fonctionnement lors d'un cycle de calcul selon l'art antérieur ; [0026] [fie.2] représente un logigramme simplifié du procédé selon l'invention; [0027] [fie.3] représente une architecture matérielle d'un exemple (l'unité de contrôle moteur à deux voies distinctes ; [0028] [fie.4] illustre le séquencement de tâches et des tests d'état de fonctionnement lors d'un cycle de calcul d'après le procédé selon l'invention ; [0029] [fie.5] illustre un logigramme d'un mode de réalisation du procédé selon l'invention. Description détaillée de l'invention [0030] Le procédé de supervision 1, dont le logigramme est illustré à la figure 2, vise à su- perviser une unité de contrôle moteur 2 à au moins deux voies distinctes 4, 6, dont un exemple d'architecture est illustré la figure 3. [0031] Une unité de contrôle moteur 2 à deux voies 4, 6, comprend ainsi, comme on peut le voir sur la figure 3, deux voies 4, 6 c'est-à-dire deux calculateurs. Cela permet d'assurer la redondance des calculateurs 4, 6 permet d'assurer une résistance à une éventuelle panne pouvant toucher l'un des calculateurs 4, 6. Bien que les deux calculateurs 4, 6 effectuent en parallèle, les mêmes calculs à partir des mêmes données d'entrées, seul un des calculateur 4 pilote et régule la turbomachine en calculant les commandes. Ainsi, le calculateur redondant 6, également qualifié de passif, n'envoie aucune commande aux organes constitutifs de la turbomachine. 100321 Les calculateurs 4, 6 de l'unité de contrôle moteur 2 illustrée, présente une même ar- chitecture. 100331 Premièrement, chaque calculateur 4, 6 comprend des moyens d'exécution d'une tâche applicative donnée. Ces moyens sont répartis dans le coeur numérique 8 du calculateur et la carte de communication 10. 100341 Le coeur numérique 8 comprend entre autre un microprocesseur 12. La carte de com- munication 10, participant à la communication inter-calculateur, comprend un premier 14 et un deuxième 16 composant. Le premier composant 14, apte à réaliser les calculs de ladite tâche applicative, à partir de données d'entrée est dans cet exemple un FPGA, mais peut également être un circuit intégré reprogrammable. Le deuxième composant 16, apte à stocker des données, est une mémoire, de préférence une mémoire vive dynamique. 100351 Le premier composant 14, le FPGA (en anglais Field-Programmable Gate Array), permet de cadencer les échanges entre les deux calculateurs 4, 6. Le deuxième composant 16, de préférence une DPRAM (en anglais Dual Ported Random Access Memory signifiant mémoire vive à double accès), reçoit des signaux du premier composant 14, et stocke des données telle que par exemple des données d'entrée provenant de capteurs, ainsi que des résultats intermédiaires de calculs. [0036] La tâche applicativc AS, consistant en partie en une pluralité de calculs exécutés suc- cessivement entre lesquels s'écoulent des périodes de latence, permet notamment de calculer, à partir de données d'entrée provenant de capteurs par exemple, les courants de commande à destination d'actionneurs d'organes mobiles constitutifs de la turbomachine. De tels actionneurs comprennent par exemple des servovalves électrohydrauliques associées à des vérins ou autres dispositifs. Une tâche applicativc AS est ainsi exécutée simultanément en parallèle sur chacun des calculateurs 4, 6 de l'unité de commande moteur 2. La tâche applicativc AS exécutée sur la première voie 4 et la tâche applicativc AS exécutée sur la seconde voie 6 sont aptes à communiquer l'une avec l'autre, par le biais d'un premier 18, deuxième 20 et troisième 22 bus. Le premier bus 18 permet d'échanger des adresses dc mémoires dc données à récupérer. Le deuxième bus 20 permet d'échanger des données, telles que par exemple des données d'entrées provenant de capteur. Il peut s'agir par exemple de mesures telles que des acquisitions de valeurs température du moteur. Les résultats des calculs intermédiaires et finaux transitent à travers le deuxième bus 20, du coeur numérique 8, effectuant les calculs, vers la carte de communication 10, émettant les courants calculés par exemple. Le troisième bus permet d'échanger les commandes calculées à partir des données d'entrée. Tl s'agit d'un bus dit de contrôle permettant de contrôler les autorisations en lecture et en écriture sur le premier bus 18 et le deuxième bus 20 et cela pour chacun des calculateurs 4, 6. Ce bus de contrôle permet ainsi de séquencer les échanges et de gérer les priorités des opérations de lecture, écriture et d'échange. [0037] Le procédé de supervision 1 est exécuté à chaque cycle d'exécution 24 sur chacune des voies, comme cela est illustré sur la figure 4. [0038] La première étape A du procédé 1 consiste à détecter un symptôme résultant d'une défaillance d'au moins un des composants 14, 16 des deux voies 4, 6. [0039] Les symptômes d'une défaillance de composants 14, 16 sur l'une des deux voies 4, 6 sont les suivants : - Données non arrivée : la tâche applicative AS en attente d'une donnée d'entrée (issue d'un calcul précédent ou d'un capteur) ne reçoit pas la donnée pour réaliser la suite des calculs. - Données erronées : la tâche applicative AS en attente d'une donnée d'entrée (issue d'un calcul précédent ou d'un capteur) reçoit une donnée erronée pour réaliser la suite des calculs, entrainant la réalisation de calculs erronés. - Données stockées à la mauvaise adresse : à la réception d'une donnée, celle-ci est stockée à une adresse du deuxième composant 16, une mémoire vive dynamique. Lorsque l'adresse à laquelle la donnée est stockée est erronée, il peut y avoir deux 6 conséquences : - donnée non arrivée : à l'adresse à laquelle devait être stockée la donnée, il n'y a aucune donnée utilisable pour les calculs de la tâche applicativc AS. - donnée erronée : à l'adresse à laquelle devait être stockée la donnée, une donnée qui y était précédemment stockée est alors utilisée pour la suite des calculs de la tâche applicative AS. [0040] Ces symptômes peuvent avoir deux conséquence. La première conséquence est que la panne observée correspond à une différence de signature sur les deux voies 4, 6, c'est-à-dire que pour une tâche applicative AS donnée, les calculs réalisés sur chacun des calculateurs 4, 6 aboutissent à des résultats différents. La deuxième conséquence est que la panne observée consiste en une perturbation de la communication inter-calculateurs (les données échangées sont erronées ou manquantes). [0041] Ainsi, la détection de ces symptômes traduit la défaillance d'au moins un composant 14, 16 d'au moins un des calculateurs 4, 6. [0042] La deuxième étape B du procédé consiste alors à détecter une période de latence de la tâche applicative AS. En effet, la tâche applicativc AS consistant en une pluralité de calculs à partir de plusieurs données d'entrée, il existe des périodes de latence entre les calculs lors desquelles la tâche applicativc AS est en attente de données pour réaliser le calcul suivant. Pendant ces périodes de latence, les ressources des voies 4, 6, c'est-à-dire les premier 4 et second 6 composants, ne sont pas utilisés. Ces périodes de latences peuvent ainsi être exploitées pour réaliser des tests d'état de fonctionnement pour déterminer lequel des premier 14 et second 16 composants du premier 4 et second 6 calculateur est défaillant et est à l'origine du/des symptômes identifiés. [0043] La troisième étape C du procédé 1 consiste alors à exécuter, lors de cette période de latence, un test d'état de fonctionnement d'au moins l'un des premier 14 et second 16 composants. Ce test d'état de fonctionnement est de préférence réalisé sur chacun des composants 14, 16 parallèlement sur les deux voies 4, 6, c'est-à-dire pour les deux calculateurs. Le séquencement des tests d'état de fonctionnement est d'ailleurs visible à la figure 4. Ainsi, plusieurs tests de fonctionnement sont déclenchés lors de des temps de latences de la tâche applicative, en outre de celui déclenché en début de cycle lors de la tâche OS. [0044] Les autotests sont des tests dit de type March. Les autotests permettent de tester la capacité en écriture et en lecture de chaque composant. Pour cela, il est écrit successivement un message de type AAAA puis 5555 en hexadécimal respectivement à des adresses de type 5555 puis AAAA en hexadécimal. L'écriture de contenus à ces deux adresses déclenche automatiquement les tests de lecture. [0045] Ces autotests sont réalisés pendant les temps de latence (c'est-à-dire des temps libres) et quasi simultanément à chaque échange sur le bus. 7 [0046] Ainsi, la tâche applicativc AS envoi des instructions, respectivement à chacun des composants 14, 16, pour qu'un test d'état de fonctionnement 26 soit réalisé. En d'autres termes, les tests d'état de fonctionnement 26 sont appelés par la tâche applicative AS sorte à être exécutés lors des temps de latence. Ainsi, les tests réalisés n'impactent pas le temps de calculs de la tâche applicative AS. [0047] La quatrième étape D du procédé 1 consiste à déterminer un état du ou des composants 14, 16 pour lesquels un test d'état de fonctionnement 26 a été réalisé. L'état peut être soit un état de défaillance soit un état sain. Ainsi, si, pendant le même cycle ou deux cycles consécutifs, un symptôme est observé et qu'un état défaillant d'un des composants 14, 16 est avéré, alors une corrélation entre le/les symptômes détecté et la/les défaillances du/des composants relevées est faite. [0048] Afin de limiter les impacts du composant défaillant identifié, le calculateur comprenant le composant défaillant est isolé. En d'autres termes, le calculateur comportant une panne détectée et avérée suite au test d'état de fonctionnement également appelé l'autotest 26 lancé par la tâche applicativc AS n'exécute plus la tâche applicative AS lors des cycles suivants et ne communique donc plus avec le calculateur considéré comme sain suite aux autotests. L'unité de commande moteur 2 devient alors monovoic, la tâche applicativc AS n'étant exécutée que sur un seul calculateur considéré comme sain. [0049] Suite à cette isolation, pour éviter des arrêts moteur en vol (en anglais In Flight Shutdown - IFSD), lorsqu'une des deux voies 4, 6 est isolée, le lancement des autotests 26 par la tâche applicative AS est suspendu. Ainsi, aucun autotest 26 n'est réalisé sur le calculateur restant, mis à part les autotests 26 réalisés par la tâche OS en début et en fin de cycle. [0050] La figure 5 illustre par le biais d'un logigramme un autre exemple de procédé 28 selon l'invention. La stratégie globale du système est de déclencher des autotests 26 sur apparition d'un symptôme de l'unité de contrôle 2. La première étape consiste à détecter, comme détaillé précédemment, un symptôme de défaillance suivant lors du cycle j. Les symptômes peuvent être les suivants : - Donnée non arrivée : lorsque la tâche applicative AS attend une donnée de manière active, lors d'une période de latence, une donnée non arrivée est détectée dès lors que le temps d'attente de la donnée par la tâche applicative dépasse le temps d'attente maximum. Le temps d'attente maximum est d'au moins 3 ms. - Ecart de signature entre la première voie 4 et la seconde voie 6 : il s'agit, donc à la fin de la tâche applicative AS, de comparer la somme des résultats des calculs effectués par la tâche applicative AS sur les deux voies 4, 6. Cela permet de vérifier que les deux voies 4, 6 réalisent les mêmes calculs. Si la somme est différente sur les deux voies 4, 6, cela signifie qu'il existe, sur au moins l'une des deux voies 4, 6, une 8 utilisation d'une donnée d'entrée de calculs erronée. Etant donné que la somme est réalisée à la fin de la tâche applicativc AS, c'est-à-dire d'un cycle, la détection de ce symptôme est effectué lors du cycle précédent j-1, pour que les autotests 26 soient lancés lors du cycle j. En d'autres termes, la différence de signature consiste à comparer, à l'issue du cycle précédent j-1 et en parallèle sur les deux voies 4, 6, la somme des calculs de la tâche applicativc AS réalisés lors du cycle précédent j-1. Dans le cas d'une détection d'écart de signature lors du cycle précédent j-1, les étapes B à D du procédé 1 (du logigramme de la figure 2) sont réalisées lors du cycle courant j. [0051] Lorsque l'un des symptômes ci-dessus est identifié, la tâche applicativc AS augmente le nombre de lancements d'autotests 26 lors des périodes de latence afin d'identifier les défaillances des composants pouvant être à l'origine de ce symptôme. Les autotests 26 sont ainsi lancés jusqu'à la fin du cycle d'exécution courant j. [0052] Ainsi, en augmentant le nombre d'autotests et en les répartissant lors des périodes [0053] de latence du cycle de calcul, la couverture des autotests par conséquent augmentée. [0054] Les défaillances possibles du premier composant 14, le FPGA, sont les suivantes : - Microfissurc d'une des soudures d'une des 16 branches du composant 14 : certaines microfissurcs peuvent être non impactantes, excepté lorsque la microfissure impacts la soudure d'une branche correspondante à bit de poids faible ; - Données non mises à jour ; - Défaillances lors de l'accès à la mémoire en lecture et/ou en écriture. [0055] Les défaillances possibles du deuxième composant 16, la DPRAM, sont les suivantes : - Stockage d'une donnée à une mauvaise adresse de la mémoire ; - Non stockage d'une donnée ; - Défaillance interne à la mémoire pouvant être des trois types suivants : court-circuit, faute de couplage et faute de collage. [0056] Dès lors qu'une défaillance est identifiée par le biais des autotests 26, la voie sur laquelle la défaillance est constatée est mise en sécurité, en d'autres termes la voie est isolée. Egalement, la défaillance, ainsi que des informations contextuelles relatives à l'état de l'unité de contrôle tel que par exemple la température, l'état vibratoire, les régimes moteurs, les attitudes de l'avion, l'état de santé du moteur, le numéro de vol et la date de la panne, sont enregistrées dans une mémoire non volatile afin de faciliter les opérations de maintenance. [0057] Dans le cas où aucune défaillance composant n'est identifiée, une mise en sécurité est prévue par le procédé de supervision 28. La mise en sécurité d'un calculateur consiste à faire en sorte que : - la tâche OS n'appelle plus la tâche applicative AS, - les courants de commande ne sont plus calculés et donc plus émis par ce cal- culatcur. [0058] La redondance est alors perdue. 9 10 REVENDICATIONS[Revendication 1] Procédé (1, 28) de supervision d'une unité de contrôle moteur (2) à au moins deux voies distinctes (4, 6) comprenant chacune un calculateur, chacune desdites deux voies (4, 6) comprenant au moins : - des moyens d'exécution d'une tâche applicative (AS) donnée, la tâche applicative (AS) consistant en partie en une pluralité de calculs exécutés successivement entre lesquels s'écoulent des périodes de latence ; - un premier composant (14) apte à réaliser les calculs de ladite tâche applicative (AS), à partir de données d'entrée ; - un second composant (16) apte à stocker des données ; la tâche applicative (AS) de la première voie (4) et la tâche applicative (AS) de la seconde voie (6) étant aptes à communiquer l'une avec l'autre, le procédé comprenant les étapes suivantes lors d'un cycle d'exécution courant (j) de la tâche applicative (AS) pour chaque voie (4, 6) : a) Détecter une période de latence ; b) Exécuter, lors de cette période de latence, un test d'état de fonctionnement (26) d'au moins l'un des premier (14) et second (16) composants; c) Déterminer un état dudit composant (14, 16) correspondant à un état de défaillance ou un état sain. [Revendication 2] Procédé (1, 28) selon la revendication 1, dans lequel les étapes a) à c) sont réalisées suite à l'étape suivante : - Détecter un symptôme résultant d'une défaillance d'au moins un des composants (14, 16) des deux voies (4, 6). [Revendication 3] Procédé selon la revendication 2, dans lequel le symptôme est une différence de signature entre les deux voies et/ou une perte de communication entre les deux calculateurs (4, 6). [Revendication 4] Procédé selon la revendication 3, dans lequel, si le symptôme détecté est une différence de signature entre les deux voies (4, 6), la détection est réalisée lors d'un cycle d'exécution précédent ( j-1) qui précède le cycle d'exécution courant (j). [Revendication 5] Procédé selon la revendication 3 ou 4, dans lequel la différence de signature consiste à comparer, à l'issue du cycle d'exécution courant (j) et en parallèle sur les deux voies (4, 6), la somme des calculs de la tâche applicative (AS) réalisés lors du cycle d'exécution courant (j). [Revendication 6] Procédé selon la revendication 3, dans lequel, si le symptôme détecté est 11 une perte de communication entre les deux calculateurs (4, 6), la détection est réalisée lors du cycle d'exécution courant (j). [Revendication 7] Procédé selon l'une des revendications précédentes, dans lequel des ins- tructions pour l'exécution du test de l'étape h) sont envoyées par la tâche applicative (AS). [Revendication 8] Procédé selon l'une des revendications précédentes, dans lequel le premier composant (14) est un circuit intégré reprogrammable ou FPGA. [Revendication 9] Procédé selon l'une des revendications précédentes, dans lequel le deuxième composant (16) est une mémoire vive dynamique.