Brevet FR3137469A1 — publié le 20240105

Système de commande de vol d’un aéronef comprenant un ensemble d’actionneurs de contrôle d’aéronef et un ensemble de calculateurs de commande de vol prévus pour commander les actionneurs de l’ensemble d’actionneurs, chaque calculateur est de type duplex, comprenant une première et deuxième unités de calculs configurées pour mettre en œuvre des partitions logicielles à partir de données d’entrées, caractérisé en ce qu’au moins une donnée d’entrée synchronisée est acquise par une partition logicielle de la première unité puis transmise à une partition logicielle de la deuxième unité, les partitions logicielle de la première unité de la deuxième unité étant couplées Figure pour l’abrégé : Fig. 2 Système de commande de vol d’un aéronef. L’invention est relative à un système de commande de vol d’un aéronef, prévu pour contrôler notamment des gouvernes de l’aéronef. Les aéronefs modernes, en particulier les avions de transport, comportent un ensemble de calculateurs de commande de vol qui calculent des ordres de contrôle d’actionneurs de gouvernes de l’aéronef. Ces gouvernes sont par exemple des volets ou des ailerons situés au niveau des ailes de l’aéronef, des gouvernes de profondeur situées par exemple sur un plan horizontal à l’arrière de l’aéronef, une gouverne de direction située sur la dérive, etc. Les calculateurs de commande de vol sont dissimilaires et redondants de telle façon que le système de commande de vol soit robuste à des pannes susceptibles d’affecter certains calculateurs. De plus, généralement, une partie des calculateurs sont utilisés en mode commande (COM) et les autres calculateurs sont utilisés en mode moniteur (MON), un calculateur en mode moniteur surveillant le fonctionnement d’un calculateur en mode commande. Les calculateurs sont ainsi répartis selon des couples COM/MON. A l’intérieur d’un couple COM/MON, lorsque le module MON détecte une défaillance du module COM, le module MON désactive le calculateur correspondant à ce couple COM/MON et un autre calculateur est activé à sa place. Ainsi, chacun des calculateurs est de type duplex, c’est-à-dire qu’il comprend deux modules similaires, appelés unité A et unité B, configurés pour contrôler des actionneurs selon un haut niveau d’intégrité. Chaque unité met en œuvre des partitions logicielles d’un même logiciel. L’unité agissant en mode moniteur surveille l’unité agissant en mode commande de façon à détecter une éventuelle défaillance du couple d’unités A et B. Au sein d'une unité, deux partitions logicielles couplées sont séparées dans l’unité A et l’unité B pour que toute erreur d'une partition ne puisse pas être répercutée sur l'autre, garantissant des opérations de haute intégrité. Les partitions logicielles de l’unité A sont liées avec celles de l’unité B. Elles sont dites couplées. La présente un exemple de l’art antérieur. La partition logicielle P1(A) mise en œuvre dans l'unité A et la partition logicielle P1(B) mise en œuvre dans l'unité B effectuent des opérations basées sur des données entrées similaires (Input 1, Input 2, Input 3). Des sources redondantes sont utilisées pour faire face aux objectifs de sécurité et s'assurer que tout comportement anormal d'une entrée est détecté, passivé et isolé. Les sorties, les résultats des calculs de la partition logicielle P1(A), sont relues par la partition logicielle P1(B). Toute divergence confirmée par l'une ou l'autre des partitions conduit les deux partitions à arrêter et à transférer leurs opérations à une autre paire sur un autre calculateur. Toute unité du calculateur planifie à l'infini une trame principale (MAF), « major frame » en anglais. Une trame principale (MAF) est composée de plusieurs trames mineures (MIF), « minor frame » en anglais. Chaque trame mineure (MIF) planifie une séquence de partitions de logiciels configurée de manière statique. Chaque trame mineure (MIF) est couplée à une trame mineure (MIF) dans l'unité opposée du même calculateur. Les trames mineures couplées peuvent être décalées d'une durée variable mais limitée. L’unité A et l'unité B sont synchronisées de manière à lancer les partitions P1(A) et P1(B) de manière synchronisée. Le démarrage d’une trame mineure (MAF) pour des partitions couplées (au démarrage de la plate-forme et au redémarrage de la partition) est synchronisé. Le formalisme imposé par des calculateurs de type duplex permet de programmer tout ou partie des partitions de logiciel dans le même sous-cycle. Chaque unité A et B comporte sa propre horloge. Bien que basé sur les mêmes données, l'asynchronisme entre les voies crée des calculs asynchrones, dont les résultats sont différents. Il devient donc difficile et/ou impossible d'effectuer des surveillances de grandes précisions, et les commandes de vol ne peuvent donc pas faire de calcul en temps et complexité très restreint. Aujourd’hui, chacune des unités A et B a besoin des données d’entrées nécessaires à la partition logicielle P1(A) ainsi que celles nécessaires à la partition logicielle P1(B) afin de pouvoir effectuer sa fonction de surveillance envers l’autre unité. L’intégralité des données doit donc être acquise une première fois par l’unité A et une deuxième fois par l’unité B. L’invention permet de palier à cet inconvénient. Elle concerne un système de commande de vol d’un aéronef comprenant un ensemble d’actionneurs de contrôle d’aéronef et un ensemble de calculateurs de commande de vol prévus pour commander les actionneurs de l’ensemble d’actionneurs, chaque calculateur est de type duplex, comprenant une première et deuxième unités configurées pour mettre en œuvre des partitions logicielles à partir de données d’entrées, une première donnée d’entrée étant acquise par une partition logicielle de la première unité puis transmise à une partition logicielle de la deuxième unité, les partitions logicielle de la première unité de la deuxième unité étant couplées. Selon un mode de réalisation la première unité comporte un module d’acquisition de données asynchrones configuré pour extraire la donnée d’entrée requise par la partition logicielle, un module de transmission de données locales configurée pour transmettre la donnée d’entrée à la deuxième unité, un module de mise à disposition de données synchrones configuré pour transmettre la donnée d’entrée acquise à la partition logicielle de la première unité ; et la deuxième unité comporte un module d’acquisition de données opposées configurée pour réceptionner la donnée d’entrée transmise par le module de de transmission de données locales de la première unité, un module de mise à disposition de données synchrones configuré pour transmettre la donnée d’entrée réceptionnée à la partition logicielle de la deuxième unité. Selon un mode de réalisation, la deuxième unité comporte un module d’acquisition de données asynchrones configurée pour extraire la donnée d’entrée, un module de surveillance de données opposées configurée pour : comparer la première donnée d’entrée extraite par le module d’acquisition de données asynchrones de la deuxième unité à la deuxième donnée d’entrée réceptionnée par le module d’acquisition de données opposées de la deuxième unité ; conclure à une intégrité de la donnée d’entrée si les première et deuxième données d’entrées sont égales, et à une non intégrité si les première et deuxième données d’entrées sont différentes, puis établir un statut d’intégrité ; transmettre le statut d’intégrité au module de mise à disposition de données synchrones de la deuxième unité. Selon un mode de réalisation, la donnée d’entrée est associée à une latence configurée pour que : le temps entre le début de l’exécution du module d’acquisition de données asynchrones et l’utilisation de la donnée d’entrée dans la partition logicielle de la première unité est inférieur à ladite latence de la donnée, le temps entre le début de l’exécution du module d’acquisition de données asynchrones et l’utilisation de la donnée d’entrée dans la partition logicielle de la deuxième unité est inférieur à ladite latence de la donnée. L’invention permet ainsi d’une réduction du nombre d'acquisitions sur un calculateur comportant une unité A et une unité B. Les performances des calculs sont augmentées, permettant par exemple des calculs pour le vol autonome et/ou lois de pilotage hautement performantes. L’invention permet aussi une réduction des erreurs et/ou événements en service. Description et modes de réalisation L’invention sera mieux comprise à la lecture de la description qui suit et à l’examen des figures annexées. Représente un calculateur de l’art antérieur. Représente un calculateur selon un mode de réalisation de l’invention. Représente un système de commande de vol en synchronisation simple selon l’invention. Représente un système de commande de vol en synchronisation surveillée selon l’invention. Représente un système de commande de vol en synchronisation surveillée en fonctionnement COM/MON selon l’invention. Un calculateur selon l’invention comporte deux unités UA et UB configurées pour mettre en œuvre des partitions de logiciel P1(A) par l’unité A et des partitions logiciel P1(B) par l’unité B, les partitions logicielles P1(A) et P1(B) étant couplées. Selon un premier mode de l’invention représenté en figures 2, l’acquisition des données d‘entrées (Input 1, Input 2, Input 3) se fait par une seule des deux unités puis est transférée à son unité opposée. Par exemple l’acquisition des données peut se faire par l’unité A puis transférée à l’unité B ou inversement. Selon un mode de réalisation représenté sur la , l’unité A acquière une première donnée par exemple la donnée 1 (Input 1) et une deuxième donnée, par exemple la donnée 3 (Input 3), puis transfère la deuxième donnée (Input 3) à l’unité B. L’unité B acquiert une troisième donnée (Input 2). Ainsi au moins une donnée acquise par l’unité A est transférée à l’unité B. Les données sont sélectionnées et surveillées par un module de sélection et de surveillance. L’unité A effectue les calculs liés à la partition de logiciel P1(A) à partir des premières et deuxièmes données d’entrées (Input 1 et Input 3). L’unité B effectue les calculs liés à la partition de logiciel P1(B) à partir des premières et troisièmes données d’entrées (Input 2 et Input 3). Une fois les calculs effectués, un module de contrôle s’assure de la cohérence des résultats et approuve ou rejette les données de sorties (Output 1, Output 2) respectives des unités A et B. La partition logicielle P1(A) de l’unité A et la partition logicielle P1(B) de l’unité B doivent être préalablement couplées et identifiées comme pouvant être synchronisées, c’est-à-dire qu’un échange de données d’entrées est possible. Chaque partition logicielle est identifiée comme étant couplée ou non couplée avec une deuxième partition de logiciel par un identifiant de synchronisation (SYNC/ NON SYNC). Ainsi chaque partition de logiciel est identifiée comme faisant partie d’un couple ou non. Chaque partition de logiciel indique si son entrée analogique (ANI, Analog Input en anglais) est synchrone ou non synchrone, permettant d’indiquer si un transfert synchrone est requis pour cette donnée d’entrée. Chaque partition de logiciel indique si son entrée logique (DSI, Discret Input en anglais) est synchrone ou non synchrone, permettant d’indiquer si un transfert synchrone est requis pour cette entrée logique. Selon l’invention, les entrées logiques DSI et les entrées analogiques ANI, sont acquises par une unité, par exemple l’unité A, puis transférées à la deuxième unité, par exemple l’unité B. Chaque partition de logiciel indique si les indicateurs de ces entrées numériques (Digital Inputs labels) avec l’un des statuts de synchronisation suivants : • Soit "SYNCHRONE" • Soit, « PRIMAIRE SYNCHRONE » • Soit, « SECONDAIRE SYNCHRONE » • Soit, "NON SYNCHRONE" La configuration de chaque donnée est déterminée en fonction du besoin d'intégrité : • non synchrone: L’utilisation d’un transfert synchrone n’est pas possible car une latence n’est pas acceptable et/ou la surveillance est faite par les partitions de logiciel. • synchrone: la donnée est égale dans les deux partitions couplées. • synchrone primaire/secondaire: la donnée est égale dans les deux partitions couplées et il est nécessaire de surveiller l’intégrité du transfert. Chaque partition de logiciel regarde toutes les données dont elle fait l'acquisition et elle les configure: • non synchrone: elle garde la propriété exclusive de la donnée en question • Synchrone: la chaîne de calcul de la partition de logiciel va se charger de faire l'acquisition de la donnée et de la transférer à la chaîne de calcul opposée. Le tout en assurant que la même donnée est vue par les deux partitions de logiciel couplées. • Synchrone primaire/secondaire: la chaîne de calcul de la partition de logiciel va se charger de faire l'acquisition et de la transférer à la chaîne de calcul opposée. Dans chaque chaîne une surveillance est effectuée. Pour assurer la détection des erreurs de configuration : si un indicateur d’entrée numérique (DGI) est configurée « SYNCHRONOUS SECONDARY X » par une Partition logicielle, alors une seule étiquette DGI sera configurée « SYNCHRONOUS PRIMARY X » dans sa Partition couplée. Toute incohérence est une invalidité de configuration de synchronisation. pour une entrée numérique (DGI) configurée « SYNCHRONOUS PRIMARY X » par une partition et « SYNCHRONOUS SECONDARY X » dans sa paire de partitions, les indicateurs d’étiquette doivent correspondre. Toute non-concordance est une invalidité de configuration de synchronisation. Pour un couple de partitions de logiciels, les données primaires synchrones et les données secondaires synchrones doivent avoir la même classe de latence. Toute invalidité de configuration de synchronisation empêchera la génération de la partition de logiciel. Le nombre d'acquisitions effectuées par une partition dans une unité peut ne pas être égal au nombre d'acquisitions effectuées par sa partition jumelée. C'est notamment le cas pour les entrées très critiques pour lesquelles un nombre impair d'acquisitions est préféré afin de permettre le vote majoritaire et le rejet d'une seule entrée fonctionnant en erreur. Dans le cas de partitions synchronisées, un module de contrôle est configuré pour comparer les données de sorties de l’unité A et de l’unité B avec les données d’entrées. Si la donnée de sortie de l’unité B diffère de l’inverse de la donnée de sortie de l’unité A le module de contrôle identifie une invalidité et rejette le calcul. Ainsi, l'invention prend en charge la détection des erreurs sur le transfert pour préserver la capacité d'effectuer des opérations de haute criticité. La représente un mode de synchronisation simple. L’unité UA comporte un module d’acquisition de données asynchrones A1, un module de transmission de données locales A2, et un module de mise à disposition de données synchrones A5. La deuxième unité UB comporte un module d’acquisition de données opposées B3 et un module de mise à disposition de données synchrones B5. Le module d’acquisition de données asynchrones A1 est associé à un ensemble de partition logicielle de l’unité UA, tel que la partition logicielle P1(A). Le module d’acquisition de données asynchrones A1 est configuré pour identifier la donnée d’entrée D requise par la partition logicielle P1(A) qui lui est associée et y accéder par la couche physique de l’unité UA. Le module est configuré pour transmettre la donnée d’entrée D au module de mise à disposition de données synchrones A5. Le module de transmission de données A2 est associé à un ensemble de partition logicielle de l’unité UA, tel que la partition logicielle P1(A). Le module de transmission de données A2 est configuré pour transmettre la donnée d’entrée D vers le module de d’acquisition de données opposées B3 de la deuxième unité UB. Le module de mise à disposition de données synchrones A5 est associé à un ensemble de partition logicielle de l’unité UA, tel que la partition logicielle P1(A). Le module de mise à disposition de données synchrones A5 est configuré pour transmettre à la partition logicielle P1(A) la donnée d’entrée D transmise à la deuxième unité UB par le module de transmission de données A2. Le module d’acquisition des données opposées B2 de l’unité UB est associé à un ensemble de partition logicielle de l’unité UB, tel que la partition logicielle P1(B). Le module d’acquisition des données opposées B2 est configuré pour identifier l’ensemble des partitions logicielles couplées et les données d’entrées requises pour celles-ci et reçues par le module de transmission de données locales A2 de l’unité opposée UA. Le module d’acquisition des données opposées B2 extrait la donnée D de la couche physique de l’unité UB puis la transmet au module de mise à disposition des données synchrones B5 de l’unité UB. Le module de mise à disposition des données synchrones B5 est associé à un ensemble de partition logicielle de l’unité UB, tel que la partition logicielle P1(B). Le module de mise à disposition de données synchrones B5 est configuré pour transmettre à la partition logicielle P1(B) la donnée d’entrée D. Ce mode de réalisation permet de garantir que la même donnée d’entrée D est utilisée par la partition logicielle P1(A) et P1(B). La représente un système de commande de vol en synchronisation surveillée. Selon ce mode de réalisation, la deuxième unité UB est configurée pour acquérir la donnée d’entrée D en supplément de celle acquise par le module d’acquisition de données opposées B3 et transmise par la première unité UA. A cet effet, la deuxième unité UB comporte en supplément un module d’acquisition de données asynchrones B1 configuré pour identifier la donnée d’entrée D requise par la partition logicielle P1(B) qui lui est associée et y accéder par la couche physique de l’unité UB, ainsi qu’un module de surveillance de données opposées B4. Le module d’acquisition de données asynchrones B1 est configuré pour transmettre la donnée d’entrée D au module de surveillance de données opposées B4 ainsi qu’au module de mise à disposition de données synchrones B5. Selon ce mode de réalisation le module d’acquisition de données opposées B3 transmet la donnée d’entrée D transmise par le module de transmission de données locales A2 au module de surveillance de données opposées B4. Le module de surveillance de données opposées B4 est associé à un ensemble de partition logicielle de l’unité UB, tel que la partition logicielle P1(B). Le module de surveillance est configurée pour : comparer la première donnée d’entrée extraite par le module d’acquisition de données asynchrones B1 de la deuxième unité UB à la deuxième donnée d’entrée réceptionnée par le module d’acquisition de données opposées B3 de la deuxième unité UB ; conclure à une intégrité de la donnée d’entrée si les première et deuxième données d’entrées sont égales, et à une non intégrité si les première et deuxième données d’entrées sont différentes, puis établir un statut d’intégrité ; transmettre le statut d’intégrité au module de mise à disposition de données synchrones B5 de la deuxième unité UB. La représente un système de commande de vol en synchronisation surveillée en fonctionnement COM/MON selon l’invention. Selon ce mode de réalisation, chaque unité UA et UB exécute plusieurs partitions logicielles en parallèle. Ainsi la première unité UA surveille l’intégrité des résultats des partitions de la deuxième unité UB et inversement, la première et deuxième unité UA et UB mettant en œuvre une surveillance synchronisée des données d’entrées de l’unité opposée. A cet effet l’unité A comporte un module d’acquisition des données asynchrones A1, un module de transmission de données locales A2, un module d’acquisition des données opposées A3, un module de surveillance de données opposées A5 et un module de mis à disposition des données synchrones A5 associées à un ensemble de partitions de l’unité UA, et l’unité UB comporte un module d’acquisition des données asynchrones B1, un module de transmission de données locales B2, un module d’acquisition des données opposées B3, un module de surveillance de données opposées B5 et un module de mis à disposition des données synchrones B5 associées à un ensemble de partitions de l’unité UB, l’ensemble des partitions logicielles des premières et deuxièmes unités UA et UB étant couplées. Afin de garantir la prise en compte de la donnée D par la partition logicielle de l’unité opposée, il est nécessaire de prévoir une latence L, ou retard de synchronisation, permettant de garantir la réception de la donnée d’entrée D avant l’exécution de la partition. A cette effet chaque donnée est associé à une latence L accessible par les modules de d’acquisition de données asynchrones. L’exécution du module d’acquisition de surveillance des données opposées n’est mise en œuvre qu’à la fin de la latence L. A titre d’exemple, cette latence L est configurée pour que : le temps entre le début de l’exécution du module d’acquisition de données asynchrones A1 et l’utilisation de la donnée d’entrée D dans la partition logicielle P1(A) de la première unité UA est inférieur à ladite latence L de la donnée D, le temps entre le début de l’exécution du module d’acquisition de données asynchrones A1 et l’utilisation de la donnée d’entrée D dans la partition logicielle P1(B) de la deuxième unité UB est inférieur à ladite latence L de la donnée D. Lorsque les unités UA et UB fonctionnement en COM/MON tel que représenté en , la latence est configurée pour que : le temps entre le début de l’exécution du module d’acquisition de données asynchrones A1 et l’utilisation de la donnée d’entrée D dans la partition logicielle P1(A) de la première unité UA est inférieur à ladite latence L de la donnée D, le temps entre le début de l’exécution du module d’acquisition de données asynchrones A1 et l’utilisation de la donnée d’entrée D dans la partition logicielle P1(B) de la deuxième unité UB est inférieur à ladite latence L de la donnée D, le temps entre le début de l’exécution du module d’acquisition de données asynchrones B1 et l’utilisation de la donnée d’entrée D dans la partition logicielle P1(A) de la première unité UA est inférieur à ladite latence L de la donnée D, le temps entre le début de l’exécution du module d’acquisition de données asynchrones B1 et l’utilisation de la donnée d’entrée D dans la partition logicielle P1(B) de la deuxième unité UB est inférieur à ladite latence L de la donnée D. Système de commande de vol d’un aéronef comprenant un ensemble d’actionneurs de contrôle d’aéronef et un ensemble de calculateurs de commande de vol prévus pour commander les actionneurs de l’ensemble d’actionneurs, chaque calculateur est de type duplex, comprenant une première et deuxième unités (UA, UB) configurées pour mettre en œuvre des partitions logicielles à partir de données d’entrées, caractérisé en ce qu’au moins une première donnée d’entrée (D) est acquise par une partition logicielle (P1(A)) de la première unité (UA) puis transmise à une partition logicielle (P1(B)) de la deuxième unité (UB), les partitions logicielle (P1(A), P1(B)) de la première unité (UA) de la deuxième unité (UB) étant couplées. Système de commande de vol selon la revendication précédente caractérisé en ce que : la première unité (UA) comporte un module d’acquisition de données asynchrones (A1) configuré pour extraire la donnée d’entrée (D) requise par la partition logicielle (P1(A)), un module de transmission de données locales (A2) configurée pour transmettre la donnée d’entrée (D) à la deuxième unité (UB), un module de mise à disposition de données synchrones (A5) configuré pour transmettre la donnée d’entrée (D) acquise à la partition logicielle (P1 (A)) de la première unité (UA) ; la deuxième unité (UB) comporte un module d’acquisition de données opposées (B3) configurée pour réceptionner la donnée d’entrée (D) transmise par le module de de transmission de données locales (A2) de la première unité (UA), un module de mise à disposition de données synchrones (B5) configuré pour transmettre la donnée d’entrée (D) réceptionnée à la partition logicielle (P1(B)) de la deuxième unité (UB). Système de commande de vol selon l’une des revendications précédentes caractérisé en ce que la deuxième unité (UB) comporte un module d’acquisition de données asynchrones (B1) configurée pour extraire la donnée d’entrée (D), un module de surveillance de données opposées (B4) configurée pour : comparer la première donnée d’entrée extraite par le module d’acquisition de données asynchrones (B1) de la deuxième unité (UB) à la deuxième donnée d’entrée réceptionnée par le module d’acquisition de données opposées (B3) de la deuxième unité (UB) ; conclure à une intégrité de la donnée d’entrée si les première et deuxième données d’entrées sont égales, et à une non intégrité si les première et deuxième données d’entrées sont différentes, puis établir un statut d’intégrité ; transmettre le statut d’intégrité au module de mise à disposition de données synchrones (B5) de la deuxième unité (UB). Système de commande de vol selon l’une des revendications précédentes caractérisé en ce que la donnée d’entrée (D) est associée à une latence (L) configurée pour que : le temps entre le début de l’exécution du module d’acquisition de données asynchrones (A1) et l’utilisation de la donnée d’entrée (D) dans la partition logicielle (P1(A)) de la première unité (UA) est inférieur à ladite latence (L) de la donnée (D), le temps entre le début de l’exécution du module d’acquisition de données asynchrones (A1) et l’utilisation de la donnée d’entrée (D) dans la partition logicielle (P1(B)) de la deuxième unité (UB) est inférieur à ladite latence (L) de la donnée (D).