LIBPF® Manuel de l’utilisateur

Ce document est le Guide de l’utilisateur des modèles LIBPF® pour la version 1.1 ; il s’adresse à ceux qui souhaitent interagir via l’application de bureau LIBPF® avec des modèles développés par d’autres (utilisateur du modèle). Il est également disponible en anglais, italien et allemand.

Conditions préalables :

Pour plus d’informations, voir :

Introduction

La technologie LIBPF® (C++ LIBrary for Process Flowsheeting) vous permet de créer une forme exécutable et interactive d’un modèle de processus dans diverses configurations, qui peut ensuite être distribuée en tant qu’application autonome.

L’interaction avec le modèle s’effectue de manière contrôlée via l’interface utilisateur LIBPF® (UIPF : User Interface for Process Flowsheeting). L’interface ne permet pas à l’utilisateur de modifier les configurations du procédé : les courants et unités présents, leurs connexions et leurs configurations sont fixés une fois pour toutes par celui qui a développé le modèle. Une exception peut être certains modèles préconfigurés avec des fonctionnalités particulières qui permettent d’activer ou de désactiver certains objets. L’interface vous permet plutôt de :

L’interface utilisateur LIBPF® est compatible avec différents systèmes d’exploitation : Microsoft Windows (Windows 10 ou version ultérieure), Apple macOS (14.1.1 ou version ultérieure) et Linux (par exemple Debian 11 et version ultérieure, Ubuntu 21.04 et version ultérieure) ; les images présentées dans ce manuel ont été pour la plupart prises sous Microsoft Windows 7, mais l’apparence de l’application et son fonctionnement ne changent pas sur les autres systèmes d’exploitation.

L’interface utilisateur LIBPF® est une application internationalisée qui prend en charge 12 langues : (arabe moderne, chinois simplifié, anglais, français, allemand, hébreu, italien, japonais, coréen, portugais, russe et espagnol) ; et défilement de texte de droite à gauche (pour l’arabe et l’hébreu) ​​ainsi que défilement de texte de gauche à droite pour toutes les autres langues.

Démarrage de l’interface utilisateur LIBPF®

Sous Windows après l’installation, l’interface utilisateur LIBPF® est installée dans Program Files → LIBPF® 1.1. Pour lancer l’interface utilisateur, cliquez sur UIPF :

LIBPFUSRmanual-img001.png

Pour plus de commodité, à ce stade, il est préférable de faire un clic droit sur l’application et de sélectionner Ajouter à la barre des tâches dans le menu ci-dessous, de cette façon, chaque fois que vous souhaitez démarrer l’interface utilisateur LIBPF® , vous la trouverez dans la barre des tâches Applications de bureau :

LIBPFUSRmanual-img004.png

Sur les systèmes Linux , l’interface utilisateur LIBPF® est disponible sous forme de fichier exécutable /usr/bin/UIPF. Vous pouvez déplacer le fichier UIPF vers n’importe quel emplacement préféré (bureau, autres dossiers, …) et l’exécuter : toutes les données, résultats et paramètres sont toujours enregistrés dans le dossier cache du noyau (/var/cache/LIBPF_1.1).

Au démarrage, l’interface apparaît comme sur la figure ci-dessous, où l’on identifie les 6 zones principales :

LIBPFUSRmanual-img005.png
  1. Barre de menu

  2. Barre d’outils, qui présente une sélection des commandes les plus utilisées

  3. Panneau d’arborescence, montrant une vue structurée des différents éléments (flux, unités, réactions) qui composent le processus

  4. Panneau d’affichage détaillé, dans lequel vous pouvez consulter les entrées et les résultats, et afficher la connectivité des schémas de traitement

  5. Panneau de messages, où sont affichés les messages de diagnostic provenant du moteur de calcul

  6. Barre d’état, où apparaissent les messages de confirmation et où à droite se trouve une petite case (verte dans l’image) qui devient rouge en cas d’erreurs.

Gestion des simulations

Contrairement à la plupart des outils de simulation de processus, l’interface utilisateur de LIBPF® n’utilise pas de fichiers pour sauvegarder les résultats de simulation (appelés cas en anglais), mais s’appuie sur une base de données.

Ceci est possible, car l’interface ne permet pas à l’utilisateur de modifier la configuration du processus, mais uniquement les paramètres de fonctionnement et les options mises à disposition par celui qui a développé le modèle. La distinction entre configuration (fixe pour toutes les simulations d’un certain processus) et conditions opératoires (différentes d’un problème à l’autre) est analogue à la distinction entre classe et instance d’un objet dans la programmation orientée objet, et constitue une particularité de LIBPF.® technologie .

La différence entre les approches conventionnelles et orientées objet de LIBPF® est illustrée par les deux tableaux suivants :

Approche conventionnelle

Programme à usage général Configuration / Conditions de fonctionnement
Microsoft Excel Modèle de processus A dans les conditions 1 (fichierA1.xls)
Modèle de processus A dans les conditions 2 (fichierA2.xls)
Modèle de processus A dans les conditions 3 (fichierA3.xls)
Modèle de processus A dans les conditions 4 (fichierA4.xls)

