This is the code for 5 effect backward feed evaporator with vapor bleeding. But when I run this code I didn't get values for all iteration. Please help to get it.

1 visualizzazione (ultimi 30 giorni)
T0=120;
lat0=2225.804;
Tf=108;
F=37.8;
xf=0.13;
cpf=4.19-2.35*xf;
V0=5.7;
T=rand(5,1);
x=rand(5,1);
L=rand(5,1);
V=rand(5,1);
V1=rand(5,1);
A=rand(5,1);
cp=rand(5,1);
bpe=rand(5,1);
lat=rand(5,1);
gamma=rand(5,1);
phi=rand(5,1);
A(1)=1800;
A(2)=1400;
A(3)=600;
A(4)=300;
A(5)=300;
T(1)=108.4;
T(2)=96.8;
T(3)=85.2;
T(4)=73.6;
T(5)=62;
L(5)=32.188;
L(4)=26.598;
L(3)=21.008;
L(2)=15.418;
L(1)=9.828;
V1(1)=0.096;
V1(2)=0.19;
V1(3)=0.25;
V1(4)=0.31;
V1(5)=1.46;
ho=9000;
hd=566;
hi=rand(5,1);
U=rand(5,1);
for i=1:5
V(i)=5.6;
x(i)=37.8*0.13/L(i);
cp(i)=4.19-2.35*x(i);
bpe(i)=1.78*x(i)+6.22*(x(i)^2);
lat(i)=2823.2-4.9783*T(i);
gamma(i)=L(i)/4;
end
phi(1)=V0*lat0/A(1);
phi(2)=(V(1)*lat(1))/A(2);
phi(3)=(V(2)*lat(2))/A(3);
phi(4)=(V(3)*lat(3))/A(4);
phi(5)=(V(4)*lat(4))/A(5);
for i=1:5
hi(i)=218+24*phi(i)-37*100*x(i)+1090*gamma(i)+32*(T(i)+bpe(i));
U(i)=((1/hi(i))+(1/ho)+1/hd)^-1;
end
f=rand(15,1);
j=rand(15,15);
z=rand(15,1);
z(1:15,1)=1;
count=0;
for i=1:3
f(1)=(V0*lat0+L(2)*cp(2)*(T(2)+bpe(2))-(L(2)-L(1))*(lat(1)+cp(1)*T(1))-L(1)*cp(1)*(T(1)+bpe(1)))*1000;
f(2)=U(1)*A(1)*(T0-T(1))-V0*lat0*1000;
f(3)=((L(2)-L(1)-V1(1))*lat(1)+L(3)*cp(3)*(T(3)+bpe(3))-(L(3)-L(2))*(lat(2)+cp(2)*T(2))-L(2)*cp(2)*(T(2)+bpe(2)))*1000;
f(4)=U(2)*A(2)*(T(1)-T(2))-(L(2)-L(1)-V1(1))*lat(1)*1000;
f(5)=((L(3)-L(2)-V1(2))*lat(2)+L(4)*cp(4)*(T(4)+bpe(4))-(L(4)-L(3))*(lat(3)+cp(3)*T(3))-L(3)*cp(3)*(T(3)+bpe(3)))*1000;
f(6)=U(3)*A(3)*(T(2)-T(3))-(L(3)-L(2)-V1(2))*lat(2)*1000;
f(7)=((L(4)-L(3)-V1(3))*lat(3)+L(5)*cp(5)*(T(5)+bpe(5))-(L(5)-L(4))*(lat(4)+cp(4)*T(4))-L(4)*cp(4)*(T(4)+bpe(4)))*1000;
f(8)=U(4)*A(4)*(T(3)-T(4))-(L(4)-L(3)-V1(3))*lat(3)*1000;
f(9)=((L(5)-L(4)-V1(4))*lat(4)+F*cpf*Tf-(F-L(5))*(cp(5)*T(5)+lat(5))-L(5)*cp(5)*(T(5)+bpe(5)))*1000;
f(10)=U(5)*A(5)*(T(4)-T(5))-(L(5)-L(4)-V1(4))*lat(4)*1000;
f(11)=(V1(5)*lat(5)-3670.85)*1000;
f(12)=(V1(4)*lat(4)-L(5)*cp(5)*(T(4)-5-(T(5)+bpe(5))))*1000;
f(13)=(V1(3)*lat(3)-L(4)*cp(4)*(T(3)-5-(T(4)+bpe(4))))*1000;
f(14)=(V1(2)*lat(2)-L(3)*cp(3)*(T(2)-5-(T(3)+bpe(3))))*1000;
f(15)=(V1(1)*lat(1)-L(2)*cp(2)*(T(1)-5-(T(2)+bpe(2))))*1000;
j(1,1)=lat0*1000; j(1,2)=(-(L(2)-L(1))*cp(1)-L(1)*cp(1))*1000; j(1,3)=L(2)*cp(2)*1000; j(1,4)=0; j(1,5)=0;
j(1,6)=((lat(1)+cp(1)*T(1))-cp(1)*(T(1)+bpe(1)))*1000; j(1,7)=(cp(2)*(T(2)+bpe(2))-(lat(1)+cp(1)*T(1)))*1000; j(1,8)=0; j(1,9)=0; j(1,10)=0;
j(1,11)=0;j(1,12)=0;j(1,13)=0;j(1,14)=0;j(1,15)=0;
j(2,1)=-lat0*1000; j(2,2)=-U(1)*A(1); j(2,3)=0; j(2,4)=0; j(2,5)=0; j(2,6)=0; j(2,7)=0; j(2,8)=0; j(2,9)=0; j(2,10)=0;j(2,11)=0;j(2,12)=0;j(2,13)=0;
j(2,14)=0;j(2,15)=0;
j(3,1)=0; j(3,2)=0; j(3,3)=(-(L(3)-L(2))*cp(2)-L(2)*cp(2))*1000; j(3,4)=L(3)*cp(3)*1000; j(3,5)=0; j(3,6)=-lat(1)*1000;
j(3,7)=(lat(1)+lat(2)+cp(2)*T(2)-cp(2)*(T(2)+bpe(2)))*1000; j(3,8)=(cp(3)*(T(3)+bpe(3))-(lat(2)+cp(2)*T(2)))*1000; j(3,9)=0; j(3,10)=0;
j(3,11)=-lat(1)*1000;j(3,12:15)=0;
j(4,1)=0; j(4,2)=U(2)*A(2); j(4,3)=-U(2)*A(2); j(4,4)=0; j(4,5)=0; j(4,6)=lat(1)*1000; j(4,7)=-lat(1)*1000; j(4,8)=0; j(4,9)=0; j(4,10)=0;
j(4,11)=lat(1)*1000;j(4,12:15)=0;
j(5,1)=0; j(5,2)=0;j(5,3)=0; j(5,4)=(-(L(4)-L(3))*cp(3)-L(3)*cp(3))*1000; j(5,5)=L(4)*cp(4)*1000; j(5,6)=0;
j(5,7)=-lat(2)*1000; j(5,8)=(lat(2)+lat(3)+cp(3)*T(3)-cp(3)*(T(3)+bpe(3)))*1000; j(5,9)=(cp(4)*(T(4)+bpe(4))-(lat(3)+cp(3)*T(3)))*1000; j(5,10)=0;
j(5,11)=0;j(5,12)=-lat(2)*1000; j(5,13:15)=0;
j(6,1)=0; j(6,2)=0; j(6,3)=U(3)*A(3); j(6,4)=-U(3)*A(3); j(6,5)=0; j(6,6)=0; j(6,7)=lat(2)*1000; j(6,8)=-lat(2)*1000; j(6,9)=0; j(6,10)=0;
j(6,11)=0; j(6,12)=lat(2)*1000;j(6,13:15)=0;
j(7,1)=0; j(7,2)=0; j(7,3)=0; j(7,4)=0; j(7,5)=(-(L(5)-L(4))*cp(4)-L(4)*cp(4))*1000; j(7,6)= 0; j(7,7)=0;
j(7,8)=-lat(3)*1000;j(7,9)=(lat(3)+lat(4)+cp(4)*T(4)-cp(4)*(T(4)+bpe(4)))*1000;j(7,10)=(cp(5)*(T(5)+bpe(5))-(lat(4)+cp(4)*T(4)))*1000;j(7,11)=0;
j(7,12)=0; j(7,13)=-lat(3)*1000; j(7,14)=0; j(7,15)=0;
j(8,1)=0; j(8,2)=0; j(8,3)=0; j(8,4)=U(4)*A(4); j(8,5)=-U(4)*A(4); j(8,6)=0; j(8,7)=0; j(8,8)=lat(3)*1000; j(8,9)=-lat(3)*1000; j(8,10)=0;j(8,11)=0;
j(8,12)=0;j(8,13)=lat(3)*1000;j(8,14)=0;j(8,15)=0;
j(9,1)=0; j(9,2)=0; j(9,3)=0; j(9,4)=0; j(9,5)=0; j(9,6)=0; j(9,7)=0; j(9,8)=0;
j(9,9)=-lat(4)*1000; j(9,10)=(lat(4)+cp(5)*T(5)+lat(5)-cp(5)*(T(5)+bpe(5)))*1000;j(9,11:13)=0; j(9,14)=-lat(4)*1000;j(9,15)=0;
j(10,1)=0; j(10,2)=0; j(10,3)=0; j(10,4)=0; j(10,5)=U(5)*A(5); j(10,6)=0; j(10,7)=0; j(10,8)=0; j(10,9)=lat(4)*1000; j(10,10)=-lat(4)*1000;
j(10,11:13)=0;j(10,14)=lat(4)*1000;j(10,15)=0;
j(11,1:14)=0;j(11,15)=lat(5)*1000;
j(12,1:4)=0; j(12,5)=-L(5)*cp(5)*1000;j(12,6:9)=0; j(12,10)=-cp(5)*(T(4)-5-(T(5)+bpe(5)))*1000;j(12,11:13)=0; j(12,14)=lat(4)*1000;j(12,15)=0;
j(13,1:3)=0; j(13,4)=-L(4)*cp(4)*1000;j(13,5)=L(4)*cp(4)*1000;j(13,6:8)=0; j(13,9)=-cp(4)*(T(3)-5-(T(4)+bpe(4)))*1000;j(13,10)=0;j(13,11:12)=0;
j(13,13)=lat(3)*1000;j(13,14:15)=0;
j(14,1:2)=0; j(14,3)=-L(3)*cp(3)*1000; j(14,4)=L(3)*cp(3)*1000; j(14,5:7)=0; j(14,8)=-cp(3)*(T(2)-5-(T(3)+bpe(3)))*1000; j(14,9:11)=0;j(14,12)=lat(2)*1000;
j(14,13:15)=0;
j(15,1)=0; j(15,2)=-L(2)*cp(2)*1000; j(15,3)=L(2)*cp(2)*1000;j(15,4:6)=0; j(15,7)=-cp(2)*(T(1)-5-(T(2)+bpe(2)))*1000;j(15,8:10)=0;
j(15,11)=lat(1)*1000;j(15,12:15)=0;
z=-inv(j)*f;
V0=0.1*V0+0.5*z(1);
T(1)=T(1)+z(2);
T(2)=T(2)+z(3);
T(3)=T(3)+z(4);
T(4)=T(4)+z(5);
L(1)=L(1)+z(6);
L(2)=L(2)+z(7);
L(3)=L(3)+z(8);
L(4)=L(4)+z(9);
L(5)=L(5)+z(10);
V1(1)=V1(1)+z(11);
V1(2)=V1(2)+z(12);
V1(3)=V1(3)+z(13);
V1(4)=V1(4)+z(14);
V1(5)=V1(5)+z(15);
V(1)=L(2)-L(1);
V(2)=L(3)-L(2);
V(3)=L(4)-L(3);
V(4)=L(5)-L(4);
V(5)=F-L(5);
x(i)=37.8*0.13/L(i);
cp(i)=4.19-2.35*x(i);
bpe(i)=1.78*x(i)+6.22*(x(i)^2);
lat(i)=2823.2-4.9783*T(i);
gamma(i)=L(i)/4;
phi(1)=V0*lat0/A(1);
phi(2)=(V(1)*lat(1))/A(2);
phi(3)=(V(2)*lat(2))/A(3);
phi(4)=(V(3)*lat(3))/A(4);
phi(5)=(V(4)*lat(4))/A(5);
fori=1:5;
hi(i)=218+24*phi(i)-37*100*x(i)+1090*gamma(i)+32*(T(i)+bpe(i));
U(i)=((1/hi(i))+(1/ho)+1/hd)^-1;
end

Risposte (1)

Alan Moses
Alan Moses il 1 Lug 2021
Some variables in your code are not updated in every iteration. For example, the variable gamma depends on L. L is upated every iteration, but gamma is not updated every iteration element-wise.
Refer this video on vectorizing code in MATLAB to avoid looping through an array and doing the operations on the matrix level. You may also refer to the post here that explains vectorization.

Categorie

Scopri di più su Programming in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by