24小时热门版块排行榜    

查看: 561  |  回复: 1
【悬赏金币】回答本帖问题,作者你的CEO将赠送您 20 个金币

你的CEO

铁虫 (小有名气)

[求助] 关于动力学参数拟合的matlab程序的一些问题(懂动力学拟合的大神进)

各位大神,小弟正在编写matlab程序拟合动力学参数,在程序调试的过程中发现,当确定反应级数后,k0的初值无论怎么改变matlab算得的结果不变,这是怎么回事,不是说matlab程序是以最小二乘法计算的,属于局部最优,对于初值的选取很重要,因此一般初值变化结果会跟着变化的呀,可我在调试程序时,不论怎么改变k0的初值都不变,这是怎么回事呢,求大神告知,小弟感激不尽,金币送上!!!
回复此楼
未来为你而来!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

你的CEO

铁虫 (小有名气)

clear all
clc
format short
global y_exp y_sim
lspan = [0,0.0466];  % t=w/F(MEOH.0),W:催化剂的质量,F(MEOH.0):甲醇的初始进料流率
k0 = [2000 100 20 1];  
lb = [0 0 0 0];
ub = [+inf  +inf  +inf  +inf ];
y0 = [0 0 0 0 ];

y_exp =[0.0288         0.0014         0.0005         0.0002;
        0.0264         0.0015         0.0004         0.0004;
        0.0159         0.0006         0.0002         0.0003]; %原数据 0.0109(更改) 0.0006         0.0002         0.0003


% 使用函数lsqnonlin()进行参数估计
[k,resnorm,residual,exitflag,output,lambda,jacobian] = lsqnonlin(@ObjFunc,k0,lb,ub,optimset('TolFun',1.0000e-20),lspan,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)


function f = ObjFunc(k,lspan,y0,y_exp)           % 目标函数


[t,y_sim2] = ode45(@KineticsEqs2,lspan,y0,[],k)   
f5 = 1*(y_sim2(end,1)-y_exp(1,1));
f6= 1*(y_sim2(end,2)-y_exp(1,2));
f7= 1*(y_sim2(end,3)-y_exp(1,3));
f8= 1*(y_sim2(end,4)-y_exp(1,4));




[t,y_sim4] = ode45(@KineticsEqs4,lspan,y0,[],k)  
f13 = 1*(y_sim4(end,1)-y_exp(2,1));
f14 =1*(y_sim4(end,2)-y_exp(2,2));
f15 =1*(y_sim4(end,3)-y_exp(2,3));
f16 =1*(y_sim4(end,4)-y_exp(2,4));

[t,y_sim5] = ode45(@KineticsEqs5,lspan,y0,[],k)  
f17 = 1*(y_sim5(end,1)-y_exp(3,1));
f18 =1*(y_sim5(end,2)-y_exp(3,2));
f19 =1*(y_sim5(end,3)-y_exp(3,3));
f20 =1*(y_sim5(end,4)-y_exp(3,4));


f=[f5  f6  f7  f8;
   f13 f14 f15 f16;
   f17 f18 f19 f20]
% ------------------------------------------------------------------


function dydl = KineticsEqs2(l,y,k)

