function [F]=DOF_HTL_Mitsuru_FUN(X)
global N F_psc X_F_psc X_W_psc X_G_psc X_O_psc X_WW_psc X_S_psc Rates_psc
%Stream Names:
%W= Water Feed
%F=Feed Biomass
%G=Gas Product
%O=Oil Product
%WW=Waste Product
%S=Soild Product
%Component Identification:
%H2O-Water
%C6H10O5-Cellulose
%CO2-Carbon Dioxide
%C6H12O6-Fructose
%C6H12O6p-Glucose
%C12H22O11-Cellobios
%C18H32O16-Cellotriose
%C24H42O21-Cellotetraose
%C30H52O26-Cellopentaose
%C36H62O31=Cellohexaose
%C6H10O5LVG-1,6-anhydroglucose (Levoglucosan)
%C4H8O4-Erythrose
%C2H4O2-Glycolaldehyde
%C3H603-Glyceraldehyde
%C3H6O3p-Dihydroacetone
%C3H4O2-Pyruvaldehyde
%C6H6O3-5-(hydroxymethyl)-furaldehyde(5-HMF)
%C5H4O2-Furaldehyde
%C-Char (Carbon)
%H2-Hydrogen
%Unknown Variables:
%Stream Flowrates:
F_G=X(1);
F_O=X(2);
F_WW=X(3);
F_S=X(4);
Flows=[F_psc(1);F_psc(2);-F_G;-F_O;-F_WW;-F_S];
%Stream Compositions:
%Water Feed (W) 1 Unknown
X_W_H2=X(5);
X_W=[X_W_psc(1:18);X(5);X_W_psc(19)];
%Feed Biomass (F) 1 Unknown
X_F_H2=X(6);
X_F=[X_F_psc(1:18);X(6);X_F_psc(19)];
%Gas Product (G) 3 Unknown
X_G_H2O=X(7);
X_G_CO2=X(8);
X_G_H2=X(9);
X_G=[X(7);X_G_psc(1);X(8);X_G_psc(2:16);X(9);X_G_psc(17)];
%Oil Product (O) 15 Unknown
X_O_C6H12O6=X(10);
X_O_C6H12O6p=X(11);
X_O_C12H22O11=X(12);
X_O_C18H32O16=X(13);
X_O_C24H42O21=X(14);
X_O_C30H52O26=X(15);
X_O_C36H62O31=X(16);
X_O_C6H10O5LVG=X(17);
X_O_C4H8O4=X(18);
X_O_C2H4O2=X(19);
X_O_C3H603=X(20);
X_O_C3H6O3p=X(21);
X_O_C3H4O2=X(22);
X_O_C6H3O3=X(23);
X_O_C5H4O2=X(24);
X_O=[X_O_psc(1:3);X(10:24)';X_O_psc(4:5)];
%Waste Water Product (WW) 1 Unknown
X_WW_H2O=X(25);
X_WW=[X(25);X_WW_psc(1:19)];
%Solid Product (S) 3 Unknown
X_S_H2O=X(26);
X_S_C6H10O5=X(27);
X_S_C=X(28);
X_S=[X(26:27)';X_S_psc(1:17);X(28)];
%Reaction Rates:
rH2O=X(29);
rC6H10O5=X(30);
rCO2=X(31);
Rates=[X(29:31)';Rates_psc(1:17)];
%Reaction Rates:
rC6H12O6=Rates_psc(1);
rC6H12O6p=Rates_psc(2);
rC12H22O11=Rates_psc(3);
rC18H32O16=Rates_psc(4);
rC24H42O21=Rates_psc(5);
rC30H52O26=Rates_psc(6);
rC36H62O31=Rates_psc(7);
rC6H10O5LVG=Rates_psc(8);
rC4H8O4=Rates_psc(9);
rC2H4O2=Rates_psc(10);
rC3H603=Rates_psc(11);
rC3H6O3p=Rates_psc(12);
rC3H4O2=Rates_psc(13);
rC6H6O3=Rates_psc(14);
rC5H4O2=Rates_psc(15);
rH2=Rates_psc(16);
rC=Rates_psc(17);
CompMatx=[X_F X_W X_G X_O X_WW X_S];
%Balances
for j=1:N
F(j)=CompMatx(j,:)*Flows+Rates(j);
end
%Stream Constraints
F(21)=sum(X_F)-1;
F(22)=sum(X_W)-1;
F(23)=sum(X_G)-1;
F(24)=sum(X_O)-1;
F(25)=sum(X_WW)-1;
F(26)=sum(X_S)-1;
%Reaction Rate Relationships
F(27)=(7*rC)/12 + rC2H4O2/3 - rC3H4O2/2 + rC3H6O3p/2 + (2*rC4H8O4)/3 - (13*rC5H4O2)/6 - (55*rC6H6O3)/24 + rC3H603/2 + rC6H12O6 + rC6H12O6p + rC12H22O11 + rC18H32O16 + rC24H42O21 + rC30H52O26 - (5*rH2)/6 + rH20 + rC36H62O31;
F(28)=rC/12 + rC2H4O2/3 + rC3H4O2/2 + rC3H6O3p/2 + (2*rC4H8O4)/3 + (5*rC5H4O2)/6 + (23*rC6H6O3)/24 + rC3H603/2 + rC6H10O5 + rC6H12O6 + rC6H12O6p + rC6H10O5LVG + 2*rC12H22O11 + 3*rC18H32O16 + 4*rC24H42O21 + 5*rC30H52O26 + rH2/6 + 6*rC36H62O31;
F(29)=rC6H6O3/4 - rC/2 + rCO2;
F(30)=X(7)-.01; %Fraction water in G product
F(31)=X(26)-.1; %Fraction water in S product
end
%Here's code to run function
clear all
close all
clc
tic
global N F_psc X_F_psc X_W_psc X_G_psc X_O_psc X_WW_psc X_S_psc Rates_psc
syms rH20 rC6H10O5 rCO2 rC6H12O6 rC6H12O6p rC12H22O11 rC18H32O16 rC24H42O21...
rC30H52O26 rC36H62O31 rC6H10O5LVG rC4H8O4 rC2H4O2 rC3H603 rC3H6O3p rC3H4O2...
rC6H6O3 rC5H4O2 rC rH2;
syms H20 C6H10O5 CO2 C6H12O6 C6H12O6p C12H22O11 C18H32O16 C24H42O21...
C30H52O26 C36H62O31 C6H10O5LVG C4H8O4 C2H4O2 C3H603 C3H6O3p C3H4O2...
C6H6O3 C5H4O2 C H2;
N=20; %Number of Species
M=6; %Number of Stream
p=2; %Number of Phases
n=1; %Number of Species in Equilibrium
q=0; %No Heat Balance, i.e. q=0
%Chemical Composition Matrix (CCM) for the species in syms devinition above
CCM=[0 6 1 6 6 12 18 24 30 36 6 4 2 3 3 3 6 5 0 1;2 10 0 12 12 22 32 42 52 62 10 8 4 6 6 4 5 4 2 0;1 5 2 6 6 11 16 21 26 31 5 4 2 3 3 2 3 2 0 0];
RANK=rank(CCM); %Number of reaction rate relationships
RREF=rref(CCM); %The row reduced Echelon form (RREF) Matrix
RateNames=[rH20 rC6H10O5 rCO2 rC6H12O6 rC6H12O6p rC12H22O11 rC18H32O16 rC24H42O21...
rC30H52O26 rC36H62O31 rC6H10O5LVG rC4H8O4 rC2H4O2 rC3H603 rC3H6O3p rC3H4O2...
rC6H6O3 rC5H4O2 rC rH2];
SpeciesNames=[H20 C6H10O5 CO2 C6H12O6 C6H12O6p C12H22O11 C18H32O16 C24H42O21...
C30H52O26 C36H62O31 C6H10O5LVG C4H8O4 C2H4O2 C3H603 C3H6O3p C3H4O2...
C6H6O3 C5H4O2 C H2];
RateNames=RateNames.';
SpeciesNames=SpeciesNames.';
RRR=rref(CCM)*RateNames; %The reaction Rate Relationsships
CoefMatrix=RREF(1:RANK,RANK+1:end);
CoefMatrix=CoefMatrix.';
I=-eye(N-RANK);
[CoefMatrix,I]*SpeciesNames; %The reaction schemata
%Degrees of Freedom (DOF) Analysis
C=(20-1)+(20-1)+(17)+(20-15)+(19)+(17); %Number of Species specified
F=2; %Number of flows specified
NR=N-RANK; %Number of reaction rates specified
OC=1; %Number of Other Constraints (OC)
T=1; %Number of temperatures specified
P=1; %Number of pressures specified
GDF=M+M*N+N+2+q*(2*M+1);
GC=M+N+n*(p-1)+q+RANK;
PSC=GDF-GC;
DF=C+F+NR+OC+T+P;
EQ=GC+OC;
%Particular and Specific Constraints (PSC):
%Stream flowrates:
F_F=1; %moles/h
F_W=2; %moles/h
F_psc=[F_F;F_W];
%Stream Compositions:
%Feed(F)
X_F_H2O=.01;
X_F_C6H10O5=.96;
X_F_CO2=.01;
X_F_C6H12O6=.01;
X_F_C6H12O6p=0;
X_F_C12H22O11=0;
X_F_C18H32O16=0;
X_F_C24H42O21=0;
X_F_C30H52O26=0;
X_F_C36H62O31=0;
X_F_C6H10O5LVG=0;
X_F_C4H8O4=0;
X_F_C2H4O2=0;
X_F_C3H603=0;
X_F_C3H6O3p=0;
X_F_C3H4O2=0;
X_F_C6H6O3=0;
X_F_C5H4O2=0;
X_F_C=.01;
X_F_psc=[X_F_H2O;
X_F_C6H10O5;
X_F_CO2;
X_F_C6H12O6;
X_F_C6H12O6p;
X_F_C12H22O11;
X_F_C18H32O16;
X_F_C24H42O21;
X_F_C30H52O26;
X_F_C36H62O31;
X_F_C6H10O5LVG;
X_F_C4H8O4;
X_F_C2H4O2;
X_F_C3H603;
X_F_C3H6O3p;
X_F_C3H4O2;
X_F_C6H6O3;
X_F_C5H4O2;
X_F_C];
%Water Feed(W)
X_W_H2O=1;
X_W_C6H10O5=0;
X_W_CO2=0;
X_W_C6H12O6=0;
X_W_C6H12O6p=0;
X_W_C12H22O11=0;
X_W_C18H32O16=0;
X_W_C24H42O21=0;
X_W_C30H52O26=0;
X_W_C36H62O31=0;
X_W_C6H10O5LVG=0;
X_W_C4H8O4=0;
X_W_C2H4O2=0;
X_W_C3H603=0;
X_W_C3H6O3p=0;
X_W_C3H4O2=0;
X_W_C6H6O3=0;
X_W_C5H4O2=0;
X_W_C=0;
X_W_psc=[X_F_H2O;
X_W_C6H10O5;
X_W_CO2;
X_W_C6H12O6;
X_W_C6H12O6p;
X_W_C12H22O11;
X_W_C18H32O16;
X_W_C24H42O21;
X_W_C30H52O26;
X_W_C36H62O31;
X_W_C6H10O5LVG;
X_W_C4H8O4;
X_W_C2H4O2;
X_W_C3H603;
X_W_C3H6O3p;
X_W_C3H4O2;
X_W_C6H6O3;
X_W_C5H4O2;
X_W_C];
%Gas Product(G)
X_G_C6H10O5=0;
X_G_C6H12O6=0;
X_G_C6H12O6p=0;
X_G_C12H22O11=0;
X_G_C18H32O16=0;
X_G_C24H42O21=0;
X_G_C30H52O26=0;
X_G_C36H62O31=0;
X_G_C6H10O5LVG=0;
X_G_C4H8O4=0;
X_G_C2H4O2=0;
X_G_C3H603=0;
X_G_C3H6O3p=0;
X_G_C3H4O2=0;
X_G_C6H6O3=0;
X_G_C5H4O2=0;
X_G_C=0;
X_G_psc=[X_G_C6H10O5;
X_G_C6H12O6;
X_G_C6H12O6p;
X_G_C12H22O11;
X_G_C18H32O16;
X_G_C24H42O21;
X_G_C30H52O26;
X_G_C36H62O31;
X_G_C6H10O5LVG;
X_G_C4H8O4;
X_G_C2H4O2;
X_G_C3H603;
X_G_C3H6O3p;
X_G_C3H4O2;
X_G_C6H6O3;
X_G_C5H4O2;
X_G_C];
%Oil Product(O)
X_O_H2O=0;
X_O_C6H10O5=0;
X_O_CO2=0;
X_O_H2=0;
X_O_C=0;
X_O_psc=[X_O_H2O;
X_O_C6H10O5;
X_O_CO2;
X_O_H2;
X_O_C];
% Waste Water Product(WW)
X_WW_C6H10O5=0;
X_WW_CO2=0;
X_WW_C6H12O6=0;
X_WW_C6H12O6p=0;
X_WW_C12H22O11=0;
X_WW_C18H32O16=0;
X_WW_C24H42O21=0;
X_WW_C30H52O26=0;
X_WW_C36H62O31=0;
X_WW_C6H10O5LVG=0;
X_WW_C4H8O4=0;
X_WW_C2H4O2=0;
X_WW_C3H603=0;
X_WW_C3H6O3p=0;
X_WW_C3H4O2=0;
X_WW_C6H6O3=0;
X_WW_C5H4O2=0;
X_WW_H2=0;
X_WW_C=0;
X_WW_psc=[X_WW_C6H10O5;
X_WW_CO2;
X_WW_C6H12O6;
X_WW_C6H12O6p;
X_WW_C12H22O11;
X_WW_C18H32O16;
X_WW_C24H42O21;
X_WW_C30H52O26;
X_WW_C36H62O31;
X_WW_C6H10O5LVG;
X_WW_C4H8O4;
X_WW_C2H4O2;
X_WW_C3H603;
X_WW_C3H6O3p;
X_WW_C3H4O2;
X_WW_C6H6O3;
X_WW_C5H4O2;
X_WW_C];
%Solid Product(S)
X_S_CO2=0;
X_S_C6H12O6=0;
X_S_C6H12O6p=0;
X_S_C12H22O11=0;
X_S_C18H32O16=0;
X_S_C24H42O21=0;
X_S_C30H52O26=0;
X_S_C36H62O31=0;
X_S_C6H10O5LVG=0;
X_S_C4H8O4=0;
X_S_C2H4O2=0;
X_S_C3H603=0;
X_S_C3H6O3p=0;
X_S_C3H4O2=0;
X_S_C6H6O3=0;
X_S_C5H4O2=0;
X_S_H2=0;
X_S_psc=[X_S_CO2;
X_S_C6H12O6;
X_S_C6H12O6p;
X_S_C12H22O11;
X_S_C18H32O16;
X_S_C24H42O21;
X_S_C30H52O26;
X_S_C36H62O31;
X_S_C6H10O5LVG;
X_S_C4H8O4;
X_S_C2H4O2;
X_S_C3H603;
X_S_C3H6O3p;
X_S_C3H4O2;
X_S_C6H6O3;
X_S_C5H4O2;
X_S_H2];
%Reaction Rates:
Related Question
MATLAB: Index exceeds the number of array elements in “X_WW=[X(25);X_WW_psc(1:19)];”.
design problem
Best Answer