衷衛(wèi)聲 沈淑鴻 王文海
(南昌大學環(huán)境與化學工程學院1,江西 南昌 330029;浙江大學控制科學與工程系2,浙江 杭州 310027)
溶解氧(dissolved oxygen,DO)是污水處理過程中的重要參數(shù),它能夠較好地反映污水處理過程中的相關情況[1]。維持溶解氧濃度處于相對穩(wěn)定的水平,對于保證出水水質十分重要。鑒于污水處理過程無法建立精確的數(shù)學模型、經(jīng)典控制無法保證系統(tǒng)穩(wěn)定性的特點,可以將模糊控制技術同污水處理技術相結合,建立溶解氧模糊控制系統(tǒng),以實現(xiàn)對溶解氧濃度的控制[2]。
目前,模糊控制器的實現(xiàn)方式主要有在傳統(tǒng)的數(shù)字計算機、單片機上實現(xiàn)或者通過模糊控制專用硬件處理器來實現(xiàn)[3]。前者的處理速度較慢,無法保證控制系統(tǒng)對實時性的要求,后者則具有處理速度快、實時性高等優(yōu)點[4]。
本文利用FPGA時鐘頻率高、實時性強的特點,采用cyclone FPGA器件EP13T144C8,并使用VHDL硬件描述語言,完成了溶解氧模糊控制器的設計[5]。
本溶解氧模糊控制系統(tǒng)以模糊控制理論為基礎,采用二階模型,以每個采樣周期采集到的DO值與設定的DO值之差E和偏差E的變化EC為輸入,以控制量U為輸出,進行模糊控制器的設計。首先通過A/D轉換將采集到的DO值同設定值比較,分別得到誤差E和誤差變化EC的精確值,并將E和EC進行量化,轉換成模糊控制所需要的模糊輸入,然后進行模糊推理得到模糊控制量,最后通過D/A轉換成模擬信號U,以控制鼓風機的轉速,調節(jié)溶解氧濃度。
根據(jù)污水處理的相關工藝,溶解氧偏差E的連續(xù)論域為[-22],偏差變化 EC的論域為[-44]。E和U、EC對應的離散論域分別為[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6]和[-4,-3,-2,-1,0,1,2,3,4]。取 E、EC、U 的模糊子集個數(shù)分別為7、5、7,則 E=(NB,NM,NS,ZO,PS,PM,PB)、EC=(NB,NS,ZO,PS,PB)、U=(NB,NM,NS,ZO,PS,PM,PB)。
本設計中的溶解氧(DO)模糊控制器是二維模糊控制器,模糊控制規(guī)則的形式是[6]:IF E=...and IF EC=…then U=…。根據(jù)手動控制策略,總結出模糊控制規(guī)則如表1所示。

表1 溶解氧模糊控制規(guī)則表Tab.1 Rules of DO fuzzy control
對于模糊控制表,本文采用Matlab的模糊控制工具箱Fuzzy Logic Toolbox來建立。具體的計算過程本文不加以贅述,詳細過程可以參考相關的書籍和文獻[7]。通過調用Matlab中的模糊控制工具箱,在對相關參數(shù)進行設定并編輯表一中的模糊控制規(guī)則之后,通過規(guī)則觀察器窗口總結得到的溶解氧模糊控制表如表2所示。從表2中可以看到,當模糊控制器的輸入E和EC確定時,可以通過查表的方式得到對應的控制輸出量U。
通過對溶解氧濃度控制以及模糊控制系統(tǒng)的相關原理進行分析,將本文設計的溶解氧模糊控制器的功能定義為將A/D轉換后采集到的DO值進行計算,得到偏差E和偏差變化EC并映射到模糊控制表,通過查表的方式得到控制輸出量。
要實現(xiàn)本溶解氧模糊控制器的功能,可以通過定制ROM,完成模糊控制查詢表的存儲[8]。首先在QuartusII 9.1 中建立 Memory Initialization File(.mif)文件,定制所需要的ROM內存空間,然后利用Mega Wizard Plug-In Manager向導工具,生成可以對上述.mif文件進行讀寫的VHDL代碼[9]。由于.mif文件無法綜合浮點數(shù),所以本文在定制ROM內存空間時,將控制量乘以2以轉換為整數(shù),在控制輸出過程中只需要除以相同的倍數(shù)即可[10]。

