CAT arguments dimensions are not consistent using mldivide

4 views (last 30 days)
My code is
for i=1:100;
dt=2;
A=[e11(1,1) e12(1,1) 0 0;
e21(1,1) e22(1,1) 0 0;
0 e32(1,1) e33(1,1) 0;
0 e42(1,1) e43(1,1) e44(1,1)];
B=[((qf-qs)*dt)+(e11(1,1)*Vwt(1,i))+(e12(1,1)*p(1,i));
((Q+qf*hf-qs*hs(1,i))*dt)+(e21(1,1)*Vwt(1,i))+(e22(1,1)*p(1,i));
((Q-ar(1,1)*hc(1,1)*qdc(1,1))*dt)+(e32(1,1)*p(1,i))+(e33(1,1)*ar(1,i));
((Ps*(Vsd0-Vsd(1,1))*dt)/Td)+(((hf-hw(1,1))*qf*dt)/hc(1,1))+(e42(1,1)*p(1,i))+(e43(1,1)*ar(1,i))+(e44(1,1)*Vsd(1,i))];
x=mldivide(A,B);
Vwt(1,i+1)=x(1,1);
p(1,i+1)=x(2,1);
ar(1,i+1)=x(3,1);
Vsd(1,i+1)=x(4,1);
Vst(1,i+1)=Vt-Vwt(1,i+1);
end
The error shown is
??? Error using ==> vertcat
CAT arguments dimensions are not consistent.
Error in ==> boiler at 124 B=[((qf-qs)*dt)+(e11(1,1)*Vwt(1,i))+(e12(1,1)*p(1,i)); Please help

Accepted Answer

per isakson
per isakson on 14 Mar 2014
Edited: per isakson on 14 Mar 2014
Without values of e12, e21, e22, etc. we cannot find out why this error is thrown.
Here are some links on debugging in Matlab
.
Add the following lines before B=[((qf- ...
disp( size((qf-qs)*dt)+(e11(1,1)*Vwt(1,i))+(e12(1,1)*p(1,i)));
disp( size((Q+qf*hf-qs*hs(1,i))*dt)+(e21(1,1)*Vwt(1,i))+(e22(1,1)*p(1,i)));
disp( size((Q-ar(1,1)*hc(1,1)*qdc(1,1))*dt)+(e32(1,1)*p(1,i))+(e33(1,1)*ar(1,i)));
disp( size((Ps*(Vsd0-Vsd(1,1))*dt)/Td)+(((hf-hw(1,1))*qf*dt)/hc(1,1))+(e42(1,1)*p(1,i))+(e43(1,1)*ar(1,i))+(e44(1,1)*Vsd(1,i)));
  5 Comments
BITS
BITS on 14 Mar 2014
the full code is
Vd=40; %volume of drum m^3
Vr=37; %volume of riser m^3
Vdc=11; %volume of downcomer m^3
Vt=Vd+Vr+Vdc;%total volume
Ad=20; %drum area at normal operating level m^2
md=95000;%mass of drum in kg
mt=300000; %total metal mass kg
mr=160000; %total riser mass kg
k=25;%friction coefficent in downcomer riser loop
B=0.3;%parameter
Td=12; % residence time of steam min drum s
Cp=0.420*10^-3;%specific heat of steel j/kgdegC
n=100;
t=zeros(1,n);
t(1,1)=0;
qf=50; %feed flow rate kg/s(to be specified by user)
p=zeros(1,n);
p(1,1)=8.5; %steam pressue MPa(to be specified by user)
Vwt=zeros(1,n);
Vwt(1,1)=57.2;%initial total volume of water in m^3
Vst=zeros(1,n);
Vst(1,1)=Vt-Vwt(1,1);
pf=9.142235;%pressure at which feed is entering Mpa(to be specified by user)
hf=1035.1*10^-3;%-0.0003*pf^6+0.019*pf^5-0.47*pf^4+6.1*pf^3-46*pf^2+2.4e+002*pf+5.7e+002;%enthalpy of saturated feed j/kg
hs=zeros(1,n);
hs(1,1)=(0.059*p(1,1)^3-2.3*p(1,1)^2+10*p(1,1)+2.8e+003)*10^-3; %specific enthalpy of steam (J/kg)
hw=zeros(1,n);
hw(1,1)=(0.24*p(1,1)^3-7.5*p(1,1)^2+1.2e+002*p(1,1)+7.1e+002)*10^-3;%specific enthalpy of water (J/kg)
Ps=zeros(1,n);
Ps(1,1)=(0.032*p(1,1)^3-0.53*p(1,1)^2+8.2*p(1,1)-5.9); % density of steam(kg/m^3)
Pw=zeros(1,n);
Pw(1,1)=(-0.056*p(1,1)^3+1.6*p(1,1)^2-32*p(1,1)+9e+002); %density of water(kg/m^3)
U=zeros(1,n);
U(1,1)=((0.032*3)*p(1,1)^2-(0.53*2)*p(1,1)+8.2); %dPs/dp
V=zeros(1,n);
V(1,1)=-(0.056*3)*p(1,1)^2+(1.6*2)*p(1,1)-32; %dPw/dp
W=zeros(1,n);
W(1,1)=((0.059*3)*p(1,1)^2-(2.3*2)*p(1,1)+10)*10^-3; %dhs/dp
X=zeros(1,n);
X(1,1)=((0.24*3)*p(1,1)^2-15*p(1,1)+002)*10^-3; %dhw/dp
ts=zeros(1,n);
ts(1,1)=(0.06*p(1,1)^3-1.9*p(1,1)^2+27*p(1,1)+1.7e+002)+273.15; %temperature of steam(K)
O=zeros(1,n);
O(1,1)=(0.06*3)*p(1,1)^2-(1.9*2)*p(1,1)+27; %dts/dp
g=9.81; %acceleration due to gravity m/s^2
%first system is at equilibrium
qs=qf;
Q=qs*hs(1,1)-qf*hf;%in kW
Vsd0=7.7;
hc=zeros(1,n);
hc(1,1)=hs(1,1)-hw(1,1);%enthalpy of condensation in kJ/kg
Vsd=zeros(1,n);
Vsd(1,1)=Vsd0-((Td*(hw(1,1)-hf)*qf)/(Ps(1,1)*hc(1,1)));%volume of steam in the drum below water level
Lr=28.9;%length of riser in m
Ldc=28.9;%length of downcomer in m
Adc=Vdc/Ldc;% area of downcomer in m^2
Ar=Vr/Lr;% area of riser in m^2
%ii=((2*Pw*Adc*(Pw-Ps)*g*Vr)/k)^0.5;
%jj=(Q/hc);
%tt=(Pw/(Pw-Ps));
%uu=(Ps/(Pw-Ps));
%guess=[0 1];
%result=fsolve(@eqns,guess);
%x0=[0 0];
%fsolve(@myfun,x0)
ar=zeros(1,n);
ar(1,1)=0.051;
aar=zeros(1,n);
aar(1,1)=(Pw(1,1)/(Pw(1,1)-Ps(1,1)))*(1-(Ps(1,1)/((Pw(1,1)-Ps(1,1))*ar(1,1)))*log(1+((Pw(1,1)-Ps(1,1))*ar(1,1))/Ps(1,1)));
neta=zeros(1,n);
neta(1,1)=ar(1,1)*(Pw(1,1)-Ps(1,1))/Ps(1,1);
daarp=zeros(1,n);
daarp(1,1)=(1/(Pw(1,1)-Ps(1,1))^2)*(Pw(1,1)*U(1,1)-Ps(1,1)*V(1,1))*((1+(Pw(1,1)/(Ps(1,1)*(1+neta(1,1)))))-...
(((Ps(1,1)+Pw(1,1))*log(1+neta(1,1)))/(neta(1,1)*Ps(1,1))));
daarar=zeros(1,n);
daarar(1,1)=((Pw(1,1)/(Ps(1,1)*neta(1,1))))*((log(1+neta(1,1))/neta(1,1))-(1/(1+neta(1,1))));
Vwd=zeros(1,n);
Vwd(1,1)=Vwt(1,1)-Vdc-((1-aar(1,1))*Vr);
lw=zeros(1,n);
lw(1,1)=Vwd(1,1)/Ad;
ls=zeros(1,n);
ls(1,1)=Vsd(1,1)/Ad;
l=zeros(1,n);
l(1,1)=lw(1,1)+ls(1,1);
qsd=zeros(1,n);
qsd(1,1)=(Ps(1,1)*Vsd0/Td);
qdc=zeros(1,n);
qdc(1,1)=((2*Pw(1,1)*Adc*(Pw(1,1)-Ps(1,1))*g*aar(1,1)*Vr)/k)^0.5;
qct=zeros(1,n);
qct(1,1)=(hw(1,1)-hf(1,1))*qf/hc(1,1);
qr=zeros(1,n);
qr(1,1)=qdc(1,1);
e11=zeros(1,n);
e11(1,1)=Pw(1,1)-Ps(1,1);
e12=zeros(1,n);
e12(1,1)=(Vwt(1,1)*V(1,1))+(Vst(1,1)*U(1,1));
e21=zeros(1,n);
e21(1,1)=(Pw(1,1)*hw(1,1))-(Ps(1,1)*hs(1,1));
e22=zeros(1,n);
e22(1,1)=(Vwt(1,1)*(hw(1,1)*V(1,1)+Pw(1,1)*X(1,1)))+(Vst(1,1)*(hs(1,1)*U(1,1)+Ps(1,1)*W(1,1)))-Vt+(mt*Cp*O(1,1));
e32=zeros(1,n);
e32(1,1)=((Pw(1,1)*X(1,1)-ar(1,1)*hc(1,1)*V(1,1))*(1-aar(1,1))*Vr)+...
((((1-ar(1,1))*hc(1,1)*U(1,1))+Ps(1,1)*W(1,1))*aar(1,1)*Vr)+((Ps(1,1)+(Pw(1,1)-Ps(1,1))*ar(1,1))*hc(1,1)*Vr*daarp(1,1))-Vr+(mr*Cp*O(1,1));
e33=zeros(1,n);
e33(1,1)=((1-ar(1,1))*Ps(1,1)+ar(1,1)*Pw(1,1))*hc(1,1)*Vr*daarar(1,1);
e42=zeros(1,n);
e42(1,1)=(Vsd(1,1)*U(1,1))+((1/hc(1,1))*(Ps(1,1)*Vsd(1,1)*W(1,1)+Pw(1,1)*Vwd(1,1)*X(1,1)-Vsd(1,1)-...
Vwd(1,1)+md*Cp*O(1,1)))+(ar(1,1)*(1+B)*Vr*(aar(1,1)*U(1,1)+(1-aar(1,1))*V(1,1)+(Ps(1,1)-Pw(1,1))*daarp(1,1)));
e43=zeros(1,n);
e43(1,1)=ar(1,1)*(1+B)*(Ps(1,1)-Pw(1,1))*Vr*daarar(1,1);
e44=zeros(1,n);
e44(1,1)=Ps(1,1);
%give step input
qs=qs+10;
%Q=Q+10^6;
%solving the dynamic equations
for i=1:100;
dt=2;
A=[e11(1,i) e12(1,i) 0 0;
e21(1,i) e22(1,i) 0 0;
0 e32(1,i) e33(1,i) 0;
0 e42(1,i) e43(1,i) e44(1,i)];
B=[((qf-qs)*dt)+(e11(1,i)*Vwt(1,i))+(e12(1,i)*p(1,i));
((Q+qf*hf-qs*hs(1,i))*dt)+(e21(1,i)*Vwt(1,i))+(e22(1,i)*p(1,i));
((Q-ar(1,i)*hc(1,i)*qdc(1,i))*dt)+(e32(1,i)*p(1,i))+(e33(1,i)*ar(1,i));
((Ps*(Vsd0-Vsd(1,i))*dt)/Td)+(((hf-hw(1,i))*qf*dt)/hc(1,i))+(e42(1,i)*p(1,i))+(e43(1,i)*ar(1,i))+(e44(1,i)*Vsd(1,i))];
x=mldivide(A,B);
Vwt(1,i+1)=x(1,1);
p(1,i+1)=x(2,1);
ar(1,i+1)=x(3,1);
Vsd(1,i+1)=x(4,1);
Vst(1,i+1)=Vt-Vwt(1,i+1);
hs(1,i+1)=(0.059*p(1,i+1)^3-2.3*p(1,i+1)^2+10*p(1,i+1)+2.8e+003)*10^-3; %specific enthalpy of steam (J/kg)
hw(1,i+1)=(0.24*p(1,i+1)^3-7.5*p(1,i+1)^2+1.2e+002*p(1,i+1)+7.1e+002)*10^-3;%specific enthalpy of water (J/kg)
Ps(1,i+1)=0.032*p(1,i+1)^3-0.53*p(1,i+1)^2+8.2*p(1,i+1)-5.9; % density of steam(kg/m^3)
Pw(1,i+1)=-0.056*p(1,i+1)^3+1.6*p(1,i+1)^2-32*p(1,i+1)+9e+002; %density of water(kg/m^3)
U(1,i+1)=(0.032*3)*p(1,i+1)^2-(0.53*2)*p(1,i+1)+8.2; %dPs/dp
V(1,i+1)=-(0.056*3)*p(1,i+1)^2+(1.6*2)*p(1,i+1)-32; %dPw/dp
W(1,i+1)=((0.059*3)*p(1,i+1)^2-(2.3*2)*p(1,i+1)+10)*10^-3; %dhs/dp
X(1,i+1)=((0.24*3)*p(1,i+1)^2-15*p(1,i+1)+002)*10^-3; %dhw/dp
ts(1,i+1)=0.06*p(1,i+1)^3-1.9*p(1,i+1)^2+27*p(1,i+1)+1.7e+002+273.15; %temperature of steam(K)
O(1,i+1)=(0.06*3)*p(1,i+1)^2-(1.9*2)*p(1,i+1)+27;
hc(1,i+1)=hs(1,i+1)-hw(1,i+1);%enthalpy of condensation in J/kg
Vsd(1,i+1)=Vsd0-((Td*(hw(1,i+1)-hf)*qf)/(Ps(1,i+1)*hc(1,i+1)));
aar(1,i+1)=(Pw(1,i+1)/(Pw(1,i+1)-Ps(1,i+1)))*(1-(Ps(1,i+1)/((Pw(1,i+1)-Ps(1,i+1))*ar(1,i+1)))...
*log(1+((Pw(1,i+1)-Ps(1,i+1))*ar(1,i+1))/Ps(1,i+1)));
neta(1,i+1)=ar(1,i+1)*(Pw(1,i+1)-Ps(1,i+1))/Ps(1,i+1);
daarp(1,i+1)=(1/(Pw(1,i+1)-Ps(1,i+1))^2)*(Pw(1,i+1)*U(1,i+1)-Ps(1,i+1)*V(1,i+1))*((1+(Pw(1,i+1)/(Ps(1,i+1)*(1+neta(1,i+1)))))-...
(((Ps(1,i+1)+Pw(1,i+1))*log(1+neta(1,i+1)))/(neta(1,i+1)*Ps(1,i+1))));
daarar(1,i+1)=((Pw(1,i+1)/(Ps(1,i+1)*neta(1,i+1))))*((log(1+neta(1,i+1))/neta(1,i+1))-(1/(1+neta(1,i+1))));
Vwd(1,i+1)=Vwt(1,i+1)-Vdc-((1-aar(1,i+1))*Vr);
lw(1,i+1)=Vwd(1,i+1)/Ad;
ls(1,i+1)=Vsd(1,i+1)/Ad;
l(1,i+1)=lw(1,i+1)+ls(1,i+1);
qsd(1,i+1)=(Ps(1,i+1)*Vsd0/Td);
qdc(1,i+1)=((2*Pw(1,i+1)*Adc*(Pw(1,i+1)-Ps(1,i+1))*g*aar(1,i+1)*Vr)/k)^0.5;
qct(1,i+1)=((hw(1,i+1)-hf)*qf/hc(1,i+1))+((1/hc(1,i+1)*dt)*(Ps(1,i+1)*Vst(1,i+1)*W(1,i+1)+...
Pw(1,i+1)*Vwt(1,i+1)*X(1,i+1)-Vt+mt*Cp*O(1,i+1))*(p(1,i+1)-p(1,i)));
qr(1,i+1)=qdc(1,i+1)-((Vr/dt)*((aar(1,i+1)*U(1,i+1)+(1-aar(1,i+1))* V(1,i+1)+...
(Pw(1,i+1)-Ps(1,i+1))*daarp(1,i+1)))*(p(1,i+1)-p(1,i)))+...
((((Pw(1,i+1)-Ps(1,i+1))*Vr*daarar(1,i+1)*(ar(1,i+1)-ar(1,i+1)))/dt));
e11(1,i+1)=Pw(1,i+1)-Ps(1,i+1);
e12(1,i+1)=(Vwt(1,i+1)*V(1,i+1))+(Vst(1,i+1)*U(1,i+1));
e21(1,i+1)=(Pw(1,i+1)*hw(1,i+1))-(Ps(1,i+1)*hs(1,i+1));
e22(1,i+1)=(Vwt(1,i+1)*(hw(1,i+1)*V(1,i+1)+Pw(1,i+1)*X(1,i+1)))+...
(Vst(1,i+1)*(hs(1,i+1)*U(1,i+1)+Ps(1,i+1)*W(1,i+1)))-Vt+(mt*Cp*O(1,i+1));
e32(1,i+1)=((Pw(1,i+1)*X(1,i+1)-ar(1,i+1)*hc(1,i+1)*V(1,i+1))*(1-aar(1,i+1))*Vr)+...
((((1-ar(1,i+1))*hc(1,i+1)*U(1,i+1))+Ps(1,i+1)*W(1,i+1))*aar(1,i+1)*Vr)+...
((Ps(1,i+1)+(Pw(1,i+1)-Ps(1,i+1))*ar(1,i+1))*hc(1,i+1)*Vr*daarp(1,i+1))-Vr+(mr*Cp*O(1,i+1));
e33(1,i+1)=((1-ar(1,i+1))*Ps(1,i+1)+ar(1,i+1)*Pw(1,i+1))*hc(1,i+1)*Vr*daarar(1,i+1);
e42(1,i+1)=(Vsd(1,i+1)*U(1,i+1))+((1/hc(1,i+1))*(Ps(1,i+1)*Vsd(1,i+1)*W(1,i+1)+...
Pw(1,i+1)*Vwd(1,i+1)*X(1,i+1)-Vsd(1,i+1)-Vwd(1,i+1)+md*Cp*O(1,i+1)))+...
(ar(1,i+1)*(1+B)*Vr*(aar(1,i+1)*U(1,i+1)+(1-aar(1,i+1))*V(1,i+1)+(Ps(1,i+1)-Pw(1,i+1))*daarp(1,i+1)));
e43(1,i+1)=ar(1,i+1)*(1+B)*(Ps(1,i+1)-Pw(1,i+1))*Vr*daarar(1,i+1);
e44(1,i+1)=Ps(1,i+1);
end
Now run it
per isakson
per isakson on 14 Mar 2014
It is possible to attach files. Please use it next time.
I added the four lines disp(size( .. as I propose in the answer above. There was cut&paste errors, which I have fixed. And I put the code in a function, cssm1.
All the four expressions, which you try to concatenate vertically, B=[((qf ... return values of different size.
Running cssm1 on R2013a returned
>> cssm1
1.0e+04 *
3.1353 3.1353
1.0e+04 *
2.2456 2.2456
1 1
1 100
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
Error in cssm1 (line 131)
B=[((qf-qs)*dt)+(e11(1,i)*Vwt(1,i))+(e12(1,i)*p(1,i));

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!