Approche orientée objet de LIBPF®

Programme à usage spécifique / Configuration Conditions de fonctionnement
Application LIBPF® pour le procédé A Condition 1 : Problème A1
Condition 2: Problème A2
Application LIBPF® pour le procédé B Condition 3: Problème B3
Condition 4: Problème B4

Les avantages de l’approche orientée objet sont :

  1. Réduit la duplication des informations ;

  2. Cela réduit la possibilité d’erreurs (par exemple pour une comparaison du processus A dans les conditions 1 et 2, il est nécessaire que les fichiers Microsoft Excel fichierA1.xls et fichierA2.xls diffèrent uniquement dans les conditions de fonctionnement, et non dans les détails de calcul du modèle - mais il est facile de faire erreurs! )

  3. Il permet de mettre à jour une série de scénarios (un ensemble de problèmes) avec une nouvelle version du processus (par exemple avec des modèles plus précis) de manière systématique.

Dans une installation typique de Microsoft Windows, la base de données utilisée est au format Access (bien que Microsoft Access ne doive pas être installé) et se trouve dans le fichier persistency.mdb du dossier de travail du profil de l’utilisateur actuel, généralement au format C:\ProgramData\LIBPF 1.0.

Créer une nouvelle simulation

Vous pouvez créer une nouvelle simulation dans l’interface utilisateur de LIBPF® avec la commande Simulation → Nouvelle de la barre de menu :

LIBPFUSRmanual-img006.png

ou avec le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img007.png

Le programme affiche une boîte de dialogue à partir de laquelle il est possible de choisir la configuration du processus (généralement une seule application LIBPF® peut gérer différentes configurations), et de donner un nom et une description à la simulation :

LIBPFUSRmanual-img008.png

Il existe des limites aux caractères autorisés dans les champs d’étiquette et de description :

Lorsque l’utilisateur confirme, l’interface démarre le noyau de calcul qui instancie un objet du type choisi (en l’occurrence DeltaT) avec le nom (en l’occurrence « base ») et la description (en l’occurrence « Cas de base ») fournis par l’utilisateur, l’enregistre dans la base de données et enfin l’ouvre. A noter que les résultats ne sont pas significatifs, car le calcul n’a pas encore été lancé.

À la fin de ces opérations, l’interface utilisateur LIBPF® est prête pour l’édition des données d’entrée et pour le calcul (voir les chapitres correspondants Edition des données d’entrée et Calcul).

Enregistrer une simulation avec un nouveau nom/description

Après avoir consulté les résultats, vous pouvez décider de créer une nouvelle simulation à partir de la simulation actuelle, par rapport auquel vous souhaitez modifier certaines conditions opératoires.

Par exemple, si le cas actuel est le cas « Cas de base », vous souhaiterez peut-être créer une nouvelle simulation « Cas 75 pour cent » pour calculer les conditions de fonctionnement à charge réduite. Pour ce faire, la commande Simulation → Enregistrer sous est disponible :

LIBPFUSRmanual-img009.png

qui duplique la simulation actuelle dans la base de données, en appliquant la description indiquée :

LIBPFUSRmanual-img010.png

Les limitations répertoriées dans le chapitre Création d’une nouvelle simulation s’appliquent aux caractères autorisés dans le champ de description ; une description « cas à 75 % » n’est pas autorisée, car le caractère % n’est pas autorisé.

NB : la nouvelle simulation n’est pas immédiatement chargée dans l’interface : il faut procéder explicitement à la récupération de la nouvelle simulation, avec les méthodes illustrées dans le chapitre suivant Récupérer une simulation existante.

Comme mieux illustré dans le chapitre Modification des données d’entrée, toute modification des conditions de fonctionnement effectuée via l’interface graphique est immédiatement appliquée à la simulation actuelle. Il est donc important de donner la commande Enregistrer sous et de charger immédiatement la nouvelle simulation avant de commencer à modifier quoi que ce soit, sinon nous modifierons la simulation actuelle !

Récupération d’une simulation existante

Au fur et à mesure que nous avançons dans le travail, tous les simulations que nous générons sont enregistrées dans la base de données. A tout moment vous pouvez rouvrir une simulation précédemment créée avec la commande Simulation → Ouvrir :

LIBPFUSRmanual-img011.png

ou avec le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img012.png

Le programme présente ensuite un tableau avec la liste des simulations existants, parmi lesquelles il est possible de choisir celle qui vous intéresse :

LIBPFUSRmanual-img013.png

NB : après chargement de la simulation le calcul n’est pas lancé : les simulations sont enregistrés dans la base de données immédiatement après avoir été calculées, l’interface graphique peut donc restaurer leur état complet (saisies et résultats).

Élimination des simulations

Si pour une raison quelconque la simulation actuelle ne vous intéresse plus, vous pouvez la supprimer de la base de données avec la commande Simulation → Supprimer :

LIBPFUSRmanual-img014.png

Remarque : la commande n’est disponible qu’après avoir chargé la simulation

