Bonjour,

je souhaite modéliser un ballon à stratification thermique. pour cela, j'ai élaboré un code type "gestion de stock" avec de l'énergie qui entre et de l'énergie qui sort. les températures de sortie et le nombre de strates dépendent de l'énergie accumulée dans le ballon.

Cependant, je voudrais utiliser ce code dans Simscape ou le retranscrire dans un fichier .ssc au lieu d'un .m

Comment pourrais-je faire? j'ai essayer de retranscrire le code mais ça coince quand je veux donner une valeur a une de mes températures de sortie (par exemple: Tci == 70°) j'ai comme erreur que l'un des 2 membres de l'égalité doit être égal à 0.

P.S: je me suis aperçu que commencer par 20*Qnec et redescendre à 1*Qnec apporte un plus au code, mais je n'ai pas voulu réécrire.

Merci d'avance.

Voici le code de mon .m:

Code:
function [Tco, Teo, Strate, Q] = ballon(Tco, Teo, Tci, Tei, Cp, Debit, rho, Hcuve, Dcuve, Tini, Q)

% Tco: temperature de sortie du ballon coté chaudiere
% Teo: temperature de sortie du ballon coté consommateur
% Strate: nombre de strates chaudes dans le ballon
% Q: chaleur cumulée dans le ballon
% Tci: temperature d'entrée du ballon coté chaudiere
% Tei: temperature d'entrée du ballon coté consommateur
%Cp: Cp de l'eau
% Debit: Débit d'eau
% rho: rho de l'eau
% Hcuve: hauteur de la cuve
% Dcuve: diamètre de la cuve
% Tini: temperature initiale de la cuve

Vcuve = (3.1418*Dcuve^2/4)*Hcuve;
Vstrateeau = Vcuve/5;
Qnec = Vstrateeau*rho*Cp*20;
Qini = Vstrateeau*rho*Cp*Tini;
Qapport = Debit*rho*Cp*(Tci-Tco);
Qconso = Debit*rho*Cp*(Teo-Tei);
Q = Q+Qini+Qapport-Qconso;
if (Q > Qnec)
   
    Strate = 1;
    Teo = 30;
    Tco = 10;
   
elseif (Q > 2*Qnec)
   
    Strate = 2;
    Teo = 30;
    Tco = 10;
   
elseif (Q > 3*Qnec)
     
      Strate = 3;
      Teo = 30;
      Tco = 10;
     
elseif (Q > 4*Qnec)
     
      Strate = 4;
      Teo = 30;
      Tco = 10;
     
elseif (Q > 5*Qnec)
       
        Strate = 5;
        Teo = 30;
        Tco = 10;
       
elseif (Q > 6*Qnec)
       
        Strate = 1;
        Teo = 50;
        Tco = 30;
       
elseif (Q > 7*Qnec)
         
          Strate = 2;
          Teo = 50;
          Tco = 30;
         
elseif (Q > 8*Qnec)
         
          Strate = 3;
          Teo = 50;
          Tco = 30;
         
elseif (Q > 9*Qnec)
           
            Strate = 4;
            Teo = 50;
            Tco = 30;
           
elseif (Q > 10*Qnec)
           
            Strate = 5;
            Teo = 50;
            Tco = 30;
           
elseif (Q > 11*Qnec)
             
              Strate = 1;
              Teo = 70;
              Tco = 50;
             
elseif (Q > 12*Qnec)
             
              Strate = 2;
              Teo = 70;
              Tco = 50;
             
elseif (Q > 13*Qnec)
               
                Strate = 3;
                Teo = 70;
                Tco = 50;
               
elseif (Q > 14*Qnec)
               
                Strate = 4;
                Teo = 70;
                Tco = 50;
               
elseif (Q > 15*Qnec)
                 
                  Strate = 5;
                  Teo = 70;
                  Tco = 50;
                 
elseif (Q > 16*Qnec)
                 
                  Strate = 1;
                  Teo = 90;
                  Tco = 70;
                 
elseif (Q > 17*Qnec)
                   
                    Strate = 2;
                    Teo = 90;
                    Tco = 70;
                   
elseif (Q > 18*Qnec)
                   
                    Strate = 3;
                    Teo = 90;
                    Tco = 70;
                   
elseif (Q > 19*Qnec)
                     
                      Strate = 4;
                      Teo = 90;
                      Tco = 70;
                     
elseif (Q > 20*Qnec)
                     
                      Strate = 5;
                      Teo = 90;
                      Tco = 70;
                     
end
end