Bloc Scicos
fr - eng

##
Bache thermohydraulique

### Contenu

- Bache thermohydraulique
  - Description
  - Boîte de dialogue
  - Propriétés par défaut
  - Fonction d'interface
  - Modèle Modelica

### Description

Ce composant représente une bache thermo-hydraulique qui consiste en deux ports d'entrée et deux ports de sortie. Conventionnellement, la direction positive pour la rentrée est quand le fluide entre dans le port d'entree (ports noirs) et la direction positive pour les ports de sortie est quand le fluide sort des port de sortie (ports blancs). La surface de la bache, la température initiale et l'altitude initiale du fluide peuvent être definies par l'utilisateur. Si un port reste non-utilisé, il doit être bouché par le bloc Bouchon.

### Boîte de dialogue

Parametres de la bache |
Pression dans le ciel de la bache : Patm (Pa) | 101300
Section de la bache : A (m2) | 1
Altitude du piquage d entrée 1: ze1 (m) | 40
Altitude du piquage d entrée 2: ze2 (m) | 0
Altitude du piquage de sortie 1: zs1 (m) | 40
Altitude du piquage de sortie 2: zs2 (m) | 0
Altitude initiale du fluide : z0 (m) | 30
Température initiale du fluide : T0 (K) | 290
Si 0, masse volumique imposée du fluide : p_rho (kg/m3) | 0

- Pression dans le ciel de la bache : Patm (Pa) : Type 'vec' de taille -1. Pression dans le ciel de la bache
- Section de la bache : A (m2) : Type 'vec' de taille -1. Surface de la bache
- Altitude du piquage d entrée 1: ze1 (m) : Type 'vec' de taille -1. Altitude du piquage d'entrée (ze1)
- Altitude du piquage d entrée 2: ze2 (m) : Type 'vec' de taille -1. Altitude du piquage d'entrée (ze2)
- Altitude du piquage de sortie 1: zs1 (m) : Type 'vec' de taille -1. Altitude du piquage de sortie (zs1)
- Altitude du piquage de sortie 2: zs2 (m) : Type 'vec' de taille -1.Altitude du piquage de sortie (zs2)
- Altitude initiale du fluide : z0 (m) : Type 'vec' de taille -1. Altitude initiale du fluide
- Température initiale du fluide : T0 (K) : Type 'vec' de taille -1. Température initiale du fluide
- Si 0, masse volumique imposée du fluide : p_rho (kg/m3) : Type 'vec' de taille -1. masse volumique imposée du fluide

### Propriétés par défaut

- toujours actif: non
- direct-feedthrough: oui
- détection de passage à zéro: non
- mode: non
- nombre/taille des entrées régulières: 2 / 1 1
- nombre/taille des sorties sorties régulières: 3 / 1 1 1
- nombre/taille des entrées évènementielles: 0 /
- nombre/taille des sorties évènementielles: 0 /
- possède un état continu: non
- possède un état discret: non
- nom de la fonction modelica: Bache

### Fonction d'interface

`Bache.sci`

### Modèle Modelica

    class Bache
      parameter Real Patm "Pression dans le ciel de la bache";
      parameter Real A "Section de la bache";
      parameter Real ze1 "Altitude du piquage d'entrée 1";
      parameter Real ze2 "Altitude du piquage d'entrée 2";
      parameter Real zs1 "Altitude du piquage de sortie 1";
      parameter Real zs2 "Altitude du piquage de sortie 2";
      parameter Real z0 "Altitude initiale du fluide";
      parameter Real T0 "Temperature initiale du fluide";
      parameter Real p_rho
        "Si > 0, masse volumique imposée du fluide";
    //  parameter Integer mode "Région IF97. 1:liquide - 2:vapeur - 4:saturation - 0:calcul automatique";

      parameter Real g=9.80665 "Accélération de la pesanteur";
      parameter Real e=0.25 "Ouverture des piquages";
      parameter Real k=1
        "Coefficient de perte de charge des piquages";
      parameter Real eps=1.e-0 "Limite inf. de la fonction carrée";
      parameter Real zmin=1.e-6
        "Hauteur minimum d'eau pour l'équation de l'énergie";
      Real z(start=z0) "Hauteur du fluide";
      Real Tm(start=T0) "Température moyenne";
      Real Pm(start=1.e5) "Pression moyenne";
      Real Hm(start=100000) "Enthalpie spécifique moyenne";
      Real rho(start=998) "Masse volumique";
      Real BQ "Bilan de masse";
      Real BH "Bilan d'énergie";
      Real Oe1;
      Real Oe2;
      Real Os1;
      Real Os2;
      Real region(start=1) "Numéro de région IF97";
      Real Max_e1;
      Real Max_e2;
      Real Max_s1;
      Real Max_s2;
      Real ThermoCar1;
      Real ThermoCar2;

      Real yNiveau ;

    public
    //  SortieReelle yNiveau ;
      PortPHQ1 Ce1 ;
      PortPHQ2 Cs2 ;
    //  PortTher Cth ; /* Port non utilisé dans le modèle désiré, non implanté sur le bloc SCICOS */
      PortPHQ1 Ce2 ;
      PortPHQ2 Cs1 ;

    //initial equation

    //  Hm = 100000;

    equation

      Ce2.Q = 0;
      Ce2.H = 1.e5;

      Cs1.Q = 0;
      Cs1.H = 1.e5;

      Max_e1 = if (z - ze1 < 0.0) then 0.0 else (z - ze1);
      ThermoCar1 = if (abs(Ce1.Q) > eps) then Ce1.Q*abs(Ce1.Q) else Ce1.Q*eps;
      (Patm + rho*g*Max_e1 - Ce1.P)*Oe1 = k*ThermoCar1/2/rho;

      Oe1 = if (Ce1.Q >= 0.0) then 1.0
    	elseif (z > ze1 + e) then 1.0
    	elseif (z < ze1) then 0.0
    	else (z - ze1)/e;

       Max_e2 = if (z - ze2 < 0.0) then 0.0 else (z - ze2);

      Ce2.P = Patm + rho*g*Max_e2;
      Oe2 = 0;

      Max_s1 = if (z - zs1 < 0.0) then 0.0 else (z - zs1);
      Cs1.P = Patm + rho*g*Max_s1;
      Os1 = 0;

      Max_s2 = if (z - zs2 < 0.0) then 0.0 else (z - zs2);
      ThermoCar2 =if (abs(Cs2.Q) > eps) then Cs2.Q*abs(Cs2.Q) else Cs2.Q*eps;
      (Patm + rho*g*Max_s2 - Cs2.P)*Os2 = k*ThermoCar2/2/rho;

      Os2 = if (Cs2.Q <= 0.0) then 1.0
        elseif (z > zs2 + e) then 1.0
        elseif (z < zs2) then 0.0
        else (z - zs2)/e;

      /* Bilan de masse */
      BQ = Ce1.Q + Ce2.Q - Cs1.Q - Cs2.Q;
      rho*A*der(z) = BQ;

      /* Bilan d'énergie */
      /* le port thermique n'est pas utilisé ici  "+ Cth.W" (on a W=0)*/
      BH = Ce1.Q*(Ce1.H - Hm) + Ce2.Q*(Ce2.H - Hm) - Cs1.Q*(Cs1.H - Hm) - Cs2.Q*(Cs2.H - Hm);

      der(Hm) = if (z > zmin) then BH/(rho*A*z) else 0.0;

      Ce1.Hm = Hm;
      Ce2.Hm = Hm;
      Cs1.Hm = Hm;
      Cs2.Hm = Hm;

    //  Cth.T = Tm; /* le port thermique n'est pas utilisé ici*/

      /* Capteur de niveau */
      yNiveau = z;

      /* Calcul des propriétés thermodynamiques */
      Pm = Patm + rho*g*z/2;

      Tm = Hm/4187 + 273.15;
      region = 1.0;

      rho = 998.0;

    end Bache;