您现在的位置:首页 >> 智能控制 >> 内容

m厌氧间歇发酵动态控制系统matlab仿真,对比PID控制和MPC控制

时间:2023/1/21 20:38:34 点击:

  核心提示:08_003_m,包括程序操作录像+说明文档...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y56XmJhv

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览





3.算法概述

        生物发酵过程,其中稀释速率和供料基质浓度可作为操作变量。出口的细胞浓度或生物浓度、基质浓度以及产品浓度是过程的状态变量。例如在生产酒精的发酵过程中,是酵母浓度,是葡萄糖浓度,而是乙醇浓度。假设发酵培养基是单一均相生长的有机体,则广泛采用的非构造化模型较适用于非线性控制器的设计。

4.部分源码

...............................................................

%发酵模型

%已知初始浓度

X0 = 0.0005; 

S0 = 0.1; 

P0 = 0;

[RX,RS,RP] = model_of_fj(X0,S0,P0);

%采样时间

ts=20

%PID的控制变量

kp=1;

ki=0.05;

kd=0.3;

%原系统离散化

sysc=tf([1],[60 1],'inputdelay',80);

sysd=c2d(sysc,ts,'zoh');

%得到需要的离散系统参数

[num,den]=tfdata(sysd,'v');

%PID仿真参数设定

u1=0;

u2=0;

u3=0;

u4=0;

u5=0;

y1=0;

y2=0;

y3=0;

e1=0;

e2=0;

es=0; 

%开始PID仿真

for k=1:500

    t(k)=k*ts;

    y(k)=-den(2)*y1+num(2)*u5;

    r(k)=1;

    e(k)=r(k)-y(k);

    es=es+e(k)*ts;

    %PID Control

    u(k)=kp*e(k)+kd*(e(k)-e1)/ts+ki*es;

    if u(k)>5

        u(k)=5;

    elseif u(k)<-5

        u(k)=-5;

    end

    u5=u4;

    u4=u3;

    u3=u2;

    u2=u1;

    u1=u(k); 

    

    e2=e1;

    e1=e(k);

end

%DMC仿真

%建立离散的系统

gmpc=poly2tfd([1],[60 1],0,80);

%系统阶跃响应的时间

tend=20000;

mymodel=tfd2step(tend,ts,1,gmpc);

%MPC参数设定

P=5;

M=3;

ywt=[];

uwt=[1];

rmpc=[1];

%系统的仿真时间设定

tend=10000;

%建立MPC的系数矩阵

mpcM=mpccon(mymodel,ywt,uwt,M,P);

%MPC仿真

[ympc,umpc,ymmpc]=mpcsim(mymodel,mymodel,mpcM,tend,rmpc);

%MPC控制绘图

08_003_m

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168