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

MATLAB Discussion :

Programme de traçage de courbe


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Points : 8
    Points
    8
    Par défaut Programme de traçage de courbe
    Bonjour,

    Je souhaite votre aide afin de pouvoir enfin terminer un programme sur lequel je bloque depuis un moment.

    Dans le contexte de la mécanique des fluides je souhaite tracer une courbe isotherme afin de trouver la pression de saturation avec un programme matlab.

    Pour un gaz donné, je trace une courbe de la pression P (ordonnée) en fonction du volume v (abscisse) à 5 température différentes
    j'obtiens donc un graphique P en fonction de V avec 5 courbes.

    Concrètement mon but est de tracer P en fonction de V donc:
    je prend une temperature T et je trace ma courbe
    => P=R*T(i)./(v - b) - a./(v.*(v + b)+b*(v-b));
    avec R; b; a sont des constantes et V une variable puis la température T change et je recommence
    donc T est une constante.

    Mon but est de tracer plusieurs fois P en fonction de V pour différentes valeurs de T.

    La deuxième étant de tracer une droite horizontale tel que sur l'image ci dessous et calculer l’intégrale entre V1 et V2 jusqu'à ce que S1 = S2
    via la fonction : S=[R*T*ln(V-b)-(a/(2*b*sqrt(2)))*ln((V+b*(1-sqrt(2)))/(V+b*(1+sqrt(2))))] afin de retrouver la pression de saturation

    Mon programme actuel est le suivant :
    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
     
    nomgaz = 'ch4'; 
    eos='PengRobinson' 
     
    nomgaz 
    ac=1.016799252
    b = 0.0000564
    Pc =42.5  
    Tc =369
    R=8.314
    m=0.60
    u=3
    nisot = 6;
    nech = 2000;
    v = 0.001:pas:pas*nech;
    n = 40:10:90;
    T = zeros(1,length(n));
     
    figure(1);
    for ii = 1:length(T);
     
      T(ii) = 273.15 + ii;
     
      Tre = T(ii)/Tc;
     
      a = 1.016799252*(R*Tc)^2/Pc*(1 + m*(1 - sqrt(Tre)))^2;
     
      P = R*T(ii)./(v - b) - a./(v.*(v + b)+b*(v-b));
     
      h = plot(v,P);  
      set(h'color',rand(1,3),'linewidth',2); grid on; hold on;
      %axis([0 1600 -40 60]);
      xlabel('Volume en cm3/mol');
      ylabel('pression en bar');
      title('Isothermes pour propane');
    end
     
    hold off
    Le problème est que la courbe donnée n'est pas la bonne et est nulle. De plus une erreur au niveau du h = plot(v,P) et cela je ne l'a comprend pas. Cette partie du programme est seulement pour la première étape qui est de tracer plusieurs courbes.

    Merci d'avance pour votre généreuse aide.

    Cdlt.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Août 2014
    Messages
    1 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2014
    Messages : 1 295
    Points : 2 385
    Points
    2 385
    Par défaut
    Bonjour

    que renvoie v et P dans la command windows (les premières valeurs tout du moins)?
    Si vous cherchez des réponses sur ce forum il faudra avant tout expliquer clairement votre problème et exposer la démarche que vous avez entreprise pour le résoudre. Fournissez une base de travail et de réflexion à vos interlocuteurs!

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2015
    Messages : 7
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Gooby Voir le message
    Bonjour

    que renvoie v et P dans la command windows (les premières valeurs tout du moins)?
    Bonjour,

    Merci de ton attention.

    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
    R = 83.14413;
    u=2;
    w=-1;
    Teb=231.02;
    Tc = 369.83;
    Pc = 42.48;
    Omega= 0.152;
    ac=0.15724*(R*Tc)^2/Pc
    b = 0.07780*R*Tc/Pc
    m = 0.379642+ Omega*(1.48503 - Omega*(0.164423+0.0166666*Omega));
     
    nisot = 6;
    nech = 2000;
    pas=1;
     
    v = 0.001:pas:2500;
    n = 40:10:100;
    T = zeros(1,length(n));
     
    figure(1);
    for ii = 1:length(T);
     
      T(ii) = 273.15 + 15*ii
     
      Tre = T(ii)/Tc;
     
      a = 0.45724*(R*Tc)^2/Pc*(1 + m*(1 - sqrt(Tre)))^2;
     
      P = R*T(ii)./(v - b) - a./(v.*(v + b)+b*(v-b));
     
      h = plot(v,P);
     
      set(h,'color',rand(1,3),'linewidth',1); grid on; hold on;
      axis([0 1200 -40 60]);
      xlabel('Volume en cm3/mol');
      ylabel('pression en bar');
      title('Isothermes pour propane');
     
     
    end
    J'ai finalement réussi à tracer ma premiere courbe mais c'est ma seconde étape ou je doit tracer une droite horizontale telle que dans la pièce jointe. Elle va etre coupé en 3 points, ce qui fait 2 aires.
    Je dois calculer la surface de ces 2 aires pour différentes valeurs de P (axe Y) jusqu'à que les 2 aires soit égaux.
    La formule c'est:
    int(v1,v2) Pdv =S=[R*T*ln(V-b)-(a2*b*sqrt(2)))*ln((V+b*(1-sqrt(2)))/(V+b*(1+sqrt(2))))]

    J'avais l'idée d'effectuer une boucle jusqu'à trouver V1 et V2 quand S1=S2.

    Donc pour répondre à ta question P renvoi la pression et V le volume.
    Images attachées Images attachées  

Discussions similaires

  1. [WD15] Traçage du courbe par programmation
    Par sousana_fly dans le forum WinDev
    Réponses: 3
    Dernier message: 25/09/2011, 18h58
  2. traçage de courbe en temps reel
    Par cha5moucha dans le forum VB.NET
    Réponses: 2
    Dernier message: 21/03/2010, 00h02
  3. traçage de courbe avec VB6
    Par sidali2 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 27/05/2008, 17h22
  4. Traçage de courbe
    Par usama2 dans le forum MATLAB
    Réponses: 2
    Dernier message: 06/04/2007, 14h37
  5. Traçage de courbe en temps réel
    Par BECHE dans le forum Langage
    Réponses: 13
    Dernier message: 21/03/2006, 20h12

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