| 查看: 461 | 回复: 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]; |
» 猜你喜欢
308求调剂
已经有3人回复
321求调剂
已经有11人回复
一志愿中海洋材料工程专硕330分求调剂
已经有8人回复
330求调剂
已经有4人回复
304求调剂
已经有7人回复
一志愿南京理工大学085701资源与环境302分求调剂
已经有6人回复
南京大学化学376求调剂
已经有3人回复
考研调剂求学校推荐
已经有5人回复
323求调剂
已经有3人回复
317求调剂
已经有12人回复













回复此楼
10