Attention : l’élimination d’une simulation est un processus irréversible, et aucune confirmation n’est nécessaire : soyez attentif !

De plus, s’il y a trop de simulations dans la base de données, ou si vous souhaitez réinitialiser le travail effectué, vous pouvez vider complètement la base de données. A cet effet, la commande Simulation → Vider est disponible :

LIBPFUSRmanual-img015.png

Attention : le vidage complet de la base de données est un processus irréversible aux conséquences importantes (par exemple il supprime également les problèmes générés avec une autre application LIBPF® , qui sont enregistrés dans la base de données, même s’ils sont invisibles depuis l’interface), c’est pourquoi il une confirmation explicite est-elle requise :

LIBPFUSRmanual-img016.png

Il est recommandé, en cas de doute, de créer manuellement une copie de la base de données (persistency.mdb située dans le dossier de travail mentionné ci-dessus) (copier-coller le fichier) dans un dossier sûr (ie Documents\backupDataBases).

Organisation des objets et sous-objets

Lorsqu’un problème est ouvert avec l’interface, une vue structurée des différents éléments (flux, unités, réactions) qui composent le processus est affichée dans le panneau d’arborescence.

Le programme utilise différentes icônes pour indiquer le type d’objet :

Icône Description
LIBPFUSRmanual-img017.png les schémas et sous-schémas de flux
LIBPFUSRmanual-img018.png le dossier qui contient tous les courants
LIBPFUSRmanual-img019.png le dossier qui contient tous les unités
LIBPFUSRmanual-img020.png un courant matériel
LIBPFUSRmanual-img021.png une phase (normalement contenue dans un courant)
LIBPFUSRmanual-img022.png une unité (par exemple un compresseur ou un réacteur)
LIBPFUSRmanual-img023.png une réaction chimique
LIBPFUSRmanual-img024.png une multi-réaction (un type particulier de réaction qui déplace les espèces d’un flux à un autre, utilisée dans les unités de piles à combustible et de membranes)
LIBPFUSRmanual-img025.png un objet inconnu (cette icône ne doit jamais apparaître)

Dès que vous ouvrez un ticket, l’élément racine (le plus haut) représente le ticket actuel. La navigation à travers les objets et sous-objets s’effectue au moyen d’un double-clic (simple clic pour les systèmes Linux) sur la ligne de l’arborescence, ce qui change l’objet sélectionné : au fur et à mesure que l’on avance dans l’arborescence, seuls les objets contenus sont affichés. dans l’objet courant.

Par exemple, en partant d’une vue de ce type :

LIBPFUSRmanual-img026.png

en double-cliquant sur Gasifier, la vue changera comme ceci :

LIBPFUSRmanual-img027.png

notez le chemin complet vers l’objet : JasperDanny:Gasifier ; dans les chemins complets vers les variables, un deux-points (:) est utilisé pour séparer les objets des sous-objets et un point (.) est utilisé pour séparer l’objet de la variable.

En continuant à consulter les sous-objets contenus dans Gasifier, un double-clic sur RCOMB l’arborescence deviendra :

LIBPFUSRmanual-img028.png

et enfin en double-cliquant sur reactions[1] seul l’objet courant sera affiché (car la réaction ne contient pas de sous-objets) :

LIBPFUSRmanual-img029.png

notez le chemin complet vers l’objet : JasperDanny:Gasifier:RCOMB:reactions[1] ; pour les objets vectoriels ou les variables, l’opérateur de suffixe entre crochets [] sélectionne l’objet d’intérêt avec un indice entier commençant à zéro, par exemple reactions[0] est la première réaction et x[5] est la sixième fraction molaire

Le dossier Stream contient des objets de type Stream, chacun avec son état thermodynamique (T, P), et, comme sous-objets, les Phases, à la fois les phases individuelles et (s’il y a plus d’une phase présente) la phase totale. Dans le dossier Unité, vous trouverez les sous-schémas de flux et opérations unitaires, chacun avec les spécifications et les paramètres qui les caractérisent (deltaP, duty, deltaH, deltaS, efficacités, …). Les unités peuvent à leur tour contenir les réactions caractérisées par des coefficients stoechiométriques, des constantes d’équilibre et/ou un degré de conversion.

Pour revenir en arrière dans la structure d’un seul niveau, vous pouvez utiliser la commande Affichage → Monter de la barre de menu :

LIBPFUSRmanual-img030.png

ou le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img031.png

Pour retracer la structure jusqu’au niveau le plus élevé, vous pouvez utiliser la commande Affichage → Racine de la barre de menu :

LIBPFUSRmanual-img032.png

ou le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img033.png

Une fois l’objet d’intérêt sélectionné, il est possible de consulter les détails dans le panneau de droite (vue détaillée), qui comporte trois onglets :

Le dernier onglet est actif uniquement pour les schémas et sous-schémas, permettant d’afficher le schéma de procédé, de l’agrandir ou de le réduire, et de consulter les sous-objets en cliquant de manière interactive sur les unités ou les courants : l’effet est équivalent en double-cliquant sur le objet correspondant dans l’arborescence de gauche.