%P=[0.6 0.8 0.5 0.7 0.9];P为总压
%nT0=[0.154284 0.161404 0.161404 0.166152 0.332303 ];    % n:进料总摩尔数
%yO20=[0.0769 0.0882 0.1176 0.1429 0.0857 ];   %进料O2组成
%yMEOH0=[0.3077 0.2941 0.2941 0.2857 0.1429 ]; %进料甲醇(MEOH)组成
%A*Rho=0.05832
yO2=0.0882*(1+0.5*y(1)-0.5*y(3))-(0.5*y(1)+y(2)+0.5*y(3));
yMEOH=0.2941*(1+0.5*y(1)-0.5*y(3))-(3*y(1)+2*y(2)+y(3)+2*y(4));
% yO2=yO20*(1+0.5*y(1)-0.5*y(3))-(0.5*y(1)+y(2)+0.5*y(3));
% yMEOH=yMEOH0*(1+0.5*y(1)-0.5*y(3))-(3*y(1)+2*y(2)+y(3)+2*y(4));
dydl=...
[0.05832*(2+y(1)-y(3))/4*0.161404*((2+y(1))*k(1)*0.8^2.5*yMEOH^2*yO2^0.5-y(1)*k(3)*0.8^2*yMEOH*yO2);
0.05832*(2+y(1)-y(3))/4*0.161404*(2*k(2)*0.8^2*yMEOH^1*yO2^1+y(2)*k(1)*0.8^2.5*yMEOH^2*yO2^0.5-y(2)*k(3)*0.8^2*yMEOH*yO2);
0.05832*(2+y(1)-y(3))/4*0.161404*((2-y(3))*k(3)*0.8^2*yMEOH*yO2+y(3)*k(1)*0.8^2.5*yMEOH^2*yO2^0.5);
0.05832*(2+y(1)-y(3))/4*0.161404*(2*k(4)*0.8^1*yMEOH+y(4)*k(1)*0.8^2.5*yMEOH^2*yO2^0.5-y(4)*k(3)*0.8^2*yMEOH*yO2);
];
% dydl=...
%     [A*Rho(2+y(1)-y(3))/4*nT0*((2+y(1))*k(1)*yMEOH^1*yO2^1-y(1)*k(3)*yMEOH*yO2);
%      A*Rho(2+y(1)-y(3))/4*nT0*(2*k(2)*yMEOH*yO2+y(2)*k(1)*yMEOH^1*yO2^1-y(2)*k(3)*yMEOH*yO2);
%      A*Rho(2+y(1)-y(3))/4*nT0*((2-y(3))*k(3)*yMEOH*yO2+y(3)*k(1)*yMEOH^1*yO2^1);
%      A*Rho(2+y(1)-y(3))/4*nT0*(2*k(4)*yMEOH+y(4)*k(1)*yMEOH^1*yO2^1-y(4)*k(3)*yMEOH*yO2);



function dydl = KineticsEqs4(l,y,k)

%P=[0.6 0.8 0.5 0.7 0.9];P为总压
%nT0=[0.154284 0.161404 0.161404 0.166152 0.332303 ];    % n:进料总摩尔数
%yO20=[0.0769 0.0882 0.1176 0.1429 0.0857 ];   %进料O2组成
%yMEOH0=[0.3077 0.2941 0.2941 0.2857 0.1429 ]; %进料甲醇(MEOH)组成
%A*Rho=0.05832
yO2=0.1429*(1+0.5*y(1)-0.5*y(3))-(0.5*y(1)+y(2)+0.5*y(3));
yMEOH=0.2857*(1+0.5*y(1)-0.5*y(3))-(3*y(1)+2*y(2)+y(3)+2*y(4));
% yO2=yO20*(1+0.5*y(1)-0.5*y(3))-(0.5*y(1)+y(2)+0.5*y(3));
% yMEOH=yMEOH0*(1+0.5*y(1)-0.5*y(3))-(3*y(1)+2*y(2)+y(3)+2*y(4));
dydl=...
[0.05832*(2+y(1)-y(3))/4*0.166152*((2+y(1))*k(1)*0.7^2.5*yMEOH^2*yO2^0.5-y(1)*k(3)*0.7^2*yMEOH*yO2);
0.05832*(2+y(1)-y(3))/4*0.166152*(2*k(2)*0.7^2*yMEOH^1*yO2^1+y(2)*k(1)*0.7^2.5*yMEOH^2*yO2^0.5-y(2)*k(3)*0.7^2*yMEOH*yO2);
0.05832*(2+y(1)-y(3))/4*0.166152*((2-y(3))*k(3)*0.7^2*yMEOH*yO2+y(3)*k(1)*0.7^2.5*yMEOH^2*yO2^0.5);
0.05832*(2+y(1)-y(3))/4*0.166152*(2*k(4)*0.7^1*yMEOH+y(4)*k(1)*0.7^2.5*yMEOH^2*yO2^0.5-y(4)*k(3)*0.7^2*yMEOH*yO2);
];
% dydl=...
%     [A*Rho(2+y(1)-y(3))/4*nT0*((2+y(1))*k(1)*P^2*yMEOH^1*yO2^1-y(1)*k(3)*P^2*yMEOH*yO2);
%      A*Rho(2+y(1)-y(3))/4*nT0*(2*k(2)*P^2*yMEOH*yO2+y(2)*k(1)*P^2*yMEOH^1*yO2^1-y(2)*k(3)*P^2*yMEOH*yO2);
%      A*Rho(2+y(1)-y(3))/4*nT0*((2-y(3))*k(3)*P^2*yMEOH*yO2+y(3)*k(1)*P^2*yMEOH^1*yO2^1);
%      A*Rho(2+y(1)-y(3))/4*nT0*(2*k(4)*P^2*yMEOH+y(4)*k(1)*P^2*yMEOH^1*yO2^1-y(4)*k(3)*P^2*yMEOH*yO2);

function dydl = KineticsEqs5(l,y,k)

%P=[0.6 0.8 0.5 0.7 0.9];P为总压
%nT0=[0.154284 0.161404 0.161404 0.166152 0.332303 ];    % n:进料总摩尔数
%yO20=[0.0769 0.0882 0.1176 0.1429 0.0857 ];   %进料O2组成
%yMEOH0=[0.3077 0.2941 0.2941 0.2857 0.1429 ]; %进料甲醇(MEOH)组成
%A*Rho=0.05832
yO2=0.0857*(1+0.5*y(1)-0.5*y(3))-(0.5*y(1)+y(2)+0.5*y(3));
yMEOH=0.1429*(1+0.5*y(1)-0.5*y(3))-(3*y(1)+2*y(2)+y(3)+2*y(4));
% yO2=yO20*(1+0.5*y(1)-0.5*y(3))-(0.5*y(1)+y(2)+0.5*y(3));
% yMEOH=yMEOH0*(1+0.5*y(1)-0.5*y(3))-(3*y(1)+2*y(2)+y(3)+2*y(4));
dydl=...
[0.05832*(2+y(1)-y(3))/4*0.332303*((2+y(1))*k(1)*0.9^2.5*yMEOH^2*yO2^0.5-y(1)*k(3)*0.9^2*yMEOH*yO2);
0.05832*(2+y(1)-y(3))/4*0.332303*(2*k(2)*0.9^2*yMEOH^1*yO2^1+y(2)*k(1)*0.9^2.5*yMEOH^2*yO2^0.5-y(2)*k(3)*0.9^2*yMEOH*yO2);
0.05832*(2+y(1)-y(3))/4*0.332303*((2-y(3))*k(3)*0.9^2*yMEOH*yO2+y(3)*k(1)*0.9^2.5*yMEOH^2*yO2^0.5);
0.05832*(2+y(1)-y(3))/4*0.332303*(2*k(4)*0.9^1*yMEOH+y(4)*k(1)*0.9^2.5*yMEOH^2*yO2^0.5-y(4)*k(3)*0.9^2*yMEOH*yO2);
];
% dydl=...
%     [A*Rho(2+y(1)-y(3))/4*nT0*((2+y(1))*k(1)*P^2*yMEOH^1*yO2^1-y(1)*k(3)*P^2*yMEOH*yO2);
%      A*Rho(2+y(1)-y(3))/4*nT0*(2*k(2)*P^2*yMEOH*yO2+y(2)*k(1)*P^2*yMEOH^1*yO2^1-y(2)*k(3)*P^2*yMEOH*yO2);
%      A*Rho(2+y(1)-y(3))/4*nT0*((2-y(3))*k(3)*P^2*yMEOH*yO2+y(3)*k(1)*P^2*yMEOH^1*yO2^1);
%      A*Rho(2+y(1)-y(3))/4*nT0*(2*k(4)*P^2*yMEOH+y(4)*k(1)*P^2*yMEOH^1*yO2^1-y(4)*k(3)*P^2*yMEOH*yO2);
未来为你而来!
2楼2015-10-26 09:10:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 你的CEO 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 博士毕业高校和就业的相关问题 +6 SCITOPPP 2024-06-14 9/450 2024-06-17 07:42 by 晓目崇
[找工作] 初始合伙人来啦!(生物试剂耗材标准品) +9 欢快的小科研人 2024-06-15 15/750 2024-06-17 06:30 by svagrant
[考博] 这个博士要读吗 +7 Sea Breeze 2024-06-16 9/450 2024-06-17 06:17 by QHJ100100
[找工作] 江西双非一本和四川双一流高校如何选择? 5+8 寒山敲钟 2024-06-12 25/1250 2024-06-16 22:05 by zhaojiang427
[教师之家] 饶议:什么制度能保障大学普通教师不用为领导拎包,不用看领导脸色 +9 zju2000 2024-06-12 15/750 2024-06-16 20:45 by 北溟鱼1318
[考博] 2025考博 +6 自强不息a?a 2024-06-15 8/400 2024-06-16 19:39 by 鱼翔浅底1
[找工作] 杭电、天津科技、青农和宁波工程学院如何选? +11 味道很好啊 2024-06-13 21/1050 2024-06-16 13:57 by wanglongzh
[基金申请] 博后基金,博管会会提前知道消息吗? +4 yuyiang 2024-06-13 4/200 2024-06-16 11:40 by yangyuzhong4
[基金申请] 博士后创新人才支持计划公示 +9 aishida144 2024-06-14 15/750 2024-06-16 09:52 by msjy
[基金申请] 博后面上今天有bug可以看到是否资助? +20 lyfbangong 2024-06-12 31/1550 2024-06-15 21:18 by since—2010
[基金申请] 关于博后基金的bug问题 +6 lxr1991 2024-06-14 9/450 2024-06-15 21:17 by since—2010
[考博] 上海交大招收材料化学方向科研助理/“申请考核”博士(请勿回复帖子或站内投条) +3 灵梦and紫 2024-06-12 4/200 2024-06-15 20:58 by 1822836277
[基金申请] BO4的YQ答辩通知发布了吗? +6 博学笃行 2024-06-11 6/300 2024-06-15 16:04 by 悲催科研狗
[基金申请] 博后基金,以往的结果点不开,怎么回事呢?最后一次机会了,两次都没中前面。 +7 kyukitu 2024-06-14 13/650 2024-06-15 06:46 by 我是王小帅
[论文投稿] 投了一篇4区的SCI,审稿人一个拒稿,一个小修,编辑给了大修。 +9 安稳22123 2024-06-13 10/500 2024-06-14 23:45 by jurkat.1640
[论文投稿] 审稿问题:为什么荧光激发波长和紫外吸收波长差的大? 10+4 sdawege 2024-06-14 8/400 2024-06-14 22:39 by 东北读书人
[考研] 物理化学一对一辅导 +3 林大diao 2024-06-12 5/250 2024-06-14 20:57 by 林大diao
[基金申请] 工材E10口函评结束了吗 10+3 我1的飞翔 2024-06-13 5/250 2024-06-14 06:35 by nono2009
[硕博家园] 科研求助 +5 杲www 2024-06-12 6/300 2024-06-13 16:16 by 姓李名明
[基金申请] 博后特助这周出结果吗?往年都是啥时候啊? +13 jsqy 2024-06-12 17/850 2024-06-12 19:55 by Lynn212
信息提示
请填处理意见