Simulation · Systèmes embarqués · Environnement nucléaire

Simulateur de tranche nucléaire pour validation avant installation en centrale

Contexte

Ce projet s’inscrit dans la validation du système décrit dans la fiche calculateur de réacteur nucléaire : il vise à simuler le comportement de l’acquisition, la première étape de la chaîne acquisition → passerelle → traitement → affichage. La stack technique est la même (C++/Qt/Linux), mais au lieu de tourner sur l’environnement embarqué cible, le simulateur est installé sur un PC portable formaté sous Linux.

Le logiciel communique avec une carte électronique développée par le bureau d’études Hardware, qui intègre un FPGA programmé en VHDL. Cette carte vient communiquer avec le même programme qui, sur l’environnement embarqué, fait le lien entre les cartes électroniques, l’OS et les applications C++/QML — le simulateur rejoue des scénarios et des phénomènes construits à partir d’archives réelles d’exploitation, plutôt que des cas d’école.

Étape simulée par ce projet dans la chaîne acquisition → passerelle → traitement → affichage

Contraintes techniques

Rejouer fidèlement des scénarios réels, avec la même interface matérielle que l’environnement embarqué (carte FPGA/VHDL du BE Hardware et programme de liaison), tout en tournant sur un PC portable plutôt que sur la cible embarquée : le simulateur devait rester représentatif de l’acquisition réelle pour que les validations menées à partir de lui restent probantes.

Utilisé dans plusieurs bureaux, chez EDF comme chez Assystem, il devait aussi être facile à déployer et à faire tourner sur des postes différents, sans dépendre d’un environnement d’exécution particulier.

L’acquisition communiquait avec plusieurs types d’équipements : protocoles maison propres au calculateur, mais aussi RS232 pour d’autres appareils. Les changements d’état de certaines variables — des TOR (Tout Ou Rien) asynchrones — devaient être détectés en 40 ms, une contrainte de temps réel qui a pesé directement sur les choix d’implémentation de l’acquisition simulée.

Démarche

Le simulateur rejoue des scénarios et des phénomènes construits à partir d’archives réelles d’exploitation de centrale, à travers la même interface que l’environnement embarqué : la carte électronique FPGA/VHDL du bureau d’études Hardware et le programme de liaison avec l’OS et les applications C++/QML. L’objectif était de pouvoir mener, dans nos bureaux, des tests de validation et d’intégration qui se rapprochent de scénarios réels sur site, sans dépendre du matériel embarqué ni d’un accès en centrale.

Packagé avec Docker et rendu cross-platform, le simulateur peut être installé sur des postes différents sans configuration lourde — une condition nécessaire à son usage dans plusieurs bureaux, chez plusieurs intervenants.

Réalisations

  • Simulateur portable

    Fonctionne sur un PC portable sous Linux, à la place de l’environnement embarqué cible.

  • Interface avec le matériel réel

    Communication avec une carte électronique FPGA/VHDL développée par le bureau d’études Hardware, via le même programme de liaison que l’environnement embarqué.

  • Rejeu de scénarios réels

    Scénarios et phénomènes construits à partir d’archives réelles d’exploitation de centrale.

  • Déploiement Docker, cross-platform

    Installable sur des postes différents sans configuration lourde.

  • Projet mené en autonomie

    Documentation intégralement rédigée et pipeline qualité/sécurité propre au projet (cppcheck, Valgrind, clang-tidy, en plus de SonarQube), plus poussée que sur les autres projets.

Déploiement

Le simulateur est désormais disponible dans les bureaux d’EDF ainsi que chez Assystem, où il sert à la validation des trois étapes suivantes de la chaîne (passerelle, traitement, affichage).

Enseignements

Ce projet a renforcé mes connaissances des protocoles de communication (protocoles maison, RS232) et ma capacité à mesurer l’impact de besoins de performance et de contraintes temps réel sur des choix d’implémentation — notamment sur des changements d’état asynchrones à détecter en 40 ms.

Mené en totale autonomie, il m’a aussi permis de m’exprimer pleinement : rédaction de l’ensemble de la documentation et mise en place d’une chaîne qualité/sécurité plus avancée que sur mes autres projets, avec cppcheck, Valgrind et clang-tidy en complément de SonarQube.

Compétences exercées sur ce projet

C++ · Qt · Linux · FPGA · Docker · RS232 · cppcheck · Valgrind · clang-tidy · SonarQube

Un besoin similaire ?

Parlons de votre projet