| 27 | 1/1 | 返回列表 |
| 查看: 5513 | 回復(fù): 26 | |||
[交流]
Matlab同時擬合活化能,反應(yīng)級數(shù),速率常數(shù)
|
|||
|
各位,您好! 本人研究的方向是催化化學(xué),最近在評估催化劑效果時想引入動力學(xué)的內(nèi)容,對其中的一些地方有一些疑問。 受月之藍版主的這個帖子http://www.gaoyang168.com/bbs/viewthread.php?tid=6425538&target=self&page=1以及其它前輩的啟發(fā),對于反應(yīng)級數(shù)以及反應(yīng)速率常數(shù)的擬合有一定的了解。 但是如果我的動力學(xué)模型是這種形式:-dC/dt=k0*exp(-E/R*T)*C^m*P^n(只有一個反應(yīng)物和氫氣),其中P與T分別為壓力與時間,就是說是一個加氫反應(yīng),試驗中可以得到不同壓力、不同溫度下濃度隨時間的變化值,應(yīng)該如何擬合k0,E,m,n。 我的一個想法是先擬合不同壓力下的k1(k1=k0*exp(-E/R*T)*P^n)(例如以上述帖子的代碼方法),再根據(jù)k1=k2*P^n(k2=k0*exp(-E/R*T))擬合出k2和n,此后擬合出不同溫度下的k2,根據(jù)k2=k0*exp(-E/R*T))擬合出E和k0 但是我覺得這種方法較為復(fù)雜,一個matlab里有好幾個擬合程序,不知道是否有更簡潔的CODE。 PS:不知道版里有沒有相似的帖子有類似的CODE可以讓我學(xué)習(xí)一下(我沒搜到啊 )。謝謝 |
» 搶金幣啦!回帖就可以得到:
+3/188
+1/80
+1/53
+1/51
+1/41
+2/40
+1/37
+2/34
+1/21
+2/12
+1/10
+1/10
+1/8
+1/8
+1/7
+1/5
+1/4
+1/3
+1/2
+1/2
|
function k1k2k3k4 format long clear all clc tspan = [ 0.6 1.2 2 3 ]; C0 = [2 20 200]; %初值只有一個C0 k0 = [0 0 0 0]; %k0 E M n 參數(shù)的初值 lb = [0 0 0 0]; %上屆 %ub = [100 10000 1000 1000 ]; %下界 dataTP1=... [ %t C XX XX XXX XX XXX X XX X ]; %實驗數(shù)據(jù)1 dataTP2=... [ %t C XX XX XXX XX XXX X XX X ]; %實驗數(shù)據(jù)2 dataTP3=... [ %t C XX XX XXX XX XXX X XX X ]; %實驗數(shù)據(jù)3 [k,resnorm,residual,exitflag,output,lambda,jacobian] = ... lsqnonlin(@ObjFunc,k0,lb,[],options,tspan,C0,dataTP1,dataTP2,dataTP3); ci = nlparci(k,residual,jacobian); fprintf('\n\n使用函數(shù)lsqnonlin()估計得到的參數(shù)值為:\n') fprintf('\tk0 = %.9f \n',k(1)) fprintf('\tE = %.9f \n',k(2)) fprintf('\tm = %.9f \n',K(3)) fprintf('\tn = %.9f \n',k(4)) fprintf(' The sum of the squares is: %.9e\n\n',resnorm) %----------------------------------------------------- function f = ObjFunc(k,tspan,C0,dataTP1,dataTP2,dataTP3) % 目標(biāo)函數(shù) T1=?;P1=?; [t XsimTP1] = ode23s(@KineticsEqs,tspan,C0(1),[],k,T1,P1); T2=? ;P2=?; [t XsimTP2] = ode23s(@KineticsEqs,tspan,C0(2),[],k,T2,P2); T3=?;P3=?; [t XsimTP3] = ode23s(@KineticsEqs,tspan,C0(3),[],k,T3,P3); f = [(XsimTP1(:,1)-dataTP1(:,2)) (XsimTP2(:,1)-dataTP2(:,2)) (XsimTP3(:,1)-dataTP3(:,2))]; %---------------------------------------------------------- function dCdt = KineticsEqs(t,C,k,T,P) % ODE模型方程 R=8; dC=-k(1)*exp(-k(2)/R*T)*(C^k(3))*(P^k(4)); %k(1)=k0,k(2)=E,k(3)=m;K(4)=n dCdt = [dC]; |
|
數(shù)據(jù)造了三組,對于看四個參數(shù)背景不了解,所以初值也選的不合理,以至于運行結(jié)果比較糟糕 |
|
function KineticsEst1_int11 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];%反應(yīng)速率 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); 我用的這個程序擬合反應(yīng)速率常數(shù)為什么有問題的呢 |
|
能否幫我指導(dǎo)下,乳酸與正丁醇酯化反應(yīng)的反應(yīng)級數(shù)和反應(yīng)速率常數(shù) 數(shù)據(jù)如代碼 function KineticsEst1_int11 % 動力學(xué)參數(shù)辨識: 用積分法進行反應(yīng)速率分析得到速率常數(shù)k和反應(yīng)級數(shù)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];%反應(yīng)速率 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); 這個代碼我照著書上弄的有錯誤 |



