24小时热门版块排行榜    

CyRhmU.jpeg
查看: 5245  |  回复: 26
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

heisekaishui

银虫 (小有名气)


[交流] Matlab同时拟合活化能,反应级数,速率常数

各位,您好!
本人研究的方向是催化化学,最近在评估催化剂效果时想引入动力学的内容,对其中的一些地方有一些疑问。
受月之蓝版主的这个帖子http://muchong.com/bbs/viewthread.php?tid=6425538&target=self&page=1以及其它前辈的启发,对于反应级数以及反应速率常数的拟合有一定的了解。
但是如果我的动力学模型是这种形式:-dC/dt=k0*exp(-E/R*T)*C^m*P^n(只有一个反应物和氢气),其中P与T分别为压力与时间,就是说是一个加氢反应,试验中可以得到不同压力、不同温度下浓度随时间的变化值,应该如何拟合k0,E,m,n。
我的一个想法是先拟合不同压力下的k1(k1=k0*exp(-E/R*T)*P^n)(例如以上述帖子的代码方法),再根据k1=k2*P^n(k2=k0*exp(-E/R*T))拟合出k2和n,此后拟合出不同温度下的k2,根据k2=k0*exp(-E/R*T))拟合出E和k0
但是我觉得这种方法较为复杂,一个matlab里有好几个拟合程序,不知道是否有更简洁的CODE。

PS:不知道版里有没有相似的帖子有类似的CODE可以让我学习一下(我没搜到啊)。谢谢
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

» 抢金币啦!回帖就可以得到:

查看全部散金贴

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

guanwei

银虫 (小有名气)



小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
18楼: Originally posted by whqs8426212 at 2014-08-27 11:33:16
function k1k2k3k4
format long
clear all
clc
tspan = ;
C0 = ; %初值只有一个C0
k0 = ;   %k0 E M n 参数的初值
lb = ;   %上届
%ub = ; %下界

dataTP1=...
    ;      %实验数据1
dataTP2=.. ...

能否帮我指导下,乳酸与正丁醇酯化反应的反应级数和反应速率常数
数据如代码

function KineticsEst1_int11
% 动力学参数辨识: 用积分法进行反应速率分析得到速率常数k和反应级数n
% Analysis of kinetic rate data by using the integral method
%
%   Author: HUANG Huajiang
%   Copyright 2003 UNILAB Research Center,
%   East China University of Science and Technology, Shanghai, PRC
%   $Revision: 1.0 $  $Date: 2003/07/27 $
%
% Reaction of the type -- rate = kCA^order
% order - reaction order
% rate -- reaction rate vector
% CA -- concentration vector for reactant A
% T -- vector of reaction time
% N -- number of data points
% k- reacion rate constant

clear all
clc

t=[0 20 40 100 270 450 750 1410 1590 1810];%时间
rA=[0.0004765 0.0004507  0.0004250  0.0003477 0.001549 0.0001117 0.0000396 0.0000018  0.0000038 0.0000062];%反应速率
Pa=[0.042729739 0.041609737 0.040801805 0.038526838 0.033412812 0.030519156 0.028695168 0.02792077 0.027918742 0.0278887981]; %乳酸的摩尔分率
Pb=[0.123670897  0.122550895  0.121742963 0.119467996 0.11435397  0.111460314  0.109636326  0.108861928 0.1088599 0.108829956];%正T醇的摩尔分率
Pc=[0.833599364  0.834719366 0.835527299 0.837802265 0.842916291 0.845809947 0.847633933 0.848408333 0.848410361 0.848440305];%水的摩尔分率
Pd=[0.001120002 0.001927934 0.004202901 0.009316927 0.012210583 0.014034571 0.014808969 0.014810996  0.014840941  0.014850941];%乳酸正丁酯的摩尔分率
%线性拟合
P=2.337132745*Pa.*Pb-0.564655417*Pc.*Pd;y=rA';X=[ones(size(y))  P'];

b=X\y;k=b(2);     
%非线性拟合
beta0=[k]
[beta,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,beta0,[],[],[],rA,Pa,Pb,Pc,Pd)  


%拟合效果图(实验与拟合的比较)
figure(1);plot(t,rA,'.')
r_poly=beta(1)*(2.337132745*Pa.*Pb-0.564655417*Pc.*Pd);
hold on;plot(t, r_poly,'g')
figure(2);plot(Pb,rA,'.'); hold on;plot(Pb, r_poly,'g')

%-----------------------------------------------------------------------------一
Function f=ObjFunc(beta,rA,Pa,Pb,Pc,Pd)
f=rA-beta(1)*(2.337132745*Pa.*Pb-0.564655417*Pc.*Pd);


这个代码我照着书上弄的有错误
23楼2014-09-05 17:23:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 27 个回答

heisekaishui

银虫 (小有名气)


纯粹的初学者,如果叙述有什么问题希望大家指出。
2楼2014-08-25 17:31:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

tangjiguo

木虫 (职业作家)



heisekaishui(金币+5): 谢谢参与
得金币了,说声谢谢!
5楼2014-08-25 17:54:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

heisekaishui

银虫 (小有名气)


同学们金币诚可贵,回答更重要啊。
9楼2014-08-25 18:17:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
简单回复
coal-xust13楼
2014-08-26 15:56   回复  
普通表情 高级回复(可上传附件)
信息提示
请填处理意见