Simulation

Modification des données d’entrée

L’interface utilisateur vous permet de définir les paramètres de fonctionnement, les conditions de fonctionnement et de modifier les options mises à disposition par ceux qui ont développé le modèle. Cela implique que certains paramètres d’entrée peuvent être inaccessibles, car le développeur du modèle les a jugés inintéressants, voire dangereux à manipuler (par exemple pour la stabilité, l’exactitude et la convergence du modèle).

Avec ces limitations, l’édition est très simple : il suffit de parcourir l’arborescence et d’identifier le flux, l’unité, le sous-schémas de flux ou la réaction que vous souhaitez modifier, puis de double-cliquer. Par exemple, si l’on souhaite modifier un paramètre d’entrée relatif au reactions[0] de type réaction BiomassReaction_pyro_max dans l’unité RPY de type FlashDrumprésente dans le sous-flowsheet Gasifier de type PerfectMixedStageGasificationPluggable, il suffit de parcourir l’arborescence et de double-cliquer sur l’objet Gasifier:RPY:reactions[0]:

LIBPFUSRmanual-img034.png

pour modifier l’arborescence, qui affiche désormais l’objet actuel :

LIBPFUSRmanual-img035.png

Le panneau de vue détaillée présente désormais une vue filtrée des détails relatifs à la réaction sélectionnée ; en particulier, cliquer sur l’onglet Données en entrée affichera les variables d’entrée manipulables (dans ce cas une seule, la conversion) :

LIBPFUSRmanual-img036.png

À ce stade, cliquez simplement dans la case et saisissez la nouvelle valeur :

LIBPFUSRmanual-img037.png

Le changement devient effectif en appuyant sur Entrée ou en cliquant sur un autre élément de l’interface utilisateur (c’est-à-dire en supprimant le focus du champ de saisie).

Chaque modification des conditions opératoires ainsi effectuée via l’interface graphique est immédiatement mise à jour dans la base de données en référence au problème actuel. Pour cette raison, il n’est pas nécessaire d’enregistrer explicitement les modifications comme nous avons l’habitude de le faire dans d’autres programmes : la commande Simulation → Enregistrer n’existe même pas, mais il existe Simulation → Enregistrer sous , qui est utilisée pour créer une copie du fichier actuel. problème (voir le chapitre correspondant Enregistrer un problème avec un nouveau nom/description).

Calcul

Lorsqu’un nouveau problème est créé, les résultats ne sont pas significatifs car le calcul n’a pas encore été lancé (voir Créer un nouveau problème). De plus, si vous chargez un problème existant (voir Récupérer un problème existant) ou si vous apportez des modifications au problème en cours (voir chapitre précédent Modifier les données d’entrée), il est nécessaire de lancer le calcul explicitement.

Cette logique est avantageuse si les simulations sont d’une durée importante : en effet, si le calcul démarrait automatiquement après chaque modification, cela pourrait rendre l’interface utilisateur moins réactive.

Dans tous les cas, le calcul du problème courant peut être lancé avec la commande Passage → Calculer :

LIBPFUSRmanual-img038.png

ou avec le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img039.png

Le calcul est délégué par l’interface graphique à un exécutable, le noyau de calcul, qui est lancé comme un processus distinct, comme le montre la notification affichée dans la barre d’état en bas à droite :

LIBPFUSRmanual-img040.png

Pendant le calcul dans le panneau inférieur (messages), les messages de diagnostic du noyau sont affichés en temps réel, afin de suivre la progression du calcul. Un chemin typique en cas de succès du calcul pourrait être :

LIBPFUSRmanual-img041.png

Cependant, si des erreurs surviennent lors du calcul, elles sont surlignées en rouge dans le panneau de message :

LIBPFUSRmanual-img042.png

Dans ces cas anormaux la durée d’un calcul pourrait être trop longue, et compte tenu des erreurs rencontrées les résultats n’auront certainement aucun intérêt ; si nécessaire dans ces cas il est possible d’interrompre le calcul, avec la commande Passage → Arrêter :

LIBPFUSRmanual-img043.png

ou avec le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img044.png

A la fin de chaque calcul, il est possible de consulter les résultats en utilisant les méthodes indiquées dans le chapitre Consultation des résultats.

Homotopie

L’homotopie est une méthode numérique de continuation globalement convergente pour résoudre des systèmes d’équations non linéaires. Grâce à l’homotopie, à partir d’un problème numérique complexe, un problème simple approprié est construit et résolu de telle sorte qu’il puisse être déformé et transformé en problème original. Lors de la déformation, les déformations intermédiaires du système d’équations et les solutions intermédiaires correspondantes sont suivies afin d’adapter la déformation et le taux de déformation.

Dans l’interface utilisateur LIBPF® vous pouvez effectuer le calcul en mode homotopie :

LIBPFUSRmanual-img045.png