表2 溶解氧控制表Tab.2 Control list of DO
定制ROM內存空間,包括內存地址和內容的設定。其中,對內存空間的尋址地址由8位二進制數(shù)組成,系統(tǒng)通過對E和EC進行編碼來完成尋址地址的設定。
尋址地址的高4位為對E的編碼,低4位為對EC的編碼,最多可以存儲256條控制規(guī)則。如對于偏差E,由定義可知,E的連續(xù)論域為[-22],離散論域為[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],量化因子 Ke=3,在此將論域分為(-∞,-6]、(-6,-5]、…、[5,6)、[6,+∞)共 13 段。當 E≤-6時,E= -6;當 E> -6且 E≤ -5時,E= -5,以此類推。
在內存單元中,用4位二進制數(shù)對E進行編碼,用eaddress表示編碼后的4位二進制地址,由此可以得到[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6]的編碼分別為[0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100]。
同理可以將EC進行編碼,用ecaddress表示,可以得到[-4,-3,-2,-1,0,1,2,3,4]的編碼分別為[0000,0001,0010,0011,0100,0101,0110,0111,1000]。對偏差E進行地址編碼的VHDL程序代碼如下。


對E的編碼仿真圖如圖1所示。

圖1 偏差編碼仿真圖Fig.1 Simulation of deviation encoding
由圖1中可以看出,該程序代碼能夠正確地對偏差輸入E進行編碼,生成溶解氧模糊控制查詢表尋址地址的高4位地址。
對EC進行編碼的VHDL描述與上述E編碼程序類似,故在此沒有給出。EC的編碼仿真圖如圖2所示。

圖2 偏差變化編碼仿真圖Fig.2 Simulation of deviation change encoding
分別完成對E和EC的編碼后,要完成對控制表的查詢,需要對內存地址進行設定。本文通過將eaddress和ecaddress組合,得到模糊控制查詢表的8位二進制尋址地址,用 temp表示,即 temp< =eaddress&ecaddress。然后將之前定制的ROM內存空間DATAROM,通過元件例化的方式在頂層設計文件中進行實例化。最后以上述8位地址temp尋址,通過查表的方式得到溶解氧模糊控制器的輸出控制量U。本文設計的溶解氧模糊控制器對應的仿真圖形如圖3所示。

圖3 模糊控制器仿真圖Fig.3 Simulation of fuzzy controller
由圖3可以看出,當偏差E為-2、偏差變化EC為3時,通過尋址映射查表得到的控制量為-3。由于在定制ROM內存空間時將控制量放大了2倍,因此,在后續(xù)控制電路中只需將輸出控制量縮小為查表結果的一半即可。
由此可知,本文設計的溶解氧模糊控制器能夠根據(jù)采集到的溶解氧偏差E和偏差變化EC實現(xiàn)快速編碼,并將其映射到模糊控制查詢表,得到相應的模糊控制輸出量,可以滿足實際應用對溶解氧濃度進行快速實時模糊控制的需要。
本文將模糊控制器設計的相關原理與FPGA技術相結合,完成了溶解氧模糊控制器的設計。利用Matlab模糊控制工具箱計算溶解氧模糊控制表,并通過FPGA宏功能模塊的定制,完成對模糊控制表的存儲,縮短了設計周期;充分利用FPGA時鐘頻率高、實時性強的特點,并發(fā)揮VHDL語言設計靈活的優(yōu)點,提高了溶解氧濃度自動控制的實時性與穩(wěn)定性。在QuartusII 9.1開發(fā)平臺上對系統(tǒng)進行編譯和仿真的結果也表明,本設計中的溶解氧模糊控制器能夠實時快速地對溶解氧濃度進行控制。
[1]李玉華,任剛,郭健男.DO作為SBR法控制參數(shù)的應用研究[J].哈爾濱工業(yè)大學學報,2004,36(6):821-823.
[2]歐林林.污水處理中溶解氧模糊控制的研究[D].合肥:合肥工業(yè)大學,2003.
[3]王潔,張淑燕,劉濤,等.基于FPGA的嵌入式多核處理器及SUSAN算法并行化[J].計算機學報,2008,31(11):1996 -2003.
[4]賀今朝.一種基于FPGA的模糊控制器的研究[D].大連:大連理工大學,2002.
[5]Barriga A,Sanchez-Solano S,Brox P,et al.Modeling and implementation of fuzzy systems based on VHDL[J].International Journal of Approximate Reasoning,2004,41(2):164 -178.
[6]張衛(wèi)國,楊向忠.模糊控制理論與應用[M].西安:西北工業(yè)大學出版社,2004.
[7]于浩洋,初紅霞,王希鳳,等.MATLAB實用教程:控制系統(tǒng)仿真與應用[M].北京:化學工業(yè)出版社,2009:133-157.
[8]張科,靖固.一種模糊控制器在FPGA上的分析設計[J].工業(yè)控制計算機,2008,21(8):43 -44.
[9]劉延飛,郭鎖利,王曉戎,等.基于Altera FPGA/CPLD的電子系統(tǒng)設計及工程實例[M].北京:人民郵電出版社,2009:239-244.
[10]Bhasker J.VHDL教程[M].劉雷波,孟一聰,譯.北京:機械工業(yè)出版社,2006.