24小时热门版块排行榜    

查看: 621  |  回复: 3

你的CEO

铁虫 (小有名气)

[求助] 有关反应动力学推导的matlab程序

请虫友大神帮小弟看看为啥误差这么大,小弟在此谢过了

*****程序行数较多帖子不能完全 显示,只能添加附件了,烦请大神帮看下,小弟在此谢过了!*********
回复此楼
未来为你而来!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

你的CEO

铁虫 (小有名气)

function KineticsEst1_int
% 动力学参数辨识: 用积分法进行反应速率分析得到速率常数k和反应级数n
% Analysis of kinetic rate data by using the integral method
% Reaction of the type -- rate = kCA^order
% order - reaction order
% rate -- reaction rate vector
% YA -- yield vector for reactant A
% T -- vector of reaction time
% N -- number of data points
% k- reacion rate constant

clear all
clc
format short
global Y_exp Y_sim
tspan = [0,21.065];  % t=w/F(MEOH.0),W:催化剂的质量,F(MEOH.0):甲醇的初始进料流率
k0 = [0 0 0 0];  
lb = [0 0 0 0];
ub = [+inf  +inf  +inf  +inf ];
Y0 = [0 0 0 0 ];
Y_exp =[0.2245 0.0086 0.0013 0.0038;
        0.2503 0.0082 0.0009 0.0018;
        0.267  0.0098 0.0013 0.003;
        0.2814 0.0094 0.0015 0.0012;
        ];                                              %同一空速四个不同组成配比下的反应管出口生成物的收率Y

