Info

This question is closed. Reopen it to edit or answer.

Trying to solve piece-wise model over range of x

1 view (last 30 days)
JM
JM on 13 Mar 2013
Closed: MATLAB Answer Bot on 20 Aug 2021
When I run the attached code I am getting the error: "Subscripted assignment dimension mismatch." I am trying to move forward piece-wise (H) over a range (x)...
TK=283;
iv=2;
Rg=8;
A=7.1e-12;
B=1.1e-7;
th=349e-6;
r=0.05;
R=0.1;
l=0.8;
for x=1:999;
SWU=2;
Qr(x)=10;
Qs(x)=Qr(x)*SWU;
S1(x)=0;
S5(x)=30;
D=14.5E-10;
Ur(x)=Qr(x)/(3.14*r^2);
Us(x)=Qs(x)/(3.14*(R^2-r^2));
Dhs=4*3.14*(R^2-r^2)/(2*3.14*(R+r));
kr(x)=1.62*Ur(x)^(1/3)*D^(2/3)/l^(1/3)/(2*r)^(1/3);
ks(x)=1.62*Us(x)^(1/3)*D^(2/3)/l^(1/3)/(Dhs)^(1/3);
dr(x)=D/kr(x);
ds(x)=D/ks(x);
dSideal(1,x)=S5(x)-S1(x);
dOideal(x)=(10^(-2)*dSideal(1,x)/58.44)*iv*Rg*TK;
dP(x)=0.001*x*dOideal(x);
for n=1:1:20000;
dOn(n,x)=(10^(-2)*dSideal(n,x)/58.44)*iv*Rg*TK;
Jwn(n,x)=A*(dOn(n,x)-dP(x))*10^5;
dSn(n,x)=(S5(x)*exp(-Jwn(n,x)*ds(x)/D)-S1(x)*exp((th+dr(x))*Jwn(n,x)
/D))/(1+B/Jwn(n,x)*(exp((th+dr(x))*Jwn(n,x)/D)-exp(-Jwn(n,x)*ds(x)/D)));
if ((dSideal(n,x)-dSn(n,x))>0.000001);
dSideal(n+1,x)=dSideal(n,x)-0.01;
else
break
end
end
dO(x)=dOn(n,x);
Jw(x)=Jwn(n,x);
dS(x)=dSideal(n,x);
E(x)=dP(x)*Jw(x)*10^5;
betaS(x)=B*dSideal(n,x)/Jwn(n,x);
S1(x);
S2(x)=(S1(x)+betaS(x))*exp(Jw(x)*dr(x)/D)-betaS(x);
S3(x)=(S1(x)+betaS(x))*exp(Jw(x)*(th+dr(x))/D)-betaS(x);
S4a(x)=dSideal(n,x)+S3(x);
S4b(x)=(S5(x)+betaS(x))*exp(-Jw(x)*ds(x)/D)-betaS(x);
S5(x);
end
N=100;
Adesign=1500000;
Ai=Adesign/N;
for x=1:999;
%VALUES AT PIECE i=1
Qri(1,x)=Qr(x);
Qsi(1,x)=Qs(x);
S1i(1,x)=S1(x);
S5i(1,x)=S5(x);
dOi(1,x)=dO(x);
Jwi(1,x)=Jw(x);
dSi(1,x)=dS(x);
Ei(1,x)=E(x);
dST(1,x)=B*dS(x)*Ai;
dWR(1,x)=Jw(x)*Ai;
Ar(1,x)=0;
Po(1,x)=0;
%VALUES AT PIECE i=2
Qri(2,x)=Qri(1,x)-dWR(1,x);
Qsi(2,x)=dWR(1,x)+Qsi(1,x);
S1i(2,x)=(S1i(1,x)*Qri(1,x)/Qri(2,x))+(dST(1,x)/Qri(2,x));
S5i(2,x)=(Qsi(1,x)*S5i(1,x)/Qsi(2,x))-(dST(1,x)/Qsi(2,x));
Ar(2,x)=Ai;
Po(2,x)=E(x)*Ai;
Qr(x)=Qri(2,x);
Qs(x)=Qsi(2,x);
S1(x)=S1i(2,x);
S5(x)=S5i(2,x);
end
%SOLVE OVER RANGE OF H, FOR PARAMETERS REDEFINED BASED ON i=2
for x=1:999;
for H=1:200;
Ur(x)=Qr(x)/(3.14*r^2);
Us(x)=Qs(x)/(3.14*(R^2-r^2));
Dhs=4*3.14*(R^2-r^2)/(2*3.14*(R+r));
kr(x)=1.62*Ur(x)^(1/3)*D^(2/3)/l^(1/3)/(2*r)^(1/3);
ks(x)=1.62*Us(x)^(1/3)*D^(2/3)/l^(1/3)/(Dhs)^(1/3);
dr(x)=D/kr(x);
ds(x)=D/ks(x);
dSideal(1,x)=S5(x)-S1(x);
dOideal(x)=(10^(-2)*dSideal(1,x)/58.44)*iv*Rg*TK;
dP(x)=0.001*x*dOideal(x);
for n=1:1:20000;
dOn(n,x)=(10^(-2)*dSideal(n,x)/58.44)*iv*Rg*TK;
Jwn(n,x)=A*(dOn(n,H,x)-dP(x))*10^5;
dSn(n,x)=(S5(H,x)*exp(-Jwn(n,x)*ds(x)/D)-S1*exp((th+dr(x))*Jwn(n,x)/D))/(1+B/Jwn(n,x)*(exp((th+dr(x))*Jwn(n,x)/D)-exp(-Jwn(n,x)*ds(x)/D)));
if ((dSideal(n,x)-dSn(n,x))>0.000001);
dSideal(n+1,x)=dSideal(n,x)-0.01;
else
break
end
end
dO(x)=dOn(n,x);
Jw(x)=Jwn(n,x);
dS(x)=dSideal(n,x);
E(x)=dP(H,x)*Jw(x)*10^5;
betaS(x)=B*dSideal(n,x)/Jwn(n,x);
S1(x);
S2(x)=(S1(x)+betaS(x))*exp(Jw(x)*dr(x)/D)-betaS(x);
S3(x)=(S1(x)+betaS(x))*exp(Jw(x)*(th+dr(x))/D)-betaS(x);
S4a(x)=dSideal(n,x)+S3(x);
S4b(x)=(S5(x)+betaS(x))*exp(-Jw(x)*ds(x)/D)-betaS(x);
S5(x);
%VALUES AT PIECE i=H+1
dOi(H+1,x)=dO(x);
Jwi(H+1,x)=Jw(x);
dSi(H+1,x)=S4a(x)-S3(x);
Ei(H+1,x)=E(x);
dST(H+1,x)=B*dSi(H+1,x)*Ai;
dWR(H+1,x)=Jwi(H+1,x)*Ai;
%VALUES AT PIECE i=H+2
Qri(H+2,x)=Qri(H+1,x)-dWR(H+1,x);
Qsi(H+2,x)=dWR(H+1,x)+Qsi(H+1,x);
S1i(H+2,x)=(S1i(H+1,x)*Qri(H+1,x)/Qri(H+2,x))+(dST(H+1,x)/Qri(H+2,x));
S5i(H+2,x)=(Qsi(H+1,x)*S5i(H+1,x)/Qsi(H+2,x))-(dST(H+1,x)/Qsi(H+2,x));
Ar(H+2)=(H+1)*Ai;
Po(H+2,x)=Ei(H+1,x)*Ai+Po(H+1,x);
Qr(x)=Qri(H+2,x);
Qs(x)=Qsi(H+2,x);
S1(x)=S1i(H+2,x);
S5(x)=S5i(H+2,x);
if Ar(H+2)>Adesign;
break
end
end
end

Answers (0)

Community Treasure Hunt

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

Start Hunting!