文 波,孟令軍,張曉春,韓朝輝,趙盼盼
(中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西太原 030051)
?
基于增量式PID算法的水溫自動(dòng)控制器設(shè)計(jì)
文 波,孟令軍,張曉春,韓朝輝,趙盼盼
(中北大學(xué)電子測(cè)試技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,山西太原 030051)
設(shè)計(jì)了一種基于增量式PID算法的溫度自動(dòng)控制器,主要由溫度采集、液晶顯示、鍵盤輸入、升溫降溫驅(qū)動(dòng)電路等組成。系統(tǒng)以單片機(jī)AT89S52為控制核心,由DS18B20負(fù)責(zé)外部水溫的采集。目標(biāo)溫度值經(jīng)外部鍵盤輸入后,通過(guò)AT89S52內(nèi)部的增量式PID算法確定固態(tài)繼電器的狀態(tài),實(shí)現(xiàn)對(duì)升溫和降溫電路的驅(qū)動(dòng),最終達(dá)到目標(biāo)溫度并保持恒定。同時(shí)液晶顯示屏能夠?qū)崟r(shí)顯示當(dāng)前實(shí)際溫度值、目標(biāo)溫度值以及水溫隨時(shí)間變化的曲線。實(shí)驗(yàn)結(jié)果表明系統(tǒng)能實(shí)現(xiàn)全量程范圍內(nèi)(10~80 ℃)自動(dòng)升溫、降溫功能,在15 min內(nèi)自動(dòng)達(dá)到設(shè)定的目標(biāo)溫度值,測(cè)量誤差保持在0.5 ℃以內(nèi)。該系統(tǒng)滿足現(xiàn)代工業(yè)控制領(lǐng)域智能、快速、高精度和人性化的需求。
數(shù)字溫度傳感器;增量式PID算法;高精度;溫度;自動(dòng)控制
在現(xiàn)代冶金、石油、化工及電力生產(chǎn)過(guò)程中,溫度作為重要的熱工參數(shù)實(shí)現(xiàn)其高精度、快速準(zhǔn)確的自動(dòng)控制具有重要的意義及實(shí)用價(jià)值。由于水溫的控制受散熱、環(huán)境溫度等諸多因素影響,其加熱和制冷過(guò)程是一個(gè)非穩(wěn)態(tài)過(guò)程。增量式PID控制算法由于其技術(shù)成熟、不需要建立數(shù)學(xué)模型、控制效果和魯棒性好等優(yōu)點(diǎn)已廣泛應(yīng)用在工業(yè)生產(chǎn)中,它使得大多數(shù)工業(yè)控制系統(tǒng)能夠獲得較好的閉環(huán)控制性能[1-2]。該控制器以AT89S52作為主控芯片,在控制器內(nèi)部以軟件編程形式實(shí)現(xiàn)增量式數(shù)字PID算法,通過(guò)控制外部繼電器的通斷來(lái)達(dá)到溫度的自動(dòng)升溫和降溫效果,在提高能源利用效率的同時(shí)也實(shí)現(xiàn)了溫度的快速準(zhǔn)確控制。
系統(tǒng)主要包括核心控制器件AT89S52單片機(jī)及其外圍電路、電源模塊、溫度采集模塊、升溫降溫驅(qū)動(dòng)電路、按鍵輸入模塊及液晶顯示模塊。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)框圖
系統(tǒng)選用的單片機(jī)AT89S52是一款8位的CMOS微處理器,具有高性能、低功耗的特點(diǎn)。芯片內(nèi)部擁有8KB的可編程FLASH存儲(chǔ)器,支持串口下載和串口調(diào)試,同時(shí)內(nèi)部具有3個(gè)16位定時(shí)/計(jì)數(shù)器,1個(gè)全雙工UART串行口,32個(gè)I/O口和256bytes的RAM,內(nèi)部資源非常豐富[3]。
溫度采集采用一線式智能數(shù)字溫度傳感器DS18B20,其具有3引腳的TO-92小體積封裝形式,測(cè)溫范圍為-55~+125 ℃,12位精度時(shí)溫度分辨率為±0.062 5 ℃,可實(shí)現(xiàn)高精度測(cè)溫。測(cè)量結(jié)果直接輸出數(shù)字溫度信號(hào),無(wú)需A/D轉(zhuǎn)換,以“一線總線”串行方式發(fā)送給控制器,同時(shí)可傳送CRC校驗(yàn)碼,具有極強(qiáng)的抗干擾糾錯(cuò)能力[4]。該溫度傳感器具有體積小、精度高、傳輸距離遠(yuǎn)、接口簡(jiǎn)單、可組網(wǎng)等優(yōu)點(diǎn),在工業(yè)測(cè)溫領(lǐng)域有著極其廣泛的應(yīng)用[5]。
系統(tǒng)工作流程如下:數(shù)字溫度傳感器DS18B20對(duì)水溫進(jìn)行實(shí)時(shí)采集,交由單片機(jī)進(jìn)行處理后在液晶顯示屏上顯示。當(dāng)目標(biāo)溫度通過(guò)按鍵輸入后,單片機(jī)通過(guò)增量式PID算法計(jì)算后對(duì)升溫、降溫電路進(jìn)行驅(qū)動(dòng),以達(dá)到設(shè)定的目標(biāo)溫度,同時(shí)水溫變化曲線能夠在液晶屏通過(guò)切換按鍵實(shí)時(shí)顯示。
連續(xù)PID的表達(dá)式為
(1)
式中:u(t)為控制器的輸出;e(t)為控制器的輸入,即給定值r(t)與實(shí)際輸入值y(t)之間的偏差;KP、TI、TD分別為控制器的比例放大系數(shù)、積分時(shí)間常數(shù)和微分時(shí)間常數(shù);t為時(shí)間常數(shù)。
連續(xù)PID控制算法控制器無(wú)法直接使用,將式(1)進(jìn)行離散化采樣后(采樣周期為T),以和式代替積分,以增量代替微分,得到位置式PID算法表達(dá)式為
(2)
式中:j為采樣次數(shù),j=0,1,…k;KP、KI、KD分別為比例系數(shù)、積分系數(shù)和微分系數(shù)。
位置式PID算法,其當(dāng)前采樣時(shí)刻的輸出與過(guò)去的各個(gè)狀態(tài)有關(guān),計(jì)算時(shí)需要對(duì)e(k)進(jìn)行累加,運(yùn)算量大。對(duì)式(2)取增量,得到控制量的增量Δu(k)為:
Δu(k) =u(k)-u(k-1)
=Ae(k)+Be(k-1)+Ce(k-2)
(3)
式中:A=KP+KI+KD;B=-(KP+2KD);C=KD。
式(3)為增量式數(shù)字PID表達(dá)式,控制系統(tǒng)采用恒定的采樣周期T,一旦確定了系數(shù)A、B、C,只要使用前后3次測(cè)量值的偏差,就可以由式(3)求出控制增量。圖2為增量式PID控制系統(tǒng)結(jié)構(gòu)圖。與位置式PID算法式(2)相比,增量式PID控制算法僅需輸出控制的增量,執(zhí)行器每次變化量較小,使被控對(duì)象的參數(shù)變化緩慢,誤差動(dòng)作影響小,控制系統(tǒng)相對(duì)穩(wěn)定,因此在實(shí)際中應(yīng)用廣泛,非常適合水溫自動(dòng)控制系統(tǒng)[6]。
圖2 增量式PID控制系統(tǒng)結(jié)構(gòu)圖
系統(tǒng)硬件電路主要由電源模塊、溫度采集模塊、按鍵輸入模塊、液晶顯示模塊和升降溫驅(qū)動(dòng)電路5大模塊組成,系統(tǒng)硬件電路原理圖如圖3所示。
3.1 電源模塊
電路采用+5 V電源為單片機(jī)、溫度采集、驅(qū)動(dòng)電路、按鍵輸入、液晶顯示等電路供電。
3.2 溫度采集模塊
溫度傳感器DS18B20既可以由寄生電源供電,也可采用外部電源供電,為提高溫度轉(zhuǎn)換精度并減少干擾,設(shè)計(jì)采用外部電源單獨(dú)供電方式。DS18B20采用單總線協(xié)議,通過(guò)4.7 kΩ上拉電阻把溫度輸出端DQ與單片機(jī)的P3.0口相連,單片機(jī)通過(guò)該端口實(shí)現(xiàn)對(duì)傳感器的初始化及溫度采集[7]。
3.3 鍵盤輸入模塊
設(shè)計(jì)中通過(guò)鍵盤輸入模塊實(shí)現(xiàn)人機(jī)交互,分別進(jìn)行目標(biāo)溫度值和PID參數(shù)的設(shè)定。目標(biāo)溫度值設(shè)定需要3個(gè)按鍵,分別對(duì)應(yīng)溫度值的十位、個(gè)位和小數(shù)位。PID參數(shù)的設(shè)定需要7個(gè)按鍵,即P參數(shù)的十位及P、I、D參數(shù)各自的個(gè)位和小數(shù)位,各數(shù)值大小通過(guò)增加鍵和減少鍵調(diào)節(jié)。同時(shí)系統(tǒng)還加入了溫度圖形切換按鍵與圖形放大的按鍵,以及確認(rèn)鍵和返回鍵,共需要16個(gè)按鍵,因此采用4×4矩陣式鍵盤。設(shè)計(jì)采用線反轉(zhuǎn)法確定按鍵,各個(gè)按鍵的功能將通過(guò)軟件編程控制來(lái)確定,鍵盤的行線與單片機(jī)P1口的低4位相連,列線與單片機(jī)P1口的高4位相連。
圖3 系統(tǒng)硬件電路原理圖
3.4 液晶顯示模塊
液晶顯示模塊采用漢字圖形點(diǎn)陣液晶QC12864B,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16×16點(diǎn)陣)、128個(gè)字符(8×16點(diǎn)陣)及64×256點(diǎn)陣顯示RAM(GDRAM)[8]。其接口方式靈活,操作指令簡(jiǎn)單方便,可構(gòu)成全中文人際交互圖形界面。該液晶主要用來(lái)顯示系統(tǒng)的工作狀態(tài),當(dāng)選擇基礎(chǔ)功能時(shí),顯示當(dāng)前溫度值與目標(biāo)溫度值。第二功能鍵顯示水溫變化的動(dòng)態(tài)曲線,通過(guò)鍵盤輸入中的溫度圖形切換鍵即可實(shí)現(xiàn),同時(shí)液晶顯示還具有溫度曲線放大顯示功能。
3.5 升溫、降溫驅(qū)動(dòng)電路
執(zhí)行機(jī)構(gòu)采用過(guò)零式固態(tài)繼電器(SSR,Solid State Relays)來(lái)實(shí)現(xiàn)對(duì)加熱和制冷電路的通斷控制。在控制端加入TTL高低電平(由單片機(jī)發(fā)出)即可改變SSR的輸出狀態(tài)。在圖3中,當(dāng)單片機(jī)的P3.4口為高電平時(shí),三極管導(dǎo)通,驅(qū)動(dòng)固態(tài)繼電器接通,加熱器開(kāi)始工作。當(dāng)單片機(jī)的P3.4口為低電平時(shí)固態(tài)繼電器關(guān)斷,加熱器不工作[9]。同理,當(dāng)單片機(jī)的P0.2口為高電平時(shí),固態(tài)繼電器導(dǎo)通,半導(dǎo)體制冷片開(kāi)始工作。為提高制冷片的制冷效果,采用在制冷片的晶格上加裝風(fēng)扇的方法,加快熱量的散發(fā),縮短控制所需時(shí)間。
4.1 系統(tǒng)主程序設(shè)計(jì)
系統(tǒng)上電后,初始化系統(tǒng)變量,DS18B20采集當(dāng)前溫度值,交由單片機(jī)進(jìn)行處理,并通過(guò)液晶屏進(jìn)行顯示。主程序循環(huán)過(guò)程中不斷的掃描按鍵,如果有按鍵觸發(fā)將會(huì)調(diào)用鍵值處理函數(shù),實(shí)現(xiàn)按鍵的不同功能。PID參數(shù)和目標(biāo)溫度值通過(guò)按鍵進(jìn)行設(shè)定后,按下確認(rèn)鍵,秒計(jì)數(shù)器計(jì)數(shù)到3 s后啟動(dòng)PID子程序。單片機(jī)將當(dāng)前溫度值與設(shè)定溫度值進(jìn)行比較,判斷是進(jìn)行加熱還是制冷。整個(gè)系統(tǒng)程序包括主程序、溫度采集子程序、增量式PID算法子程序等。系統(tǒng)主程序流程圖如圖4所示。
圖4 系統(tǒng)主程序流程圖
4.2 溫度采集子程序設(shè)計(jì)
DS18B20的操作應(yīng)遵循以下順序:初始化(復(fù)位)、ROM操作命令、暫存器操作命令[10]。初始化操作是指由主機(jī)發(fā)出復(fù)位脈沖后,由從機(jī)發(fā)出響應(yīng)脈沖,即保證單片機(jī)和傳感器之間建立通信。一旦總線控制器探測(cè)到響應(yīng)脈沖,就可以通過(guò)總線寫入時(shí)序?qū)懭隦OM指令CCH,表示跳過(guò)ROM指令,允許主機(jī)進(jìn)行存儲(chǔ)器操作。然后寫入RAM操作命令44H,啟動(dòng)溫度轉(zhuǎn)換,測(cè)量結(jié)果被放在DS18B20的暫存器里面。最后用一條讀取暫存器內(nèi)容的RAM操作命令BEH把暫存器中的溫度數(shù)據(jù)讀取出來(lái)。DS18B20讀/寫程序流程圖如圖5所示。
圖5 DS18B20讀/寫流程圖
4.3 增量式PID控制算法子程序設(shè)計(jì)
溫控系統(tǒng)將DS18B20實(shí)時(shí)采集的溫度值與設(shè)定的目標(biāo)值進(jìn)行比較,差值作為PID功能模塊的輸入,PID算法根據(jù)比例、積分、微分系數(shù)計(jì)算出輸出控制參數(shù)[11]。根據(jù)前面的離散系統(tǒng)的增量式PID算法公式(3),得到增量式PID算法子程序流程圖如圖6 所示。
圖6 增量式PID算法流程圖
在室溫條件下,以1 L凈水為實(shí)驗(yàn)對(duì)象分別進(jìn)行靜態(tài)溫度測(cè)試和動(dòng)態(tài)溫度測(cè)試。
5.1 靜態(tài)溫度測(cè)試
在不同的水溫條件下,將標(biāo)準(zhǔn)溫度計(jì)和測(cè)溫探頭置于水中同一位置,分別記錄標(biāo)準(zhǔn)溫度計(jì)和測(cè)溫系統(tǒng)顯示的溫度值,系統(tǒng)的靜態(tài)溫度測(cè)量誤差如表1所示。從表1可以看出DS18B20測(cè)得的水溫在30~50 ℃呈線性關(guān)系,測(cè)量誤差在±0.3 ℃左右。
表1 靜態(tài)溫度測(cè)量誤差℃
標(biāo)準(zhǔn)溫度計(jì)溫控系統(tǒng)差值比較25.726.00.335.535.2-0.345.045.20.255.155.40.357.858.20.465.265.0-0.272.873.00.2
5.2 動(dòng)態(tài)溫度測(cè)試
通過(guò)按鍵輸入進(jìn)行+20 ℃(溫度升高20 ℃)的動(dòng)態(tài)溫度測(cè)試。表2為兩個(gè)波動(dòng)周期內(nèi)水溫變化的動(dòng)態(tài)誤差、靜態(tài)誤差及達(dá)到穩(wěn)態(tài)所需時(shí)間。從表2可以看出控制系統(tǒng)的最大動(dòng)態(tài)誤差為1.7 ℃,靜態(tài)誤差為0.5 ℃,系統(tǒng)達(dá)到穩(wěn)態(tài)所需時(shí)間為10 min左右。
表2 動(dòng)態(tài)溫度變化誤差
初始溫度/℃設(shè)定溫度/℃靜態(tài)誤差/℃動(dòng)態(tài)誤差/℃穩(wěn)態(tài)時(shí)間/min27.847.80.41.79.5730.050.00.41.69.2040.560.50.31.49.4247.867.80.51.39.9751.071.00.51.19.67
以表2中第二組實(shí)驗(yàn)數(shù)據(jù)為例,水溫從30 ℃上升到50 ℃時(shí)的溫度實(shí)時(shí)變化曲線如圖7所示,虛線為目標(biāo)溫度值,實(shí)線為水溫實(shí)時(shí)變化曲線。溫度經(jīng)過(guò)兩個(gè)波動(dòng)周期,在10 min后趨于穩(wěn)定,最大動(dòng)態(tài)誤差為1.6 ℃,達(dá)到預(yù)期控制效果。
圖7 水溫實(shí)時(shí)變化曲線
本文設(shè)計(jì)了一種基于AT89S52和DS18B20數(shù)字溫度傳感器的水溫自動(dòng)控制器,通過(guò)增量式PID算法實(shí)現(xiàn)對(duì)溫度的精確控制。在全量程范圍內(nèi)能夠?qū)崿F(xiàn)目標(biāo)溫度的恒值自動(dòng)控制,系統(tǒng)達(dá)到穩(wěn)態(tài)所需時(shí)間短,靜態(tài)誤差和動(dòng)態(tài)誤差較小。同時(shí)該設(shè)計(jì)具有精度高、成本低、功耗小、穩(wěn)定性高等優(yōu)點(diǎn),適用于現(xiàn)代工業(yè)控制領(lǐng)域。
[1] 王懷光,范紅波,任國(guó)全,等.基于增量式PID控制的半導(dǎo)體制冷溫控系統(tǒng). 現(xiàn)代制造工程,2013(11):110-113.
[2] 趙高超,楊鴻武,裴東,等.基于TMS320F2812的電機(jī)增量式PID控制系統(tǒng).儀表技術(shù)與傳感器,2014(6):106-112.
[3] 湯鍇杰,栗燦,王迪,等.基于DS18B20的數(shù)字式溫度采集報(bào)警系統(tǒng)設(shè)計(jì).傳感器與微系統(tǒng),2014,33(3):99-102.
[4] 李娟,李孝祿,王東平.太陽(yáng)能電動(dòng)自行車的供電方式與性能.可再生能源,2014,32 (1):19-22.
[5] 包敬海,樊東紅,陸安山,等.基于DS18B20的多點(diǎn)體溫檢測(cè)系統(tǒng)的研究.自動(dòng)化與儀表,2010(2):20-22.
[6] 林海波,王曉曦,劉奭昕.一種基于增量式字PID算法的智能溫度控制器.長(zhǎng)春工程學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,12(3):86-89.
[7] 汪銘東,梅廣輝.基于單片機(jī)與DS18B20的機(jī)柜溫度控制器設(shè)計(jì).現(xiàn)代電子技術(shù),2014,37(12):8-10.
[8] 肖建濤.新型斷路器回路電阻測(cè)試方法的研究:[學(xué)位論文].北京:北京交通大學(xué),2014.
[9] 王小虎,盧超.基于PID算法的溫度控制系統(tǒng)的設(shè)計(jì).科技信息,2009(36):112-113.
[10] 周曉,張春生,張希文,等.便攜式低功耗溫度檢測(cè)儀設(shè)計(jì).電子科技,2012,25(9):121-123.
[11] 王占林,王磊,馮茜.流量控制系統(tǒng)中基于增量式PID算法的工控組態(tài)軟件設(shè)計(jì).儀表技術(shù)與傳感器,2010(5):101-102.
《儀表技術(shù)與傳感器》雜志主要欄目介紹
傳感器技術(shù)
該欄目主要報(bào)道傳感器在研制開(kāi)發(fā)中的新技術(shù),包括各種新型傳感器的結(jié)構(gòu)、原理、設(shè)計(jì)、計(jì)算、工藝測(cè)試及應(yīng)用技術(shù);介紹傳感器方面最新發(fā)展現(xiàn)狀及方向,并對(duì)其應(yīng)用前景和發(fā)展趨勢(shì)進(jìn)行展望或預(yù)測(cè)。
儀器儀表
該欄目側(cè)重選用新技術(shù)應(yīng)用與傳統(tǒng)產(chǎn)業(yè)改造相結(jié)合、能顯示強(qiáng)大應(yīng)用潛力的稿件,如集散控制技術(shù)、虛擬儀器、現(xiàn)代控制技術(shù)、智能儀器儀表的設(shè)計(jì)思想、制造與應(yīng)用技術(shù)等。
系統(tǒng)與應(yīng)用
側(cè)重工業(yè)自動(dòng)化領(lǐng)域中先進(jìn)控制系統(tǒng)的設(shè)計(jì)與應(yīng)用,包括間歇控制的生產(chǎn)、調(diào)度、優(yōu)化系統(tǒng),SIS、DCS、PLC、SCADA系統(tǒng)以及FGS系統(tǒng)的應(yīng)用等。
研究與開(kāi)發(fā)
該欄目主要報(bào)道國(guó)內(nèi)外儀器儀表行業(yè)中的新技術(shù)、新工藝、新元件及新設(shè)備的研究成果。
網(wǎng)址:www.17sensor.com
電話:024-88718630
Design of Water Temperature Automatic ControllerBased on Incremental PID Algorithm
WEN Bo,MENG Ling-jun,ZHANG Xiao-chun,HAN Zhao-hui,ZHAO Pan-pan
(National Key Laboratory for Electronic Measurement and Technology,Key Laboratory of InstrumentationScience & Dynamic Measurement of Ministry of Education, North University of China,Taiyuan 030051,China)
A temperature automatic controller based on incremental digital PID algorithm was designed, the entire system consists of temperature acquisition, LCD, input keyboard and heating and cooling drive circuit. MCU AT89S52 is the control core, and DS18B20 collects external water temperature. Incremental PID algorithm within the AT89S52 MCU controls the solid state relay state to drive the heating and cooling circuit when the target temperature value is inputted through the external keyboard, so that the system achieves the target temperature and keeps constant finally. While, the LCD screen can display the current actual temperature value, the target temperature value and temperature versus time curves. The experiment results show that the system can achieve full scale (10~80 ℃) of heating and cooling function, reach the target temperature value automatically within 15 minutes, and the measurement error is less than 0.5 ℃. The system meets the intelligent, fast, high-precision and humane demands in the field of modern industrial control.
digital temperature sensor;incremental PID algorithm; high precision; temperature; automatic control
國(guó)家自然科學(xué)基金(61275166)
2014-12-23 收修改稿日期:2015-07-30
TP242.6
A
1002-1841(2015)12-0113-04
文波(1987—),碩士研究生,研究方向?yàn)闇y(cè)試計(jì)量技術(shù)及儀器。E-mail:15135160500@139.com.