Structure des classes pour le calcul des échangeurs en non-nominal
Introduction
Les tomes 3 et 4 du manuel de référence de Thermoptim présentent les grandes lignes du mécanisme d'extension du progiciel sous forme de classes Java dites externes, le dernier tome se focalisant plus particulièrement sur le pilotage et sur les calculs en régime non-nominal.
La structure d'ensemble est expliquée section 3.2.2 du tome 4. Comme c'est indiqué, l'instanciation de ces classes externes se fait par l'intermédiaire d'un pilote, qui peut être générique ou spécifique.
L'exploration dirigée (DTNN-1) explique comment paramétrer un échangeur de chaleur simple. Elle traite du calcul de la surface d'un échangeur de chaleur air-eau à tubes et ailettes . Il est recommandé de commencer par s'y référer avant d'aller plus loin.
Déroulement des calculs
Le principe général des calculs est le suivant :
en mode dimensionnement, une fois les paramètres géométriques déterminés et les conditions de fonctionnement de l'appareil choisies, un calcul permet de déterminer la surface totale de l'échangeur et sa répartition éventuelle entre différentes zones s'il s'agit d'un générateur de vapeur ou d'un condenseur. Par exemple, pour un GV, il s'agit des zones correspondant à l'économiseur, au vaporiseur et au surchauffeur
en régime non-nominal, les conditions d'entrée étant connues, le pilote cherche une solution telle que la surface totale est la même que celle déterminée lors du dimensionnement, la répartition interne des surfaces pouvant être généralement différente. Les conditions de sortie des fluides chaud et froid sont alors recalculées.
Organisation des calculs
La classe permettant de calculer en régime non-nominal un échangeur simple est de type TechnoDesign, et plus particulièrement TechnoHx, classe générique pour les échangeurs de chaleur.
Chacun des deux fluides dont elle assure le couplage est représenté par une classe de type TechnoExch, et chacune de celles-ci définit une configuration d'écoulement définie dans une classe de type FlowConfig.
La figure ci-dessous montre un diagramme UML simplifié des classes pour TechnoSteamGenerator. Elle illustre les liens qui existent entre les différentes classes qui sont utilisées pour les calculs.
Tout en haut à gauche apparaît le TechnoHx. Les deux classes situées en dessous sont TechnoEvaporator, destinée à calculer des évaporateurs, mais sans prise en compte des pertes de charge, et TechnoSteamGenerator, présentées plus bas dans cette page, qui effectue les calculs de manière plus précise.
A droite de TechnoHx se situe la classe TechnoExch. Chaque TechnoHx en instancie deux, l'une pour le fluide chaud et l'autre pour le fluide froid. Comme indiqué plus haut, chacune de celles-ci définit une configuration d'écoulement définie dans une classe de type FlowConfig.
C'est dans les TechnoExch que l'on précise les caractéristiques géométriques relatives à chaque fluide, comme la section de passage, le diamètre hydraulique...
C'est dans les FlowConfig que l'on précise les corrélations pour les coefficients d'échange thermique et les pertes de charge.
Dans ce diagramme de classes, le FlowConfig associé à la classe TechnoSteamGenerator s'appelle TechnoSteamGeneratorConfig. D'autres sont repésentés dans la figure.
Une quinzaine de classes de type FlowConfig sont disponibles. Elles sont présentées dans cette page du portail. Vous pouvez en créer d'autres simplement en fonction de vos besoins.
Selon les cas, les calculs sont effectués directement dans le TechnoHx, dans le TechnoExch ou dans le FlowConfig. Il faut se reporter au code de chaque classe pour voir comment ils sont enchaînés.
Comme nous l'avons rappelé plus haut, il est nécessaire d'utiliser un pilote pour instancier un TechnoHx et les classes qui lui sont liées. Ce peut être un pilote générique comme expliqué dans l'exploration dirigée (DTNN-1), mais il est généralement préférable de créer un pilote spécifique, du type de ceux qui sont présentés dans les exemples relatifs au fonctionnement en régime non-nominal d'une centrale à vapeur ou d'un réfrigérateur
Exemple de la classe TechnoSteamGenerator
La classe TechnoEvaporator est spécifique aux évaporateurs conçus comme des échangeurs à deux ou trois zones calculés globalement.
Elle permet de calculer le triple échangeur en distinguant les zones correspondant à l'économiseur, au vaporiseur et au surchauffeur, mais comporte un certain nombre de limitations. Même si elle permet de calculer des pertes de charge, elle suppose que la pression est uniforme dans chacun des fluides. Elle ne permet pas non plus de tenir compte d'une possible ébullition nucléée dans la partie économiseur.
La classe TechnoSteamGenerator a été développée pour remédier à ces limitations.
Elle implémente pour cela :
un calcul spécifique des pertes de charge qui permet de modifier les pressions à l'intérieur du générateur de vapeur, les calculs du nombre de Nüsselt étant effectués de manière habituelle, via les FlowConfig
une méthode générique de prise en compte de l'ébullition nucléée.
La figure ci-dessous montre l'écran de la classe TechnoSteamGenerator avec un paramétrage adapté au pilote de réacteur REP proposé dans ce portail.

Dans la partie supérieure apparaissent le choix des corrélations (ici Saitoh & al. pour le coefficient d'échange et Sun et Mishima pour les pertes de charge), ainsi que les résultats de calcul.
Le nombre d'itérations apparaissant en haut de l'écran est un paramètre qui permet d'affiner la précision des calculs d'ébullition nucléée, au prix du temps d'exécution d'autant plus grand qu'il est élevé.
Dans la partie centrale et inférieure sont situés les deux écrans des TechnoExch, «circuit primaire» pour le fluide chaud et «GV» pour le fluide froid. Les deux FlowConfig associés sont identifiés par les noms de leurs corrélations, « sp_plate | Single phase... » et « Boiling | TechnoSteam... ». Les paramètres des corrélations peuvent être affichés et modifiés.
Remarques
Si vous souhaitez des informations complémentaires, faites-en la demande en adressant un mail à thermoptim@s4e2.com.
L'implémentation qui a été faite des diverses corrélations de la classe TechnoSteamGenerator correspond à des régimes d'écoulement turbulents. Si vous souhaitez étudier des régimes laminaires, il faudra les compléter de manière appropriée.
Certaines corrélations faisant appel à la tension superficielle (Friedel, Zhang, Saitoh, Kim et Mudawar, Forster et Zuber), les vapeurs condensables du noyau de Thermoptim ont été modifiés pour en permettre le calcul. Si vous utilisez certains corps externes, il vous faudra les compléter soit directement en leur ajoutant les méthodes correspondantes, soit en modifiant la classe TechnoExch en y incorporant les méthodes appropriées, couplées à la méthode initLambdaMu() de cette dernière.
Faites aussi attention au fait que les sauvegardes et relectures des paramètres se font pour partie depuis le TechnoHx, et pour partie depuis le pilote.