摘要:本設(shè)計(jì)采用單片機(jī)及外圍元器件組成溫度測控系統(tǒng),運(yùn)用匯編語言進(jìn)行編程、并在WAVE6000環(huán)境下編譯、仿真。系統(tǒng)具有復(fù)位、越限報(bào)警、數(shù)碼管顯示、PID控制等功能。
關(guān)鍵詞:單片機(jī);PID調(diào)節(jié);溫度傳感器;數(shù)碼管顯示;越限報(bào)警
【中圖分類號】 TP302 【文獻(xiàn)標(biāo)識碼】 B【文章編號】 1671-1297(2012)09-0224-01
整個(gè)溫控系統(tǒng)是在程序的控制下工作的,控制系統(tǒng)工作由實(shí)時(shí)檢測(采樣)、實(shí)時(shí)決策(PID控制運(yùn)算)和實(shí)時(shí)控制(對加熱絲通斷的控制)三部分組成。因此,應(yīng)用程序包括數(shù)據(jù)采集、PID運(yùn)算以及輸出控制三部分主干程序,這些工作有的安排在主程序中,有的安排在中斷服務(wù)程序中完成。由LED數(shù)碼管顯示溫度值,采用動態(tài)掃描的方式在主程序和定時(shí)采樣等待時(shí)都可以插入顯示子程序。
一 PID控制算法
在單片機(jī)應(yīng)用系統(tǒng)中,可采用的控制算法很多,但是最常用的仍是數(shù)字PID(比例-積分-微分)算法。最優(yōu)化理論可以證明,PID控制能滿足相當(dāng)多的工業(yè)對象的控制要求。PID調(diào)節(jié)是根據(jù)實(shí)際測量值與設(shè)定值的偏差, 按比例-積分-微分的函數(shù)關(guān)系進(jìn)行運(yùn)算,其運(yùn)算結(jié)果用以輸出控制。單片機(jī)數(shù)字控制器實(shí)現(xiàn)PID運(yùn)算,是按照一定的算法編制相應(yīng)的程序來完成的。
實(shí)現(xiàn)計(jì)算機(jī)的PID控制器的算法是先根據(jù)連續(xù)系統(tǒng)的設(shè)計(jì)方法,得到模擬調(diào)節(jié)PID的調(diào)節(jié)規(guī)律(這個(gè)調(diào)節(jié)規(guī)律可以是微分方程表示的,也可以是用傳遞函數(shù)的形式表示),然后把它離散化,變成適合于計(jì)算機(jī)的差分方程的形式。
以溫度檢測和控制為例,用微分方程表示的PID調(diào)節(jié)規(guī)律的、實(shí)現(xiàn)模擬PID調(diào)節(jié)的理想算式為:
式(1.1)
PID控制也稱為比例-積分-微分控制。其中的比例項(xiàng)用于糾正偏差;積分項(xiàng)用于消除系統(tǒng)的穩(wěn)態(tài)誤差;微分項(xiàng)用于減小系統(tǒng)的超調(diào)量,增加系統(tǒng)的穩(wěn)定性。PID控制器的性能就取決于Kp、Ti和Td這三個(gè)參數(shù)。設(shè)計(jì)和調(diào)試的任務(wù)就是決定這三個(gè)參數(shù)。
對式(1.1)兩邊進(jìn)行拉氏變換可以得到PID調(diào)節(jié)器的傳遞函數(shù)為
式(1.2)
式(1.2)中U(s)和E(s)分別為u和e的拉氏變換。
式(1.1)中,e(t)=w(t)-y(t)是給定值與輸出之間的差,稱為誤差或偏差,它是PID控制器的輸入信號。u(t)為調(diào)節(jié)器的輸出信號,即傳給被控對象的操作量,因?yàn)橛?jì)算機(jī)的控制是一種采樣控制,它只能根據(jù)采樣時(shí)刻的偏差值來計(jì)算控制量,因此,在計(jì)算機(jī)控制系統(tǒng)中,要想在計(jì)算機(jī)上實(shí)現(xiàn)PID調(diào)節(jié)規(guī)律,需要將連續(xù)系統(tǒng)的微分方程式化成離散形式,由描述離散系統(tǒng)的差分方程來代替。
增量型算法和位置型算法相比,具有以下優(yōu)點(diǎn):
(1)增量型算法不需要做累加,控制量增量的確定僅與最近幾次誤差采樣值有關(guān),計(jì)算誤差或計(jì)算精度問題對控制量的計(jì)算影響較小。而位置型算法要用到過去的誤差累加值,容易產(chǎn)生大的累加誤差。
(2)增量型算法得出的是控制量的增量,輸出誤差小,必要時(shí)通過邏輯判斷限制或禁止本次輸出,不會嚴(yán)重影響系統(tǒng)的工作。
(3)采用增量型算法,易于實(shí)現(xiàn)手動到自動的無沖擊切換。但是,當(dāng)被控對象需要的是控制變量的絕對值,而不是其增量時(shí),可以采用增量式算法,控制量輸出采用位置式輸出形式。
二 軟件的總體設(shè)計(jì)
系統(tǒng)的操作過程和工作過程在程序的設(shè)計(jì)過程中起著很重要的指導(dǎo)作用,因此,在軟件設(shè)計(jì)之前應(yīng)首先分析系統(tǒng)的工作流程。
系統(tǒng)的工作流程
系統(tǒng)在上電復(fù)位后先處于停止加熱狀態(tài),這時(shí)可以用8421BCD撥碼盤設(shè)定預(yù)制溫度,顯示器顯示設(shè)定溫度;溫度設(shè)定好后就可以啟動系統(tǒng)正常工作了。溫度檢測系統(tǒng)即數(shù)字溫度傳感器DS18B20不斷定時(shí)檢測當(dāng)前溫度,并送往顯示器顯示,達(dá)到設(shè)定值后停止加熱并且顯示當(dāng)前值;當(dāng)溫度下降到下限值(比設(shè)定溫度值低5℃)時(shí)再啟動加熱。這樣不斷地重復(fù)上述過程,使溫度保持在設(shè)定的溫度范圍之內(nèi)。啟動后不能再修改預(yù)制溫度,必須按復(fù)位鍵回到停止加熱狀態(tài)再重新設(shè)定預(yù)制溫度值。
1.功能模塊
根據(jù)對上面工作流程的分析,系統(tǒng)軟件可以分為以下幾個(gè)功能模塊:
①溫度設(shè)定模塊:進(jìn)行溫度設(shè)定。
②溫度檢測模塊:利用數(shù)字溫度傳感器DS18B20完成溫度的自動檢測。
③溫度顯示模塊:顯示設(shè)定溫度值和當(dāng)前溫度值。
④溫度控制模塊:根據(jù)檢測到的溫度,利用PID控制加熱絲的工作與否。
⑤越限報(bào)警模塊:當(dāng)前溫度值越限時(shí)報(bào)警。
2.主程序
主程序完成的功能是:控制整個(gè)系統(tǒng)工作,進(jìn)行溫度值設(shè)定、溫度檢測、溫度顯示、越限報(bào)警等,啟動DS18B20測量溫度,將測量值與設(shè)定值進(jìn)行比較,然后進(jìn)行自動控制。主程序開始時(shí),先進(jìn)行初始化(RAM及口地址分配見表1.1),然后進(jìn)行自檢,自檢時(shí)讓所有的二極管和數(shù)碼管都亮,以便檢查其是否正常。然后啟動DS18B20檢測溫度,調(diào)取讀溫度子程序,經(jīng)單片機(jī)轉(zhuǎn)換后送顯示。再調(diào)比較子程序。當(dāng)測量值大于設(shè)定值上限時(shí),相應(yīng)的報(bào)警標(biāo)志位置“1”,并關(guān)閉加熱;當(dāng)測量值小于設(shè)定值下限時(shí),相應(yīng)的報(bào)警標(biāo)志位置“1”,并啟動加熱;當(dāng)測量值在設(shè)定值的范圍內(nèi)時(shí),相應(yīng)的報(bào)警標(biāo)志位置“0”,并且保持。然后,檢測報(bào)警標(biāo)志位,若有報(bào)警,就轉(zhuǎn)相應(yīng)的執(zhí)行程序;若無報(bào)警,就返回繼續(xù)讀數(shù)、顯示、控制等。
參考文獻(xiàn)
[1] 王福瑞.單片微機(jī)測控系統(tǒng)設(shè)計(jì)大全.北京航空航天大學(xué)出版社,2000年
[2] 胡漢才編著.單片機(jī)原理及其接口技術(shù).清華大學(xué)出版社,1996年
[3] 孫傳友,孫曉斌等編著.測控系統(tǒng)原理與設(shè)計(jì).北京航空航天大學(xué)出版社,2002年
[4] 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì).北京航空航天大學(xué)出版社,1990年
作者簡介: 王瑩,女,1983年出生,專業(yè)為電子信息工程,研究方向?yàn)殡娮与姎饪刂啤?/p>