info = fmiInfo(fmu)
| Paramètre | Description |
|---|---|
| fmu | une chaîne de caractères : le chemin d'une archive .fmu, ou d'un répertoire de FMU déjà extrait (un dossier contenant un fichier modelDescription.xml à sa racine). |
| Paramètre | Description |
|---|---|
| info | une structure scalaire décrivant la FMU, avec les champs listés ci-dessous. |
fmiInfo analyse le fichier modelDescription.xml d'une unité de maquette fonctionnelle (FMU) conforme au standard FMI 2.0 ou 3.0 et renvoie ses métadonnées sous forme de structure Nelson. Aucune simulation n'est effectuée : seule la description statique est lue, ce qui rend l'appel peu coûteux et sûr pour inspecter une FMU avant de préparer une exécution.
L'argument fmu peut être fourni sous deux formes :
le chemin d'une archive .fmu. L'archive (un conteneur ZIP) est décompressée avec un extracteur durci contre le ZIP-slip dans un répertoire temporaire neuf, supprimé automatiquement avant le retour de fmiInfo. Les entrées comportant un chemin absolu, une lettre de lecteur ou une remontée .. sont rejetées.
le chemin d'un répertoire de FMU déjà extrait. Dans ce cas rien n'est décompressé et le répertoire est lu sur place.
La structure renvoyée info comporte les champs suivants :
| Champ | Classe | Détails |
|---|---|---|
| modelIdentifier | char | l'identifiant de modèle C déclaré par la FMU (utilisé pour localiser son binaire). |
| fmiVersion | char | la chaîne de version FMI renvoyée par la FMU (par exemple 2.0 ou 3.0). |
| coSimulation | logical | true lorsque la FMU fournit l'interface de co-simulation (requise par fmiCoSimulate). |
| modelExchange | logical | true lorsque la FMU fournit l'interface Model Exchange. |
| scheduledExecution | logical | true lorsque la FMU fournit l'interface Scheduled Execution. |
| names | cell de char | les noms des variables scalaires déclarées par la FMU, dans l'ordre de déclaration. |
| valueReferences | double | la référence de valeur de chaque variable (le descripteur numérique utilisé par les appels get/set de FMI). |
| causalities | cell de char | la causalité de chaque variable : parameter, calculatedParameter, input, output, local, independent ou structuralParameter. |
| dataTypes | cell de char | le type de données déclaré de chaque variable (par exemple Float64, Int32, Boolean, String). |
| descriptions | cell de char | la description de chaque variable (vide lorsqu'aucune n'est déclarée). |
| startValues | double | la valeur initiale Float64 de chaque variable, ou NaN lorsque la variable n'en déclare aucune. |
Les quatre champs de variables (names, valueReferences, causalities, dataTypes) sont alignés élément par élément : la k-ième entrée de chacun décrit la même variable. Pour lister les sorties d'une FMU, sélectionnez les entrées dont la causalité vaut output ; ce sont exactement les signaux enregistrés par fmiCoSimulate.
Une erreur est levée lorsque le chemin n'existe pas, lorsque l'archive ne peut pas être extraite, ou lorsque la FMU ne contient pas de fichier modelDescription.xml lisible.
info = fmiInfo('VanDerPol.fmu')
info = fmiInfo('VanDerPol.fmu');
isOutput = strcmp(info.causalities, 'output');
outputs = info.names(isOutput)
info = fmiInfo('VanDerPol.fmu');
if ~info.coSimulation
error('Cette FMU ne fournit pas l''interface de co-simulation.');
end
| Version | Description |
|---|---|
| 2.0.0 | version initiale |