Ce mode est utile lorsqu’un processus est très sensible au changement de certains paramètres d’entrée ou si la valeur de ces paramètres est « beaucoup » modifiée en termes de valeurs numériques. Pendant la résolution en mode homotopie, tous les paramètres d’entrée qui ont été modifiés par l’utilisateur par rapport à l’exécution précédente du calcul sont modifiés simultanément et progressivement, en exécutant plusieurs simulations pour les valeurs intermédiaires jusqu’à ce qu’ils atteignent les nouvelles valeurs souhaitées.

Consultation des résultats

État du calcul

À la fin d’un calcul ou juste après avoir créé une nouvelle simulation, l’interface utilisateur affichera quelque chose de similaire à cette figure :

LIBPFUSRmanual-img046.png

Tout d’abord, remarquez la notification « Le nœud 426 a été ouvert » dans la barre d’état en bas à droite : ce numéro est utilisé dans la base de données pour identifier de manière unique le problème actuel.

Dans le panneau supérieur gauche (arborescence), le programme utilise des codes de couleur pour indiquer en un coup d’œil l’état du dernier calcul :

En cas d’avertissements ou d’erreurs, les codes couleurs sont affichés sur chaque objet contenu, pour faciliter la recherche de la cause :

LIBPFUSRmanual-img050.png

À partir de cet exemple, vous pouvez voir que la simulation (« base ») contient des erreurs (ligne rouge) car les sous-objets Gasifier et SynGasCond contiennent des erreurs. Les sous-objets AirPreHeater, GasMediumPreHeater, SynGasCooler et TarCracker contiennent des avertissements (lignes jaunes), mais les erreurs prédominent dans la détermination de l’état global de la simulation.

Les détails et descriptions relatifs aux erreurs et avertissements sont affichés dans l’onglet « Messages » à droite avec les mêmes conventions de couleurs, jaune pour les avertissements et rouge pour les erreurs.

LIBPFUSRmanual-img051.png

Résultats

Les résultats des différentes unités et flux sont accessibles dans les onglets « Résultats » du panneau de droite (vue détaillée), en naviguant à travers les objets et sous-objets comme illustré dans le chapitre Organisation des objets et sous-objets.

Ces tableaux vous permettent de sélectionner une région ou le tableau entier, et de le copier dans le presse-papier :

LIBPFUSRmanual-img052.png

Pour la sélection dans la figure, le texte copié dans le presse-papier comprendra les en-têtes de colonnes et le contenu des cellules sélectionnées, les colonnes étant séparées par des tabulations (caractère ⇥) :

Tag ⇥Value ⇥Units
:purity[0] ⇥0,269262 ⇥
:purity[1] ⇥0,689469 ⇥
:purity[2] ⇥0,0412695 ⇥
:recovery[0] ⇥0,678194 ⇥
:recovery[1] ⇥0,984059 ⇥
:recovery[2] ⇥0,589029 ⇥
TestMembraneFreeFlowMulti:FEED:P ⇥650.000 ⇥m^-1 kg s^-2

Les notes peuvent être directement collées dans une feuille de calcul, car les taquets de tabulation sont interprétés comme des sauts de colonne.

Les résultats des flux de matières (bilans matières et énergétiques) peuvent être exportés vers un tableur tel que Microsoft Excel (si disponible) sur les systèmes d’exploitation Microsoft Windows pris en charge, ou LibreOffice (si disponible) sur tous les systèmes d’exploitation pris en charge, comme illustré dans le deux paragraphes suivants.

Concernant les valeurs numériques, l’interface utilisateur LIBPF® utilise les paramètres système pour les formats (virgule ou point comme séparateur décimal etc.).

Unité de mesure (UdM)

L’interface utilisateur LIBPF® prend actuellement en charge trois systèmes d’unités : SI (Système International), EN (Système Anglo-Saxon) et Eng (système d’ingénierie). Par défaut, SI est défini et le noyau utilise réellement ce système d’unités de mesure pour effectuer des calculs. Il est possible de changer le système d’unités pour toutes les variables en sélectionnant le menu Configuration → Unités :

LIBPFUSRmanual-img053.png

Dès que le paramètre global par unité est modifié, tous les masques de saisie et de résultat sont présentés dans les nouvelles unités et les valeurs déjà saisies sont modifiées de manière appropriée afin qu’il n’y ait aucun changement dans la simulation.

En plus des systèmes d’unités, l’interface utilisateur LIBPF® prend également en charge d’autres unités de mesure sélectionnables pour les variables individuelles dans les entrées et les résultats. Ces paramètres sont accessibles pour chaque variable en sélectionnant la cellule correspondante dans la colonne “Unités de mesure”. Une fois l’unité sélectionnée, la valeur numérique est automatiquement convertie.

LIBPFUSRmanual-img054.png

Les unités de mesure prises en charge sont répertoriées dans ce tableau, qui les répertorie subdivisées pour chaque grandeur physique.

Export des bilans matière et énergétique vers LibreOffice

Si un programme capable de lire le format OpenDocument ODF tel que LibreOffice est installé, il est possible d’exporter l’intégralité du tableau des bilans matière et énergie des courants de matière en utilisant la commande Affichage → Résultats des courants ODS :

