張望輝
(中國船舶集團有限公司 第七一三研究所,河南鄭州,450015)
本課題的主要設計思路:采樣部分是傳感器采集溫度信號之后,然后通過處理再送入放大電路,通過A/D 轉送至單片機;控制部分則是利用光電耦合,輸出信號觸發可控硅,從而實現對溫度的調節,如圖1 所示。

圖1 系統總體框架
由于本課題主要是對加熱爐、熱處理爐、反應爐和鍋爐等的溫度進行測控,溫度大約在1000℃,因此可以選用熱電偶傳感器。
熱電偶測溫主要特點。①它屬于自發電型傳感器:測量時無需外接任何電源,能夠直接進行啟動。②測量的范圍廣闊:最低可到-270℃,最高可到1800℃。③精度高:0.1℃~0.2℃,因為熱電偶的穩定性和復現性好,所以國際上運用溫標中規定熱電偶,它作為復現630.74℃~1064.43℃范圍的標準儀表。④由于具有響應好的特點,所以我們可以將熱電偶的測量端做成理想小的接點,響應速度快,其時間常數可以達到毫秒級甚至微秒級。⑤構造很簡單,生產非常方便。⑥用途很普遍,人們不僅用它去檢測流動體的溫度,還常常用作檢測固體表面的溫度。
熱電偶輸出的電動勢是兩結點溫差的函數。T 作為被測溫度端,T0作為參考溫端,通常要求T0保持為0℃,但在現實中很難做到這一點。然而現實是參考溫度端很難保持穩定的數值。工業生產中,熱電偶冷端補償的方法有很多,而比較常見的方法是電位補償法。如圖2 所示。

圖2 電位補償法原理
為了獲得較好的電路特性,我們可以在放大器的輸入端之前設計一個低通濾波器。原因如下:熱電偶的長引線常常會產生天線的作用,接收各類干擾信號,這就會導致我們的信號里摻和了“雜質”,如果任其被放大,將會導致我們的電路出現大的誤差,導致我們測量的溫度發生較大的波動,這些都是不利于人們的,也是我們不想看到的結果。此濾波電路的主要作用是消除射頻信號。
熱電偶測量溫度中,重點在于:熱電偶產生的溫度信號很弱,而要將如此弱的信號進行放大等一系列操作,這就需要我們的放大電路必須具有低漂移和高精度的特點,而且整個檢測設備都需要實施大量防干擾的手段。鑒于此,這里可以使用斬波穩零放大器ICL7650。
ICL7650 利用調制、穩零的方式,良好的解決了溫漂和信號放大之間的關系,打破了傳統常規斬波穩零設計思想的限制。ICL7650 的主要特點如下:(1)輸入失調電壓很低:在工作溫度范圍(約100℃)內只有±1μV;(2)極低的失調電壓的溫漂和長時間漂移:分別為0.01μV/℃和100nV/Month ;(3)很低的輸入偏置電流:10 pA ;(4)極高的開環增益CMRR;(5)較高的轉換速度:SR=2.5V/μs;(6)單位增益帶寬可達2 MHz;(7)單位增益被內部補償;(8) 可以用內調來補充,相位裕度≥80°;(9)在輸入和輸出只有一個小的斬波發出。
轉換芯片的選擇主要在于要滿足整個控制系統對分辨率的需求,在這次課題中要求滿足檢測溫度的范圍是0 ℃~1300 ℃,檢測的精度是1 ℃,則分辨率為:1300/1=1300。要滿足這個數值的最小分辨率為:2x≥ 1300,解得x≥11,因此可選用12 位的A/D 轉換器。
本課題選用的是具有快速,高精度,低成本的逐次逼近式A/D 轉換器—AD574A。它是一種12 位逐次比較型A/D 轉換器,其原理是利用逐次比較法,也叫二等分搜索法,最顯著的特點是轉換速度較快,轉換精度也較高,電路結構也相對簡單,只需要15μs 來進行轉換,轉換精度<=0.05%。由于它含有三態輸出緩沖電路,因此能夠直接和大多數典型的8 位或者16 位的單片機連接,而不需要添加任何的邏輯接口電路,還能和CMOS 以及TTL 兼容。AD574A 片內已經成為高精度參考電壓和時鐘電路,使芯片無需額外的電路和時鐘信號條件即可完成A/ D 轉換,使用方便,因此已被廣泛應用,特別是在控制系統中最多。
AT89C51 的特點:(1)性價比高。(2)形狀小,信賴度高;(3)控制功能強;(4)低電壓、低能耗。
AT89C51 它由CPU、存儲器(ROM、RAM)、I/O 接口、定時/計數器、中斷控制功能等促成,它們和內部相連接,其中功能如表1[1]所示。

