间歇式反应器的优化分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现

💥1 概述

在葡萄酒的葡萄汁中,有腐败的酵母会对风味产生负面影响。为了消除它,酿酒厂使用SO2。然而,这对人类健康有毒,世界卫生组织(WHO)提倡立即减少其消费。使用SO2的替代方案是添加杀伤酵母以消除或减少不需要的酵母。在以前的工作中,发现pH是控制杀伤酵母种群的相关变量,因此,对于不良酵母的生长。它改善了杀伤酵母和抑制剂的适应性。此外,它是通过葡萄酒中允许的有机酸操纵的变量。此外,还提出了对数学模型的新改进,将参数变化与pH值相结合。同样,使用Matlab模拟新模型,通过蒙特卡罗方法进行优化,以最小化腐败酵母种群并最大化杀手的生长。物镜的最佳值为pH 3.98。仿真结果经过实验验证。改进的模型是酿酒行业的需要,它允许腐败酵母控制。

📚2 运行结果

 

 

 

 运行结果如下:

N = 1000;
tiempo=0:1:256;

umaxk=zeros (N,1); umaxs=zeros (N,1); Ak=zeros (N,1); As=zeros (N,1); a=zeros (N,1); udk=zeros (N,1); 
uds=zeros (N,1); K=zeros (N,1); alfa=zeros (N,1); W=zeros (N,1); pH=zeros (N,1);

cost  = zeros (N,1);

tiempom = zeros (length(tiempo), N); Xvkm= zeros (length(tiempo), N); 
Xvsm= zeros (length(tiempo), N); Xdkm= zeros (length(tiempo), N); Xdsm= zeros (length(tiempo), N);
Tm= zeros (length(tiempo), N); Im= zeros (length(tiempo), N);

a0=0.0000000002;
udk0=0.000015;
uds0=0.000015;
W0=0.000000003;

beta=1;
     
% Condiciones iniciales inoculo lev, otros y coeficientes del modelo
Xvk(1)=381174;
Xvs(1)=2140671;

I(1)=0;
T(1)=0;
ro(1)=0;

for n = 1:N
    
       
pH=random('unif',3.2,4.2);


umaxk=(0.188516824*pH^2-1.411097392*pH+2.68722006)*10;
umaxs=(-0.004177951*pH+0.018921349)*10;
Ak=380*pH^2-3020*pH+6022.8;
As=380*pH^2-3020*pH+6022.8;
alfa=-0.0016*pH^2+0.01264*pH-0.024064;
K=-0.000002548*pH^2+0.0000191252*pH-0.0000351091;


a=random('unif',a0*1,a0*1);
udk=random('unif',udk0*1,udk0*1);
uds=random('unif',uds0*1,uds0*1);
W=random('unif',W0*1,W0*1);
     
 
Xvk(1)=400000;
Xvs(1)=1600000;
I(1)=0;
T(1)=0;


for j=2:length(tiempo)
    
    Xvk(j)=Xvk(j-1)+0.1*(umaxk*Xvk(j-1)*(1-Ak*I(j-1))-udk*Xvk(j-1));
    Xvs(j)=Xvs(j-1)+0.1*(umaxs*Xvs(j-1)*(1-As*I(j-1))-uds*Xvs(j-1)-K*Xvs(j-1)*T(j-1))+heaviside(ro(j-1))*beta;
    T(j)=T(j-1)+0.1*(alfa*(umaxk*Xvk(j-1)*(1-Ak*I(j-1))-W*Xvs(j-1)*T(j-1)));
    I(j)=I(j-1)+0.1*a*(umaxk*Xvk(j-1)*(1-Ak*I(j-1))+umaxs*Xvs(j-1)*(1-As*I(j-1)));
      ro(j)=(Xvk(j-1)-Xvs(j-1));
       
end

 Xvsmax = max(Xvs);
 Xvkmax = max(Xvk);
  
           
umaxk1(n)=umaxk; umaxs1(n)=umaxs; Ak1(n)=Ak;
As1(n)=As;
a1(n)=a;
udk1(n)=udk;
uds1(n)=uds;
K1(n)=K;
alfa1(n)=alfa;
W1(n)=W;
pH1(n)=pH;


 J(n,:) = [n pH umaxk umaxs Xvs(257) Xvk(257)];

tiempom(:,n)=tiempo; Xvsm(:,n)= Xvs; Xvkm(:,n)= Xvk; 
Tm(:,n)=T; Im(:,n)=I;
   
end

save montecarlo.mat

[costo, It] = min (cost); 


[~,s]= sort(J(:,5),'descend');  
Jord= J(s,:);

[~,s]= sort(J(:,6),'ascend');  
Jord2= J(s,:);


'mejor pH para disminuir contaminante y valor final alcanzado de la contaminante'
display(Jord(n,2));
display(Jord(n,5));
c = Jord(n,1);

'mejor pH para aumentar controladora y valor final alcanzado de la biocontroladora'
display(Jord2(n,2));
display(Jord2(n,6));
d = Jord2(n,1);

Xk=Xvkm';
Xk1=Xk(d,:);

Xs=Xvsm';
Xs1=Xs(c,:);


w=J(:,6);
h= 1:N;

figure('name','J y Xvk');
clf;
scatter(h,w'); 
hold;

w2=J(:,5);

figure('name','J y Xvs');
clf;
scatter(h,w2'); 
hold;
 
w3=J(:,2);

figure('name','J y pH');
clf;
scatter(h,w3'); 
hold;
 
figure('name','mala');
clf;
plot(tiempo,Xs1,'k'); 
hold;

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Benjamín Kuchen (2022) Optimization of batch reactors: Application to the biocontrol of spoilage yeasts in wines

[2]王广亮.根据英国卫生安全执行局的资料对间歇式反应器事故的分析(摘译)(四)[J].化工劳动保护,2001(09):313-315.

🌈4 Matlab代码实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值