Tunnel Load Simulator : consommation électrique des tunnels routiers, application web Monte Carlo
En bref
- Le Tunnel Load Simulator génère la consommation électrique d’un tunnel routier à partir de sa géométrie, de son trafic, de son éclairage et de sa ventilation, avec des épisodes aléatoires de pollution et d’accident.
- Une année au pas de 10 minutes se simule en environ 150 ms ; des tirages Monte Carlo (la même simulation répétée avec des aléas différents) donnent les médianes et les enveloppes P10–P90 de l’énergie, de la puissance de pointe et du facteur de charge (définition de P10–P90).
- H. El-Houari et C. Voyant, SoftwareX 35, 102946 (2026), doi:10.1016/j.softx.2026.102946 ; un générateur de premier ordre, à calibrer sur des mesures avant tout usage d’ingénierie.
Cyril Voyant · Mis à jour le 2026-11-03 · version française de la page anglaise
Ouvrir le simulateur
Hébergement gratuit : l’application peut mettre environ une minute à se réveiller lors de la première visite (interface en anglais).
Le récit de recherche : Simuler ce que l’on ne peut pas encore mesurer : la consommation électrique des tunnels routiers.
Quelle quantité d’électricité un tunnel routier consomme-t-il, et avec quelle incertitude ? Le Tunnel Load Simulator génère des séries temporelles réalistes de puissance et d’énergie à partir de la géométrie du tunnel, de son contexte d’exploitation, de la ventilation pilotée par le trafic, du régime d’éclairage et de perturbations aléatoires, comme les épisodes de pollution et les accidents. Il lance N réalisations Monte Carlo indépendantes (une réalisation est une simulation complète d’une année) et renvoie la médiane, le P10 et le P90 des principaux indicateurs, avec une enveloppe d’incertitude sur la série temporelle.
Rapide : le moteur est entièrement vectorisé (il calcule sur des tableaux entiers plutôt que pas à pas). Une année au pas de 10 minutes se simule en environ 150 ms ; 20 réalisations Monte Carlo en environ 0,6 s.
La théorie
Simuler à partir de ce que l’on sait. Aucune mesure du tunnel n’existe : la consommation est donc construite à partir de ce que l’on sait de sa géométrie, de son trafic, de son éclairage et de sa ventilation, avec des perturbations aléatoires explicites. Aucune donnée n’est nécessaire, et aucune n’est inventée : le modèle est simple, ses paramètres sont visibles et ses limites sont énoncées.

La consommation, terme par terme
À chaque pas de 10 minutes \(t\), la puissance est la somme de quatre termes, affectée d’un bruit multiplicatif :
$$P(t)=\max\!\Big(0,\ \big[P_0+P_{\mathrm{light}}(t)+P_{\mathrm{vent}}(t)+P_{\mathrm{aux}}(t)\big]\big(1+\varepsilon_t\big)\Big),$$ $$\varepsilon_t\sim\mathcal N(0,\sigma^2).$$Ici \(P_0\) est la base fixe, \(P_{\mathrm{light}}\) l’éclairage, \(P_{\mathrm{vent}}\) la ventilation, \(P_{\mathrm{aux}}\) les auxiliaires, et \(\varepsilon_t\) un bruit gaussien (loi normale) de moyenne nulle et d’écart-type \(\sigma\). Les grandeurs \(L_{\mathrm{km}}\), \(n_{\mathrm{lanes}}\) et \(n_{\mathrm{tubes}}\) ci-dessous sont la longueur du tunnel en kilomètres, le nombre de voies et le nombre de tubes.
- Trafic \(q(t)\)
- plancher nocturne \(0.16+0.06\cos\frac{2\pi(\tau-3)}{24}\) (\(\tau\) : heure de la journée) plus des pics gaussiens le matin et le soir, normalisés par une journée de référence, puis multipliés par le contexte (urbain 1,20, périurbain 1,00, rural 0,78), la saison (hiver 1,12 … été 0,92), le jour de la semaine (jours ouvrés 1,00, samedi 0,86, dimanche 0,78), le niveau de trafic et un facteur aléatoire journalier ; borné à \([0,2]\)
- Éclairage
- \(P_{\mathrm{light}}=p_\ell\,L_{\mathrm{km}}\,n_{\mathrm{lanes}}\,\min\!\big(1,\ f_{\min}+(1-f_{\min})(1-D(t))+c_q\,q(t)\big)\), où \(D(t)\) est un indicateur lisse de lumière du jour construit à partir du lever et du coucher du soleil selon la saison, et où \((p_\ell,c_q,f_{\min})\) (puissance par kilomètre et par voie, sensibilité au trafic, fraction minimale de puissance) dépendent de la technologie (LED adaptative, c’est-à-dire dont l’intensité suit la lumière du jour et le trafic : 16 kW/km/voie, 0,18, 0,20)
- Ventilation
- \(P_{\mathrm{vent}}=p_v\,L_{\mathrm{km}}\,n_{\mathrm{tubes}}\,\big(0.15+s\,q(t)\big)\,a\,g\,\big(1+s_p\,\mathbb 1_{\mathrm{pollution}}(t)+s_a\,\mathbb 1_{\mathrm{accident}}(t)\big)\), où \(p_v\) dépend du système (longitudinal, c’est-à-dire où l’air est poussé le long du tunnel : 120 kW/km/tube), \(s\) est la sensibilité au trafic, \(s_p\) et \(s_a\) les majorations en cas de pollution et d’accident (les indicatrices \(\mathbb 1\) valent 1 pendant l’épisode et 0 sinon), le facteur d’altitude est \(a=1+\max(z-500,0)/6000\) (\(z\) : altitude) et le facteur de pente \(g=1+|i|/20\) (\(i\) : pente)
- Auxiliaires
- \(P_{\mathrm{aux}}=p_a\,L_{\mathrm{km}}\,n_{\mathrm{tubes}}\,(1+\min(z_{\max},800)/6000)\,(1+\eta_t)\), \(\eta_t\sim\mathcal N(0,0.025^2)\), où \(p_a\) est la puissance linéique des auxiliaires et \(z_{\max}\) l’altitude maximale
- Événements
- épisodes de pollution et accidents tirés chaque jour avec des probabilités, des heures de début et des durées données

