Index exceeds the number of array elements in "X_WW=[X(2​5);X_WW_ps​c(1:19)];"​.

1 visualización (últimos 30 días)
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:
rC6H12O6=0.32;
rC6H12O6p=0.32;
rC12H22O11=0.32;
rC18H32O16=0.32;
rC24H42O21=0.32;
rC30H52O260=0.32;
rC36H62O31=0.32;
rC6H10O5LVG=0.32;
rC4H8O4=0.32;
rC2H4O2=0.32;
rC3H603=0.32;
rC3H6O3p=0.32;
rC3H4O2=0.32;
rC6H6O3=0.32;
rC5H4O2=0.32;
rH2=0.8;
rC-0.04;
Rates_psc=[rC6H12O6;
rC6H12O6p;
rC12H22O11;
rC18H32O16;
rC24H42O21;
rC30H52O26;
rC36H62O31;
rC6H10O5LVG;
rC4H8O4;
rC2H4O2;
rC3H603;
rC3H6O3p;
rC3H4O2;
rC6H6O3;
rC5H4O2;
rH2;
rC];
Xguess=[0 0 1 1 zeros(1,27)];
[X,fval, Flag]=fsolve(@DOF_HTL_Mitsuru_FUN,Xguess);
fval
X
sprintf('If 1, the program terminated normally = %4i',Flag)
sprintf('F_G = %8.5f \nF_O = %8.5f \nF_WW = %8.5f \nF_S = %8.5f \nX_W_H2 = %8.5f \nX_F_H2 = %8.5f \nX_G_H2O = %8.5f \nX_G_CO2 = %8.5f \nX_G_H2 = %8.5f \nX_O_C6H12O6 = %8.5f \nX_O_C6H12O6p = %8.5f \nX_O_C12H22O11 = %8.5f \nX_O_C18H32O16 = %8.5f \nX_O_C24H42O21 = %8.5f \nX_O_C30H52O26 = %8.5f \nX_O_C36H62O31 = %8.5f \nX_O_C6H10O5LVG = %8.5f \nX_O_C4H8O4 = %8.5f \nX_O_C2H4O2 = %8.5f \nX_O_C3H6O3 = %8.5f \nX_O_C3H6O3p = %8.5f \nX_O_C3H4O2 = %8.5f \nX_O_C6H6O3 = %8.5f \nX_O_C5H4O2 = %8.5f \nX_WW_H20 = %8.5f \nX_S_H2O = %8.5f \nX_S_C6H10O5 = %8.5f \nX_S_C = %8.5f \nrH2O = %8.5f \nrC6H10O5 = %8.5f \nrCO2 = %8.5f',...
X(1), X(2), X(3), X(4), X(5), X(6), X(7), X(8), X(9), X(10), X(11), X(12), X(13), X(14), X(15), ...
X(16), X(17), X(18), X(19), X(20), X(21), X(22), X(23), X(24), X(25), X(26), X(27), X(28), X(29), X(30), X(31))
sprintf('Cellulose Conversion = %8.5f', (F_F*X_F_C6H10O5-X(4)*X(27))/F_F*X_F_C6H10O5)
  1 comentario
Jan
Jan el 17 de Sept. de 2018
Please take a look on your code. It is unreadable. Please use the "{} Code" button to format the code in the forum.

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 17 de Sept. de 2018
At first you clear everything by the brute and cruel clear all. Afterwards you define X_WW_psc as global, but the value is not defined anywhere in the code:
global N F_psc X_F_psc X_W_psc X_G_psc X_O_psc X_WW_psc
So where does X_WW_psc come from at all? Does it have at least 19 elements?
You can use the debugger to check the contents of the variables used in the failing line. Type this in the command window:
dbstop if error
Then run the code again. When it stops at the error, check the sizes of X and X_WW_psc.

Más respuestas (0)

Categorías

Más información sobre State-Space Control Design and Estimation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by