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 :
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.
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
Merci d'avance pour votre généreuse aide.
Cdlt.
Partager