bonjour a tous,

Pour ce qui connaissent un peu la mécanique des fluides le problèmes suivant s'appelle les isotherme d'Andrews. Pour les autre je m'explique.

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

Je voudrais maintenant tracer une droite horizontale puis comme sur l'image ci dessous calculer l’intégrale entre V1 et V2 jusqu'à ce que S1 = S2
voici la fonction a calculer avec V1 et V2
Code : Sélectionner tout - Visualiser dans une fenêtre à part
S=[R*T*ln(V-b)-(a/(2*b*sqrt(2)))*ln((V+b*(1-sqrt(2)))/(V+b*(1+sqrt(2))))]
voici ce que je cherche
Pièce jointe 146570

voici mon code actuel

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
% isotherm(nomgaz) d'Andrews
 
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

Merci a tous