bonjour,
j'ai un petit probleme bizarre. Matlab ne veut pas entrer dans la deuxieme boucle for et par conséquent il n'affiche aucune valeur de rf2!! (vous pouvez tester)
voila mon code:
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 ROP=200/3600; La=10; visco=1e-3; Density=1000; Ds=21*1e-3; diff_pressure=0.01; r0=1/(1-(60*ROP/pi))^0.5; if (ROP*3600)>188.4; r0=50; end r=1:0.001:r0; K=27.57*Density^0.75*visco^0.25*La; deltaP=(((K*ROP^1.75)/Ds^1.25).*r.^3.5)./(((r-1).^1.25).*((r.^2-1).^1.75)); deltaP=deltaP/1e5; global rf1 for i=1:length(r)-1; diff1(i)=deltaP(i)-deltaP(i+1); if diff1(i)<= diff_pressure; rf1=r(i); break else rf1=r0; end end r=r0:0.01:50; K=0.158*Density^0.75*visco^0.25*La; deltaP=K./(Ds^1.25.*(r-1).^1.25); deltaP=deltaP/1e5; global rf2 for i=1:length(r)-1; diff2(i)=deltaP(i)-deltaP(i+1); if diff2(i)<= diff_pressure; rf2=r(i); break else rf2=50; end end r0 rf1 rf2
Apres avoir testé, j'ai constaté ca marche pour (ROP*3600)<188.4
et non dans le cas contraire....
merci de m'aider...
Partager