matrix manipulation for Ps(i)

1 Ansicht (letzte 30 Tage)
Chinaemerem Valentine Nwobi
%%
%please am trying to run this script with the fuction file and input data
%but it keeps giving errors about undefined function and so I need help in
%how I can arrange my C to get Psi in the code file for two components i.e
%z input
%%
function [xeq,yeq,alphaV,fL,fV] = PTFLASH_VLE_NRTL(C, BIP, alpha, P, T, z)
%The funtion PTFLASH_VLE_WILSON calculates VAPOR and LIQUID COMPOSITION,
%VAPOR FRACTION AND LIQUID AND VAPOR FUGACITIES.
%considering deviation from the ideal behavior using WILSON model
%All input/output data are expressed in SI.
%T[K], C[according to equation]
%length of the vector
m=length(z);
%vapor pressure calculation
for i=1:m
Ps(i)=exp(C(i,1)+C(i,2)/T+C(i,3)*log(T)+C(i,4)*T^(C(i,5)));
end
%calling PB and PD equations
[PB, ~] = PB_VLE_NRTL(C, BIP, alpha, T, z);
[PD, x] = PD_VLE_NRTL(C, BIP, alpha, T, z);
if P<=PD
xeq=0;
yeq=z;
alphaV=1;
fL=0;
fV=P*z;
elseif P>=PB
xeq=z;
yeq=0;
alphaV=0;
[gamma,~]=ACTIVITY_NRTL(BIP,alpha,T,xeq);
fL=Ps.*xeq.*gamma;
fV=0;
else
xeq=(x+z)/2; %First guess on x
[gamma,~]=ACTIVITY_NRTL(BIP,alpha,T,xeq); %First guess on gamma
K=(Ps.*gamma)/P; %First guess on K
psi_0=sum(z.*(K-1));
psi_1=sum(z.*(K-1)./K);
if psi_0*psi_1>=0 %Bad initial guess
disp('bad initial guess-BIG PROBLEM')
else %Good initial guess
fL=zeros(1,m);
fV=fL+1;
iter=0;
while max( abs((fV-fL)./fV))>0.00001 && iter<10000 && psi_0*psi_1<0
[ alphaV ] = RACHFORDRICE_BISECT( K,z );
xeq=z./((1-alphaV)+alphaV*K);
yeq=K.*xeq;
[gamma,~]=ACTIVITY_NRTL(BIP,alpha,T,xeq); %Gamma new guess
K=(Ps.*gamma)/P;
psi_0=sum(z.*(K-1));
psi_1=sum(z.*(K-1)./K);
fV=P*yeq;
fL=Ps.*xeq.*gamma;
iter=iter+1;
end
end
end
end
%% Input data
z=[0.1 0.9];
C1=[88.134 153.23];
C2=[-8498.6 -10055];
C3=[-9.0766 -19.488];
C4=[8.330e18 1.6426e5];
C5=[6 2];
RhoL=[803 802];
MW=[60.09 100.16]
MW =
60.0900 100.1600
P=0.5e6;
T=373.15;
BIP=[64.59 538.538];

Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by