I need to multiply 2 vectors x(:,1) and x(:,4) that are the solutions of an ode45 I previously used, but I get this error. I understand the reason but I can't find a solution to make it work… Below is my script:
clearclcclose all%%%dedomena
AU=15000; %kJ/(hm^2)
k0=5E+10; %1/h
ER=9020; %K
dh1=-92.820; %%%kJ/kmol
dh2=-424.2;dh3=-241.0;cp1=125; %%%kJ/(kmol*K)
cp2=250;cp3=75;d1=14.384; %%%kJ/m^3
d2=13.668;d3=55.382;Tref=298; %Koptions = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5 1e-5]);[t,x]=ode45(@rigid1,[0 120],[10 0 20 333],options);subplot(3,2,1)plot(t,x(:,1),'-',t,x(:,2),'-.',t,x(:,3),'.')title('Molarities')V=x(:,1)/d1+x(:,2)/d2+x(:,3)/d3;subplot(3,2,2)plot(V,'g-')title('Volume')CA=x(:,1)/V(:,1);subplot(3,2,3)plot(CA(:,1),'b.')title('C_A')r=(k0)*exp(-ER/x(:,4))*x(:,1);subplot(3,2,5)plot(r,'b-')title('r')subplot(3,2,6)plot(t,x(:,4),'r-.')title('Temperature')H=x(:,1)*(dh1+cp1*(x(:,4)-Tref))+x(:,2)*(dh2+cp2*(x(:,4)-Tref))+x(:,3)*(dh3+cp3*(x(:,4)-Tref));subplot(2,2,4)plot(H,'r-')title('Enthalpy H')
And the function w/ the DEs:
function dx=rigid(t,x)k0= 5e+10;ER=9020;dh1=-92.820; %%%kJ/kmoldh2=-424.2;dh3=-241.0;cp1=125; %%%kJ/(kmol*K)cp2=250;cp3=75;Tref=298; %Kdx=zeros(4,1);dx(1)=-k0*exp(-ER/x(4))*x(1);dx(2)=k0*exp(-ER/x(4))*x(1);dx(3)=-k0*exp(-ER/x(4))*x(1);dx(4)=k0*exp(-ER/x(4))*x(1)*(-dh1+dh2-dh3+cp1-cp2+cp3+x(4)*(cp1+cp2+cp3))/(-cp1*x(1)-cp2*x(2)-cp3*x(3));
The error shows in the main script in H. r doesn't seem to give me a result either though…
Any suggestions are welcome. Thanks 🙂
Best Answer