IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Simulink Discussion :

transcription d'un code Simulink en simscape


Sujet :

Simulink

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 15
    Points : 10
    Points
    10
    Par défaut transcription d'un code Simulink en simscape
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    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

  2. #2
    FLB
    FLB est déconnecté
    Modérateur
    Avatar de FLB
    Homme Profil pro
    Ing. Aérospatiale
    Inscrit en
    Juin 2003
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Ing. Aérospatiale
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2003
    Messages : 770
    Points : 1 185
    Points
    1 185
    Par défaut
    Fait attention à tes conditions sur Q :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (Q > Qnec)
        Strate = 1;
        Teo = 30;
        Tco = 10;
    elseif (Q > 2*Qnec) %on est dans le cas Q<=Qnec, donc on ne rentrera jamais ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (Q > Qnec && Q <= 2*Qnec)
        Strate = 1;
        Teo = 30;
        Tco = 10;
    elseif (Q > 2*Qnec) %là ca passe ;)

  3. #3
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 881
    Points : 3 429
    Points
    3 429
    Par défaut
    ou tu inverses tes conditions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (Q > 20*Qnec) 
    elseif (Q > 19*Qnec)
    elseif (Q > 18*Qnec)
    ...
    elseif (Q > Qnec)
    else
    end

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    oui merci pour vos réponses. C'est pour cette raison que j'avais ajouté mon petit P.S à la fin de mon message.

    Mais comment utiliser cela sous Simscape?

  5. #5
    Modérateur
    Avatar de le fab
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    1 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 881
    Points : 3 429
    Points
    3 429
    Par défaut
    je sais pas (je ne connais pas simScape)
    mais question : pourquoi ne pas utiliser un bloc embedded matlab ?
    cela me paraîtrait plus approprié au vue de ton code

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2012
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    car on ne sait pas insérer de bloc simulink dans la partie "physique" du système (du moins je n'ai jamais réussi à le faire même avec les blocs s to ps et ps to s converter.

Discussions similaires

  1. Transcription d'un code vba Excel vers vbs
    Par issoram dans le forum VBScript
    Réponses: 4
    Dernier message: 11/02/2012, 18h40
  2. Transcription d'un code c en c++
    Par manidis dans le forum C++
    Réponses: 2
    Dernier message: 07/09/2010, 08h11
  3. Transcription de code C++ en STL
    Par Muetdhiver dans le forum SL & STL
    Réponses: 4
    Dernier message: 14/11/2007, 08h31
  4. [Simulink][Débutante] Erreur de compilation dans un code
    Par karamellati dans le forum MATLAB
    Réponses: 4
    Dernier message: 30/05/2007, 11h47
  5. Réponses: 1
    Dernier message: 21/01/2007, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo