彭成功,劉艷萍,朱紫嫄
(河北工業(yè)大學(xué) 信息工程學(xué)院,天津 300401)
自1965年L.A.Zadeh教授發(fā)表了關(guān)于模糊集的開(kāi)創(chuàng)性論文一來(lái),模糊理論的應(yīng)用,特別是在工業(yè)控制中的應(yīng)用,得到了迅速的發(fā)展。與此同時(shí),隨著現(xiàn)代集成電路工藝技術(shù)的改進(jìn),使得在一個(gè)芯片上集成千萬(wàn)個(gè)器件成為可能,電子行業(yè)必將向著SOPC方向發(fā)展。20年前這個(gè)趨勢(shì)已經(jīng)十分明確,現(xiàn)在已經(jīng)變成現(xiàn)實(shí),15年前國(guó)內(nèi)聽(tīng)說(shuō)過(guò)Verilog硬件描述語(yǔ)言的不會(huì)超過(guò)幾百人,更別提設(shè)計(jì)復(fù)雜數(shù)字系統(tǒng)了?;诂F(xiàn)在的這個(gè)發(fā)展?fàn)顩r,文中基于FPGA平臺(tái)使用verilog編寫了一個(gè)溫度二維模糊控制系統(tǒng)。
模糊控制器[1]是一種對(duì)系統(tǒng)控制的宏觀方法,其核心是用語(yǔ)言描述的控制規(guī)則。語(yǔ)言控制規(guī)則通常用 “如果…,則…”的方式來(lái)表達(dá)在實(shí)際控制中的專家知識(shí)和經(jīng)驗(yàn)。模糊控制的最大特點(diǎn)是將專家的控制經(jīng)驗(yàn)、知識(shí)表示成語(yǔ)言控制規(guī)則,然后用這些規(guī)則去控制系統(tǒng)。其控制原理如圖1所示。
圖1 模糊控制器原理示意圖Fig.1 Schematic diagram of the fuzzy controller
首先通過(guò)傳感器(下文用的是DS18B20)把檢測(cè)到的物理信號(hào)變成精確的數(shù)字信號(hào),精確的輸入信號(hào)輸入控制器后,把精確的輸入量轉(zhuǎn)換成為模糊集合的隸屬函數(shù),這就是所謂的模糊化,模糊化的目的是把傳感器的輸入轉(zhuǎn)化成知識(shí)庫(kù)可以理解和操作的變量格式;然后,根據(jù)專家的經(jīng)驗(yàn)制定出模糊控制規(guī)則,并進(jìn)行模糊推理,得到一個(gè)模糊輸出集合;最后,根據(jù)模糊推理得到輸出模糊集合隸屬函數(shù),用恰當(dāng)?shù)姆椒ㄕ乙粋€(gè)具有代表性的精準(zhǔn)值作為控制量,去控制被控對(duì)象。
模糊控制器有一維,二維和多維,維數(shù)越多精準(zhǔn)度越高。但隨著維數(shù)的增加,模糊規(guī)則的確定會(huì)更加困難,控制算法會(huì)趨于復(fù)雜化[2]?;谶@些原因,我們?cè)O(shè)計(jì)使用最廣的二維模糊控制器。
設(shè)計(jì)分為3部分:
1)語(yǔ)言控制規(guī)則
2)隸屬函數(shù)
3)控制器輸入輸出規(guī)范化的比例因子
在設(shè)計(jì)一套語(yǔ)言規(guī)則時(shí),必須要考慮它的完整性、交叉性和一致性[1]。
下面來(lái)具體設(shè)計(jì)一個(gè)用于控制溫度的模糊控制器,系統(tǒng)頂層模塊如圖2所示。ROM輸入端口的地址信號(hào)。溫度偏差(error)=設(shè)定溫度-測(cè)量溫度,溫度偏差變化率(rate)=(此刻測(cè)量溫度-上一時(shí)刻的測(cè)量溫度)/時(shí)間間隔,取時(shí)間間隔為1 s,即 rate可由此刻測(cè)量溫度-前一秒的測(cè)量溫度來(lái)衡量。設(shè)置溫度區(qū)間為40~45°C,測(cè)量溫度范圍為 25~45 °C,即 error的論域 E 位-5~20 °C,把E論域劃分為10個(gè)模糊子集,分別用模糊言語(yǔ)表示N(負(fù))、ZO(零)、P0(正 0)、PVS(正很?。S(正?。?、PMS(正中?。M(正中)、PMB(正中大)、PB(正大),PVB(正很大),他們的對(duì)應(yīng)關(guān)系見(jiàn)表1;把rate的論域RT劃分為9個(gè)模糊子集,同樣也用模糊語(yǔ)言表示 NMS(負(fù)中?。S(負(fù)?。VS(負(fù)很?。?、N(負(fù))、ZO(零)、P0(正 0)、PVS(正很小)、PS(正?。MS(正中?。┧麄儗?duì)應(yīng)關(guān)系如表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提供的溫度測(cè)量精度是9到12位,在這里設(shè)定的溫度范圍中只用到10位就可以表示 (具體可參看DS18B20手冊(cè)),該模糊算法子模塊的設(shè)計(jì)程序和仿真結(jié)果(如圖3所示)如下:
PWM波生成子模塊的2個(gè)輸入分別是頻率為10Khz的時(shí)鐘信號(hào)和控制占空比的信號(hào),2個(gè)輸出分別是幾何對(duì)稱的PWM波[8],他們之間有一定的死區(qū)(最大的占空比為40%),這是為了避免功率放大電路MOS管的全部導(dǎo)通。
圖3 模糊算法子模塊仿真圖Fig.3 Simulation result of the fuzzy algorithm sub-module
該模糊算法子模塊的設(shè)計(jì)程序和仿真結(jié)果如圖4所示。
圖4 PWM波生成子模塊仿真圖Fig.4 Simulation result of the PWM waves sub-module
ROM宏模塊的2個(gè)輸入分別是1 MHz的時(shí)鐘信號(hào)和模糊控制算法子模塊中的e_r_ctrl信號(hào),輸出是控制占空比的信號(hào)。
下面來(lái)分析一下ROM存儲(chǔ)器初始化 (.MIF)文件的設(shè)計(jì),首先,把占空比ratio的論域 RT[0,40%]劃分成 9個(gè)模糊子集,它們的應(yīng)用關(guān)系如表3所示;然后,我們?cè)O(shè)計(jì)出溫度偏差(E)、溫度偏差變化率(RT)和占空比控制信號(hào)(R)之間的模糊語(yǔ)言控制規(guī)程,如表 4所示(表中內(nèi)容為 R);最后,以error(高4位)和rate(低四位)為ROM的輸入地址信號(hào)。
該ROM的初始化文件程序和仿真結(jié)果如圖5所示。
表3 Ratio的模糊規(guī)則表Tab.3 Ratio fuzzy rule table
表4 模糊語(yǔ)言控制規(guī)則Tab.4 Fuzzy linguistic control rules
圖5 ROM模塊的仿真圖Fig.5 ROM module simulation figure
加減法模塊有3個(gè)輸入分別是cin、dataa、datab,輸出為溫度偏差或溫度偏差變化率(這里用到了2個(gè)加減法子模塊)。
加減法子模塊的在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個(gè)輸入分別是1 Hz的時(shí)鐘信號(hào)(在前面溫度偏差變化率計(jì)算值,時(shí)間間隔為1 s)和測(cè)量溫度信號(hào),輸出為延時(shí)了一個(gè)時(shí)鐘周期的測(cè)量溫度信號(hào)。
模糊控制器頂層模塊仿真結(jié)果如圖8所示。
對(duì)仿真結(jié)果的分析如下:
當(dāng)前的測(cè)量溫度為1001000000(36°C),前一時(shí)刻測(cè)量溫度為 1000111100(35.75 °C),溫度偏差變化率為 0.25 °C,設(shè)置的溫度為1010100000(42°C),根據(jù)模糊規(guī)則表可知,對(duì)應(yīng)的R域?yàn)镻S,也就是15%,實(shí)驗(yàn)結(jié)果正好為15%。
模糊數(shù)的隸屬函數(shù)可以取各種不同的形狀,如梯形、三角形、鐘形、棒形。其中棒形最為簡(jiǎn)單,是其它隸屬函數(shù)幅寬為零時(shí)的特例。三角形的隸屬函數(shù),形狀簡(jiǎn)單,容易計(jì)算,并且和其它較復(fù)雜的隸屬函數(shù)得到的控制結(jié)構(gòu)差別很小,故別廣泛應(yīng)用。棒形的隸屬函數(shù),可以省去計(jì)算較為復(fù)雜的求重心的部分,這樣整個(gè)控制器的計(jì)算就非常簡(jiǎn)單,因而在實(shí)際應(yīng)用中,便于計(jì)算的實(shí)現(xiàn)。
圖8 模糊控制器頂層模塊仿真結(jié)果Fig.8 Simulation results of the fuzzy controller top-level module
在這個(gè)設(shè)計(jì)中,使用三角形的隸屬函數(shù)來(lái)表示控制規(guī)則條件部分的模糊數(shù),用棒形的隸屬函數(shù)來(lái)表示結(jié)論部分的模糊數(shù)。
基于FPGA平臺(tái)設(shè)計(jì)的溫度二維模糊控制器,充分利用了FPGA的優(yōu)勢(shì),設(shè)計(jì)結(jié)果可行,能夠應(yīng)用到溫度監(jiān)控系統(tǒng)中。
[1]趙振宇,徐用懋.模糊理論和神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)與應(yīng)用[M].北京:清華大學(xué)出版社,1996.
[2]諸靜.模糊控制理論與系統(tǒng)原理[M].北京:機(jī)械工業(yè)出版社,2005.
[3]夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航天航空大學(xué)出版社,2008.
[4]周景潤(rùn),圖雅,張麗敏.基于Quartus II的FPGA/CPLD數(shù)字系統(tǒng)設(shè)計(jì)實(shí)例[M].北京:電子工業(yè)出版社,2007.
[5]Cyclone II Device Halldbook[S].AlteraCorporation,2008.
[6]EDA先鋒工作室.Altera FPGA/CPLD設(shè)計(jì)(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005.
[7]EDA先鋒工作室.Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].北京:人民郵電出版社,2005.
[8]秦艷平,李斌,梁俊龍,等.[J].火箭推進(jìn) ,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.