24小时热门版块排行榜    

查看: 894  |  回复: 0

1064126551

新虫 (初入文坛)

[求助] 动力学参数拟合

原料是:甲醇、CO、氧气。主反应:甲醇、CO、氧气合成DMC,副反应:CO和氧气合成CO2
任务:拟合出生成DMC和CO2的动力学参数(指前因子、活化能、级数)
动力学方程为dy1/dw=f(y1、y2)和dy2/dw=f(y1、y2),具体形式见附图。
整理后的实验数据:N0(原料初始的摩尔数)、P(压力)、t(温度)、x10(甲醇初始的摩尔分数)、x20(CO初始的摩尔分数)、x30(O2初始的摩尔分数)、y1(DMC产物的摩尔分数)、y2(O2产物的摩尔分数)、W=0.375(催化剂的质量)。(每次的实验条件不同,原料经过固定床上催化剂的质量0.375g,反应后得到y1和y2)
目标函数:(y1拟合-y1)的平方和+(y2拟合-y2)的平方和 最小
下面是自己编的代码:出现的问题,觉得是:第一:wspan有问题,实验条件不同,但是积分限是相同的。我不知道如何解决了
                                        第二:自己函数调用上,ode45调用的函数KineticsEqs(w,C,k,yexp),C,yexp怎么表示?
希望大神帮忙,改一下代码,感激不尽
我的代码如下:
function k1k2k3k4k5k6k7k8k9
format long
clear all
clc
wspan=[0 0.375];%每次实验条件的积分限,方程为dy/dw, w=0.375
y0=[0 0];%实验每次的初值,即yDMC=0,yco2=0
k0=[8e3 2e4 -0.8 1  1  4e5 3e4 0.52 0.63];%参考文献上给的值
lb=[0 0 -2 -2 -2 0 0 -2 -2];%下限
ub=[+inf +inf 3 3 3 +inf +inf 3 3];%上限
data=...
    [
    0.3091    0.1000  413.1500    0.6240    0.2500    0.1270    0.0150    0.0180
    0.3260    0.1000  413.1500    0.5000    0.3340    0.1660    0.0160    0.0200
    0.2796    0.1000  413.3500    0.5310    0.3490    0.1210    0.0150    0.0180
    0.2856    0.1000  416.5500    0.5710    0.2870    0.1420    0.0170    0.0330
    0.2801    0.1000  423.1500    0.5300    0.3480    0.1220    0.0200    0.0400
    0.3260    0.1000  423.2500    0.5000    0.3340    0.1660    0.0210    0.0410
    0.3091    0.1000  423.3500    0.6240    0.2500    0.1270    0.0210    0.0420
    0.2853    0.1000  424.3500    0.5720    0.2860    0.1420    0.0210    0.0420
    0.3190    0.1000  426.8500    0.5110    0.3450    0.1440    0.0210    0.0450
    0.2853    0.1000  432.3500    0.5720    0.2860    0.1420    0.0250    0.0540
    0.3962    0.1000  433.1500    0.5240    0.3520    0.1240    0.0230    0.0530
    0.3190    0.1000  434.4500    0.5110    0.3450    0.1440    0.0250    0.0540
    0.3085    0.2000  413.3500    0.6250    0.2500    0.1250    0.0180    0.0310
    0.2793    0.2000  414.2500    0.5310    0.3490    0.1200    0.0180    0.0320
    0.2804    0.2000  422.8500    0.5290    0.3480    0.1230    0.0250    0.0500
    0.2856    0.2000  423.4500    0.5710    0.2860    0.1430    0.0260    0.0510
    0.3083    0.2000  423.9500    0.6250    0.2500    0.1240    0.0260    0.0500
    0.3085    0.2000  432.8500    0.6250    0.2500    0.1250    0.0300    0.0590
    0.2788    0.2000  434.3500    0.5320    0.3500    0.1180    0.0300    0.0580
    0.2368    0.3000  411.1500    0.5010    0.3340    0.1650    0.0230    0.0430
    0.2600    0.3000  423.4500    0.5700    0.2870    0.1420    0.0280    0.0510
    0.2597    0.3000  433.1500    0.5710    0.2880    0.1410    0.0360    0.0630
    0.3207    0.3000  433.3500    0.5550    0.3340    0.1110    0.0340    0.0610
    0.2344    0.3000  435.4500    0.5060    0.3370    0.1570    0.0380    0.0660
    ];
   % N0        P        T        x10(1初始量)x20      x30       y1        y2    最后采用ode45拟合结果y(1)、y(2).目标函数为:(y(1)-y1)的平方和+(y(2)-y2)的平方和最小
yexp=data(:,1:6);
[k,resnorm,residual,exitflag,output,lambda,jacobian]=...
    lsqnonlin(@ObjFunc,k0,lb,ub,wspan,y0,yexp);  
ci=nlparci(k,redidual,jacobian);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\tk1 = %.9f ± %.9f\n',k(1),ci(1,2)-k(1))
fprintf('\tk2 = %.9f ± %.9f\n',k(2),ci(2,2)-k(2))
fprintf('\tk3 = %.9f ± %.9f\n',k(3),ci(3,2)-k(3))
fprintf('\tk1 = %.9f ± %.9f\n',k(4),ci(4,2)-k(1))
fprintf('\tk2 = %.9f ± %.9f\n',k(5),ci(5,2)-k(2))
fprintf('\tk3 = %.9f ± %.9f\n',k(6),ci(6,2)-k(3))
fprintf('\tk1 = %.9f ± %.9f\n',k(7),ci(7,2)-k(1))
fprintf('\tk2 = %.9f ± %.9f\n',k(8),ci(8,2)-k(2))
  fprintf('\tk2 = %.9f ± %.9f\n',k(9),ci(9,2)-k(2))
