Bonjour à tous,

dans le cadre d'un projet je dois résoudre un système d'équation avec une condition de sortie à respecter.

En fait dans une boucle while qui est conditionné par une conversion à atteindre, je rajoute deux if sur deux conditions à respecter: une condition de température de sortie à atteindre et une condition de pression qu'il ne faut pas atteindre.

Voilà ce que j'ai codé:

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
conv_rate=0;Fas=Fae_inst;volume_cata1=0;delta_T=50;
Fas_Ts_Conv_rate=[];L_dt_Ps=[];nombre_reacteurs=[];Ps1=Pe;L=1;B=0;Fas=Fae_inst;
 
while conv_rate <0.95 % Choice of the diameter to reach a conversion rate of 0.95 
Fae=Fas;Ps=Ps1;dt=L/rapport_H_dt;
S=pi*dt^2/4;Uv0=Qv0/S;Re=Qm*dp/S/visco;x0=[Fae Te Ps];long=(0:pas_L:L);
[z,x]=ode45('function_opt_T_P_dt_var',long,x0);
 
%Solution Matrix cutting (je sors de mon vecteur solution les solutions de sorties pour FA, P et T)
lgth=size(x);
Fa1=x(:,1); Fas=x(lgth(1,1),1)
T1=x(:,2);Ts=x(lgth(1,1),2)
P1=x(:,3);Ps1=x(lgth(1,1),3)
conv_rate=(Fae_inst-Fas)/Fae_inst;
 
if(Ts>=Te-delta_T)
    L=L+0.1;%pour info il faut aggrandir la longueur pour augmenter Ts.
    Fas=Fae;Ps1=Ps;
end
 
if Ps1<p0
    Pe=Pe+1*10^5
    conv_rate=0;Fas=Fae_inst;volume_cata1=0;
Fas_Ts_Conv_rate=[];L_dt_Ps=[];nombre_reacteurs=[];Ps1=Pe;L=1;B=0;Ts=Te;   
end
 
if(Ts<Te-delta_T)%pour l'affichage
Ps2=Ps1/10^5;
Fas_Ts_Conv_rate=[Fas_Ts_Conv_rate; Fas Ts conv_rate]
L_dt_Ps=[L_dt_Ps; L dt Ps2]
end
 
end
Ps2=Ps1/10^5;
Fas_Ts_Conv_rate=[Fas_Ts_Conv_rate; Fas Ts conv_rate]
L_dt_Ps=[L_dt_Ps; L dt Ps2]
end
end
Fas_Ts_Conv_rate
L_dt_Ps
Or quand je lance j'obtiens:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Fas_Ts_Conv_rate =
 
   94.8212  662.1428    0.2149
   73.7872  678.7911    0.3890
   57.9821  696.4931    0.5199
   41.4597  694.0650    0.6567
   25.7384  696.7771    0.7869
   10.9332  699.8782    0.9095
   10.9332  731.7490    0.9541
Donc ça veut dire que ma condition sur le Ts n'est pas respectée .. Sauriez-vous d'ou cela peut venir ?


Merci d'avance.

Laurie