[摘要]本文以MCS-51單片機為核心,以水箱為被控對象,將水箱給定溫度與實際溫度對比,利用PID算法設計了水溫調節器實驗裝置。該實驗裝置的設計有利于同學們加深對單片機控制系統和PID控制算法特點的了解。且該裝置結構原理簡單、穩定性好、可靠性高、參數易于整定,控制精度高,有一定的實用價值,可以向實際推廣。
[關鍵詞]水溫調節器 單片機 PID算法
一、前言
溫度是工業生產中最常見和最基本的工藝生產參數之一,許多物理變化和化學反應的過程均與溫度密切相關。因此,溫度控制系統是典型的控制系統。目前,單片機已普遍應用于生產過程的自動控制領域。以其體積小、價格低廉和可靠性高等特點,用其構成計算機控制系統中的智能控制單元,受到廣大工程技術人員的重視。下面的PID自動溫度控制系統,采用8051單片機作為PID控制器,具有可編程、控制算法可選、體積小、穩定性好、抗干擾能力強等優點。采用單片機進行對它控制不僅具有控制方便、簡單和靈活性等優點,而且大幅度提高被控溫度的技術指標,從而能夠大大提高產品的數量和質量。因此,單片機的溫度的控制問題是一個工業生產中經常會遇到的問題。我們之所以選擇該實驗裝置,是因為它不僅可以使我們把所學的理論知識加以升華,而且可以起到舉一反三和觸類旁通的效果,對單片機在其他情況下的應用,有了一個基礎性的了解與掌握。
二、總體設計
本裝置的主要任務,是利用MCS-51單片機實現對電熱水箱水溫度的控制。即預先設定要達到的理想溫度值,水箱中的溫度或升或降(本裝置中限于實驗條件,僅限于水溫的升高),最終達到預設值。此過程的實現可描述如下:集成傳感器AD590檢測電熱水箱中水的溫度,得到一微弱的模擬信號,此信號經運算放大器放大后,經A/D轉換器轉換,實現了由模擬量到數字量的轉變。該數字信號傳輸進單片機后,經數字PID算法處理后輸出一控制信號(數字量),控制固態繼電器的通斷。從而實現對加熱電阻絲加熱功率的控制。
本課題的設計可分為硬件設計和軟件設計兩大部分。硬件設計主要包括溫度檢測電路、前向通道(A/D轉換接口)、人機接口(單片機擴展存儲器單片機與鍵盤顯示器的接口電路、單片機與A/D轉換器的連接)以及其他外圍電路(顯示電路、電源電路、溫度控制電路)的設計。軟件的設計主要應用MCS-51匯編語言編程,要完成的程序設計包括A/D轉換子程序,鍵盤顯示子程序,PID算法程序。其中,重點和難點是PID算法程序的設計,它是整個課題設計的中心環節。另外,考慮到外界環境存在的干擾,如機械震動,各種電磁波和環境溫差都可能影響到系統的性能。為此,需進行抗干擾設計。抗干擾措施可分為軟件抗干擾和硬件抗干擾,軟件抗干擾措施主要采用數字濾波和指令冗余技術,硬件抗干擾措施主要采用濾波技術和接地技術。
三、溫度檢測電路
采用美國模擬器件公司生產集成溫度傳感器AD590。它是單片集成兩端感溫電流源,其輸出電流與溫度成正比。使用簡便,不需外接線性補償和零點補償器件,精度高互換性好,線性度好,具有標準化輸出,能很好地消除電源變動和交流紋波對器件產生的影響,且耐用,輸出電流可用于長距離傳送,不會因線路壓降而影響測量精度。
實際應用電路設計:盡管AD590比其他溫度傳感器有較好的特性,但在使用范圍內,仍然存在著一定的非線性。另外,各器件間也存在著離散性,所以在實際中,欲獲得測量精度,尚需采用兩點校正(零點校正和滿刻度校正)。由基準電壓源AD590輸出一個標準的+10.000伏電壓通過輸入端加到AD590上。AD590的輸出電流在輸入端上產生壓降,從而使運算放大器的輸入端的電壓歲溫度而變化,該電壓經過運算放大后輸出。這樣,該測量電路可大大改善由傳感器本身非線性誤差而引起的誤差。
四、信號輸入通道(前向通道A/D)
本裝置采用逐次逼近型的ADC0809是 8位A/D轉換芯片,它由單一的+5V電源供電,片內帶有鎖存功能的8路模擬多路開關,可對8路0-5V的輸入模擬電壓信號分時進行轉換,完成一次轉換約100us。片內具有多路開關的地址譯碼器和鎖存電路、高阻抗斬波器、穩定的比較器,256歐電阻T型網絡和樹狀電子開關以及逐次逼近寄存器。輸出具有TTL三態鎖存緩沖器,可直接接到單片機數據總線上。通過適當的外接電路,ADC0809可對0-5V的雙極性模擬信號進行轉換。在本實驗中,見于簡單起見,只選取了一個溫度控制信號,故A/D0809只接一路輸入信號IN0。
五、人機接口
1.鍵盤、顯示器接口電路
鍵盤顯示電路中,采用的是8031單片機擴展I/O接口芯片8255A實現的四位LED顯示和16鍵的鍵盤顯示器接口電路。8255A的PA口地址為7CH,PB口地址為7DH,PC口的地址為7EH,控制字寄存器地址為7FH。這里8031單片機對8255A采用了線性選址法。8255A的RAM的地址為7E00H~7EFFH,I/O口地址為7F00H~7F05H,8255A的PB口為輸出口,控制鍵盤的列線的電位,PB口作為鍵掃描口,同時又是4位共陰極顯示器的位掃描口。PC口作為顯示器的段碼輸出口,8255A的PA口作為輸入口,PC0~3接行線X0~X3,稱為鍵輸入口。鍵盤需輸入參數Kp、Ti、Td、T及PID算法的給定值,顯示器顯示溫度值。
在8051單片機上擴展一片8255A芯片,無需外加任何邏輯電路,74LS373時地址鎖存器,8255A的地址線A1、A0經74LS373接于P0.1、P0.0;片選端CS經74LS373與P0.7接通,其它地址線懸空;8255A的控制線/RD、/WR直接接于8031的RD、/WR端;數據線D0~D7接于P0.0~P0.7。
8255A的B口作為顯示器接口,采用靜態顯示,74LS373為鎖存器。74LS48為共陰極譯碼/驅動器,LED數碼管采用8 HEADER,鍵盤處理為中斷方式。由此可見,8255A的B口工作在兩種方式下:在顯示狀態下R。鍵盤為4×4矩陣鍵盤,8255A口的PA3 -PA0為行掃描接口,從B口的PB3-PB0讀入列值,該系統鍵為輸出方式;在鍵盤中斷服務程序處理過程中為輸入方式。為此,只需在相應操作前重新設置8255A的工作方式即可。
2.存儲器的擴展
在MCS-51單片機的16位地址,分為高8位和低8位,高位由P2輸出,低位由P0輸出。但P0同時又是數據輸入輸出接口,故在傳送時采用分時方式,先輸出低8位地址,然后,在傳送數據。但是,在對外部存儲器進行讀寫操作時,地址必須保持不變,這就需要選擇適當的寄存器存放低8位地址,這個外界的寄存器就是地址鎖存器。在進行外部存儲器擴展時,凡具有輸入輸出控制的8位寄存器均可作為地址鎖存器。這里選用的是27128。
3.輸出執行電路(反饋部分)
這一部分主要完成經單片機控制系統后的控制信號如何反作用于被控對象,在MCS-51單片機控制各種各樣的高壓、大電流負載,這些大功率負載如電動機、電磁鐵、繼電器、燈泡等,顯然不能用單片機的I/O線來直接驅動,而必須通過各種驅動電路和開關電路來驅動。此外,為了隔離和抗干擾,有時需加光電耦合器。
本裝置主要完成電熱負載的調功輸出控制。此處選用的核心元件為SSR(Solid State Relay),即固態繼電器。它是一種新穎的四端以弱控強的無觸點功率控制元件。
其特點是輸入控制電壓低(3V-14V),驅動電流小(3mA-15mA),輸出與輸入采用光電隔離,使強電與弱電完全分離,輸出無觸點、無噪聲,開關速度快。它事實上將光電隔離器、驅動器、可控硅、阻容吸收等器件做在一起,用環氧樹脂全灌封裝,具有防塵、耐濕、耐振、壽命長等優點。
這里采用的固態繼電器是非過零觸發的SSR。當中斷服務程序將P1.5置“1”時,BG 導通,SSR 導通,電阻絲上得到完整周波,當P1.5置“0”時,SSR被關斷,電阻絲上得不到完整的周波。單片機通過控制P1.5的高低電平的占空比來控制電阻絲的功率輸出。
六、硬件抗干擾措施
為了防止外界交流電路產生的工頻干擾對模擬信號的影響,在電路設計中(放大器和比較器)采用低通濾波器和有源濾波器。為了防止由于外時鐘是高頻噪聲源引起的硬件電路產生的干擾,選用低頻率的單片機來提高提高抗干擾性,本裝置中采用8051的時鐘頻率為6MHz。為了切斷干擾信道,避免強電流對回路的沖擊,常用光電隔離方法,本裝置中采用的SSR集成了光電耦合器,應用于輸出通道。為了防止電磁波干擾,在開關電源內部把高頻電壓器和扼流圈進行屏蔽,對整個開關電源進行屏蔽保護。
七、軟件設計部分
軟件的主要任務是完成初始化工作,如參數顯示、鍵盤命令識別、信號的采集、濾波和工程量轉換控制算法處理、中斷處理等。
主程序包括:鍵盤置數程序、鍵盤數值處理程序、系統初始化。
中斷服務程序:A/D轉換結束中斷、系統時鐘溢出中斷、8255A讀鍵盤中斷。
子程序:數據采集子程序、數字濾波子程序、顯示子程序、A/D轉換子程序、控制算法子程序。
本裝置中重點完成A/D轉換子程序和PID控制算法子程序的設計。
八、結語
本裝置給出了一個基于MCS51系統的PID溫度控制系統較完整的解決方案和實現方法,該實驗裝置在教學中極具典型性,可以使同學們把所學的理論知識加以升華,而且可以起到舉一反三和觸類旁通的效果,對單片機在其他情況下的應用,有了一個基礎性的了解與掌握。在裝置實現的過程中采用的一些芯片也許不能很好地滿足工業現場的要求,可作一些更換。
參考文獻:
[1]潘新民.微型計算機控制技術[M].北京:電子工業出版社,2003,1.
[2]張毅剛.MCS-51單片機應用設計[M].哈爾濱工業大學出版 社,1997,12(第二版).
[3]李樹華.數字PID自動溫度控制系統的設計與實現[J].內蒙古大學學報(自然科學版),1997.28(6).
(作者單位:浙江理工大學信息與電子學院)