m厭氧間歇發(fā)酵動態(tài)控制系統(tǒng)matlab仿真,對比PID控制和MPC控制

1.算法描述

生物發(fā)酵過程,其中稀釋速率和供料基質(zhì)濃度可作為操作變量。出口的細胞濃度或生物濃度、基質(zhì)濃度以及產(chǎn)品濃度是過程的狀態(tài)變量。例如在生產(chǎn)酒精的發(fā)酵過程中,是酵母濃度,是葡萄糖濃度,而是乙醇濃度。假設(shè)發(fā)酵培養(yǎng)基是單一均相生長的有機體,則廣泛采用的非構(gòu)造化模型較適用于非線性控制器的設(shè)計,其模型為



這個連續(xù)發(fā)酵過程的控制目標(biāo)是單位時間內(nèi)生成產(chǎn)品細胞的數(shù)量。實際生產(chǎn)中,發(fā)酵罐出口物料中,酵母細胞量與基質(zhì)含量和產(chǎn)品相比可以忽略,故控制目標(biāo)可表示為



PID控制器,即控制器的控制方式為P比例調(diào)整,I積分調(diào)整以及D微分調(diào)整三個部分構(gòu)成,PID控制器是目前為止應(yīng)用最為廣泛的控制方式。PID控制器具有結(jié)構(gòu)簡單,性能穩(wěn)定,參數(shù)設(shè)置簡單等優(yōu)勢。PID控制器適用于各種控制對象無法進行測量獲得系統(tǒng)參數(shù)的情況,其根據(jù)控制對象的輸出和參考控制變量的輸入差進行實時的調(diào)整實現(xiàn)對未知參數(shù)控制對象的有效控制。PID控制器由比例調(diào)整模塊,積分調(diào)整模塊以及微分調(diào)整模塊三個部分構(gòu)成,那么其輸入的誤差信號e(t)與輸出u(t)的關(guān)系為公式6:



MPC(Model Predictive Control),又稱RHC, Receding Horizon Control,是一種進階過程控制方法,自1980年以來開始在化工煉油等過程工業(yè)得到應(yīng)用,并在經(jīng)濟領(lǐng)域開始得到應(yīng)用。


MPC是一種多變量控制策略,其中涉及了:


過程內(nèi)環(huán)動態(tài)模型;控制量的歷史數(shù)值;在預(yù)測區(qū)間上的一個最優(yōu)值方程J。最優(yōu)控制量可由以上各量求出。


MPC最大的特點在于,相對于LQR控制而言,MPC可以考慮空間狀態(tài)變量的各種約束,而LQR,PID等控制只能夠考慮輸入輸出變量的各種約束。


MPC可應(yīng)用于線性和非線性系統(tǒng)。


  在當(dāng)今過程控制中,PID當(dāng)然是用的最多的控制方法,但MPC也超過了10%的占有率。MPC是一個總稱,有著各種各樣的算法。其動態(tài)矩陣控制(DMC)是代表作。DMC采用的是系統(tǒng)的階躍響應(yīng)曲線,其突出的特點是解決了約束控制問題。那么是DMC是怎么解決約束的呢?在這里只給出宏觀的解釋,而不做詳細的說明。DMC把線性規(guī)劃和控制問題結(jié)合起來,用線性規(guī)劃解決輸出約束的問題,同時解決了靜態(tài)最優(yōu)的問題,一石二鳥,在工業(yè)界取得了極大的成功。


  MPC作用機理描述為:在每一個采用時刻,根據(jù)獲得的當(dāng)前測量信息,在線求解一個有限時間開環(huán)優(yōu)化問題,并將得到的控制序列的第一個元素作用于被控對象。在下一個采樣時刻,重復(fù)上述過程:用新的測量值作為此時預(yù)測系統(tǒng)未來動態(tài)的初始條件,刷新優(yōu)化問題并重新求解 。

即MPC算法包括三個步驟:

(1)預(yù)測系統(tǒng)未來動態(tài);

(2)(數(shù)值)求解開環(huán)優(yōu)化問題;

(3)將優(yōu)化解的第一個元素(或者說第一部分)作用于系統(tǒng)

  這三步是在每個采樣時刻重復(fù)進行的,且無論采用什么樣的模型,每個采樣時刻得到的測量值都作為當(dāng)前時刻預(yù)測系統(tǒng)未來動態(tài)的初始條件

  在線求解開環(huán)優(yōu)化問題獲得開環(huán)優(yōu)化序列是MPC和傳統(tǒng)控制方法的主要區(qū)別,因為后者通常是離線求解一個反饋控制律,并將得到的反饋控制律一直作用于系統(tǒng)。


2.仿真效果預(yù)覽

matlab2022a仿真結(jié)果如下:



3.MATLAB核心程序

%發(fā)酵模型

%已知初始濃度

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;


%原系統(tǒng)離散化

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

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

%得到需要的離散系統(tǒng)參數(shù)

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

%PID仿真參數(shù)設(shè)定

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仿真

%建立離散的系統(tǒng)

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

%系統(tǒng)階躍響應(yīng)的時間

tend=20000;

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

%MPC參數(shù)設(shè)定

P=5;

M=3;

ywt=[];

uwt=[1];

rmpc=[1];

%系統(tǒng)的仿真時間設(shè)定

tend=10000;

%建立MPC的系數(shù)矩陣

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

%MPC仿真

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

%MPC控制繪圖

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容