表1 I/O口引腳功能
在溫度控制過程中,分為加熱部分和降溫部分。該部分的設計,主要解決2 個問題:弱電(單片機)和強電(AC220V)的隔離,還有對強電的控制。由于負載通常是一個線圈,相當于一個電感,在斷路時會產生3~5 倍的大感應電壓,如果不是隔離,那么千伏的電壓將使單芯片擊穿損壞。并且微控制器不僅連接到控制電機,還可以連接到傳感器等,這將使整個系統陷入癱瘓。光耦中間是用光來傳遞信號的,在兩邊沒有電的聯系時,用光耦進行隔離。因此,可選用MOC3062 光電耦合器和雙向可控硅實現對被控對象的控制。圖3 中元件7406 的作用是加強驅動能力,因為單片機的口線不能直接驅動光電耦合器(當然加強驅動也可以采用其他方法,用7406 不是唯一的選擇)。圖中R1 為限流電阻,使輸入的LED 電流為:10mA (MOC3062),R1 可按式計算:

圖3 控制電路圖
式中:VF 是紅外發光二極管的正向電壓,一般取1.2~1.4V;IFT 是紅外發光二極管的觸發電流,可以查表選取,如表2,如果工作溫度在25℃以下時,IFT 應該進行適當的增加。

表2 紅外發光二極管極限參數
R2 為雙向可控硅的門極電阻,當可控硅靈敏度較高的時候,門極電阻也比較高,并上電阻R2 可以提高抗干擾的能力[2]。
R3 為觸發功率雙向可控硅的限流電阻,該電阻的值由交流電網電壓峰值和觸發器輸出端允許重復沖擊電流峰值決定,可按下式的到:
式中:VP:交流電路中的峰值電壓;ITSM :峰值重復浪涌電流(一般取1A),此外39Ω 的電阻和0.01μF 的電容組成浪涌吸收電路,防止浪涌電壓損害雙向可控硅。圖中的電阻R2 和R3 的阻值可以選擇300Ω。
電路如圖3 所示。
①系統中鍵盤的功能主要用于工作人員輸入和更改設定的溫度值,本課題設計16 個常規按鍵和1 個復位按鍵,其中0~9 數字鍵用于輸入和修改溫度,功能鍵F1 號鍵,設置溫度值,用于進入設定溫度狀態,F2 號鍵為確認設置溫度,F3 鍵為清除鍵,便于用戶設定錯誤溫度或錯按其他鍵使用,其他鍵尚未定義,需要用時再根據需求設置,鍵盤采用行列式計算,16 個按鍵排成4×4 矩陣,設計中用單片機的P2 口的P2.0~P2.3 接鍵盤的4 根行線,P2.4~P2.7 接4 根列線。如圖4 所示。

表3 段碼與字節中各位對應關系

表4 8段LED段碼

