Aller au contenu

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: MiravoTemplate
version: "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: 20
ChampRequisDescription
kindOuiDoit être MiravoTemplate
versionOuiVersion du schéma. Actuellement "1"
nameOuiNom lisible par l’humain
descriptionNonDescription du template
namespaceOuiNamespace UNS avec enterprise et site
areasOuiListe des areas de l’usine
settingsNonParamètres de simulation

Le namespace définit les deux premiers niveaux de la hiérarchie des topics UNS :

namespace:
enterprise: AcmeCorp
site: detroit-plant

Produit des topics comme : AcmeCorp/detroit-plant/production/line-1/pump-001/pressure

Les areas contiennent des lines. Les lines contiennent des assignments de twins. Cela correspond à la structure ISA-95 :

{enterprise}/{site}/{area}/{line}/{instance}/{membre}

Chaque entrée twin spécifie :

ChampRequisDéfautDescription
modelOuiNom du modèle (doit exister dans le catalogue de contenu)
countNon1Nombre d’instances à créer
variationNon0Dispersion aléatoire (0-1) appliquée aux paramètres numériques
parametersNonSurcharges de paramètres (valeurs numériques uniquement)

Les IDs d’instance sont générés automatiquement : centrifugal-pump-001, centrifugal-pump-002, etc.

ChampDéfautDescription
tick_interval_ms1000Millisecondes entre les ticks
time_multiplier1Multiplicateur de vitesse de simulation. 20 signifie 20x plus rapide que le temps réel.
seedAléatoireGraine RNG pour une sortie déterministe
overrun_threshold_multiplier1.5Quand un tick prend plus longtemps que intervalle * multiplicateur, il est signalé comme overrun

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.

Les templates référencent les modèles par nom. Miravo résout les modèles à travers trois couches par ordre de priorité :

  1. Répertoire courant — Fichiers .twin.yaml dans le répertoire de travail
  2. Registre local~/.miravo/registry/local/models/
  3. 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.

Template intégré par nom :

Fenêtre de terminal
miravo start --template smart-factory

Template local par chemin :

Fenêtre de terminal
miravo start --template ./my-plant.miravo.yaml

Valider sans exécuter :

Fenêtre de terminal
miravo start --template smart-factory --dry-run