Module d'estimation de la consommation énergétiqueEnergy consumption estimation module
PROJET PROFESSIONNEL · SNCF VOYAGEURS · 2024 – 2026PROFESSIONAL PROJECT · SNCF VOYAGEURS · 2024 – 2026
Au sein du département de l'ingénierie de l'offre, les ingénieurs chiffrent des plans de transport complets. Ce module leur donne, en un clic, l'estimation de la consommation énergétique de chaque circulation d'un plan simulé, avec une exigence forte : des résultats explicables, car intégrés à des chiffrages engageants.Within the offer-engineering department, engineers cost complete transport plans. This module gives them, in one click, the estimated energy consumption of every train run of a simulated plan, with one strong requirement: explainable results, as they feed binding cost estimates.
Chaîne de données et d'apprentissageData & learning pipeline
- Pipeline Python : consolidation de millions de mesures embarquées, nettoyage et normalisation, enrichissement par référentiels (gares, axes).Python pipeline: consolidation of millions of on-board measurements, cleaning and normalization, enrichment with reference data (stations, corridors).
- Modèles de régression par série de matériel roulant, avec hyperparamétrage et validation croisée ; hiérarchie de modèles à plusieurs granularités et méthode de repli.Regression models per rolling-stock series, with hyperparameter tuning and cross-validation; multi-granularity model hierarchy with a fallback method.
- Formules et métriques de qualité industrialisées en base de données relationnelle, prêtes à être consommées par l'application.Formulas and quality metrics industrialized in a relational database, ready to be consumed by the application.
- Étude d'un modèle physique complémentaire à partir de la documentation constructeur, pour renforcer la fiabilité des estimations.Study of a complementary physical model based on manufacturer documentation, to strengthen estimate reliability.
Deux générations applicativesTwo application generations
- Client lourd : module Java 17 / JavaFX en architecture en couches (contrôleurs de vue, services applicatifs, DAO, DTO) ; paramétrage des séries et des méthodes de calcul, exécution, restitution et exports.Rich client: Java 17 / JavaFX module in a layered architecture (view controllers, application services, DAO, DTO); series and calculation-method configuration, execution, reporting and exports.
- Client-serveur : services de calcul exposés en API REST avec Spring Boot (contrôleurs, services, persistance JPA / Hibernate) et client web Angular.Client-server: computation services exposed as a Spring Boot REST API (controllers, services, JPA / Hibernate persistence) with an Angular web client.
- Authentification déléguée OAuth2 / OIDC via Keycloak dans la version client-serveur.Delegated OAuth2 / OIDC authentication via Keycloak in the client-server version.
- Qualité continue : revues de code, intégration continue Jenkins, analyse statique SonarQube et CheckMarx.Continuous quality: code reviews, Jenkins continuous integration, SonarQube and CheckMarx static analysis.
RésultatsResults
- Précision de 87 à 97 % selon les périmètres, mesurée contre les consommations réelles.87 to 97% accuracy depending on scope, measured against actual consumption.
- En production, utilisé au quotidien ; solution interne plus rapide et plus économique que l'estimation externalisée qu'elle remplace.In production and used daily; an internal solution faster and cheaper than the outsourced estimate it replaces.
- Estimations mobilisées dans des réponses à appels d'offres.Estimates used in tender responses.
Environnement techniqueTechnical environment
Pythonpandasscikit-learnJava 17JavaFXSpring BootAngularHibernateSQLKeycloakJenkinsSonarQubeCheckMarx OneGitLabMaven