% 使用函数lsqnonlin()进行参数估计
[k,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(@ObjFunc,k0,lb,ub,optimset('TolFun',1.0000e-20),tspan,Y0,Y_exp);      
ci = nlparci(k,residual,jacobian)
%[k,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(@ObjFunc4LNL,k0,lb,ub,optimset('TolFun',1.0000e-6),Y0,Y_exp);      
%ci = nlparci(k,residual,jacobian)
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk1 = %.4f ± %.4f\n',k(1),ci(1,2)-k(1))
fprintf('\tk2 = %.4f ± %.4f\n',k(2),ci(2,2)-k(2))
fprintf('\tk3 = %.4f ± %.4f\n',k(3),ci(3,2)-k(3))
fprintf('\tk4 = %.4f ± %.4f\n',k(4),ci(4,2)-k(4))

fprintf('\tThe sum of the squares is: %.1e\n\n',resnorm)
%拟合效果图(实验与拟合的比较)
%[t4plot Y4plot] = ode45(@KineticsEqs1,[tspan(1)  tspan(end)],Y0,[],k0)
%figure
%plot(tspan,Y_exp(:,1),'bo',t4plot,Y4plot(:,1),'r--');
%legend('Exp','Model')
%xlabel('空时t=w/F_A_0, h')
%ylabel('收率Y_D_M_M')
%title('拟合效果图')
%figure
%plot(tspan,Y_exp(:,2),'bo',t4plot,Y4plot(:,2),'r--');
%legend('Exp','Model')
%xlabel('空时t=w/F_A_0, h')
%ylabel('收率Y_M_F')
%title('拟合效果图')
%figure
%plot(tspan,Y_exp(:,3),'bo',t4plot,Y4plot(:,3),'r--');
%legend('Exp','Model')
%xlabel('空时t=w/F_A_0, h')
%ylabel('收率Y_F_A')
%title('拟合效果图')
%figure
%plot(tspan,Y_exp(:,4),'bo',t4plot,Y4plot(:,4),'r--');
%legend('Exp','Model')
%xlabel('空时t=w/F_A_0, h')
%ylabel('收率Y_D_M_E')
%title('拟合效果图')

function f = ObjFunc(k,tspan,Y0,Y_exp)           % 目标函数

[t,Y_sim1] = ode45(@KineticsEqs1,tspan,Y0,[],k)   
f1 = 1*(Y_sim1(end,1)-Y_exp(1,1));
f2= 10*(Y_sim1(end,2)-Y_exp(1,2));
f3= 10*(Y_sim1(end,3)-Y_exp(1,3));
f4= 10*(Y_sim1(end,4)-Y_exp(1,4));
[t,Y_sim2] = ode45(@KineticsEqs2,tspan,Y0,[],k)  
f5 = 1*(Y_sim2(end,1)-Y_exp(2,1));
f6 =10*(Y_sim2(end,2)-Y_exp(2,2));
f7 =10*(Y_sim2(end,3)-Y_exp(2,3));
f8 =10*(Y_sim2(end,4)-Y_exp(2,4));
[t,Y_sim3] = ode45(@KineticsEqs3,tspan,Y0,[],k)  
f9 = 1*(Y_sim3(end,1)-Y_exp(3,1));
f10 =10*(Y_sim3(end,2)-Y_exp(3,2));
f11 =10*(Y_sim3(end,3)-Y_exp(3,3));
f12 =10*(Y_sim3(end,4)-Y_exp(3,4));
[t,Y_sim4] = ode45(@KineticsEqs4,tspan,Y0,[],k)  
f13 = 1*(Y_sim4(end,1)-Y_exp(4,1));
f14 =10*(Y_sim4(end,2)-Y_exp(4,2));
f15 =10*(Y_sim4(end,3)-Y_exp(4,3));
f16 =10*(Y_sim4(end,4)-Y_exp(4,4));
f=[f1  f2  f3  f4;
   f5  f6  f7  f8;
   f9  f10 f11 f12;
   f13 f14 f15 f16;
   ]
% ------------------------------------------------------------------
function dYdt = KineticsEqs1(t,Y,k)
%p=[0.9 0.5 0.7 0.8 0.6];
%m=[0.6 0.4 0.5 0.3 0.25];     m:氧醇比
%n=[5.4 2 2 2.1 2];    % n:氮醇比
yMEOH1=(1+0.6)/(0.6+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+5.4);
yO21=(0.6-0.5*Y(1)-Y(2)-0.5*Y(3))/(0.6+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+5.4);
a=Y(1)

dYdt=...
[k(1)*(0.9^2)*yMEOH1^0.5*yO21^1.5;
k(2)*(0.9^2)*yMEOH1^1*yO21^1;
k(3)*(0.9^2)*yMEOH1^1*yO21^1;
k(4)*(0.9^2)*yMEOH1^1.0*yO21^1;
];

function dYdt = KineticsEqs2(t,Y,k)
%p=[0.9 0.5 0.7 0.8 0.6];
%m=[0.6 0.4 0.5 0.3 0.25];     m:氧醇比
%n=[5.4 2 2 2.1 2];    % n:氮醇比
yMEOH2=(1+0.4)/(0.6+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+2);
yO22=(0.4-0.5*Y(1)-Y(2)-0.5*Y(3))/(0.4+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+2);
dYdt=...
[k(1)*(0.5^2)*yMEOH2^0.5*yO22^1.5;
k(2)*(0.5^2)*yMEOH2^1*yO22^1;
k(3)*(0.5^2)*yMEOH2^1*yO22^1;
k(4)*(0.5^2)*yMEOH2^1.0*yO22^1;
];

function dYdt = KineticsEqs3(t,Y,k)
%p=[0.9 0.5 0.7 0.8 0.6];
%m=[0.6 0.4 0.5 0.3 0.25];     m:氧醇比
%n=[5.4 2 2 2.1 2];    % n:氮醇比
yMEOH3=(1+0.5)/(0.6+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+2);
yO23=(0.5-0.5*Y(1)-Y(2)-0.5*Y(3))/(0.5+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+2);
dYdt=...
[k(1)*(0.7^2)*yMEOH3^0.5*yO23^1.5;
k(2)*(0.7^2)*yMEOH3^1*yO23^1;
k(3)*(0.7^2)*yMEOH3^1*yO23^1;
k(4)*(0.7^2)*yMEOH3^1.0*yO23^1;
];

function dYdt = KineticsEqs4(t,Y,k)
%p=[0.9 0.5 0.7 0.8 0.6];
%m=[0.6 0.4 0.5 0.3 0.25];     m:氧醇比
%n=[5.4 2 2 2.1 2];    % n:氮醇比
yMEOH4=(1+0.8)/(0.6+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+2.1);
yO24=(0.3-0.5*Y(1)-Y(2)-0.5*Y(3))/(0.3+2.5*Y(1)+2*Y(2)+1.5*Y(3)+2*Y(4)+2.1);
dYdt=...
[k(1)*(0.8^2)*yMEOH4^0.5*yO24^1.5;
k(2)*(0.8^2)*yMEOH4^1*yO24^1;
k(3)*(0.8^2)*yMEOH4^1*yO24^1;
k(4)*(0.8^2)*yMEOH4^1.0*yO24^1;
];
未来为你而来!
2楼2015-09-08 10:43:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

你的CEO

铁虫 (小有名气)

结果:f =
   -0.0066   -0.0231   -0.0040   -0.0217
   -0.0716   -0.0243   -0.0007   -0.0031
    0.0810    0.0129    0.0029   -0.0013
   -0.0387    0.0143    0.0005    0.0160
第一列的结果误差达到30%,偏大了
未来为你而来!
3楼2015-09-08 10:45:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

你的CEO

铁虫 (小有名气)

4楼2015-09-11 07:55:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 你的CEO 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] FileCode能看出啥? +7 要乐观耀哥 2026-08-10 17/850 2026-08-11 10:50 by 要乐观耀哥
[基金申请] filecode +9 documentary 2026-08-10 9/450 2026-08-11 10:08 by wk7465
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +8 家与远方 2026-08-10 13/650 2026-08-11 09:49 by 家与远方
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +6 Tide man 2026-08-10 6/300 2026-08-11 09:45 by tangmnt
[基金申请] 为什么网上很多人说本周 12号出结果 +5 瞬息宇宙 2026-08-10 5/250 2026-08-11 09:29 by 铁帽子农民
[基金申请] 基金中了 +15 laoda193707 2026-08-06 15/750 2026-08-11 00:11 by jiafei2190
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +10 yufeiwaner 2026-08-09 11/550 2026-08-10 18:47 by yufeiwaner
[基金申请] 静等基金结果 +5 gjjjzhong 2026-08-10 16/800 2026-08-10 17:19 by Tide man
[基金申请] 好奇怪的filecode +4 布布和一二 2026-08-08 5/250 2026-08-10 14:20 by 冰心玉壶晴
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 这样的filecode谁见过 +11 布布和一二 2026-08-08 22/1100 2026-08-10 11:10 by wmfsnow
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] filecode与中标关系的预测 +5 布布和一二 2026-08-07 5/250 2026-08-09 16:15 by 袁向阳007
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
信息提示
请填处理意见