Monte Carlo et indicateurs
\(R\) réalisations indépendantes (graines \(42,43,\dots\), c’est-à-dire les valeurs initiales du générateur aléatoire) donnent la distribution de chaque indicateur ; l’enveloppe reporte la médiane et la bande P10–P90. Le P10 est la valeur sous laquelle se trouvent 10 % des réalisations, le P90 celle sous laquelle se trouvent 90 % d’entre elles, et la médiane (P50) sépare les réalisations en deux moitiés : la bande P10–P90 contient donc les 80 % centrales. Énergie annuelle \(E=\sum_t P(t)\,\Delta t\) (\(\Delta t\) : pas de temps) ; facteur de charge \(\bar P/P_{\max}\) (puissance moyenne sur puissance de pointe) ; consommation spécifique \(E/\text{longueur}\).
Hypothèses et validité
Un générateur synthétique de premier ordre : les coefficients sont des ordres de grandeur d’ingénierie, pas des mesures. Adapté au prototypage, à l’enseignement et aux études de sensibilité de pré-dimensionnement ; à calibrer sur des données mesurées avant tout usage d’ingénierie.
Lancer l’exemple
L’exemple public : un tunnel périurbain de 1,5 km, deux tubes de deux voies, éclairage LED adaptatif, ventilation longitudinale, une année au pas de 10 minutes, 20 réalisations. Le paquet se trouve dans src/, d’où PYTHONPATH=src. Exécuté le 22 octobre 2026 (Python 3.12).
git clone https://github.com/cyrilvoyant/tunnel-load-simulator.git
cd tunnel-load-simulator
pip install -r requirements.txt
PYTHONPATH=src python examples/monte_carlo_example.py # PowerShell: $env:PYTHONPATH="src"; python examples/monte_carlo_example.pySortie du programme (en anglais, telle qu’il l’affiche ; energy = énergie, peak power = puissance de pointe) :
=== Monte Carlo results (20 runs) ===
Annual energy (MWh):
Median : 3233.4
P10 : 3229.5
P90 : 3237.1
Peak power (kW):
Median : 873.4
P10 : 792.2
P90 : 922.2Autres médianes de la même exécution : puissance moyenne 369 kW, facteur de charge 0,42, consommation spécifique 2 156 kWh par mètre et par an.

Ce que l’on obtient
- Énergie annuelle (MWh), puissance de pointe et puissance moyenne (kW), facteur de charge, consommation spécifique (kWh/m/an) et nombre d’événements, pour chaque réalisation et sous forme de distributions.
- Graphiques interactifs et export CSV (fichier lisible dans un tableur) des séries temporelles.
- Un paquet Python utilisable sans l’interface (
run_monte_carlo(...)), avec des exemples et des tests.
Usages typiques
- Études de sensibilité de pré-dimensionnement : technologie d’éclairage, type de ventilation, niveau de trafic.
- Profils de consommation synthétiques pour la recherche sur la gestion de l’énergie et l’intégration des énergies renouvelables dans les tunnels.
- Enseigner l’incertitude Monte Carlo sur un cas d’ingénierie.
Statut : générateur synthétique de premier ordre, adapté au prototypage, aux démonstrations et aux études de sensibilité de pré-dimensionnement. À calibrer sur des données mesurées avant tout usage d’ingénierie ou de publication.
Projet SmartTunnel et citation
Développé dans la collaboration de recherche SmartTunnel entre Haytham El-Houari (Université Sidi Mohamed Ben Abdellah, Fès, Maroc) et Cyril Voyant (Mines Paris – PSL, O.I.E.). Pour citer l’article : H. El-Houari, C. Voyant, Tunnel Load Simulator: a Monte Carlo framework for synthetic electrical demand modeling of road tunnels, SoftwareX 35, 102946, 2026, doi:10.1016/j.softx.2026.102946 ; et le logiciel : Tunnel Load Simulator, doi:10.5281/zenodo.20080042 (toutes versions).
Code source (MIT) · Utilisable aussi en langage courant avec WebSemantic (page en anglais).
Besoin de cette méthode sur vos propres données ? Collaborer : une réponse commune à un appel à projets, un contrat de recherche avec Mines Paris – PSL, ou un travail académique avec un objectif clair de valorisation.
Liens
| Publications |
|
|---|---|
| Code | github.com/cyrilvoyant/tunnel-load-simulator |
| Archive (toutes versions) | doi:10.5281/zenodo.20080042 (Zenodo) |
| Software Heritage | archive pérenne du dépôt |
| Auteurs | Haytham El-Houari (Université Sidi Mohamed Ben Abdellah, Fès) et Cyril Voyant (Mines Paris – PSL, O.I.E.), projet SmartTunnel |
| Application web | Tunnel Load Simulator (hébergement gratuit : peut mettre une minute à se réveiller) |
| Le récit | Simuler ce que l’on ne peut pas encore mesurer : la consommation électrique des tunnels routiers |
| L’approche | La modélisation concentrique : comprendre avant de calculer |
| Auteur | Cyril Voyant (Mines Paris – PSL, O.I.E.) · ORCID · www.cyrilvoyant.com |