24小时热门版块排行榜    

查看: 2580  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

For_study

金虫 (小有名气)

木虫

[求助] 遗传算法优化微分方程中的参数 已有1人参与

%拟合微分方程参数
%直接拟合反应的活化能和指前因子
function mynewtry4
clear;
clc;

%遗传算法
lb1=5*ones(1,22); lb2=-100000*ones(1,22); lb=[lb1,lb2];  ub1=100*ones(1,22); ub2=-1000*ones(1,22); ub=[ub1,ub2];
options = gaoptimset('Generations',1000,'StallGenLimit',50,...
     'StallTimeLimit',50,'TolFun',1e-12,'TolCon',1e-12,'MutationFcn',@mutationadaptfeasible);
[h0,fval,exitflag,reason,output,final_pop]=ga(@my_funtest1,44,options);

%输出参数
fprintf('\n\n遗传算法的估计数值:\n');
disp(h0);


%构造适应度函数my_funtest
function yfit=my_funtest1(h)
    tspan1=0:0.05:0.5;
    y01=[0.561,0.298,0.141,0 0 0 0 0];
[t,ycal1]=ode45(@myfun1,tspan1,y01,[],h);

y02=ycal1(11,;
tspan2=0.5:0.05:1;
[t,ycal2]=ode45(@myfun2,tspan2,y02,[],h);
ycalculate=ycal2(11,
yreal2=[0.0587 0 0 0.1988 0.3889 0.2309 0.0397 0.083];
for i=4:8
   ff(i)=(ycalculate(i)-yreal2(i))^2;
end
yfit=sum(ff)
end

function dy = myfun1(t,y,h)

% 动力学微分方程
% 共分为8集总,原料(饱和分SS为1,芳香分SA为2,胶质沥青质SR为3),柴油(D)为4,汽油(G)为5,液化气(LPG)为6,干气(Gas)为7,焦炭(C)为8,
% 由于遗传算法只能返回向量,所以反应常数不能是矩阵,只能是向量,第一个数表示反应物,第二个数表示生成物
%反应常数k(1,4)=k(1),k(1,5)=k(2),k(1,6)=k(3),k(1,7)=k(4),k(1,8)=k(5),k(2,4)=k(6),
%  k(2,5)=k(7),k(2,6)=k(8),k(2,7)=k(9),k(2,8)=k(10),k(3,4)=k(11),k(3,5)=k(12),
%  k(3,6)=k(13),k(3,7)=k(14),k(3,8)=k(15),k(4,5)=k(16),k(4,6)=k(17),k(4,7)=k(18),
%  k(4,8)=k(19),k(5,6)=k(20),k(5,7)=k(21),k(5,8)=k(22)
%
%
A=1;N=1;
deact=1;
dens=13.357;  %单位是kg/m^3
Swh=90;   %单位s
Tem=788; R=8.314;

k=zeros(1,22);
k(1)=h(1)*exp(-h(23)/(R*Tem));  % R常数,8.314,Tem温度,h表示活化能23-44,J/mol   指前因子1-22   kg/(m^3.s)
k(2)=h(2)*exp(-h(24)/(R*Tem));
k(3)=h(3)*exp(-h(25)/(R*Tem));
k(4)=h(4)*exp(-h(26)/(R*Tem));
k(5)=h(5)*exp(-h(27)/(R*Tem));
k(6)=h(6)*exp(-h(28)/(R*Tem));
k(7)=h(7)*exp(-h(29)/(R*Tem));
k(8)=h(8)*exp(-h(30)/(R*Tem));
k(9)=h(9)*exp(-h(31)/(R*Tem));
k(10)=h(10)*exp(-h(32)/(R*Tem));
k(11)=h(11)*exp(-h(33)/(R*Tem));
k(12)=h(12)*exp(-h(34)/(R*Tem));
k(13)=h(13)*exp(-h(35)/(R*Tem));

k(14)=h(14)*exp(-h(36)/(R*Tem));
k(15)=h(15)*exp(-h(37)/(R*Tem));
k(16)=h(16)*exp(-h(38)/(R*Tem));
k(17)=h(17)*exp(-h(39)/(R*Tem));
k(18)=h(18)*exp(-h(40)/(R*Tem));
k(19)=h(19)*exp(-h(41)/(R*Tem));

k(20)=h(20)*exp(-h(42)/(R*Tem));
k(21)=h(21)*exp(-h(43)/(R*Tem));
k(22)=h(22)*exp(-h(44)/(R*Tem));

dy(1)=-(k(1)+k(2)+k(3)+k(4)+k(5))*y(1)*A*N*deact*dens/Swh;  % A重芳烃失活系数,N碱氮吸附失活系数,deact催化剂结焦失活系数,dens密度,Swh真实重时空速
dy(2)=-(k(6)+k(7)+k(8)+k(9)+k(10))*y(2)*A*N*deact*dens/Swh;
dy(3)=-(k(11)+k(12)+k(13)+k(14)+k(15))*y(3)*A*N*deact*dens/Swh;
dy(4)=(k(1)*y(1)+k(6)*y(2)+k(11)*y(3)-(k(16)+k(17)+k(18)+k(19))*y(4))*A*N*deact*dens/Swh;
dy(5)=(k(2)*y(1)+k(7)*y(2)+k(12)*y(3)+k(16)*y(4)-(k(20)+k(21)+k(22))*y(5))*A*N*deact*dens/Swh;
dy(6)=(k(3)*y(1)+k(8)*y(2)+k(13)*y(3)+k(17)*y(4)+k(20)*y(5))*A*N*deact*dens/Swh;
dy(7)=(k(4)*y(1)+k(9)*y(2)+k(14)*y(3)+k(18)*y(4)+k(21)*y(5))*A*N*deact*dens/Swh;
dy(8)=(k(5)*y(1)+k(10)*y(2)+k(15)*y(3)+k(19)*y(4)+k(22)*y(5))*A*N*deact*dens/Swh;
dy=dy';

end




function dy = myfun2(t,y,h)

% 动力学微分方程
% 共分为8集总,原料(饱和分SS为1,芳香分SA为2,胶质沥青质SR为3),柴油(D)为4,汽油(G)为5,液化气(LPG)为6,干气(Gas)为7,焦炭(C)为8,
% 由于遗传算法只能返回向量,所以反应常数不能是矩阵,只能是向量,第一个数表示反应物,第二个数表示生成物
%反应常数k(1,4)=k(1),k(1,5)=k(2),k(1,6)=k(3),k(1,7)=k(4),k(1,8)=k(5),k(2,4)=k(6),
%  k(2,5)=k(7),k(2,6)=k(8),k(2,7)=k(9),k(2,8)=k(10),k(3,4)=k(11),k(3,5)=k(12),
%  k(3,6)=k(13),k(3,7)=k(14),k(3,8)=k(15),k(4,5)=k(16),k(4,6)=k(17),k(4,7)=k(18),
%  k(4,8)=k(19),k(5,6)=k(20),k(5,7)=k(21),k(5,8)=k(22)
%
%
A=1;N=1;
deact=1;
dens=13.357;Swh=90;
Tem=761; R=8.314;

k=zeros(1,22);
k(1)=h(1)*exp(-h(23)/(R*Tem));  % R常数,8.314,Tem温度,h表示活化能1-22,之前因子23-44
k(2)=h(2)*exp(-h(24)/(R*Tem));
k(3)=h(3)*exp(-h(25)/(R*Tem));
k(4)=h(4)*exp(-h(26)/(R*Tem));
k(5)=h(5)*exp(-h(27)/(R*Tem));
k(6)=h(6)*exp(-h(28)/(R*Tem));
k(7)=h(7)*exp(-h(29)/(R*Tem));
k(8)=h(8)*exp(-h(30)/(R*Tem));
k(9)=h(9)*exp(-h(31)/(R*Tem));
k(10)=h(10)*exp(-h(32)/(R*Tem));
k(11)=h(11)*exp(-h(33)/(R*Tem));
k(12)=h(12)*exp(-h(34)/(R*Tem));
k(13)=h(13)*exp(-h(35)/(R*Tem));

k(14)=h(14)*exp(-h(36)/(R*Tem));
k(15)=h(15)*exp(-h(37)/(R*Tem));
k(16)=h(16)*exp(-h(38)/(R*Tem));
k(17)=h(17)*exp(-h(39)/(R*Tem));
k(18)=h(18)*exp(-h(40)/(R*Tem));
k(19)=h(19)*exp(-h(41)/(R*Tem));

k(20)=h(20)*exp(-h(42)/(R*Tem));
k(21)=h(21)*exp(-h(43)/(R*Tem));
k(22)=h(22)*exp(-h(44)/(R*Tem));

dy(1)=-(k(1)+k(2)+k(3)+k(4)+k(5))*y(1)*A*N*deact*dens/Swh;  % A重芳烃失活系数,N碱氮吸附失活系数,deact催化剂结焦失活系数,dens密度,Swh真实重时空速
dy(2)=-(k(6)+k(7)+k(8)+k(9)+k(10))*y(2)*A*N*deact*dens/Swh;
dy(3)=-(k(11)+k(12)+k(13)+k(14)+k(15))*y(3)*A*N*deact*dens/Swh;
dy(4)=(k(1)*y(1)+k(6)*y(2)+k(11)*y(3)-(k(16)+k(17)+k(18)+k(19))*y(4))*A*N*deact*dens/Swh;
dy(5)=(k(2)*y(1)+k(7)*y(2)+k(12)*y(3)+k(16)*y(4)-(k(20)+k(21)+k(22))*y(5))*A*N*deact*dens/Swh;
dy(6)=(k(3)*y(1)+k(8)*y(2)+k(13)*y(3)+k(17)*y(4)+k(20)*y(5))*A*N*deact*dens/Swh;
dy(7)=(k(4)*y(1)+k(9)*y(2)+k(14)*y(3)+k(18)*y(4)+k(21)*y(5))*A*N*deact*dens/Swh;
dy(8)=(k(5)*y(1)+k(10)*y(2)+k(15)*y(3)+k(19)*y(4)+k(22)*y(5))*A*N*deact*dens/Swh;
dy=dy';

end
end


问题叙述,遗传算法未设定lb和ub时,程序可以正常运行,获得结果,当设定lb和ub后,程序依然可以运行(不会报错),但是只能运算一次优化后的结果(设置断点时发现)。遗传算法好像没有继续优化下去,希望有大神可以帮忙解答一下问题。。。。谢谢。。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

第一颗纽扣扣错了。。。。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

For_study

金虫 (小有名气)

木虫

自己再顶一下。。。。。
第一颗纽扣扣错了。。。。
3楼2015-12-09 14:15:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

For_study

金虫 (小有名气)

木虫

没人吗。。。。。。。。。。?
第一颗纽扣扣错了。。。。
2楼2015-12-09 14:14:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
换1stOpt试试,微分方程拟合简单好用的多。
4楼2015-12-09 16:06:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

For_study

金虫 (小有名气)

木虫

引用回帖:
6楼: Originally posted by ybkooo at 2015-12-10 21:36:38
好多笑脸.

笑脸是因为笑脸的代码和我打出来的一样,所以在网页上显示为笑脸,其实笑脸的地方是:)。。。。。。。
第一颗纽扣扣错了。。。。
7楼2015-12-11 15:04:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 gy1nBQXYQJqL 2026-08-29 3/150 2026-08-29 18:26 by 4FFAWE8HcgUD
[博后之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-29 18:04 by 4FFAWE8HcgUD
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 17:30 by 4FFAWE8HcgUD
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 ASdOkHsho7FD 2026-08-28 10/500 2026-08-29 16:49 by zICmwzsBXjbN
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +9 苏东坡二世 2026-08-23 9/450 2026-08-29 14:41 by hustersqt
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 ASdOkHsho7FD 2026-08-28 4/200 2026-08-29 14:13 by jCd0dEvKHShX
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +5 gdd2018 2026-08-28 10/500 2026-08-29 14:10 by Jacob678
[论文投稿] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 ASdOkHsho7FD 2026-08-28 4/200 2026-08-29 13:51 by jCd0dEvKHShX
[考研] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +4 ASdOkHsho7FD 2026-08-28 6/300 2026-08-29 11:40 by jCd0dEvKHShX
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 9/450 2026-08-29 09:59 by jklily
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
信息提示
请填处理意见