ga预测的matlab程序,matlab微分方程组系统的遗传算法GA优化

我做发酵,现在已确定好了发酵过程的微分方程组变化轨迹,想用遗传算法优化补料过程,

即将补料作为17个等时间隔,流量作为变量,补料浓度固定。

采用gatool,但报告Ft变量未定义,苦思数日,虑不得脱,恳请各位大贤指导

编程如下:

function f=GA_addin(Ft)

Ft=zeros(17,1);

ts=0; tf=64;

[t,y]=ode45('fun',[ts,tf],[394,80000,2453]);

[t,y]=ode45('fun',[0:8:64],[394,80000,2453]);

y0=y(9,

smile.gif;

y01=[y0,50];

n=0;

if n<200

for i=1:1:17

ts=64+8*(i-1); tf=64+8*i; v=Ft(i);n=n+v;

[t,y]=ode45('monod2',[ts,tf],y01);

y01=y(length(y));%标记最终的数值作为下次初值

end

f=y01(:,4);

f=-f;%最小值的定义

else

f=1000;

end

-------------------------------

function dy=fun(t,y)  %菌营养生长

dy=zeros(3,1);

dy(1)=0.256*y(1)*(y(2)/(85978+y(2)))*(y(3)/(995.76+y(3)))*(1-(y(2)/y(3)/925.5)^0.9639)-0.00031*y(1);

dy(2)=-((0.256*(y(2)/(85978+y(2)))*(y(3)/(995.76+y(3)))*(1-(y(2)/y(3)/925.5)^0.9639)/1.382)+0.0426)*y(1);

dy(3)=-((0.256*(y(2)/(85978+y(2)))*(y(3)/(995.76+y(3)))*(1-(y(2)/y(3)/925.5)^0.9639)/12.38)+0.000000288)*y(1);

------------------------------------------------------------------

function dy=monod2(t,y)  %菌产素情况

dy=zeros(5,1);

if y(2)<0

y(2)=0; dy(1)=0;dy(2)=0;

else

dy(1)=0.98*y(1)*(y(2)/(163960+y(2)))*(y(3)/(22083+y(3)))-0.0000589*y(1)-Ft/2500*y(1);

dy(2)=y(5)*(100000-y(2))-(0.98*(y(2)/(163960+y(2)))*(y(3)/(22083+y(3)))/0.7286+(0.000484*0.98*(y(2)/(163960+y(2)))*(y(3)/(22083+y(3)))+0.000394*y(1))/176950+0.0037)*y(1);

dy(3)=-(0.98*(y(2)/(163960+y(2)))*(y(3)/(22083+y(3)))/14.124+0.000000155288)*y(1);

dy(4)=0.000484*0.98*y(1)*(y(2)/(163960+y(2)))*(y(3)/(22083+y(3)))+0.000424*y(1)-0.000802*y(4);

dy(5)=v;

end

dy=[dy(1);dy(2);dy(3);dy(4);dy(5)];

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值