Concepts fondamentaux
Comprenez le modèle mental de Miravo : modèles d'actifs, templates, membres, générateurs, boucle de tick, Unified Namespace, cycle de vie et graphe d'actifs.
Un modèle (.twin.yaml) définit un type d’actif : ce qu’il mesure, comment il se comporte et ce qui peut mal tourner. Considérez-le comme une définition de classe pour un actif industriel.
Chaque modèle déclare :
- Paramètres — Constantes réglables (vitesse nominale, capacité, puissance nominale)
- Membres — Les signaux et propriétés que l’actif expose (température, pression, vitesse, état)
- Générateurs — Les calculs qui produisent les valeurs des membres à chaque tick (sinusoïdes, marches aléatoires, lag thermique)
- Méthodes — Actions exécutables (Start, Stop, SetSpeed, ResetFault)
- Cycle de vie — Étapes de dégradation que l’actif traverse au fil des heures de fonctionnement
- Défaillances — Modes de panne avec déclencheurs et effets
Un modèle peut être instancié plusieurs fois avec des surcharges de paramètres différentes. Un modèle centrifugal-pump devient pump-001, pump-002, etc., chacun avec des vitesses nominales légèrement différentes.
Templates
Section intitulée « Templates »Un template (.miravo.yaml) compose des modèles en une topologie d’usine structurée. Les templates définissent :
- Namespace — Noms enterprise et site pour la hiérarchie des topics UNS
- Areas et lines — Structure organisationnelle de style ISA-95
- Assignments de twins — Quels modèles vont où, combien, avec quelles surcharges de paramètres
- Settings — Intervalle de tick, multiplicateur de temps, graine
namespace: enterprise: AcmeCorp site: detroit-plantareas: - name: production lines: - name: line-1 twins: - model: centrifugal-pump count: 3 variation: 0.05Les membres sont les signaux et propriétés qu’un actif expose. Chaque membre a un kind, un type de données et un niveau d’accès :
| Kind | Utilisation |
|---|---|
variable | Valeurs dynamiques qui changent à chaque tick (lectures de capteurs, valeurs de procédé) |
property | Métadonnées statiques (numéro de série, numéro de modèle, capacité nominale) |
Utilisez variable pour les valeurs qui changent à chaque tick. Utilisez property pour les métadonnées statiques comme les numéros de série ou la capacité nominale qui ne changent pas à l’exécution.
Types de données : Double, Float, Int32, UInt16, UInt32, Boolean, String.
Niveaux d’accès : read, readwrite, write.
Générateurs
Section intitulée « Générateurs »Les générateurs produisent les valeurs des membres à chaque tick. Miravo embarque 18 types de générateurs :
- Générateurs source —
sine,noise,random-walk,step,ramp,mean-reverting-noise,timetable,state-machine - Générateurs dynamiques —
first-order-lag,integrator,transport-delay,slew-rate-limiter,second-order,hysteresis-relay,weighted-sum,gate - Composites —
health-dependent,correlated
Chaque générateur lit sa configuration depuis le modèle et produit une valeur numérique (ou chaîne) à chaque tick. Les générateurs peuvent référencer d’autres membres, des paramètres ou intégrer des sous-générateurs.
La boucle de tick
Section intitulée « La boucle de tick »Miravo s’exécute sur une boucle de tick à intervalle fixe (par défaut : 1000 ms). À chaque tick :
- Évaluer tous les générateurs dans l’ordre de déclaration des membres
- Appliquer les effets de cycle de vie (multiplicateur + offset)
- Appliquer les effets de défaillance (spike, multiplicateur, offset)
- Mettre à jour le graphe d’actifs
- Émettre le snapshot et le delta du graphe vers les adaptateurs de protocole
Les adaptateurs de protocole (MQTT, OPC UA, et les futurs protocoles comme Modbus TCP et Sparkplug B) reçoivent les données mises à jour et publient/mettent à jour leurs sorties.
Unified Namespace (UNS)
Section intitulée « Unified Namespace (UNS) »Chaque valeur de membre vit à un chemin dans le graphe d’actifs. L’adaptateur MQTT publie chaque membre comme un topic individuel :
{enterprise}/{site}/{area}/{line}/{instance}/{membre}Par exemple : AcmeCorp/detroit-plant/production/line-1/pump-001/discharge_pressure
OPC UA reflète la même hiérarchie sous forme de nœuds dossier avec des objets d’instance typés en feuille.
Cycle de vie et défaillances
Section intitulée « Cycle de vie et défaillances »Les étapes de cycle de vie modélisent la dégradation à long terme. Un actif progresse à travers des étapes (healthy, degraded, critical) basées sur les heures de fonctionnement. Chaque étape applique des effets aux valeurs des membres.
Les défaillances modélisent les modes de panne. Les déclencheurs s’activent selon l’étape de cycle de vie, des conditions sur les capteurs ou une probabilité. Les effets incluent des spikes de valeur, des multiplicateurs et des offsets avec une durée configurable.
Le graphe d’actifs
Section intitulée « Le graphe d’actifs »Le graphe d’actifs est la source de vérité à l’exécution. Il contient toutes les instances actives avec leurs valeurs de membres actuelles, paramètres, étape de cycle de vie et défaillances actives. Les adaptateurs de protocole lisent depuis le graphe — ils ne calculent jamais les valeurs eux-mêmes.