圖4 鍵盤接口電路
②通常的LED 顯示器為8 段(8 段比7 段多了一個小數點“dp”段),每段對應著一個發光二極管,這種顯示器分為共陽極和共陰極2 種,如圖5 所示。共陰極LED 顯示器的發光二極管的陰極連接在一起,一般此公共陰極接地,當某個發光二極管的陽極為高電平的時候,此時發光二極管點亮,顯示相應的段,同樣的,共陽極LED 顯示器的發光二極管的陰極連接在一起,一般此公共陽極接正電壓,當某個發光二極管的陰極接低電平的時候,此時點亮發光二極管,顯示相應的段。

圖5 8 段LED 結構及外形
由于本課題所需顯示位數相對較多,同時也為了節約單片機的端口資源占用量,因此可采用串口動態掃描的LED顯示電路,圖中利用串行口擴展74HC595A 移位寄存器顯示時,在移位脈沖的控制下,首先通過P3.0 將位碼送移位寄存器U2,再將段碼送入U2,而原來U2 中的位碼逐位移入到U3 里,最后在鎖存脈沖的控制下,將位碼和段碼并行送到LED 接口,經過延時后,再相應移入下一個位碼和段碼,以此類推。這樣在任何一個時刻都只有一位LED 在亮,即動態掃描顯示如圖6 所示。
③當被控對象的溫度高于我們所設定的溫度上限值或低于我們所設定的溫度下限值的時候,則報警指示燈會亮,喇叭就會響起[3],如圖7 所示。
在主程序中首先輸入按鍵值,接著通過循環顯示當前溫度值,等待中斷命令,而且讓鍵盤外部中斷作為高優先級,為了讓主程序可以實現實時響應鍵盤。當軟件設置定時器T0為5s 定時的時候,在沒有按鍵按下的時候,應該每隔5s 就要響應一次,目的是采集溫度傳感器并經A/D 轉換的溫度信號。設置定時器T1 作為放置在T0 中的定時中斷,初值通過PID 來給出,用于對溫度的控制。主要流程如圖8 所示。

圖8 主程序流程圖
PID 控制算法。PID 控制的應用非常普遍,主要有控制理論簡單、便捷,實用性很強,它的控制品質因數對被控對象的變化來說不太敏感等特點,當我們不需要很高的控制精度和控制速度的時候,它具有相對較高的性價比。
算法主要有2 種,分別是位置式PID 控制算法和增量式PID 控制算法。其中位置式PID算法的缺點在于:①當前采樣值與過去的各個狀態都有關系,在計算的時候要對e(k)進行累加處理,導致運算量很大;②控制器的輸出u(k)對應的是執行機構的位置,如果我們的計算機發生任何問題的時候,u(k)的變動都會導致執行機構位置發生巨大變化。綜合考慮,本課題采用增量式算法[4],其框圖如圖9 所示。

圖9 PID 控制算法框圖
PID 控制給出設定值與當前實際值的偏差e(t),按照比例、積分與微分的方式組合,得輸出量u(t)作用在被控對象上,如圖10 所示。

圖10 PID 控制模式方框圖
所以連續系統中PID 控制器的傳遞函數如下:
PID 控制規律為:
其中,KP為比例系數,Ti為積分時間常數,為Td微分時間常數,e(t) 為PID 控制器的輸入量,u(t) 為輸出量。
單片機是利用程序設計的方式實現控制算法,因此需要我們對它進行離散化處理,轉變成數字式PID 控制器。當采樣周期遠遠小于信號變化周期的時候,該算法可以通過式(2)近似得出:
式中T 是采樣周期,k 是采樣序號,將式(3)帶入式(2)中,有:
為了方便單片機進行程序編寫將式(4)變為:
式中,e(k)為數字PID 控制器的輸入;u(k)為第k 個采樣值的時候數字PID 控制器輸出。數字PID 由數字PID控制器的增量值遞增。該算法是增量數字PID 控制算法,如式(6)所示。
其具體流程如圖11 所示。