| 27 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 材料與化工272求調(diào)劑 +16 | 阿斯蒂芬2004 2026-03-28 | 16/800 |
|
|---|---|---|---|---|
|
[考研] 材料科學(xué)與工程求調(diào)劑 +6 | 深V宿舍吧 2026-03-29 | 6/300 |
|
|
[考研] 材料專碩調(diào)劑 +5 | 椰椰。 2026-03-29 | 5/250 |
|
|
[考研] 283求調(diào)劑(080500) +7 | A child 2026-03-27 | 7/350 |
|
|
[考研] 考研調(diào)劑 +7 | 小蠟新筆 2026-03-29 | 7/350 |
|
|
[基金申請] 面上5B能上會嗎? +4 | redcom 2026-03-29 | 4/200 |
|
|
[考研] 279求調(diào)劑 +4 | 蝶舞輕繞 2026-03-29 | 4/200 |
|
|
[考研] 305求調(diào)劑 +8 | RuiFairyrui 2026-03-28 | 8/400 |
|
|
[考研] 數(shù)一英一271專碩(085401)求調(diào)劑,可跨 +7 | 前行必有光 2026-03-28 | 8/400 |
|
|
[考研]
|
y7czhao 2026-03-26 | 10/500 |
|
|
[考研] 0703一志愿9,初試成績:338,四六級已過,有科研經(jīng)歷,求調(diào)劑! +4 | Zuhui0306 2026-03-25 | 4/200 |
|
|
[考研] 08開頭275求調(diào)劑 +4 | 拉誰不重要 2026-03-26 | 4/200 |
|
|
[考研] 一志愿華東理工大學(xué)081700,初試分?jǐn)?shù)271 +6 | kotoko_ik 2026-03-23 | 7/350 |
|
|
[考研] 324求調(diào)劑 +8 | hanamiko 2026-03-26 | 10/500 |
|
|
[考研] 求調(diào)劑 一志愿 本科 北科大 化學(xué) 343 +6 | 13831862839 2026-03-24 | 7/350 |
|
|
[考研] 0703化學(xué)求調(diào)劑 +3 | 丹青奶蓋 2026-03-26 | 5/250 |
|
|
[考研] 生物學(xué) 296 求調(diào)劑 +4 | 朵朵- 2026-03-26 | 6/300 |
|
|
[考研] 334分 一志愿武理-080500 材料求調(diào)劑 +4 | 李李不服輸 2026-03-25 | 4/200 |
|
|
[考研] 340求調(diào)劑 +5 | 話梅糖111 2026-03-24 | 5/250 |
|
|
[考研] 335求調(diào)劑 +4 | yuyu宇 2026-03-23 | 5/250 |
|