敬奕艷
(深圳技術大學 新材料與新能源學院,廣東 深圳 518118)
半導體熱電致冷器(thermo electric cooler,TEC)是利用半導體材料的珀爾帖效應制成的。珀爾帖效應是指當電流流過由兩種不同半導體材料組成的電偶對時,電偶對的一端放熱、另一端吸熱,如果改變電流流入的方向,放熱和吸熱的端也會隨之交換,這一點很適合既需升溫又需降溫的溫控應用[1]。TEC溫控設備體積小、無噪音、無污染,廣泛應用于光電、機電、醫(yī)療、汽車和通訊等領域[2]。比如TEC溫控系統(tǒng)已大量應用于中、小功率的半導體激光器,使激光器溫度恒定,從而輸出的激光波長穩(wěn)定[3-4]。
目前,低電壓、小功率的TEC溫控系統(tǒng)已經(jīng)有了成熟的芯片方案,比如ADN8830,MAX1978,LTC1923等[5-7],它們使用方便,溫控精度高,但只能用于額定電壓不超過5 V,電流不超過4 A的小功率TEC片。對于電壓更高,功率更大的應用,目前沒有現(xiàn)成的芯片方案,需要自行設計控制系統(tǒng)。
TEC溫控系統(tǒng)的基本功能包括:設定被控溫對象的目標溫度,采集并顯示當前實際溫度,根據(jù)PID(比例、積分、微分)控制算法的計算結果,控制TEC片制冷或制熱的能力強弱,使系統(tǒng)溫度達到并維持在目標溫度。為實現(xiàn)這些功能,TEC溫控系統(tǒng)一般是以單片機或FPGA為核心的小型控制系統(tǒng)。本設計采用的AVR單片機ATmega128被廣泛應用于工業(yè)控制和儀器儀表等領域,是一款性能優(yōu)良、片上資源豐富、穩(wěn)定性高的芯片。
圖1 系統(tǒng)組成框圖
考慮將此溫控系統(tǒng)設計成既可以獨立工作,又能方便地加入到別的系統(tǒng)中作為一個板卡部件的產(chǎn)品,該系統(tǒng)的設定溫度,可通過按鍵輸入,或通過串口從上位機或其它系統(tǒng)接收指令。設置有液晶模塊插座,液晶屏可顯示當前實時溫度信息,或不使用液晶屏,通過串口輸出信息。
選擇溫度傳感器,很重要的因素是精度要高,是溫度采集準確的必要條件。常用的溫度傳感器有NTC(負溫度系數(shù)熱敏電阻),PTC(正溫度系數(shù)熱敏電阻),數(shù)字溫度傳感器DS18B20等,其中,NTC和PTC的測溫精度較高。如果對溫度精度的要求不高,可選用DS18B20,溫度的采集最容易實現(xiàn),可以省去溫度到電壓的轉換,模數(shù)轉換,查表等硬件、軟件操作,系統(tǒng)的復雜度大大降低。目前TEC溫控系統(tǒng)常應用于半導體激光器類的產(chǎn)品,很多激光模組內(nèi)部集成了NTC,同時還考慮實現(xiàn)較高的測溫精度,因此本設計采用精度為0.5%,B值為3435的NTC采集溫度。需要設計溫度采集電路,將由溫度變化引起的阻值變化,轉化為電壓的變化,再經(jīng)過模數(shù)轉換電路,轉化為數(shù)字量才能送入單片機進行下一步處理。
TEC片有正負兩極,工作時需在兩極間接入直流電壓。用TEC片制冷或制熱,關鍵在于控制TEC片中電流的方向和大小。一些小功率的TEC溫控采用線性方式控制,優(yōu)點是符合TEC片對電壓紋波小的要求,缺點是控制用的三極管效率低,發(fā)熱多,溫度很高。為滿足本系統(tǒng)的大功率要求,即高電壓或大電流,提升效率,減少電路元器件發(fā)熱量,必須采用場效應管的H橋電路來控制電流流向,用PWM(脈沖寬度調(diào)制)信號的占空比來控制電流大小,這是一種開關控制方式,可能出現(xiàn)輸出電壓紋波較大的問題,需增加濾波電路來盡可能削弱紋波。本系統(tǒng)的主要設計指標是:TEC工作電壓范圍6~24 V,峰值電流≤20 A,控溫范圍:0~70 ℃,控溫精度±0.05 ℃。
設某時刻NTC的阻值為RNTC,則采樣電壓VADC1的計算式為:
(1)
將NTC電阻接于插座XS1。當溫度為25 ℃時,阻值為10 kΩ。因為后接的ADC(模數(shù)轉化)器件的輸入電壓范圍在0 V以上,而本設計的控溫范圍在0 ℃到70 ℃之間,所以當溫度為25 ℃,即NTC阻值為10 kΩ時,希望輸出電壓在相對中間的位置,于是給運算放大器U1A的同相輸入端設置了半電壓2.5 V。為了配合不同的ADC取樣電壓范圍,比如0~5 V,0~2.5 V,0~4.096 V等,可適度調(diào)整R5和R6的阻值,使得整個設計控溫范圍對應的電壓量都能處于ADC取樣電壓范圍內(nèi)。通過U1A放大得到電壓量后,再經(jīng)過一級電壓跟隨器,增大帶負載能力,接入到后級ADC。為了提高取樣精度,各電阻應采用1%或更高的精度。這里用到兩個運放,可選用軌到軌的雙運放封裝的型號,本設計采用OPA2348A。
圖2 NTC溫度采集電路
選用了SPI接口的12bit串行ADC器件AD7888,將模擬電壓值轉化為數(shù)字量,以便送入單片機進行溫度顯示和溫度控制處理。AD7888的SPI接口有四條信號線,分別與AVR單片機SPI接口的四個引腳相連。在圖3中,是片選信號,當需要AD7888工作時,ADCLK是時鐘線,在當前應用中,AD7888是從屬器件,時鐘由控制器件單片機輸出。DIN是AD7888控制字輸入,控制字決定其工作模式,模數(shù)轉換參考電壓的來源等。DOUT是模數(shù)轉化的結果輸出。VREF是參考電壓,當前設計是采用AD7888外部的電壓基準,是由一顆LM4040AIM3-4.096 V產(chǎn)生的,電壓精度為±0.1%。NTC溫度采集電路得到的電壓量從AIN1腳輸入。AD7888的供電腳5 V要做好濾波,圖中接了10 μF,0.1 μF,0.01 μF 3個陶瓷電容到地。沒有用到的輸入腳AIN2-AIN8不能懸空,要接地,避免引入干擾。
圖3 ADC電路
在一般設計中,H橋電路由4個場效應管組成,通過4個柵極電壓控制各個場效應管的導通和截止,從而控制流過TEC片的直流電流的方向。本設計采用集成電路BTN7971B,每片包含一個上管PMOS、一個下管NMOS構成半橋以及一個驅動IC,兩片配合可構成H形全橋電路。
圖4 TEC驅動電路
選用BTN7971B的原因主要是它的參數(shù)與本設計的指標較為匹配,能滿足輸入電壓、電流范圍,內(nèi)部場效應管導通電阻很小,小于20 mΩ,在大電流情況下器件的發(fā)熱量相對小,很適合用于較高電壓、較大電流的TEC溫控電路。配合外部電路,BTN7971B容易實現(xiàn)過溫、過流、過壓等保護以及電流上升斜率調(diào)整功能,在大功率應用條件下,比簡單地用4個場效應管構成H橋的安全性有很大提升,也比額外增加各種保護電路更簡單和經(jīng)濟。此外,用4個場效應管來做H橋電路,需要4個電壓控制信號來分別控制4個場效應管,要做好信號之間的配合,避開“死區(qū)”時間。“死區(qū)”是指H橋電路同一側的上管和下管在較短時間內(nèi)同時導通,這會導致電源對地短路。而采用BTN7971B,可自動避免“死區(qū)”問題,只需2個控制信號就可驅動,簡化了電路和軟件設計。
PCB設計是該溫控系統(tǒng)電路實現(xiàn)的一個重要方面。ADC的模擬量輸入和參考電壓基準的走線都要盡量短,避開干擾源,在走線兩側伴著走地線,做好防護;電路主要分為單片機小信號和TEC大電流驅動兩部分,兩者的地要分割,只在一點連接;大電流工作部分的走線都采用了較寬的銅箔,并均勻打上很多大過孔實現(xiàn)良好散熱;兩片BTN7971B是板上溫度較高的器件,一方面利用板上銅箔輔助散熱,另一方面預留了金屬熱沉的安裝位置。
電路部分還包含ATmega128單片機最小系統(tǒng)、按鍵電路、串口電平轉換和從系統(tǒng)供電到5 V的轉化電路等,這里就不展開詳述。
主程序main()函數(shù)首先是對系統(tǒng)各組成模塊,包括按鍵、液晶顯示、SPI接口、串口、定時器和PID參數(shù)進行初始化,程序主體包含一個大循環(huán),圖5的流程圖是此循環(huán)中的一次流程。通過2按鍵方式輸入所需控制溫度,獲取AD7888轉化后的數(shù)字量,通過查表方式找到當前的實際溫度。調(diào)用液晶屏顯示函數(shù),顯示當前溫度。編寫PID計算函數(shù),采用了分段計算方式,當控制溫度與實際溫度的差值在-2到2 ℃范圍內(nèi)時才計算PID控制量。與PWM生成模塊的占空比調(diào)整范圍匹配,根據(jù)PID控制量輸出占空比,根據(jù)溫度差值是正或負,輸出控制方向是加熱或制冷。
圖5 溫控軟件流程圖
在AD7888開啟模數(shù)轉換功能之前,需要單片機向其寫入控制字,設置當前進行轉換的模擬輸入通道(8個通道中的某一個)、參考電壓來源、AD7888工作模式。開啟轉換功能后,單片機需要定時從AD7888讀取轉換結果。因此,軟件需要編寫AD7888的寫入和讀取函數(shù)。由于ATmega128具備SPI接口,可與AD7888通過SPI通信,使得讀、寫都能夠以一個字節(jié)為單位進行,避免了繁瑣的按位操作,簡化了軟件設計。ATmega128的SPI接口需要根據(jù)AD7888的讀、寫時序要求進行初始化。
void WriteToAD7888(uchar CtrlWord) //AD7888控制字寫入函數(shù)
{
uchar ControlValue = 0; //定義無符號字符型變量
ControlValue= CtrlWord; //將控制字賦給變量
PORTB&=0xFE; //拉低CS
SPDR=ControlValue; //將控制字送入SPI數(shù)據(jù)寄存器
while(!(SPSR&(1< //否為1,為1說明數(shù)據(jù)已傳完 PORTB|=0x01; //拉高CS,結束寫操作 } uint ReadFromAD7888(void) //AD7888讀取函數(shù) { uint tem_h,tem_l,tem_1,tem_2; //定義無符號整型變量 PORTB&=0xFE; //拉低CS SPDR=0x00; //寫入任意一字節(jié),啟動數(shù)據(jù)移位 while(!(SPSR&(1< //1,為1說明數(shù)據(jù)已傳完 tem_h=SPDR; //讀取高字節(jié) SPDR=0x00; //寫入任意一字節(jié),啟動數(shù)據(jù)移位 while(!(SPSR&(1< //1,為1說明數(shù)據(jù)已傳完 tem_l=SPDR; //讀取低字節(jié) Delay_us(10); //延時10us PORTB|=0x01; //拉高CS,結束讀操作 tem_1=tem_h*256; tem_2=tem_1+tem_l; TEMP=tem_2; //TEMP是采樣到的ADC的數(shù)值 return TEMP; //函數(shù)返回ADC值 } 在主程序中,對AD7888寫入的控制字是0x04,連續(xù)讀取4次AD轉換結果取平均值,得到比較精確的數(shù)字量,從而獲得更高的轉換精度。 PID控制算法一般有位置式和增量式兩大類,相比而言,增量式的計算量小。本設計嘗試了這兩種算法,位置式在當前的應用中表現(xiàn)更好,因此選擇了位置式PID算法,計算式如下: (2) (3) 因為OUT的計算中涉及浮點數(shù),計算量非常大,所以采用了分段計算方法:當|EK|≥2時,即當前溫度與控制溫度還相差較大時,不計算PID控制量OUT,直接用最大的控制量,即全速的加熱或制冷;當|EK|<2時,按公式(3)計算OUT。 pid.Pout=pid.Kp*pid.Ek; //比例輸出 pid.SEk+=pid.Ek; //歷史偏差總和 DelEk=pid.Ek-pid.Ek_1; //最近兩次偏差之差 ti=pid.T/pid.Ti; ki=ti*pid.Kp; //Ki積分系數(shù) pid.Iout=ki*pid.SEk; //積分輸出 td=pid.Td/pid.T; kd=pid.Kp*td; //Kd微分系數(shù) pid.Dout=kd*DelEk; //微分輸出 out= pid.Pout+ pid.Iout+ pid.Dout; //PID控制量 前述的TEC驅動電路需要兩個控制信號:PWM#和DIREC#,都是由ATmega128產(chǎn)生。本設計采用ATmega128的定時計數(shù)器T/C3來產(chǎn)生PWM信號,輸出引腳是PE3,產(chǎn)生的PWM波形頻率為15.625 KHz。DIREC#信號的輸出引腳是PE4,是用作普通I/O,產(chǎn)生高或低電平。軟件首先需要設置輸出信號引腳狀態(tài),開啟10位快速PWM功能,編寫了PWM_init函數(shù)。 void PWM_init(void) { DDRE |=0x1A; //設置PE3和PE4為輸出 PORTE &=0xF7; //設置PE3內(nèi)部無上拉,PE4為內(nèi)部上拉 TCCR3A=0x83; //T/C3的通道A設置為比較輸出模式 TCCR3B=0x09; //采用10位快速PWM模式,top值為0x03FF(1023) TCNT3=0X0000; //設置定時器3的初始值為0 OCR3A=512; //設置初始占空比為512/1024=0.5 ETIMSK=0X00; //T/C3的中斷屏蔽寄存器設置 } 根據(jù)PID控制量OUT的計算結果,產(chǎn)生不同占空比的PWM信號的代碼: if(pid.Ek > 0) { PORTE &= ~(1< if(fabs(out) > 1023) { OCR3A = 1023; } //OCR3A的最大值是1023 else { OCR3A = fround(fabs(out)); } //將OUT值取絕對值、取整,作為OCR3A } else if(pid.Ek <= 0) { PORTE |= (1< if(fabs(out) > 1023) { OCR3A = 0; } //OCR3A的最小值是0 else { OCR3A = 1023-fround(fabs(out)); } } pid.Ek_1=pid.Ek; //將當前誤差賦值給上一次誤差 溫控系統(tǒng)設計完成后,主要使用4 Ω/50 W的鋁殼電阻進行試驗。鋁殼電阻兩端接12 V直流電壓,發(fā)熱功率約為36 W,能模擬該TEC溫控系統(tǒng)的一般應用條件。采用100×100×5(mm)的紫銅板作為導熱金屬板,可為2塊TEC片同時導熱。TEC片的制冷面均勻涂抹導熱硅脂,與紫銅板的一面緊密接觸,鋁殼電阻固定在紫銅板的另一面中心部位,在紫銅板上鋁殼電阻旁邊位置鉆有小孔,將NTC的感溫部分完全埋置其中,并以AB膠封孔。TEC片的制熱面均勻涂抹導熱硅脂,與一個較大體積的金屬熱沉緊密接觸,并安裝有風扇順著熱沉的導熱方向吹風,帶走熱量。設計一個良好的散熱、導熱和感溫的實驗裝置對TEC溫控應用是非常重要的,如果TEC片熱面的熱量不能及時帶走,溫度過高,冷面就不能輸出低溫。 該TEC溫控系統(tǒng)支持的TEC片額定電壓范圍寬,為6~24 V,峰值電流可達20 A,可支持多種型號的TEC片單獨使用,還可將TEC片串聯(lián)或并聯(lián)使用,以獲得更大的制冷或制熱功率。在試驗中,將2塊型號為12708(額定電壓12 V,額定電流8 A)的TEC片串聯(lián)使用,對多種不同溫度的升溫或降溫控制進行了調(diào)試。 將此溫控系統(tǒng)應用在一個出纖光功率最大為16 W的793 nm半導體激光器上,將激光器的溫度控制在25 ℃,激光器內(nèi)置NTC和TEC片。從激光器閾值電流0.5 A到最大電流2.5 A的范圍內(nèi),選取不同的電流值來測試溫控系統(tǒng)的控溫能力。經(jīng)過多次重復測試,溫度波動能保持在±0.05 ℃以內(nèi),從起控到溫度穩(wěn)定的時間一般在10分鐘以內(nèi)。圖6和圖7是當環(huán)境溫度為28 ℃,激光器工作電流為2 A,初始溫度為40 ℃,控溫到25 ℃的溫度變化過程。每30秒記錄一次溫度,約5分鐘后,溫度到達25 ℃附近,此后存在小幅波動,在±0.05 ℃范圍內(nèi)。 圖6 從初始溫度40 ℃控溫到25 ℃ 圖7 溫度達到25 ℃后的變化情況 因為TEC溫控系統(tǒng)是由多個部分組成的整體,受到多方面的影響,比如被控對象的形態(tài),溫度傳感器的固定位置和方式,TEC片的選型和組合,散熱條件等,都會影響控溫效果。從實驗過程發(fā)現(xiàn),一組PID參數(shù)(Kp,Ki,Kd)可能無法滿足整個控溫范圍內(nèi)的要求,可在軟件中根據(jù)條件設置幾組PID參數(shù),也可開放用戶微調(diào)PID參數(shù)的功能。 基于ATmega128的TEC溫控系統(tǒng)基本上滿足了較大功率TEC片的應用需求,在控溫精度方面的表現(xiàn)較好,在調(diào)試和測試的過程中,也表現(xiàn)出較好的可靠性和穩(wěn)定性。后續(xù)還將繼續(xù)改進設計,改用16bit的ADC器件,提高測溫精度。PID算法改用變速積分增量方式,有望降低計算復雜度,加快控溫響應速度,提高控溫精度?,F(xiàn)有的PWM頻率較低,可提高PWM頻率,就能夠減小LC濾波的電感量,從而縮小電感的體積,減輕重量。可提高PWM占空比調(diào)整的精細程序,從而提高控溫精度。電路板還可優(yōu)化縮小,使其更便于嵌入到小體積產(chǎn)品中。目前,TEC溫控系統(tǒng)在各種儀器設備和生活電器等領域有了越來越廣泛的應用,本設計的TEC溫控系統(tǒng)也可嘗試與各種其它產(chǎn)品進行融合。3.2 PID控制算法的軟件實現(xiàn)
3.3 TEC驅動電路的控制信號產(chǎn)生
4 實驗結果與分析
5 結束語