|
|
[求助]
用遗传算法和模拟退火来进行动力学参数的拟合
用matlab中的lsqnonlin函数、ode45函数进行动力学拟合,拟合指前因子、活化能、级数,一直未果。老师说让自己用遗传算法和模拟退火组合算,自己一点都没接触过。
我的问题是:原料是:甲醇、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)的平方和 最小
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
我下一步想用遗传算法和模拟退火,该怎么做呢??请大神给些指导
![用遗传算法和模拟退火来进行动力学参数的拟合]()
图片1.jpg
![用遗传算法和模拟退火来进行动力学参数的拟合-1]()
图2.jpg |
|