彭成功,劉艷萍,朱紫嫄
(河北工業(yè)大學 信息工程學院,天津 300401)
自1965年L.A.Zadeh教授發(fā)表了關于模糊集的開創(chuàng)性論文一來,模糊理論的應用,特別是在工業(yè)控制中的應用,得到了迅速的發(fā)展。與此同時,隨著現(xiàn)代集成電路工藝技術的改進,使得在一個芯片上集成千萬個器件成為可能,電子行業(yè)必將向著SOPC方向發(fā)展。20年前這個趨勢已經(jīng)十分明確,現(xiàn)在已經(jīng)變成現(xiàn)實,15年前國內聽說過Verilog硬件描述語言的不會超過幾百人,更別提設計復雜數(shù)字系統(tǒng)了。基于現(xiàn)在的這個發(fā)展狀況,文中基于FPGA平臺使用verilog編寫了一個溫度二維模糊控制系統(tǒng)。
模糊控制器[1]是一種對系統(tǒng)控制的宏觀方法,其核心是用語言描述的控制規(guī)則。語言控制規(guī)則通常用 “如果…,則…”的方式來表達在實際控制中的專家知識和經(jīng)驗。模糊控制的最大特點是將專家的控制經(jīng)驗、知識表示成語言控制規(guī)則,然后用這些規(guī)則去控制系統(tǒng)。其控制原理如圖1所示。

圖1 模糊控制器原理示意圖Fig.1 Schematic diagram of the fuzzy controller
首先通過傳感器(下文用的是DS18B20)把檢測到的物理信號變成精確的數(shù)字信號,精確的輸入信號輸入控制器后,把精確的輸入量轉換成為模糊集合的隸屬函數(shù),這就是所謂的模糊化,模糊化的目的是把傳感器的輸入轉化成知識庫可以理解和操作的變量格式;然后,根據(jù)專家的經(jīng)驗制定出模糊控制規(guī)則,并進行模糊推理,得到一個模糊輸出集合;最后,根據(jù)模糊推理得到輸出模糊集合隸屬函數(shù),用恰當?shù)姆椒ㄕ乙粋€具有代表性的精準值作為控制量,去控制被控對象。
模糊控制器有一維,二維和多維,維數(shù)越多精準度越高。但隨著維數(shù)的增加,模糊規(guī)則的確定會更加困難,控制算法會趨于復雜化[2]。基于這些原因,我們設計使用最廣的二維模糊控制器。
設計分為3部分:
1)語言控制規(guī)則
2)隸屬函數(shù)
3)控制器輸入輸出規(guī)范化的比例因子
在設計一套語言規(guī)則時,必須要考慮它的完整性、交叉性和一致性[1]。
下面來具體設計一個用于控制溫度的模糊控制器,系統(tǒng)頂層模塊如圖2所示。ROM輸入端口的地址信號。溫度偏差(error)=設定溫度-測量溫度,溫度偏差變化率(rate)=(此刻測量溫度-上一時刻的測量溫度)/時間間隔,取時間間隔為1 s,即 rate可由此刻測量溫度-前一秒的測量溫度來衡量。設置溫度區(qū)間為40~45°C,測量溫度范圍為 25~45 °C,即 error的論域 E 位-5~20 °C,把E論域劃分為10個模糊子集,分別用模糊言語表示N(負)、ZO(零)、P0(正 0)、PVS(正很小)、PS(正小)、PMS(正中小)、PM(正中)、PMB(正中大)、PB(正大),PVB(正很大),他們的對應關系見表1;把rate的論域RT劃分為9個模糊子集,同樣也用模糊語言表示 NMS(負中小)、NS(負小)、NVS(負很小)、N(負)、ZO(零)、P0(正 0)、PVS(正很小)、PS(正小)、PMS(正中小)他們對應關系如表2所示。

圖2 模糊控制器系統(tǒng)頂層框圖Fig.2 Top-level block diagram of the fuzzy controller system

表1溫度偏差模糊化表Tab.1 Temperature deviation fuzzification table

表2溫度偏差變化率模糊表Tab.2 Fuzzy table of the rate of change of temperature deviation
由于DS18B20提供的溫度測量精度是9到12位,在這里設定的溫度范圍中只用到10位就可以表示 (具體可參看DS18B20手冊),該模糊算法子模塊的設計程序和仿真結果(如圖3所示)如下:



PWM波生成子模塊的2個輸入分別是頻率為10Khz的時鐘信號和控制占空比的信號,2個輸出分別是幾何對稱的PWM波[8],他們之間有一定的死區(qū)(最大的占空比為40%),這是為了避免功率放大電路MOS管的全部導通。

