Cours en ligne et simulateur de thermodynamique appliquée

Utilisation de Thermoptim en réseau en mode client-serveur

Pour différentes raisons, il peut être intéressant d'utiliser Thermoptim à travers un réseau, à des fins didactiques, ou bien pour associer à un contrôleur (une régulation) un modèle thermodynamique détaillé, par exemple un modèle de pompe à chaleur couplé à un régulateur de chauffage..

La solution a été de développer une petite application basée sur la classe sti.ThoptEmulator, instanciée par sti.ThoptLauncher, qui permet de lancer un serveur géré par la classe sti.ThoptServer qui gère les échanges avec l'extérieur.

Le lancement du serveur se fait par EmulatorServerExec.jar, qui fait appel à EmulatorServer.zip, qui contient les bibliothèques de base. ces deux fichiers doivent être placés dans le répertoire d'installation de Thermoptim.

L'échange des données se fait par des BufferedReader et PrintWriter, sous forme de String de plusieurs lignes, qui sont décodées par les classes client et serveur.

Le client est une classe Java appelée Emulator.java, qui doit bien sûr être adaptée en fonction des besoins.

La solution proposée consiste à écrire un pilote externe, qui doit implémenter l'interface Emulable, qui définit les deux méthodes d'envoi String[] getValues() et de réception setParameters(String[] params) des données du client.

Les String[] params de setParameters() et getValues() comprennent en première ligne le nombre de lignes suivantes comportant des enregistrements de valeurs. ThoptServer se contente de transmettre du client au serveur et réciproquement ces deux String[], sans les modifier.

Il est aussi possible que l'échange de requêtes se fasse en utilisant le protocole ModBus, qui, quoique plus complexe, présente l'avantage de permettre de communiquer avec des applications n'utilisant pas les codages Java qui sont souvent utilisées dans le monde du contrôle-commande.

Le modèle de pompe à chaleur reparamétrable en fonction de la température extérieure constitue un exemple d'un tel mode de fonctionnement.

Pour l'utiliser, décompressez l'archive dans le répertoire d'installation de Thermoptim, puis double-cliquez sur EmulatorServerExec.jar, ce qui lance le serveur. Cliquez alors sur le bouton "Lancer le serveur". Son adresse IP est affichée.

Lancez alors le client (thoptClientW.exe), ce qui affiche l'écran ci-dessous, et cliquez successivement sur les boutons en caractère gras, dans l'ordre indiqué :

  • 1) connexion serveur Thermoptim établit la connexion initiale. Si nécessaire, recopiez l'adresse IP dans le champ où apparaît 127.0.0.1 dans l'image ci-dessous ;

  • 2) Lancement de Thermoptim ouvre Thermoptim et charge le projet spécifié.

Vous pouvez alors commencer à émuler le projet en changeant son paramétrage. Dans le cas de cet exemple, vous pouvez modifier la température extérieure, en entrant la valeur désirée dans la champ Text (°C). Attention à choisir une valeur pas trop éloignée de celle du modèle, faute de quoi des problèmes de convergence peuvent apparaître, se traduisant par des messages dans les écrans de Thermoptim.

Une fois la valeur de Text entrée, cliquez successivement sur :

  • 3) Envoi paramétrage, qui transmet au serveur la nouvelle valeur de Text, puis effectue les calculs ;

  • 4) Récupération des résultats qui charge dans la zone de texte les résultats des calculs.

Vous pouvez alors effectuer un copier-coller de ces valeurs dans un tableur pour les exploiter.

Itérez autant que nécessaire entre les opérations 3 et 4.

Vous pouvez relancer Thermoptim en utilisant le bouton 2) Lancement de Thermoptim. Les fichiers de projet et de schéma indiqués dans l'interface seront alors chargés. Bien sûr, le pilotage n'a de sens que si les données envoyées par le client sont bien celles que le pilote attend.

Dans le cas de cet exemple, K compr est un paramètre qui permet de faire varier la capacité du compresseur, et donc la puissance de chauffage.

PAC_server.zip

copyright R. Gicquel v2019.4

Réalisé avec Scenari (nouvelle fenêtre)