fprintf('  The sum of the squares is: %.9e\n\n',resnorm)
    function f =ObjFunc(k,tspan,x0,yexp)
        [w Xsim]=ode45(@KineticsEqs,tspan,x0,[],k);
        Xsim1=Xsim(:,1);
        Xsim2=Xsim(:,2);
        ysim(:,1)=Xsim1(2:end);
        ysim(:,2)=Xsim1(2:end);
        size(ysim(:,1));
        size(ysim(:,2));
        size(yexp(:,7));
        size(yexp(:,8));
f=[(ysim(:,1)-yexp(:,7));(ysim(:,2)-yexp(:,8))];
function  dCdw=KineticsEqs(w,C,k,yexp)
        N0=yexp(:,1);
        P=yexp(:,2);
        T=yexp(:,3);
        x(1)=yexp(:,4);
        x(2)=yexp(:,5);
        x(3)=yexp(:,6);
r1=k(1)*exp(-k(2)./T).*P.^(k(3)+k(4)+k(5))*...
    (C(1)*(1.5*x(1)-2)+0.5*x(5)*x(1))^(k(3))*...
    (C(1)*(1.5*x(2)-1)+x(5)*(0.5*x(2)-1)+x(2))^(k(4))*...
    (C(1)*(1.5*x(3)-0.5)+x(5)*(0.3*x(3)-0.5)+x(3))^k(5);
r2=k(6)*exp(-k(7)./T).*P.^(k(8)+k(9))*...
    (C(1)*(1.5*x(2)-1)+C(2)*(0.5*x(2)-1)+x(2))^k(8)*...
    (C(1)*(1.5*x(3)-0.5)+C(2)*(0.3*x(3)-0.5)+x(3))^k(9);
dy1dw=(1+1.5*C(1)+0.5*C(2))*(r1*(1.5*C(1)+1)+0.5*C(2)*r2)./N0;
dy2dw=(1+1.5*C(1)+0.5*C(2))*(r2*(1+0.5*C(1))+1.5*r1*C(2))./N0;
dCdw=[dy1dw;dy2dw];

动力学参数拟合
r1和r2的表达式.jpg


动力学参数拟合-1
图1.jpg
回复此楼

» 猜你喜欢

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

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 1064126551 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿华中农业071010,总分320求调剂 +3 困困困困坤坤 2026-03-20 3/150 2026-03-20 20:38 by 学员8dgXkO
[考研] 289求调剂 +6 怀瑾握瑜l 2026-03-20 6/300 2026-03-20 20:30 by 学员8dgXkO
[考研] 材料与化工专硕调剂 +7 heming3743 2026-03-16 7/350 2026-03-20 19:31 by zhukairuo
[考研] 265求调剂 +8 梁梁校校 2026-03-17 8/400 2026-03-20 14:40 by 27道科特
[考博] 申博26年 +3 八6八68 2026-03-19 3/150 2026-03-19 19:43 by nxgogo
[考研] 288求调剂,一志愿华南理工大学071005 +5 ioodiiij 2026-03-17 5/250 2026-03-19 18:22 by zcl123
[考研] 化学求调剂 +3 临泽境llllll 2026-03-17 4/200 2026-03-19 13:59 by houyaoxu
[考研] 328求调剂,英语六级551,有科研经历 +3 生物工程调剂 2026-03-17 7/350 2026-03-18 20:41 by Wangjingyue
[考研] 297求调剂 +8 戏精丹丹丹 2026-03-17 8/400 2026-03-18 14:30 by laoshidan
[考研] 303求调剂 +4 睿08 2026-03-17 6/300 2026-03-18 11:01 by Iveryant
[考研] 0703化学336分求调剂 +6 zbzihdhd 2026-03-15 7/350 2026-03-18 09:53 by zhukairuo
[基金申请] 被我言中:新模板不强调格式了,假专家开始管格式了 +4 beefly 2026-03-14 4/200 2026-03-17 22:04 by 黄鸟于飞Chao
[考研] 301求调剂 +4 A_JiXing 2026-03-16 4/200 2026-03-17 17:32 by ruiyingmiao
[考博] 26申博 +4 八6八68 2026-03-16 4/200 2026-03-17 13:00 by 轻松不少随
[考研] 275求调剂 +4 太阳花天天开心 2026-03-16 4/200 2026-03-17 10:53 by 功夫疯狂
[考研] 304求调剂 +4 ahbd 2026-03-14 4/200 2026-03-16 16:48 by 我的船我的海
[考研] 070303 总分349求调剂 +3 LJY9966 2026-03-15 5/250 2026-03-16 14:24 by xwxstudy
[考研] 0856求调剂 +3 刘梦微 2026-03-15 3/150 2026-03-16 10:00 by houyaoxu
[考研] 327求调剂 +6 拾光任染 2026-03-15 11/550 2026-03-15 22:47 by 拾光任染
[考研] 求老师收留调剂 +4 jiang姜66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
信息提示
请填处理意见