圖3 模糊算法子模塊仿真圖Fig.3 Simulation result of the fuzzy algorithm sub-module
該模糊算法子模塊的設計程序和仿真結果如圖4所示。

圖4 PWM波生成子模塊仿真圖Fig.4 Simulation result of the PWM waves sub-module
ROM宏模塊的2個輸入分別是1 MHz的時鐘信號和模糊控制算法子模塊中的e_r_ctrl信號,輸出是控制占空比的信號。
下面來分析一下ROM存儲器初始化 (.MIF)文件的設計,首先,把占空比ratio的論域 RT[0,40%]劃分成 9個模糊子集,它們的應用關系如表3所示;然后,我們設計出溫度偏差(E)、溫度偏差變化率(RT)和占空比控制信號(R)之間的模糊語言控制規(guī)程,如表 4所示(表中內容為 R);最后,以error(高4位)和rate(低四位)為ROM的輸入地址信號。
該ROM的初始化文件程序和仿真結果如圖5所示。

表3 Ratio的模糊規(guī)則表Tab.3 Ratio fuzzy rule table

表4 模糊語言控制規(guī)則Tab.4 Fuzzy linguistic control rules

圖5 ROM模塊的仿真圖Fig.5 ROM module simulation figure



加減法模塊有3個輸入分別是cin、dataa、datab,輸出為溫度偏差或溫度偏差變化率(這里用到了2個加減法子模塊)。
加減法子模塊的在cin為0和1情況下的仿真圖,如圖6、7 所示。

圖6 cin=1的仿真圖Fig.6 Simulation of the cin=1

圖7 cin=0的仿真圖Fig.7 Simulation of the cin=0
數(shù)據(jù)寄存器宏模塊有2個輸入分別是1 Hz的時鐘信號(在前面溫度偏差變化率計算值,時間間隔為1 s)和測量溫度信號,輸出為延時了一個時鐘周期的測量溫度信號。
模糊控制器頂層模塊仿真結果如圖8所示。
對仿真結果的分析如下:
當前的測量溫度為1001000000(36°C),前一時刻測量溫度為 1000111100(35.75 °C),溫度偏差變化率為 0.25 °C,設置的溫度為1010100000(42°C),根據(jù)模糊規(guī)則表可知,對應的R域為PS,也就是15%,實驗結果正好為15%。
模糊數(shù)的隸屬函數(shù)可以取各種不同的形狀,如梯形、三角形、鐘形、棒形。其中棒形最為簡單,是其它隸屬函數(shù)幅寬為零時的特例。三角形的隸屬函數(shù),形狀簡單,容易計算,并且和其它較復雜的隸屬函數(shù)得到的控制結構差別很小,故別廣泛應用。棒形的隸屬函數(shù),可以省去計算較為復雜的求重心的部分,這樣整個控制器的計算就非常簡單,因而在實際應用中,便于計算的實現(xiàn)。

圖8 模糊控制器頂層模塊仿真結果Fig.8 Simulation results of the fuzzy controller top-level module
在這個設計中,使用三角形的隸屬函數(shù)來表示控制規(guī)則條件部分的模糊數(shù),用棒形的隸屬函數(shù)來表示結論部分的模糊數(shù)。
基于FPGA平臺設計的溫度二維模糊控制器,充分利用了FPGA的優(yōu)勢,設計結果可行,能夠應用到溫度監(jiān)控系統(tǒng)中。
[1]趙振宇,徐用懋.模糊理論和神經(jīng)網(wǎng)絡的基礎與應用[M].北京:清華大學出版社,1996.
[2]諸靜.模糊控制理論與系統(tǒng)原理[M].北京:機械工業(yè)出版社,2005.
[3]夏宇聞.Verilog數(shù)字系統(tǒng)設計教程[M].北京:北京航天航空大學出版社,2008.
[4]周景潤,圖雅,張麗敏.基于Quartus II的FPGA/CPLD數(shù)字系統(tǒng)設計實例[M].北京:電子工業(yè)出版社,2007.
[5]Cyclone II Device Halldbook[S].AlteraCorporation,2008.
[6]EDA先鋒工作室.Altera FPGA/CPLD設計(基礎篇)[M].北京:人民郵電出版社,2005.
[7]EDA先鋒工作室.Altera FPGA/CPLD設計(高級篇)[M].北京:人民郵電出版社,2005.
[8]秦艷平,李斌,梁俊龍,等.[J].火箭推進 ,2012(5):7-12.
QIN Yan-ping,LI Bin,LIANG Jun-long,et al.Control-oriented research on dynamic characteristics of fuel regulator[J].Journal of Rocket Propulsion,2012(5):7-12.