羅庚興
(廣東松山職業(yè)技術(shù)學(xué)院,廣東 韶關(guān) 512126)
模糊控制器是一種新型控制器,其優(yōu)點是不要求掌握受控對象的精確數(shù)學(xué)模型,而根據(jù)人工控制規(guī)則組織決策表,然后由該決策表決定控制量的大小[1]。PLC是集成了微電子技術(shù)、計算機技術(shù)和自動控制技術(shù)等新技術(shù)的新型工業(yè)控制裝置。將模糊控制器與PLC結(jié)合起來,揚長避短,既具有模糊控制靈活而適應(yīng)性強的優(yōu)點,又具有PLC可靠性高、參數(shù)監(jiān)控修改方便、通訊便捷等優(yōu)點。采用PLC來實現(xiàn)模糊控制,將使模糊控制在工業(yè)控制中發(fā)揮更大的作用。
模糊控制系統(tǒng)的設(shè)計以基本二維模糊控制器的設(shè)計為基礎(chǔ),圖1所示為結(jié)構(gòu)框圖。模糊控制器包括輸入量模糊化、模糊推理和解模糊三個部分。圖中r為設(shè)定值,y為測量值,u為輸出值。e為誤差,計算公式為e=r-y;ec為誤差變化率,計算公式為ec=e1-e2式中,式中,e1為當(dāng)前采樣的誤差,e2為上次采樣的誤差。E和EC分別為e和ec模糊化后的模糊變量。ΔU為輸出模糊變量,ΔU為ΔU解模糊化后的輸出增量,u為精確輸出量。Ke、Kec分別為e、ec的模糊量化因子。Ku為Δu的比例因子。
圖1 模糊控制系統(tǒng)結(jié)構(gòu)圖
設(shè)定模糊變量E的模糊論域為[-3,3],并將其量化為7個等級{-3,-2,-1,0,1,2,3}。設(shè)定模糊變量 EC 的模糊論域為[-2,2],并將其量化為 5 個等級{-2,-1,0,1,2,}。輸出模糊變量ΔU的模糊論域為[-3,3],并量化為7個等級{-3,-2,-1,0,1,2,3}。
設(shè)定模糊變量的語言值集合。設(shè)定輸入模糊變量E和輸出模糊變量ΔU的語言值集合為:{負大(NB),負中(NM),負小(NS),零(ZO),正小(PS),正中(PM),正大(PB)}七級語言變量。設(shè)定輸入模糊變量EC語言值集合為:{負大(NB),負小(NS),零(ZO),正小(PS),正大(PB)}五級語言變量。
圖2 模糊變量的語言值隸屬函數(shù)曲線
設(shè)定模糊變量語言值隸屬函數(shù)。設(shè)定輸入模糊變量E、EC和輸出模糊變量ΔU取三角形隸屬函數(shù),如圖2所示。
設(shè)定的輸入模糊變量E的模糊論域[-3,3],假設(shè)實際論域e∈[-15,15];輸入模糊變量 EC 的模糊論域[-2,2],假設(shè)實際論域 ec∈[-0.4,0.4];輸出模糊變量 ΔU 的模糊論域[-3,3],假設(shè)實際論域u∈[-3,3]。根據(jù)以上設(shè)定,量化因子和比例因子的計算式如下
模糊變量E有7級語言變量,模糊變量EC有5級語言變量,所以輸出模糊變量ΔU總共有35條模糊控制規(guī)則。根據(jù)基本控制理論和經(jīng)驗,總結(jié)如下35條規(guī)則
上述模糊控制規(guī)則語句可繪制成模糊控制規(guī)則表(如表1)。
表1 模糊控制規(guī)則表
根據(jù)模糊控制規(guī)則表,選用Mamdani的極大-極小推理法進行模糊推理合成,可得到輸出控制模糊變量ΔU。解模糊方法選用加權(quán)平均法。加權(quán)平均法較適合輸出模糊集的隸屬度函數(shù)是對稱情況。
采用MATLAB的模糊邏輯工具箱進行分析仿真和計算,離線求出每一對模糊論域上的輸入(E,EC)所對應(yīng)的輸出控制變量 ΔU。
在MATLAB命令窗口運行Fuzzy函數(shù)進入模糊邏輯編輯器,并建立一個新的.fis文件,選擇控制類型為Mamdani型,根據(jù)上面的分析分別輸入E、EC和ΔU的隸屬函數(shù)和量化區(qū)間,并根據(jù)表1輸入模糊控制規(guī)則。取與的方法(And method)為min,或的方法(Or method)為max,解模糊化(Defuzzification)的方法為centroid,這樣就建立了一個.fis系統(tǒng)文件[6],取名為 FC1.fis。
完成模糊控制器FC1.fis文件的編輯之后,通過編輯器上的命令View→Rules,打開Rule Viewer窗口,在輸入?yún)^(qū)分別的輸入模糊論域(E,EC)的所有取值組合,求取對應(yīng)的輸出控制變量ΔU的值如表2所示。
表2 模糊控制查詢表
模糊控制算法的程序結(jié)構(gòu)如圖3所示。OB1是主程序,用于控制系統(tǒng)起停和調(diào)用子程序FC10和FC12。功能FC10用于實現(xiàn)輸入輸出模擬量的規(guī)范化處理,誤差 e和誤差變化率ec超限處理,將 e和ec模糊化為E和EC,并對E和EC超限處理。功能FC12用于實現(xiàn)查模糊控制表,求得輸出模糊增量ΔU。OB35是循環(huán)中斷組織塊,實現(xiàn)每采樣時刻調(diào)用功能FC11。功能FC11用于定時計算e和ec,將ΔU解模糊為ΔU,計算u=ΣΔU。
數(shù)據(jù)塊DB10用于存放設(shè)定值、測量值、輸出值、誤差和誤差變化率及其量化值、量化因子、比例因子等參數(shù)。數(shù)據(jù)塊DB11用于存放模糊控制查詢表 ΔU的數(shù)據(jù)。
模糊控制設(shè)計流程圖如圖4所示。
圖3 程序結(jié)構(gòu)框圖
共享數(shù)據(jù)塊DB10的參數(shù)及數(shù)據(jù)類型如表3所示。為了運算精確,輸入輸出變量、誤差和誤差變化率、量化因子等參數(shù)均設(shè)置成實型數(shù)據(jù)。因為PLC的內(nèi)部存儲器地址是32位的,誤差和誤差變化率的量化值E和EC必須設(shè)置成32位的整型數(shù)據(jù)。
圖4 模糊控制算法流程圖
根據(jù)模糊控制查詢表表2中ΔU的值按由左到右、由上到下的順序依次填入共享數(shù)據(jù)塊DB11中的DBD0~DBD136中,共35個數(shù)據(jù),如表4。ΔU的數(shù)據(jù)類型選擇為實型,ΔU的數(shù)據(jù)采用基址+變址的尋址方式訪問,基址為0,偏移地址為:
表3 參數(shù)數(shù)據(jù)塊
表4 模糊控制查詢表數(shù)據(jù)塊
在FC11中編寫采集輸入量e和ec并計算輸出量u的程序。程序段1用于計算誤差e并將之保存到DB10.DBD24中。程序段2和3用于計算誤差變化率ec,初始采樣時的誤差變化率為初次誤差減初次誤差,用開關(guān)M0.6實現(xiàn)初始誤差變化率的計算。程序段4~6用于計算輸出量u。考慮輸出量的非線性,對輸出量進行了超上限和超下限處理。
輸入采樣和輸出刷新的定時時間,在循環(huán)中斷OB35的硬件組態(tài)中設(shè)定。這里設(shè)為1 000 ms。通過OB35中調(diào)用FC11實現(xiàn)每隔1 s鐘采樣輸入和刷新輸出的控制。
根據(jù)模糊量E和EC查詢模糊控制輸出ΔU是實現(xiàn)PLC模糊控制器的關(guān)鍵。在FC10中編寫程序?qū)崿F(xiàn):將e和ec模糊化為E和EC,分別存放在數(shù)據(jù)寄存器 DB10.DBD36和 DB10.DBD40中,并對E和EC超限處理,使E的數(shù)值在模糊論域[-3,3]中,EC的數(shù)值在模糊論域[-2,2]中。
在FC12中編寫程序,實現(xiàn)模糊控制輸出ΔU的數(shù)據(jù)查詢。程序如下:
打開仿真軟件西門子STEP7的PLCSIM,按圖6所示輸入模塊。給定值 DB10.DBD0、測量值 DB10.DBD4、誤差 DB10.DBD24、誤差變化率 DB10.DBD32、模糊輸出增量 DB10.DBD44的數(shù)據(jù)類型均選擇為實型(Real);過程值PIW294數(shù)據(jù)類型選擇為整型,輸入方式為滑塊式(Slider:Int);模糊誤差DB10.DBD36和模糊誤差變化率DB10.DBD40的數(shù)據(jù)類型選擇為有符號整型(Integer)。將圖3所示的程序及組態(tài)好的硬件下載到仿真軟件中。運行仿真軟件,將鼠標放在PIW294輸入模塊的滑塊上,按下方向鍵左(表示+)或右(表示-),改變測量值的大小,可以觀察到誤差DB10.DBD24、誤差變化率DB10.DBD32及其分別對應(yīng)的量化值DB10.DBD36和DB10.DBD40,也可以觀察到模糊輸出增量DB10.DBD44的值。
圖5 功能FC11定時計算誤差e、誤差變化率ec和輸入u的程序
通過觀察仿真值,并與表2的值進行對照,可以推斷出控制程序運行正確。
模糊控制器與PLC結(jié)合起來,通過STEP7軟件的存儲器間址尋址方式實現(xiàn)模糊控制策略,既保留了PLC控制系統(tǒng)可靠、靈活、適應(yīng)能力強的特點,又極大提高了控制系統(tǒng)的智能化程度。這種控制策略對現(xiàn)有大時滯、非線性、建模困難的過控對象的技術(shù)改造很有意義。
[1]陶永華主編.新型PID控制及其應(yīng)用(第2版)[M].北京:機械工業(yè)出版社,2002.
[2]羅庚興,寧玉珊編著.大中型PLC應(yīng)用技術(shù)[M].北京:北京師范大學(xué)出版集團,2010.
[3]褚靜.模糊控制原理與應(yīng)用[M].北京:機械工業(yè)出版社,1998.
[4]王晶晶.在S7-300中利用模糊控制算法實現(xiàn)恒溫控制[J].山東電子,2002(4):31-32.
[5]謝仕宏編著.MATLAB R2008控制系統(tǒng)動態(tài)仿真實例教程[M].北京:化學(xué)工業(yè)出版社,2009.
[6]羅庚興.PID參數(shù)模糊自整定控制器在加熱爐煤氣流量控制中的應(yīng)用[J].南方金屬,2007(5):25-28.
[7]瞿楓,徐中宏,孫冀.基于西門子S7-300PLC的模糊控制實現(xiàn)[J].南京師范大學(xué)學(xué)報(工程技術(shù)版),2007(12):23-27.
[8]廖常初主編.S7-300/400PLC應(yīng)用技術(shù)[M].北京:機械工業(yè)出版社,2005.