LIBPFUSRmanual-img055.png

ou avec le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img056.png

Remarque : la commande n’est disponible qu’une fois le calcul effectué.

Dans ce cas également, la feuille de calcul s’ouvre en quelques secondes :

LIBPFUSRmanual-img057.png

La logique de fonctionnement de cette commande est cependant très différente de celle décrite dans le chapitre suivant, Exportation des bilans matières et énergétiques vers Microsoft Excel ; dans ce cas, en effet, aucune macro n’est exécutée dans LibreOffice, mais le fichier streamtable.ods est généré directement à partir de certains fichiers produits par le noyau de calcul (notamment content.xml, qui est produit à la fin de chaque calcul). Cela signifie que le fichier streamtable.ods est réécrit à chaque fois, il n’est donc pas possible de conserver une feuille « formatée » présentant les mêmes résultats correctement formatés, comme dans Microsoft Excel. De plus, en raison d’un problème interne à LIBPF® , les données de chaque flux et de chaque phase sont classées par ligne plutôt que par colonne comme dans le cas de Microsoft Excel, ce qui rend la lecture difficile.

L’approche pour créer un formatage lisible consiste à créer un fichier LibreOffice indépendant, par ex. formaté.ods, et allez chercher les cases qui vous intéressent en créant des liens entre la fiche formaté.ods et le fichier streamtable.ods, exemple :

=file:///home/paolog/LIBPF_1.0/streamtable.ods’#$Tabella1.$A$1

La fonction LibreOffice INDEX(référence, ligne, colonne) peut être utile car elle permet de passer d’une vue en lignes à une vue en colonnes.

En créant des liens de ce type, le fichier formaté.ods restera lié en permanence au fichier streamtable.ods; à chaque nouveau tour il sera possible de mettre à jour le fichier formaté.ods en procédant en quatre étapes :

  1. Dans l’interface utilisateur de LIBPF® , donner la commande Affichage → Résultats des courants ODS ;

  2. Fermez le fichier streamtable.ods régénéré qui s’ouvre automatiquement (nous ne souhaitons pas consulter ou modifier ce fichier) ;

  3. Dans LibreOffice, donnez la commande Modifier → Liens pour formaté.ods :

    LIBPFUSRmanual-img058.png
  4. Cliquez sur le bouton « Mettre à jour » et fermez la boîte de dialogue :

    LIBPFUSRmanual-img059.png

Export des bilans matières et énergétiques vers Microsoft Excel

Sur les systèmes d’exploitation Microsoft Windows supportés, si le programme Microsoft Excel est installé, il est possible d’exporter l’intégralité du tableau des bilans matière et énergie des courants matières en utilisant la commande Affichage → Résultats des courants XLS :

LIBPFUSRmanual-img060.png

ou avec le bouton correspondant dans la barre d’outils :

LIBPFUSRmanual-img061.png

Cette commande ouvre le fichier streamtable.xls dans Microsoft Excel et lance une macro écrite en Visual Basic pour Applications qui lit les valeurs nécessaires à partir de la base de données Microsoft Access, en les chargeant sur la feuille « données brutes » du fichier.

La fiche « formatée » présente les mêmes résultats convenablement formatés :

LIBPFUSRmanual-img062.png

Faites attention aux colonnes de la feuille « formatée » : il peut être nécessaire d’agrandir ou de réduire les colonnes formatées avec les commandes Excel appropriées, pour gérer des flowsheets avec un nombre de flux plus ou moins important. Pour étendre les colonnes formatées, sélectionnez la colonne du premier flux et cliquez dans le coin supérieur droit de la sélection (là où apparaît le curseur de remplissage) et faites glisser vers la droite. Supprimez ensuite les colonnes sans le nom du flux.

La fenêtre Microsoft Excel peut rester ouverte, et en appuyant sur le bouton “Mettre à jour les résultats”, il est possible à tout moment (par exemple après un nouveau calcul) de répéter l’exécution de la macro : ce fichier restera pointé sur l’objet qui était ouvert dans l’interface utilisateur de LIBPF® au moment où la commande d’ouverture d’Excel a été donnée.

Exportation de toutes les données vers un fichier texte

Il est possible d’exporter toutes les données de l’objet actuellement ouvert et de ses sous-objets, en les enregistrant dans un fichier texte (.txt). Cette fonctionnalité est disponible dans le menu « Affichage » en cliquant sur « Résultats TXT » :

LIBPFUSRmanual-img063.png

Lorsque cette commande est invoquée, le modèle actuellement affiché (plus précisément le nœud actuellement ouvert dans l’arborescence) depuis UIPF est exporté vers un fichier texte appelé « ID.txt », où ID est l’identifiant avec lequel le modèle est enregistré dans le base de données. Le fichier texte généré est automatiquement ouvert par le programme fourni par le système d’exploitation pour ouvrir les fichiers texte (c’est-à-dire le Bloc-notes).

Exportation de toutes les données au format XHTML

