| 查看: 452 | 回复: 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]; |
» 猜你喜欢
依托企业入选了国家启明计划青年人才。有无高校可以引进的。
已经有5人回复
博士延得我,科研能力直往上蹿
已经有9人回复
遇见不省心的家人很难过
已经有23人回复
天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人)
已经有6人回复
AI 太可怕了,写基金时,提出想法,直接生成的文字比自己想得深远,还有科学性
已经有6人回复
有院领导为了换新车,用横向课题经费买了俩车
已经有9人回复
酰胺脱乙酰基
已经有13人回复
同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗
已经有4人回复
有时候真觉得大城市人没有县城人甚至个体户幸福
已经有10人回复













回复此楼