Templates
Composez des modèles en topologies de site structurées avec des templates .miravo.yaml, des instances, des surcharges de paramètres et de la variation.
Un template (.miravo.yaml) compose des modèles en une topologie d’usine.
kind: MiravoTemplateversion: "1"name: "Smart Factory Production Line"description: "Ligne de fabrication discrète avec convoyeurs, moteur, circuit de refroidissement, air comprimé"
namespace: enterprise: MiravoWorks site: smart-factory
areas: - name: production lines: - name: line-1 twins: - model: belt-conveyor count: 2 variation: 0.04 - model: ac-induction-motor count: 1 variation: 0.03 - model: centrifugal-pump count: 1 variation: 0.05 parameters: rated_flow: 35 rated_head: 24 - name: utilities lines: - name: compressed-air twins: - model: air-compressor count: 1
settings: tick_interval_ms: 1000 time_multiplier: 20Référence du schéma
Section intitulée « Référence du schéma »Champs de premier niveau
Section intitulée « Champs de premier niveau »| Champ | Requis | Description |
|---|---|---|
kind | Oui | Doit être MiravoTemplate |
version | Oui | Version du schéma. Actuellement "1" |
name | Oui | Nom lisible par l’humain |
description | Non | Description du template |
namespace | Oui | Namespace UNS avec enterprise et site |
areas | Oui | Liste des areas de l’usine |
settings | Non | Paramètres de simulation |
Namespace
Section intitulée « Namespace »Le namespace définit les deux premiers niveaux de la hiérarchie des topics UNS :
namespace: enterprise: AcmeCorp site: detroit-plantProduit des topics comme : AcmeCorp/detroit-plant/production/line-1/pump-001/pressure
Areas et lines
Section intitulée « Areas et lines »Les areas contiennent des lines. Les lines contiennent des assignments de twins. Cela correspond à la structure ISA-95 :
{enterprise}/{site}/{area}/{line}/{instance}/{membre}Assignments de twins
Section intitulée « Assignments de twins »Chaque entrée twin spécifie :
| Champ | Requis | Défaut | Description |
|---|---|---|---|
model | Oui | — | Nom du modèle (doit exister dans le catalogue de contenu) |
count | Non | 1 | Nombre d’instances à créer |
variation | Non | 0 | Dispersion aléatoire (0-1) appliquée aux paramètres numériques |
parameters | Non | — | Surcharges de paramètres (valeurs numériques uniquement) |
Les IDs d’instance sont générés automatiquement : centrifugal-pump-001, centrifugal-pump-002, etc.
Settings
Section intitulée « Settings »| Champ | Défaut | Description |
|---|---|---|
tick_interval_ms | 1000 | Millisecondes entre les ticks |
time_multiplier | 1 | Multiplicateur de vitesse de simulation. 20 signifie 20x plus rapide que le temps réel. |
seed | Aléatoire | Graine RNG pour une sortie déterministe |
overrun_threshold_multiplier | 1.5 | Quand un tick prend plus longtemps que intervalle * multiplicateur, il est signalé comme overrun |
Variation
Section intitulée « Variation »Le champ variation applique une dispersion aléatoire aux paramètres numériques lors de la création d’instances. Avec variation: 0.05, un paramètre avec la valeur par défaut 1750 peut varier de 1662.5 à 1837.5 (plus ou moins 5%).
Chaque instance reçoit une variation différente du générateur aléatoire avec graine, produisant une diversité réaliste d’une flotte.
Résolution du contenu
Section intitulée « Résolution du contenu »Les templates référencent les modèles par nom. Miravo résout les modèles à travers trois couches par ordre de priorité :
- Répertoire courant — Fichiers
.twin.yamldans le répertoire de travail - Registre local —
~/.miravo/registry/local/models/ - Intégré — Livré avec Miravo via le package
@miravo/content
Vous pouvez ainsi surcharger un modèle intégré en plaçant un fichier du même nom dans votre répertoire de travail ou registre local.
Exécuter un template
Section intitulée « Exécuter un template »Template intégré par nom :
miravo start --template smart-factoryTemplate local par chemin :
miravo start --template ./my-plant.miravo.yamlValider sans exécuter :
miravo start --template smart-factory --dry-run