| 查看: 435 | 回复: 0 | |||
zhang66163银虫 (正式写手)
|
[求助]
Matlab 程序求助
|
|
各位大侠,用matlab求拟合动力学数据时,写了以下的程序。结果出现错误是:Too many output arguments. 请教以下如何对程序进行改进。谢谢 clear all clc T = 150 + 273.15; R = 8.31434; a=0.1; b=0.2; c=60; d=0.257; e=-0.691; f=-0.465; g=-0.238; h=1.7; i=2.5; % Arrhenius constant, 1/s k0 = [5.39E+13 9.55 2.04 5.80 3.76E+07 110.39]; % Activation energy, kJ/kmol Ea = [141.3E+3, 49.9E+3, 42.6E+3, 46.3E+3, 79.9E+3, 52.7E+3]; % 初始浓度C0(i), mol/m^3 C0 = [4.96 0 0 0 0 0 0]; tspan = [0 1e4]; [t,C] = ode45(@MassEquations, tspan, C0,[],k0,Ea,R,T) % 绘图 plot(t,C(:,1),'r-',t,C(:,2),'k:',t,C(:,3),'b-.',t,C(:,4),'k--',t,C(:,5),'g*',t,C(:,5),'r-',t,C(:6),'k:',t,C(:7),'b*'); xlabel('Time (s)'); ylabel('Concentration (mol/m^3)'); legend('A','B','C','D','E','F','G') CDmax = max(D(:,4)); % CDmax: the maximum concentration of B, kmol/m^3 yDmax = CDmax/3/C0(1) % yBmax: the maximum yield of B index = find(C(:,4)==CDmax); t_opt = t(index) % t_opt: the optimum batch time, s % ------------------------------------------------------------------ function dCdt = MassEquations(t,C,k0,Ea,R,T) % Reaction rate constants, 1/s k = k0.*exp(-Ea/(R*T)); % Reaction rates, kmoles/m3 s rA = -((a^d)*k(1)+a^e*b*k(2)*c)*C(1); rB = (a^d)*k(1)*C(1)+(a^d)*2*k(5)*(C(5)^f)-(a^g)*b*k(3)*C(3)*c-a^d*k(6)*(C(3)^i); rC = a^d*k(1)*C(1)-a^f*b*k(4)*C(5)*c-a^d*k(5)*(C(5)^f); rD = (a^g)*b*k(3)*C(3)*c; rE = (a^f)*b*k(4)*C(5)*c; rF = (a^e)*b*k(2)*C(1)*c; rG = (a^d)*k(6)*(C(3)^i); % Mass balances dCdt = [rA; rB; rC; rD; rE; rF; rG]; |
» 猜你喜欢
A期刊撤稿
已经有3人回复
职称评审没过,求安慰
已经有34人回复
垃圾破二本职称评审标准
已经有17人回复
回收溶剂求助
已经有6人回复
投稿Elsevier的Neoplasia杂志,到最后选publishing options时页面空白,不能完成投稿
已经有22人回复
申请26博士
已经有5人回复
EST投稿状态问题
已经有7人回复
毕业后当辅导员了,天天各种学生超烦
已经有4人回复
求助文献
已经有3人回复
投稿返修后收到这样的回复,还有希望吗
已经有8人回复













回复此楼