圖11 PID 算法程序流程圖
在實際中,傳感器的輸出特性是非線性的,這將會影響我們的檢測精度。因此,我們可以進行非線性補償,主要有軟件方法和硬件方法,二者相比較下,軟件方法顯得很靈活,無須額外搭建硬件電路,從而可以節約成本,故生活中我們都常常選擇使用軟件補償。本課題選擇使用計算方法中的代數插值法,該方法需要根據傳感器的標定數據建立插值多項式。
設傳感器的輸入信號為y,輸出信號為x,兩者的關系是y=f(x)。利用標定可以獲取對應于n+1個不同輸出值的傳感器輸入值yi=f(xi)。想辦法用一個多項式Pn(x)去逼近f(x),并且使Pn(xi)=f(xi),那么Pn(x)就叫做f(x) 的插值多項式,xi叫做插值節點。在實際運用的時候,Pn(x)的階數n要依據精度來確定。但是,精度太高,n值愈大,計算起來也就越復雜。如果f(x) 幾乎為線性,那我們就可以用一次多項式逼近,即n=1,此時多項式變為P1(x)=a1x+a0;如果f(x) 類似于拋物線,那我們就可以用二次多項式逼近,即n=2,此時多項式變為P2(x)=a2x2+a1x+a0。
使用多項式插值法,就好比在傳感器的2 個相鄰點(xi,yi)和 (xi+1,yi+1)間用直線P1(x)連接,在區間 [xi,xi+1]內用P1(x) 替代f(x) 來計算y。如果我們有n+1 標定點,那么可以劃定n+1 個區間,各個區間上插值多項式為:
在用線性插值法補償的時候,要先按照式(8)算出系數a1i,a0i,再做成表格,寫入程序。程序運行時,首先確定該間隔的采樣值,然后根據間隔刪除相應的系數式(7)便可以得到對應于x的被測量y。
(1)T1 中斷子程序。這一終端是5s 定時中斷,是低優先級,但是它的重要性很高,在中斷響應過程中,SCM完成的工作有:數據采集及A/D 轉換、要確定線,非,顯示當前溫度值,和默認設置值比較、調用PID 算法子程序并且給出控制信號。
(2)T0 中斷子程序。T0 定時中斷嵌套在T1 中斷內,作為高優先級中斷,T0 的定時初值由PID 控制算法子程序給出,T0 的中斷響應時間用來輸出對溫度控制的信號。流程如圖12 所示。

圖12 中斷程序流程圖
本文所用的是行列式鍵盤接口,使用的是線反轉法,依次給列線置低電平,再檢查線的狀態,如果不全為高電平,則所按下的鍵一定在此列,即與低電平相交的行線上交點的那個鍵,因此,對按鍵位置的判斷顯而易見,無需進行掃描,響應速度大幅度提高,而鍵盤中斷程序作為高優先級的功能控制鍵,系統應定時準備響應該中斷,在該中斷響應的過程中,系統需要顯示前一次的溫度設定值。流程如圖13 所示。

圖13 鍵盤程序流程圖
在89C51 內部RAM 中設置4 個顯示緩沖單元79H~7CH,如表5 所示,分別存放顯示器將要顯示的4 位數據,設初值為01H,左移得到。逐位交替點亮各個LED,每位保持1ms,在10~20ms 之內再點亮一次。利用人的視覺效果,似乎4 位LED 同時都被點亮一樣,具體流程如圖14 所示。

表5

圖14 顯示子程序流程圖
本文所介紹的核心件單片機AT89C51,通用性好集成度高消耗低,在我國目前的8 位單片機應用中占有很大的市場比重,應用十分廣泛。而考慮到本設計應用的工作環境,所選擇的溫度測量元件則是熱電偶傳感器,在高溫測量中最常用的。
在未來的工業生產領域里,利用單片機實現對溫度的測控是一種發展趨勢,它能很好地服務于我們的產品生產,實時對溫度進行檢測,優化我們的生活,是一種不錯的測控系統,很值得在工業生產的各個領域大力推廣。