米一博,石紅瑞
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
?
模糊PID算法在溫度對(duì)象中的應(yīng)用
米一博,石紅瑞
(東華大學(xué) 信息科學(xué)與技術(shù)學(xué)院,上海 201620)
針對(duì)加熱爐溫度存在慣性、滯后等現(xiàn)象,在傳統(tǒng)PID控制的基礎(chǔ)上,利用模糊控制規(guī)則在線修正PID參數(shù),實(shí)現(xiàn)對(duì)溫度更加精準(zhǔn)的控制。實(shí)驗(yàn)采用MCGS工控組態(tài)軟件,結(jié)合VB及Matlab的COM技術(shù),開(kāi)發(fā)了模糊PID控制算法,應(yīng)用于實(shí)驗(yàn)加熱爐的溫度控制。實(shí)驗(yàn)結(jié)果表明: 模糊PID控制方案在超調(diào)量、調(diào)節(jié)時(shí)間等方面具有較好的控制性能。
模糊PID溫度控制MCGS組態(tài)軟件COM技術(shù)
溫度是工業(yè)中常見(jiàn)的一個(gè)控制參數(shù),在不同程度上存在慣性、滯后及非線性等特點(diǎn)。常規(guī)的PID控制器經(jīng)過(guò)參數(shù)整定后能夠?qū)崿F(xiàn)對(duì)溫度對(duì)象的控制,但當(dāng)溫度對(duì)象發(fā)生改變時(shí),控制器通常難以適應(yīng)變化后的對(duì)象,從而產(chǎn)生偏差和震蕩,難以實(shí)現(xiàn)對(duì)溫度對(duì)象精確的控制[1-3]。模糊控制是一種智能化控制策略,它的特點(diǎn)是魯棒性較好,對(duì)過(guò)程參數(shù)的變化具有較強(qiáng)的適應(yīng)能力,具備較好的動(dòng)態(tài)響應(yīng)性能[4-5]。筆者將模糊控制與常規(guī)PID控制器相結(jié)合,設(shè)計(jì)了模糊PID控制方案應(yīng)用于溫度對(duì)象。
以電加熱爐實(shí)驗(yàn)裝置為被控對(duì)象,設(shè)計(jì)如圖1所示的溫度控制系統(tǒng)。系統(tǒng)以工控機(jī)和I/O卡板件(泓格i7017 I/O卡件,泓格i7024O/I卡件,泓格i7052串口通信卡件)為硬件設(shè)備,監(jiān)控軟件采用MCGS工業(yè)組態(tài)軟件,實(shí)現(xiàn)對(duì)電加熱爐溫度對(duì)象的控制。
模糊PID控制器是以響應(yīng)偏差e及偏差變化率ec作為輸入,用模糊控制規(guī)則對(duì)PID控制器的參數(shù)P(KP),I(KI),D(KD)進(jìn)行實(shí)時(shí)修改,以適應(yīng)不同時(shí)刻的偏差及偏差變化率對(duì)PID參數(shù)的要求。模糊PID控制器的控制原理如圖2所示。
圖1 溫度控制系統(tǒng)示意
圖2 模糊PID控制器原理示意
模糊PID控制器的算法主要包括模糊化、模糊策略以及解模糊三部分:
1) 模糊化。定義e的模糊論域?yàn)閧-6,-4, -2, 0, 2, 4, 6};ec的模糊論域?yàn)閧-3,-2, -1, 0, 1, 2, 3};KP,KI,KD的模糊論域?yàn)閧1/2,3/5,3/4,1,4/3,5/3,2 }。然后以等腰三角形為隸屬函數(shù),對(duì)所得e和ec進(jìn)行量化得到模糊論域。
2) 模糊規(guī)則。即KP,KI,KD與e,ec的關(guān)系,其主要的控制規(guī)則[6-7]: 當(dāng)|e|較大時(shí),應(yīng)該增大KP,減小KD,以提高控制系統(tǒng)的跟蹤性能,同時(shí)為了避免系統(tǒng)超調(diào)過(guò)大,應(yīng)限制積分作用;當(dāng)|e|中等時(shí),為了降低系統(tǒng)的超調(diào)量,應(yīng)該減小KP,同時(shí)保持KI,KD的值應(yīng)該適中,以保證系統(tǒng)的響應(yīng)速度;當(dāng)|e|較小時(shí),KP,KI,KD都應(yīng)該增大,以提高系統(tǒng)的穩(wěn)態(tài)性能;同時(shí)為了避免系統(tǒng)在設(shè)定值附近抖動(dòng),提高抗干擾性,當(dāng)ec較小時(shí),KD可以取大一些;而當(dāng)ec較大時(shí),KD取得應(yīng)該小一些。具體的KP,KI,KD的模糊控制規(guī)則見(jiàn)表1~表3所列。
表1 KP控制規(guī)則
表2 KI控制規(guī)則
表3 KD控制規(guī)則
MCGS是一種通用的工業(yè)組態(tài)軟件,基于獲取的現(xiàn)場(chǎng)數(shù)據(jù),通過(guò)其軟件包中的工具對(duì)硬件、數(shù)據(jù)及圖像等進(jìn)行組態(tài)以快速構(gòu)成控制系統(tǒng),為用戶提供工程解決方案[8]。MCGS中系統(tǒng)的實(shí)現(xiàn)步驟包括硬件組態(tài)、數(shù)據(jù)配置、策略組態(tài)及畫(huà)面組態(tài)等,每個(gè)步驟都有對(duì)應(yīng)的軟件包以供使用,其中策略組態(tài)部分包括自編程序和調(diào)用功能構(gòu)件兩種方式。MCGS自帶的編程器只能進(jìn)行有限行數(shù)的代碼編寫(xiě),且支持的語(yǔ)句類(lèi)型亦有限,而由于模糊PID控制算法的復(fù)雜性,需要應(yīng)用功能構(gòu)件的方式來(lái)實(shí)現(xiàn)。利用MCGS和MCGS高級(jí)開(kāi)發(fā)包實(shí)現(xiàn)模糊自適應(yīng)控制算法的過(guò)程如下:
1) 生成程序框架。MCGS使用Active DLL方式實(shí)現(xiàn)功能構(gòu)件,通過(guò)規(guī)范的OLE接口將構(gòu)件掛接到軟件中,將它與VB進(jìn)行交互鏈接,利用VB的強(qiáng)大軟件開(kāi)發(fā)功能,可以開(kāi)發(fā)出用戶定制功能的功能構(gòu)件[9]。
a) 安裝MCGS高級(jí)開(kāi)發(fā)包,然后啟動(dòng)VB,選擇“外接程序菜單”—“MCGS開(kāi)發(fā)向?qū)А薄斑\(yùn)行策略功能構(gòu)件”,即可生成功能構(gòu)件的源程序框架。
b) 需要進(jìn)行兩個(gè)步驟: 進(jìn)行構(gòu)件界面的設(shè)計(jì);根據(jù)構(gòu)件功能按照MCGS規(guī)范接口進(jìn)行編程。根據(jù)模糊PID算法的原理,首先設(shè)計(jì)構(gòu)件在MCGS組態(tài)和運(yùn)行環(huán)境中的兩個(gè)顯示界面,在組態(tài)界面中設(shè)置輸入值誤差e,誤差變化率ec及PID各參數(shù)KP,KI,KD所對(duì)應(yīng)的數(shù)據(jù)對(duì)象,運(yùn)行界面中顯示當(dāng)前誤差,誤差變化率及PID各參數(shù)的變化量。
c) 根據(jù)界面中每個(gè)對(duì)象的功能對(duì)接口進(jìn)行編寫(xiě),MCGS的規(guī)范接口包括執(zhí)行菜單命令,設(shè)置構(gòu)件的屬性,執(zhí)行構(gòu)件的功能和編譯查錯(cuò)時(shí)調(diào)用,這里的重點(diǎn)是按照各個(gè)接口的性質(zhì)及標(biāo)準(zhǔn)格式,將功能寫(xiě)入程序中,便能實(shí)現(xiàn)所需的基本構(gòu)件功能。
2) VB與Matlab的實(shí)時(shí)數(shù)據(jù)交換。VB中可以自行編寫(xiě)代碼進(jìn)行數(shù)據(jù)處理,但是實(shí)現(xiàn)的速度和效果遠(yuǎn)不及Matlab,而Matlab在強(qiáng)化自身數(shù)據(jù)分析能力的同時(shí),還積極擴(kuò)展軟件的外部開(kāi)發(fā)功能。利用Matlab的COM技術(shù)能夠輕松實(shí)現(xiàn)VB與Matlab的通信,進(jìn)行實(shí)時(shí)數(shù)據(jù)交換[10-11]。首先根據(jù)模糊自適應(yīng)算法原理在Matlab中編寫(xiě)實(shí)現(xiàn)模糊PID控制的M文件,然后在Matlab界面輸入“mbuilder-setup”,選擇外部編譯器,輸入“comtool”,在彈出的對(duì)話框中新建工程,載入編輯好的M文件,點(diǎn)擊Build編譯生成COM組件,此時(shí)會(huì)生成一個(gè)Library文件,這是一個(gè)進(jìn)程內(nèi)組件,以.dll形式存在,可脫離軟件獨(dú)立運(yùn)行。完成之后在VB的開(kāi)發(fā)環(huán)境中選擇引入COM組件,即添加Library文件,引入該組件后,在VB中配置好輸入和輸出的參數(shù),實(shí)現(xiàn)算法功能。
3) MCGS調(diào)試與調(diào)用。這里需要啟動(dòng)MCGS工程(新建或打開(kāi)原有工程)才能進(jìn)行調(diào)試,根據(jù)輸入輸出數(shù)據(jù)的顯示對(duì)VB程序進(jìn)行修改,修改完成后將VB工程重新編譯,生成**.dll文件,最后將文件拷貝到“目錄: MCGSProgramAddIns用戶定制構(gòu)件”中,啟動(dòng)MCGS在“工具”—“策略構(gòu)建管理”—“用戶定制構(gòu)建”選擇“模糊PID控制器(在編程環(huán)節(jié)自命名)”進(jìn)行安裝。安裝完成之后在運(yùn)行策略的組態(tài)窗口的策略工具箱內(nèi),會(huì)顯示“模糊自適應(yīng)控制器”,可在系統(tǒng)組態(tài)時(shí)直接調(diào)用。
首先新建MCGS工程,構(gòu)建實(shí)時(shí)數(shù)據(jù)庫(kù),配置好各種數(shù)據(jù)參數(shù);然后進(jìn)行組態(tài)畫(huà)面的設(shè)計(jì),實(shí)時(shí)顯示溫度參數(shù)曲線和功能畫(huà)面;之后對(duì)設(shè)備窗口進(jìn)行配置,在該窗口中選擇所構(gòu)成的溫度系統(tǒng)硬件進(jìn)行驅(qū)動(dòng)以獲取數(shù)據(jù),同時(shí)在此窗口中調(diào)用“模糊PID控制器”,根據(jù)彈出的對(duì)話框選擇參數(shù)進(jìn)行匹配;最后編譯運(yùn)行,系統(tǒng)開(kāi)始工作。
實(shí)驗(yàn)中,在設(shè)備窗口分別選擇軟件自帶的“PID控制器”與編寫(xiě)的“模糊PID控制器”進(jìn)行實(shí)驗(yàn)。設(shè)定目標(biāo)溫度為40℃,調(diào)節(jié)的結(jié)果如圖3所示,圖3a)為調(diào)用PID控制器(參數(shù)為KP=2,KI=0.2,KD=0.05)的結(jié)果,圖3b)為調(diào)用模糊PID控制器(初始參數(shù)設(shè)為KP=2, KI=0.2, KD=0.05,穩(wěn)態(tài)參數(shù)為KP=1.89, KI=0.54, KD=0.26)的結(jié)果。
實(shí)驗(yàn)結(jié)果顯示,PID控制器的超調(diào)量較大,當(dāng)設(shè)定值為40℃時(shí),最高溫度達(dá)到77℃,且系統(tǒng)調(diào)節(jié)時(shí)間較長(zhǎng),持續(xù)將近650s;模糊PID算法的超調(diào)量較小,且調(diào)節(jié)時(shí)間為300s左右。模糊PID控制方案體現(xiàn)了較為優(yōu)越的動(dòng)態(tài)性能,無(wú)論在超調(diào)量、調(diào)節(jié)時(shí)間還是抗干擾方面都具備較好的控制性能。
圖3 實(shí)驗(yàn)結(jié)果
將模糊算法與PID算法相結(jié)合,通過(guò)模糊規(guī)則在線修正PID控制算法的參數(shù),以適應(yīng)過(guò)程中對(duì)象的變化,且在溫度對(duì)象中進(jìn)行應(yīng)用,體現(xiàn)了算法較好的動(dòng)態(tài)性能。模糊PID算法無(wú)需精確模型便能實(shí)現(xiàn)對(duì)對(duì)象的控制,對(duì)溫度對(duì)象的控制具有不錯(cuò)的效果,實(shí)際系統(tǒng)中具備可行性。
[1]YOSHITANI N, HASEGAWA A. Model-based Control of Strip Temperature for the Heating Furnace in Continuous Annealing[J].Control Systems Technology, 1998, 6(02): 146-156.
[2]封子文,李宏光,陳蘭朋,等.基于PID控制器性能評(píng)價(jià)[J].石油化工自動(dòng)化, 2012, 48(03): 30-33.
[3]俞仁皓,宋家海,王建.松散回潮工序回風(fēng)溫度PID控制參數(shù)的優(yōu)化[J].煙草科技, 2010(07): 8-10.
[4]王永富,柴天佑.自適應(yīng)模糊控制理論的研究綜述[J].控制工程,2006,13(03): 193-198.
[5]王樹(shù)東,張東,劉旭東,等.模糊控制在城市污水處理中的應(yīng)用[J].工業(yè)儀表與自動(dòng)化裝置,2010(02): 16-18.
[6]高憲文,趙亞平.焦?fàn)t模糊免疫自適應(yīng)PID控制方法的應(yīng)用研究[J].控制與決策,2005,20(12): 1346-1349.
[7]石紅瑞,劉璽,劉勇,等.二次開(kāi)發(fā)WinCC嵌入模糊控制算法[J].石油化工自動(dòng)化,2002,38(01): 39-41.
[8]鄒偉,楊平,徐德.基于MCGS組態(tài)軟件的上位機(jī)控制系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2008,30(12): 103-108.
[9]陳超洋,陳華德,馬龍博. MCGS組態(tài)軟件與VB數(shù)據(jù)交換的實(shí)現(xiàn)[J].工業(yè)儀表與自動(dòng)化裝置,2009(02): 86-88.
[10]黃錫泉,龍藝秋.基于COM組件的VB與Matlab接口編程[J].電腦編程技巧與維護(hù),2005(01): 34-36.
[11]潘愛(ài)民.COM原理及應(yīng)用[M].北京: 清華大學(xué)出版社,1999: 152-220.
Application of Fuzzy-PID Algorithm in Temperature Control
Mi Yibo, Shi Hongrui
(College of Information Science and Technology, Donghua University,Shanghai, 201620, China)
Abstracts: Aiming at problems of temperature inertia and lag, fuzzy control rules are applied to tune PID parameters to realize more accurate temperature control based on classic PID control. The fuzzy-PID control algorithm is developed with adopting MCGS and combination of VB and Matlab’s COM technology, and is applied in temperature control of a heating furnace. The experiment results show fuzzy-PID algorithm has better performance on overshoot and setting time.
fuzzy-PID;temperature control;MCGS configuration software;COM technology
米一博(1991—),男,東華大學(xué)在讀碩士研究生,主要研究方向?yàn)橄冗M(jìn)工業(yè)控制技術(shù)。
TP273
B
1007-7324(2016)04-0029-03
稿件收到日期: 2016-03-11。