Il est possible d’exporter toutes les données de l’objet actuellement ouvert et de ses sous-objets, en les enregistrant au format XHTML. Cette fonctionnalité est disponible dans le menu « Affichage » en cliquant sur « Résultats HTML » :

LIBPFUSRmanual-img064.png

Lorsque cette commande est invoquée, le modèle actuellement affiché (plus précisément le nœud actuellement ouvert dans l’arborescence) est exporté dans une série de fichiers XML distincts, qui sont placés dans un répertoire temporaire avec une douzaine de fichiers auxiliaires qui permettent sa visualisation.

Le fichier XHTML appelé “index.xhtml” est ouvert automatiquement par le programme mis en place par le système d’exploitation pour ouvrir les fichiers HTML (qui doit être l’un des navigateurs pris en charge), et à partir de là, il est possible de parcourir tous les sous-objets en en suivant les liens.

Analyse de sensibilité

Il arrive très souvent au cours d’un projet que des études de sensibilité soient nécessaires. Ces études de sensibilité sont très répétitives et consistent à faire évoluer un certain nombre de paramètres (variables contrôlées) sur une certaine plage pour un certain nombre de points, à faire une simulation pour chaque point et à rapporter un certain nombre de résultats (variables observées) dans un tableau. . ).

Pour automatiser ces tâches, l’interface utilisateur LIBPF® dispose d’une fonctionnalité d’analyse de sensibilité multidimensionnelle. En pratique, cet outil permet de déterminer la sensibilité d’un modèle à l’évolution de la valeur d’un des paramètres et d’évaluer comment le changement de valeur influence le comportement du modèle ; Par ailleurs, il apporte une aide à la sélection des variables dites « critiques », c’est-à-dire celles dont l’écart par rapport à la valeur nominale a la plus grande influence sur les indicateurs de performance ; avec cet outil, une grande quantité d’informations relatives au modèle et au processus peut être acquise en peu de temps. L’outil d’analyse de sensibilité disponible dans l’interface utilisateur LIBPF® vous permet d’effectuer différentes simulations en contrôlant une ou plusieurs variables du problème et en gardant toutes les autres inchangées, et de surveiller l’effet sur un ou plusieurs résultats.

En cliquant sur Outils → Analyse de sensibilité :

LIBPFUSRmanual-img065.png

une fenêtre apparaît contenant trois onglets : « Vérifier », « Observer » et « Résultats ».

LIBPFUSRmanual-img066.png

Dans l’onglet “Contrôle”, il est possible de sélectionner une ou plusieurs variables contrôlées (au moins une est nécessaire), de sélectionner l’unité de mesure, d’attribuer une étiquette qui sera affichée en en-tête dans la colonne correspondante du tableau des résultats, d’établir les valeurs de début et de fin de la plage de variation et le nombre de points en lesquels diviser la plage. Le tableau apparaît avec une ligne déjà insérée, l’ajout d’autres variables contrôlées se fait à l’aide du bouton « + » en bas à gauche. La suppression d’une variable contrôlée s’effectue à l’aide du bouton « - » à côté de celle-ci.

Dans la partie inférieure de la fenêtre il est possible de choisir dans quel ordre effectuer la sensibilité (naturelle, boustrophédique qui est la valeur du défaut ou quasi-spirale) et le temps maximum pour le calcul. L’ordre de sensibilité est important si des difficultés de convergence sont rencontrées sur certains points. Le délai maximum du calcul de sensibilité, s’il est fixé à une valeur strictement supérieure à zéro, est interprété comme un time-out exprimé en secondes - si l’exécution de l’analyse de sensibilité dure aussi longtemps, l’aval est interrompu et les résultats obtenus jusque-là sont rapportés.

L’utilisateur peut choisir la variable contrôlée dans la liste de toutes les variables spécifiables pour le cas courant (ce sont les variables qui apparaissent sur les onglets « Entrée » des unités et des flux).

Dès qu’une variable contrôlée a été choisie ou que sa sélection a été modifiée, le programme met à jour les unités de mesure et initialise les limites de début et de fin de sensibilité avec la valeur actuelle de la variable ; la description de la variable est également affichée. L’utilisateur n’a généralement besoin que de modifier l’une des deux limites et probablement de définir le nombre de points sur une valeur supérieure à la valeur par défaut de 1, ce qui réduirait la sensibilité à l’exécution d’un seul tour.

À ce stade, il est possible en appuyant sur « Suivant » de passer à l’onglet « Observer » où vous pouvez choisir les variables (résultats) à observer.

L’utilisateur peut choisir les variables observées dans la liste de toutes les variables de résultat pour le cas courant (ce sont les variables qui apparaissent sur les onglets « Résultats » des unités et des filières). Dès qu’une variable observée a été choisie, ou que sa sélection a été modifiée, le programme met à jour les unités de mesure, la description et l’étiquette de la variable. S’il le souhaite, l’utilisateur peut modifier l’étiquette, qui sera affichée en en-tête dans la colonne correspondante du tableau des résultats.

