La question jumeau numérique vs simulation se pose tôt dans presque tous les projets industriels, car les deux partent d'un modèle d'un objet physique et se ressemblent souvent à l'écran. Cet article explique les différences qui comptent vraiment : d'où viennent les données, combien de temps vit le modèle et si les résultats remontent vers l'actif réel. À la fin, vous saurez de quoi votre cas d'usage a besoin et comment connecter des données en direct avec MQTT pour qu'un modèle devienne un jumeau.
Pour tout le contexte sur les jumeaux, commencez par le guide de la technologie du jumeau numérique.
La réponse courte
Une simulation est un modèle que l'on exécute pour répondre à une question sur ce qui pourrait arriver. Vous l'alimentez avec des hypothèses, des scénarios ou des données historiques, vous la lancez, lisez les résultats et, en général, vous la refermez.
Un jumeau numérique est un modèle lié à un actif physique précis, qui suit en continu ce qui se passe grâce aux données en direct de cet actif. Il vit aussi longtemps que l'actif et se met à jour chaque fois que l'actif change.
Autrement dit, une simulation est une activité, tandis qu'un jumeau numérique est une représentation persistante et connectée. De nombreux jumeaux contiennent des modèles de simulation, et c'est là que commence la confusion.
Jumeau numérique vs simulation : comparaison point par point
| Dimension | Simulation | Jumeau numérique |
|---|---|---|
| Source des données | Hypothèses, scénarios, jeux de données historiques | Télémétrie en direct d'un actif précis, plus l'historique |
| Objet | Une conception ou une classe de systèmes | Une instance identifiable, comme la pompe P-104 |
| Durée de vie | Le temps d'une étude | Toute la durée de vie de l'actif |
| Temps | Peut tourner plus vite ou plus lentement que le temps réel | Suit le temps réel, peut bifurquer vers des analyses what-if |
| Retour vers l'actif | Aucun | Facultatif : des enseignements ou des commandes redescendent |
| Responsable type | Ingénierie, R&D | Exploitation, maintenance et ingénierie ensemble |
| Infrastructure clé | Solveur, puissance de calcul | Connectivité, messagerie, stockage, visualisation |
| Question principale | « Que se passe-t-il si... ? » | « Que se passe-t-il maintenant, et que devons-nous faire ? » |
Les lignes source des données et objet font l'essentiel du travail. Si votre modèle n'est pas lié à un numéro de série particulier et n'en reçoit pas de données, c'est une simulation, aussi réaliste soit-elle.
Ce que changent les données en direct
Connecter un modèle à des données en direct a des conséquences qui vont bien au-delà d'un graphique qui bouge.
Le modèle doit être identifiable. Un jumeau a besoin d'une adresse : quelle ligne, quelle machine, quel capteur. C'est pourquoi les équipes industrielles adoptent des structures de topics hiérarchiques comme les niveaux ISA-95 (entreprise, site, zone, ligne, cellule). Un topic comme acme/izmir/packaging/line2/filler/telemetry désigne exactement la remplisseuse à laquelle appartiennent les données.
Le modèle doit gérer des données imparfaites. Les simulations reçoivent des entrées propres. Les jumeaux reçoivent des messages en retard, des pertes de capteurs, des passerelles qui se reconnectent et des dérives d'horloge. Les bons jumeaux suivent la qualité des données et l'horodatage de dernière réception, et affichent « obsolète » plutôt que de faire passer une valeur pour actuelle.
Le modèle dérive et doit être recalibré. Comme de vraies mesures continuent d'arriver, vous pouvez comparer les prédictions à la réalité. Quand l'écart se creuse, soit l'actif a changé (usure, encrassement, nouvel outil), soit le modèle doit être ajusté. Cette comparaison est l'une des choses les plus précieuses qu'apporte un jumeau, et une simulation isolée en est incapable.
L'état doit être disponible instantanément. Quand un tableau de bord s'ouvre, il lui faut l'état actuel, pas la prochaine mise à jour dans cinq minutes. Les messages MQTT retenus règlent élégamment ce point : le broker stocke le dernier message d'un topic et le livre immédiatement à chaque nouvel abonné.
Comment MQTT garde un jumeau synchronisé
MQTT est le choix courant pour alimenter les jumeaux, car il est en publish/subscribe, léger et piloté par les événements. L'actif ou sa passerelle publie une fois, et chaque consommateur, de la vue 3D à l'historien en passant par le moteur de simulation, s'abonne à ce dont il a besoin. Si ce modèle est nouveau pour vous, lisez ce que fait un broker MQTT.
Vous pouvez voir le mécanisme en une minute avec le serveur MQTT public gratuit broker.connectmq.com, réservé aux tests et aux prototypes (aucune donnée de production). Utilisez votre propre préfixe aléatoire à la place de dts-91x.
# Publier l'état actuel d'une pompe sous forme de message retenu
mosquitto_pub -h broker.connectmq.com -p 1883 -i dts-91x-pump -r -q 1 \
-t "connectmq/demo/dts-91x/site1/utilities/pump104/state" \
-m '{"rpm":1480,"flow_m3h":42.1,"outlet_bar":3.2,"ts":"2026-10-16T09:00:00Z"}'
# Tout composant du jumeau qui s'abonne plus tard reçoit immédiatement l'état actuel
mosquitto_sub -h broker.connectmq.com -p 1883 -i dts-91x-twin \
-t "connectmq/demo/dts-91x/site1/#" -v
Utiliser une simulation à l'intérieur d'un jumeau
Les configurations les plus efficaces combinent les deux. Le jumeau maintient une image en direct de l'actif ; un modèle de simulation intégré utilise cet état en direct comme point de départ pour répondre à des questions prospectives. L'exemple Python ci-dessous s'abonne à l'état de la pompe, exécute un modèle what-if très simple (comment évoluerait la pression de refoulement si la vitesse était réduite) et publie la prédiction à côté de la mesure, pour qu'un tableau de bord puisse tracer les deux.
import json
import paho.mqtt.client as mqtt
BASE = "connectmq/demo/dts-91x/site1/utilities/pump104"
def predict_outlet_pressure(state, new_rpm):
# Loi de similitude : la pression varie avec le carré de la vitesse
ratio = new_rpm / state["rpm"]
return round(state["outlet_bar"] * ratio ** 2, 2)
def on_connect(client, userdata, flags, reason_code, properties):
client.subscribe(f"{BASE}/state", qos=1)
def on_message(client, userdata, msg):
state = json.loads(msg.payload)
scenario = {
"scenario": "rpm_minus_10pct",
"rpm": round(state["rpm"] * 0.9),
"predicted_outlet_bar": predict_outlet_pressure(state, state["rpm"] * 0.9),
"based_on_ts": state["ts"],
}
client.publish(f"{BASE}/sim/what-if", json.dumps(scenario), qos=1)
print("Published", scenario)
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id="dts-91x-sim")
client.on_connect = on_connect
client.on_message = on_message
client.connect("broker.connectmq.com", 1883)
client.loop_forever()
La physique est volontairement simple ici, mais le schéma passe à l'échelle : remplacez predict_outlet_pressure par un appel à un vrai solveur ou à un modèle entraîné, et le jumeau offre à la fois le « ce qui est » et le « et si » à partir du même flux de données. Gardez les sorties simulées sur leur propre sous-topic (sim/...) pour que personne ne confonde prédictions et mesures.
Quand utiliser une simulation, un jumeau, ou les deux
Choisissez une simulation quand :
- L'actif n'existe pas encore et vous évaluez des conceptions ou des implantations.
- Vous devez tester des scénarios rares ou dangereux que vous ne provoqueriez jamais sur un équipement réel.
- La question est ponctuelle, comme dimensionner un stock tampon ou valider une stratégie de commande avant la mise en service.
Choisissez un jumeau numérique quand :
- L'actif est en exploitation et les décisions dépendent de son état actuel.
- Vous avez besoin d'une visibilité à distance pour des personnes qui ne peuvent pas se tenir à côté de la machine.
- Vous voulez détecter dérive, usure ou anomalies en comparant le comportement attendu et le comportement réel.
Choisissez les deux quand vous voulez des décisions d'exploitation étayées par une analyse prospective, par exemple pour décider s'il faut ralentir une ligne afin de prolonger la vie d'un composant usé jusqu'au prochain arrêt planifié.
Une distinction voisine, entre modèle, ombre et jumeau complet, dépend du sens dans lequel circulent les données. L'article jumeau numérique vs ombre numérique la traite en détail, et les types de jumeaux numériques explique comment le périmètre évolue d'un simple composant à un processus complet.
Erreurs courantes
- Appeler jumeau une animation 3D. Si le modèle joue une animation scriptée, c'est une visualisation. Il devient un jumeau quand son état provient de l'actif.
- Mélanger données prédites et mesurées sur un même topic. Les outils en aval ne peuvent pas les distinguer. Séparez-les par topic et indiquez unités et sources.
- Ignorer l'obsolescence. Un jumeau qui affiche comme actuelle une valeur vieille de deux heures est pire que pas de jumeau du tout. Suivez les horodatages et l'état de la connexion.
- Commencer par le solveur. Dans la plupart des projets de jumeau, la difficulté réside dans une tuyauterie de données fiable, pas dans les mathématiques. Faites d'abord circuler la télémétrie.
L'infrastructure du côté temps réel
Les simulations ont besoin de puissance de calcul. Les jumeaux ont besoin d'une connectivité fiable, c'est-à-dire d'un broker MQTT toujours disponible, sécurisé par TLS et authentification, et capable d'accepter simultanément les connexions des passerelles, des visionneuses et des services d'analyse. L'exploiter vous-même est possible, mais un broker MQTT managé retire de votre liste les correctifs, les certificats et la planification de capacité.
ConnectMQ prend en charge MQTT 3.1.1 et 5.0 sur TCP, TLS, WebSocket et WebSocket sécurisé : le même broker sert donc les workers de simulation Python et les vues 3D dans le navigateur. Son portail détecte aussi les topics de type ISA-95 et affiche les appareils par niveau de hiérarchie, ce qui aide à rattacher les jumeaux aux équipements réels.
Gardez vos jumeaux synchronisés avec ConnectMQ
Que vous commenciez par une simulation et ajoutiez les données en direct plus tard, ou que vous construisiez un jumeau dès le premier jour, la couche de connectivité est la même. Créez un broker sur le portail ConnectMQ avec le plan Serverless gratuit, sans carte bancaire, et faites-y pointer vos éditeurs et vos modèles.
Questions fréquentes
Un jumeau numérique n'est-il qu'une simulation avec des données en direct ?
En partie. Les données en direct d'un actif précis en sont la caractéristique déterminante, mais un jumeau persiste aussi pendant toute la vie de l'actif, suit la qualité des données et peut renvoyer des enseignements ou des commandes. Une simulation peut en être un composant.
Un jumeau numérique peut-il exister avant l'actif physique ?
Le modèle d'un actif prévu est souvent appelé prototype numérique ou jumeau de conception. Il devient un jumeau opérationnel une fois connecté aux données de l'actif réel.
Quel protocole est le plus adapté pour alimenter un jumeau numérique ?
MQTT est largement utilisé, car il est léger, piloté par les événements et permet à de nombreux consommateurs de partager un même flux. OPC UA est courant au niveau machine, et les passerelles relaient souvent les données OPC UA vers des topics MQTT.
Faut-il des données en temps réel pour un jumeau ?
Il faut des données suffisamment fraîches pour les décisions que le jumeau soutient. Pour la supervision, cela peut être quelques secondes ; pour la planification de la maintenance, quelques minutes peuvent suffire.



