段洪君, 相龍普, 孫建新, 薛建國
(東北大學(xué)秦皇島分校 控制工程學(xué)院,河北 秦皇島 066004)
中醫(yī)是我國的歷史瑰寶,是中國文化的重要組成部分,與之密不可分的自然是中藥的生產(chǎn)制作,其中中藥多糖的醇沉過程是中藥生產(chǎn)中的關(guān)鍵環(huán)節(jié)[1]。在中藥多糖析出過程中,pH值的控制至關(guān)重要,而pH與其他添加量之間存在著復(fù)雜的非線性關(guān)系,基于機(jī)械的模型通常非常耗時,難以在線優(yōu)化[2],傳統(tǒng)的線性方法也難以建立預(yù)測模型,得到滿意的結(jié)果[3-4]。近年來,作者對此做了大量的研究工作,取得了一定的研究成果[5-9]。
人工神經(jīng)網(wǎng)絡(luò)智能算法具有高度的非線性映射能力,在非線性預(yù)測領(lǐng)域較為常用[10-11],徑向基(RBF)神經(jīng)網(wǎng)絡(luò)是一種全局收斂非線性學(xué)習(xí)算法的前饋網(wǎng)絡(luò),具有逼近精度高,網(wǎng)絡(luò)規(guī)模小,學(xué)習(xí)速度快和不存在局部最小問題等特點(diǎn)[12-13]。STM32系列單片機(jī)片內(nèi)集成了大量外設(shè),具有低功耗、體積小等特點(diǎn),在電機(jī)驅(qū)動,電力電子技術(shù)領(lǐng)域應(yīng)用廣泛[14]。
本文基于STM32F103芯片設(shè)計了中藥多糖醇沉自動控制系統(tǒng),實(shí)現(xiàn)了中藥多糖分離過程中乙醇和堿液的自動加入,控制量由遺傳神經(jīng)網(wǎng)絡(luò)求得,解決了中藥多糖醇沉過程自動控制的問題。
中藥多糖醇沉過程中多糖的提取率受pH值的影響,而pH值與藥液、乙醇、堿液三者之間存在復(fù)雜的非線性關(guān)系。首先為了找出pH值與三者的關(guān)系,應(yīng)用RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測;之后;對于給定的藥液量和pH值,根據(jù)RBF神經(jīng)網(wǎng)絡(luò)訓(xùn)練后形成的固定網(wǎng)絡(luò),引入遺傳算法作為負(fù)反饋環(huán)節(jié)計算出乙醇和堿液的添加量,通過串口發(fā)送給STM32單片機(jī),STM32單片機(jī)控制蠕動泵和離心泵輸送乙醇和堿液。該系統(tǒng)分為硬件和算法兩個部分,系統(tǒng)總體框圖如圖1所示。
圖1 系統(tǒng)總體框圖
系統(tǒng)由乙醇儲存罐、堿液儲存罐、醇沉罐、離心泵、變頻器、蠕動泵、流量計、I/U轉(zhuǎn)換模塊、單片機(jī)控制系統(tǒng)、按鍵、顯示屏、繼電器等部分組成。系統(tǒng)中所用到的多糖提取方法是堿解醇沉法,為提高多糖的析出率,堿液和乙醇的添加量由遺傳RBF神經(jīng)網(wǎng)絡(luò)算出最優(yōu)值,同時永磁直流電動機(jī)同步攪拌,使多糖析出。
STM32程序流程圖如圖2所示。為了通過累加運(yùn)算來獲取堿液和乙醇的實(shí)際添加量,對其進(jìn)行控制,系統(tǒng)設(shè)定STM32計數(shù)定時器中斷20 ms作為A/D采樣周期和PID控制周期。
圖2 STM32程序流程圖
在多糖提取過程中,堿液所需的量較少,但對pH的影響巨大,需要精確控制,選用可以使輸送流量很快達(dá)到恒速,且能夠直接通過外控模塊進(jìn)行外部控制的液體輸送泵——蠕動泵來輸送堿液。由于所選用蠕動泵有較高的控制精度且小流量,高精度的流量計成本較高,采用簡單的開環(huán)控制即可完成控制要求??刂瓶驁D如圖3所示。
圖3 堿液控制系統(tǒng)框圖
選用BT100-2J蠕動泵,能提供0.000 2~380 mL/min的流量。為實(shí)現(xiàn)堿液的自動添加,使用外控端口進(jìn)行自動控制。因?yàn)镈AC(數(shù)字/模擬轉(zhuǎn)換模塊)的輸出電壓范圍為0~5 V,選擇0~5 V外控模塊。堿液添加控制的方法為:單片機(jī)和上位機(jī)通信確定要添加的堿液量,將添加量對應(yīng)的數(shù)字量經(jīng)D/A轉(zhuǎn)換輸出0~5 V電壓輸出控制蠕動泵的轉(zhuǎn)速,蠕動泵啟停由繼電器控制。
乙醇添加量采用閉環(huán)控制系統(tǒng)。通過控制器控制乙醇實(shí)際添加量等于遺傳神經(jīng)網(wǎng)絡(luò)計算得到的最優(yōu)值,并且調(diào)節(jié)PID控制器各參數(shù),使輸出穩(wěn)定。對流量計檢測到的流量進(jìn)行積分作為被控量的實(shí)時反饋值。執(zhí)行機(jī)構(gòu)為離心泵,需要調(diào)節(jié)帶動離心泵三相異步電動機(jī)的轉(zhuǎn)速,從而達(dá)到控制乙醇添加量的目的。利用單片機(jī)控制變頻器,實(shí)現(xiàn)對變頻器電壓模擬量輸入端的控制,進(jìn)而實(shí)現(xiàn)調(diào)速, 以達(dá)到控制離心泵出口流量的目的。反饋的實(shí)際添加量信號與給定添加量比較后,經(jīng)PID計算及D/A變換后,輸出模擬量到變頻器的模擬量電壓信號輸入端,從而控制離心泵原動機(jī)的轉(zhuǎn)速,使實(shí)際添加量恒定且等于給定添加量??刂瓶驁D如圖4所示。
圖4 乙醇流量控制系統(tǒng)框圖
使用的流量計為LWGB-4L渦輪流量變送器,其輸出電流4~20 mA,輸出流量范圍為0~0.25 L/h。后面需要電流/電壓轉(zhuǎn)換模塊,4~20 mA電流信號輸入,0~5 V電壓信號輸出。變頻器型號為:臺安E310-401-H,電源電壓330 V,功率為0.746 kW,適用電動機(jī)容量為0.75 kW,經(jīng)計算離心泵電動機(jī)的容量S≈0.70 kW,離心泵電動機(jī)容量小于變頻器容量,該變頻器滿足本次設(shè)計所選用的離心泵。變頻的頻率通過外部AVI模擬輸入信號設(shè)定,設(shè)定變頻器的S1端子控制變頻器的啟停。通過單片機(jī)驅(qū)動1路帶光耦隔離的繼電器通斷,進(jìn)而控制變頻的啟停,避免變頻器電源對單片機(jī)控制電路的干擾。系統(tǒng)實(shí)物圖如圖5所示。
圖5 系統(tǒng)實(shí)物圖
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖6所示。在RBF網(wǎng)絡(luò)訓(xùn)練中,隱層神經(jīng)元數(shù)的確定是一個關(guān)鍵問題,過去的做法是使用正則化網(wǎng)絡(luò),使其與輸入矢量數(shù)相等,然而當(dāng)輸入訓(xùn)練樣本數(shù)目N很大時,網(wǎng)絡(luò)的計算量是驚人的,故導(dǎo)致其效率過低難以實(shí)現(xiàn)。為保證中藥提取過程中的實(shí)時性,本文引用了改進(jìn)方法,原理是從0個神經(jīng)元開始訓(xùn)練,通過檢查輸出誤差使網(wǎng)絡(luò)自動增加神經(jīng)元,訓(xùn)練樣本每循環(huán)計算1次后,用使網(wǎng)絡(luò)產(chǎn)生最大誤差所對應(yīng)的訓(xùn)練樣本作為權(quán)值向量產(chǎn)生一個新的隱層神經(jīng)元,然后重新計算并檢查新網(wǎng)絡(luò)的誤差,重復(fù)此過程,直到達(dá)到誤差要求或最大隱層神經(jīng)元數(shù)為止[15]。該訓(xùn)練算法由Matlab 2016b 中的 NEWRB函數(shù)實(shí)現(xiàn)。NEWRB調(diào)用格式為:
圖6 RBF神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
net=newrb(P,T,goal,spread,MN,DF)
其中:P為輸入矩陣;T為輸出矩陣;goal為指定均方誤差,默認(rèn)值為0;spread表示徑向基函數(shù)的擴(kuò)散速度,默認(rèn)值為1;MN指定隱含節(jié)點(diǎn)的最大個數(shù),默認(rèn)值為輸入數(shù)據(jù)個數(shù);DF表示2次現(xiàn)實(shí)之間所添加的神經(jīng)元個數(shù),默認(rèn)值為25。newrb函數(shù)中徑向基網(wǎng)絡(luò)的性能主要受隱含節(jié)點(diǎn)MN和擴(kuò)散速度spread的影響。在不超過訓(xùn)練樣本個數(shù)的情況下,MN的值越大,訓(xùn)練精度越高,但迭代次數(shù)也越來越大,在保證精度的前提下,MN取100。spread值越大,函數(shù)擬合越平滑,但是逼近誤差會變大,需要的隱藏神經(jīng)元也越多,計算量也越大;spread值越小,函數(shù)逼近會越精確,但是逼近過程會不平滑,網(wǎng)絡(luò)的性能差,會出現(xiàn)過適應(yīng)現(xiàn)象。為保證控制精度,用遺傳算法對spread的值進(jìn)行優(yōu)化,在MN取100時,spread取1.373。
在實(shí)際生產(chǎn)過程中,藥液量為定值,需要調(diào)節(jié)乙醇和堿液的量去調(diào)節(jié)pH值。前文通過RBF神經(jīng)網(wǎng)絡(luò)找出了pH與藥液、乙醇、堿液三者間的關(guān)系,接下來通過遺傳算法結(jié)合RBF神經(jīng)網(wǎng)絡(luò)計算在給定藥液量和pH值下乙醇和堿液的添加量,遺傳算法作為網(wǎng)絡(luò)的負(fù)反饋回路,通過不斷進(jìn)化得到給定pH值下所需的乙醇和堿液添加量。
遺傳算法控制堿液和乙醇添加量基本步驟如下:
(1) 定義決策變量和約束條件。由工程實(shí)際可知,決策變量為乙醇的值B和堿液的值C,在藥液量A固定(如:5 mL)的情況下,B和C的取值范圍分別為(10,40)和(0.6,0.8)。
(2) 確定適應(yīng)度函數(shù)
fitness=min[pH-net(A,B,C)]2
(1)
式中:pH為希望達(dá)到的pH值;A,B,C分別為藥液、乙醇和堿液的值;net為RBF神經(jīng)網(wǎng)絡(luò)經(jīng)125組實(shí)驗(yàn)數(shù)據(jù)后形成的網(wǎng)絡(luò),即給定任意一組A、B、C,可以訓(xùn)練得到一個pH,在所有訓(xùn)練得到的pH中取最接近pH的值,即fitness的值最小,得到與之對應(yīng)的B和C,即為要達(dá)到該pH值所需加入的乙醇和堿液的量。
(3) 編碼和解碼。采用二進(jìn)制方式進(jìn)行編碼,十進(jìn)制的值用M表示,其n位二進(jìn)制數(shù)用b表示,則有:
M=Mmin+b(Mmax-Mmin)/(2n-1)
(2)
b=(M-Mmin)(2n-1)/(Mmax-Mmin)
(3)
(4) 設(shè)計遺傳算子?;具z傳操作包括選擇、交叉、變異3種運(yùn)算:①選擇。根據(jù)計算當(dāng)前群體中每一個個體的適應(yīng)度值,用輪盤賭法選擇出個體遺傳到下一代;②交叉。將群體中個體隨機(jī)配對,每個個體以某個概率交換部分染色體,本文中交叉概率設(shè)為0.7;③變異。以一定概率改變某一個或一些基因上的等位基因,一般變異概率在0.001~0.1之間,為避免遺傳算法陷入局部最優(yōu),本文取0.1。
(5) 確定遺傳算法運(yùn)行參數(shù)。本文中遺傳算法的運(yùn)行參數(shù)如下:群體大小N=40;最大遺傳代數(shù)G=20;個體長度P=20。算法流程圖如圖7所示。
圖7 pH控制算法流程圖
通過設(shè)計離線實(shí)驗(yàn),在醇沉的最優(yōu)工藝條件附近通過離線的方法精確測得pH值與麥冬藥液、無水乙醇和堿液三者的實(shí)驗(yàn)數(shù)據(jù)共150組[16],將前125組數(shù)據(jù)作為訓(xùn)練,后25組數(shù)據(jù)作為測試、預(yù)測pH值。RBF神經(jīng)網(wǎng)絡(luò)仿真結(jié)果如圖8所示。由圖可知,RBF神經(jīng)網(wǎng)絡(luò)最大誤差為0.6%,其中只有3個測試數(shù)據(jù)誤差在0.4%以上,其余數(shù)據(jù)誤差均小于0.4%,預(yù)測精度滿足控制要求。
圖8 RBF神經(jīng)網(wǎng)絡(luò)誤差曲線圖
當(dāng)pH=12時,通過遺傳神經(jīng)網(wǎng)絡(luò)求得乙醇、藥液、堿液三者之間的關(guān)系為3.75∶1.00∶0.15,設(shè)定藥液的流速為定值300 mL/min,則藥液和堿液流速的理論值應(yīng)分別為1 125 mL/min和45 mL/min。
實(shí)驗(yàn)測得,堿液在1 min內(nèi)的平均流速為46 mL/min,相對誤差為2.2%。堿液的實(shí)時流量可由流量計直接測得,從啟動開始以20 ms間隔取堿液的流量值繪制響應(yīng)曲線如圖9所示。由響應(yīng)曲線圖可知,隨著時間的推移,乙醇流量最終穩(wěn)定在1 150 mL/min,穩(wěn)態(tài)誤差為2.2%。系統(tǒng)的動態(tài)性能指標(biāo)為:超調(diào)量為24%,上升時間570 ms,峰值時間821 ms,取誤差范圍為±5%,則調(diào)節(jié)時間1 041 ms。
圖9 乙醇流量響應(yīng)曲線
由乙醇穩(wěn)態(tài)誤差及動態(tài)性能指標(biāo)可知,乙醇的控制精度在允許誤差之內(nèi),啟動后迅速達(dá)到穩(wěn)定,達(dá)到穩(wěn)態(tài)后仍然有輕微波動。由于控制的目標(biāo)是一段時間內(nèi)各成分比例恒定,所以在穩(wěn)態(tài)值周圍的瞬時波動對多糖分離過程影響不大。
基于STM32F103芯片設(shè)計了一個中藥多糖醇沉控制系統(tǒng),其中堿液量為開環(huán)控制,由蠕動泵直接控制,乙醇添加量為閉環(huán)控制,由STM32內(nèi)部的PID算法實(shí)現(xiàn),被控對象的量由遺傳神經(jīng)網(wǎng)絡(luò)求得,通過串口發(fā)送給單片機(jī)。本系統(tǒng)實(shí)現(xiàn)了中藥多糖醇沉過程中的添加量的自動控制,實(shí)驗(yàn)結(jié)果驗(yàn)證了算法的精度和系統(tǒng)的的快速性,準(zhǔn)確性與穩(wěn)定性,具有工程應(yīng)用價值。