Le tableau des variables observées comporte un nombre de lignes variable, cependant supérieur ou égal à un (cela n’a aucun sens de réaliser une étude de sensibilité sans observer au moins une variable). L’utilisateur peut ajouter de nouvelles lignes ou supprimer celles existantes à l’aide des boutons plus (+) et moins (-).

LIBPFUSRmanual-img067.png

A ce stade, il est possible en appuyant sur « Suivant » de passer à l’onglet « Résultats » à partir duquel il est possible de démarrer l’analyse de sensibilité en cliquant sur le bouton « Go » ; avant de faire cela, il peut être utile de sauvegarder l’analyse de sensibilité en appuyant sur le bouton « Enregistrer » (voir le paragraphe « Sauvegarde et récupération de l’analyse de sensibilité » ci-dessous).

Notez qu’une fois que vous arrivez à l’onglet « Résultats », les deux onglets précédents sont gelés, c’est-à-dire que les paramètres de la variable contrôlée et des variables observées ne peuvent plus être modifiés. En réalité, le bouton « Modifier la sensibilité » fonctionne comme un bouton « retour » : il déverrouille les pages « Contrôle » et « Observer » et permet de modifier n’importe quel paramètre.

Si au contraire vous lancez l’analyse de sensibilité, l’interface utilisateur LIBPF® démarre le noyau de calcul. Lors de l’exécution, les lignes relatives à chaque valeur de la variable contrôlée sont mises en évidence au fur et à mesure du calcul, et les résultats des variables observées sont tabulés au fur et à mesure qu’ils deviennent disponibles. Il est possible à tout moment de copier le tableau (en appuyant à nouveau sur le bouton « Copier les résultats dans le presse-papier »), d’interrompre (en appuyant sur le bouton « Stop ») et de reprendre (en appuyant à nouveau sur le bouton « Go ») l’exécution du calcul. .

LIBPFUSRmanual-img068.png

Les lignes sont mises en évidence avec des codes couleurs selon le tableau :

Gris grey square Ligne en exécution
Vert green square Ligne exécutée sans avertissements ni erreurs
Jaune yellow square Ligne exécutée avec des avertissements
Rouge red square Ligne exécutée avec des erreurs (les résultats sont disponibles mais probablement invalides)
Rouge foncé dark red square Ligne non exécutée en raison d’une grave erreur interne LIBPF® (aucun résultat disponible)
Pourpre purple square Ligne non exécutée suite à un crash de LIBPF® (aucun résultat disponible)
Bleu foncé dark cyan square Ligne non exécutée jusqu’à la fin en raison d’une interruption de l’utilisateur (aucun résultat disponible)

Le tableau ainsi généré peut être copié dans le presse-papier (en appuyant sur le bouton “Copier les résultats dans le presse-papier”) et de là dans un tableur.

Remarque : à la fin de la sensibilité, l’interface remplace la valeur prise par la variable contrôlée lors de la dernière exécution dans la zone de saisie correspondante, afin que la simulation chargée soit modifiée.

Sauvegarde et récupération des analyses de sensibilité

Si, après avoir complètement précisé l’analyse de sensibilité, vous appuyez sur le bouton « Enregistrer » du deuxième onglet (« Observer »), une petite fenêtre modale apparaît :

LIBPFUSRmanual-img069.png

où vous pouvez saisir un nom mnémonique pour la sensibilité, comportant jusqu’à 50 caractères et contenant n’importe quel signe à l’exception des suivants : <(inférieur à) >(supérieur à) .(point) :( deux-points “) (guillemets doubles) /(divisé) (divisé par retour) |(barre verticale) ?(point d’interrogation) *(astérisque) _(trait de soulignement), caractères dont la représentation numérique ASCII est comprise entre 0 et 31 et $(signe dollar).

Si le nom saisi a déjà été utilisé précédemment pour sauvegarder une analyse de sensibilité du même type, un formulaire sera proposé pour demander la confirmation du remplacement du fichier existant ; l’analyse de sensibilité est enregistrée dans un fichier XML dans le répertoire de travail, avec un nom complet obtenu en combinant le nom de sensibilité avec le nom du type courant.

Les sensibilités précédemment enregistrées peuvent être récupérées avec la commande Ouvrir l’analyse de sensibilité existante disponible dans le menu Configuration :

LIBPFUSRmanual-img065.png

qui fait apparaître la fenêtre de choix de l’analyse de sensibilité à récupérer :

LIBPFUSRmanual-img070.png

Cette fenêtre affiche la liste des analyses de sensibilité enregistrées, indiquant le type de modèle pour chacune d’entre elles ; Les analyses de sensibilité enregistrées dont le type est le même que le type actuellement ouvert sont surlignées en bleu clair. En règle générale, il est judicieux de récupérer une analyse de sensibilité précédemment enregistrée pour le même type, mais les utilisateurs avancés peuvent profiter de la flexibilité nécessaire pour récupérer également des analyses pour différents types, à condition qu’ils effectuent les ajustements requis si nécessaire.

Configuration

Depuis le menu de configuration, il est possible de modifier certains paramètres généraux de l’application :

LIBPFUSRmanual-img071.png