Trying to get a plot but I get the error below, any way to plot without changing the code but using different syntax?
이전 댓글 표시
| | The function is:||
function yprime = model(t,y)
d=5*10^-6;
xHe=0:1:100; %Important
xAr=100:-1:0; %Important
pg=(1.5979.*xAr)+(.1624.*xHe);
V=(pi/6)*d^3;
As=(pi/4)*d^2;
Ad=(pi*d^2);
g=9.81;
pm=3545;
CM=0.2165;
yg=1.66;
Po=2.76;
Pe=0.0018;
Ma=CM*(sqrt((2/(yg-1))*(((Po/Pe)^((yg-1)/yg))-1)));
mmolg=((40.*xAr)+(4.*xHe))./1000;
R=8.314;
To=300;
Te=To/(1+((yg-1)/2)*(Ma^2));
vs=sqrt(((yg*R*Te)./(mmolg)));
vgo=Ma.*vs;
k=(3.04*(10^-4)).*(vgo.^1.24);
e=0.035;
s=5.671*10^-8;
Kg=(.0179.*xAr)+(.15015.*xHe);
Cpg=(520.76.*xAr)+(5278.*xHe);
ug=((224.3*10^-6).*xAr)+((198.6*10^-6).*xHe);
Tgas=370;
yprime(1,1)=y(2);
CD=(.28+(((6.*(sqrt(((pg.*d.*(abs((vgo.*exp(-y(1)./k))-y(2))))./ug))))+21)./((pg.*d.*(abs((vgo.*exp(-y(1)./k))-y(2))))./ug)));
yprime(2,1)=(V.*(pm-pg).*g-(0.5.*pg.*As.*CD).*(abs(y(2)-(vgo.*exp(-y(1)./k)))).*(y(2)-vgo.*exp(-y(1)./k)))./(pm*V);
vg=vgo.*exp(-y(1)./k);
vd=y(2);
Re=((pg.*d.*(abs(vg-vd)))./ug);
Pr=(ug.*Cpg)./Kg;
h=(Kg./d).*(2+0.6.*(Re.^.5).*(Pr.^(1/3)));
Cpd=(21.8+.009.*y(3));
fr=.043;
yprime(3,1)=fr.*((-h.*Ad*(y(3)-Tgas))-(Ad.*e.*s.*((y(3).^4)-Tgas.^4)))/(V.*pm.*Cpd);
_ | |The script to solve the function is:||_
y0(1,1)=0;
y0(2,1)=0;
y0(3,1)=1373;
xHe=0:1:100; %Important
xAr=100:-1:0; %Important
pg=(1.5979.*xAr)+(.1624.*xHe);
g=9.81;
pm=3545;
CM=0.2165;
yg=1.66;
Po=2.76;
Pe=0.0018;
Ma=CM*(sqrt((2/(yg-1))*(((Po/Pe)^((yg-1)/yg))-1)));
mmolg=((40.*xAr)+(4.*xHe))./1000;
R=8.314;
To=300;
Te=To/(1+((yg-1)/2)*(Ma.^2));
vs=sqrt(((yg*R*Te)./(mmolg)));
vgo=Ma.*vs;
k=(3.04*(10^-4)).*(vgo.^1.24);
Kg=(.0179.*xAr)+(.15015.*xHe);
Cpg=(520.76.*xAr)+(5278.*xHe);
ug=((224.3*10^-6).*xAr)+((198.6*10^-6).*xHe);
Tgas=370;
Pr=(ug.*Cpg)./Kg;
fr=.043;
tspan1=[0,.005];
[t1,y1]=ode45('model',tspan1,y0);
d1=5*10^-6;
z1=y1(:,1);
vd1=y1(:,2);
vg1=vgo.*exp(-z1./k);
T1=y1(:,3);
Re1=((pg.*d1.*(abs(vg1-vd1)))./ug);
Cpd1=21.8+(0.009.*T1);
h1=(Kg/d1).*(2+0.6.*(Re1.^.5).*Pr.^(1/3));
Tdot1=mean((6*fr*(T1-Tgas).*h1)./(pm*Cpd1.*d1));
semilogy(xHe,Tdot1,'b*')
_ | The error I get is:|_
>> solve_model
Subscripted assignment dimension mismatch.
Error in model (line 31)
yprime(2,1)=(V.*(pm-pg).*g-(0.5.*pg.*As.*CD).*(abs(y(2)-(vgo.*exp(-y(1)./k)))).*(y(2)-vgo.*exp(-y(1)./k)))./(pm*V);
Error in odearguments (line 87)
f0 = feval(ode,t0,y0,args{:}); % ODE15I sets args{1} to yp0.
Error in ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...
Error in solve_model (line 31)
[t1,y1]=ode45('model',tspan1,y0);
채택된 답변
추가 답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Assembly에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!