基于數(shù)字PID增量控制的恒溫晶體振蕩器
摘要:針對晶體時(shí)鐘振蕩器輸出頻率易受外界溫度變化影響的特點(diǎn),設(shè)計(jì)了以MSP430F4618單片機(jī)為控制核心的恒溫晶體振蕩器。將高精度負(fù)溫度系數(shù)熱敏電阻作為傳感器對晶體溫度進(jìn)行采樣,并采用精密放大器IAN330芯片對晶體溫度變化差值信號進(jìn)行轉(zhuǎn)換并輸出至控制核心。輸出的信號經(jīng)12位A/D轉(zhuǎn)換后進(jìn)行數(shù)字PID增量控制運(yùn)算得到控制量增量,再通過12位D/A轉(zhuǎn)換輸出至DRV593芯片驅(qū)動半導(dǎo)體制冷片(TEC)對晶體溫度進(jìn)行控制,并循環(huán)該過程使晶體振蕩器的工作溫度保持穩(wěn)定。
關(guān)鍵詞:恒溫;晶體振蕩器;MSP430F4618;PID
0 引言
PID(Proportional Integral Differential)控制器是按給定量與輸出量偏差的比例、積分、微分進(jìn)行控制的調(diào)節(jié)器,具有結(jié)構(gòu)簡單、控制效果好、魯棒性強(qiáng)等優(yōu)勢,是目前自動化控制技術(shù)中最穩(wěn)定的控制方法,同時(shí)在許多工業(yè)控制中得到了廣泛的應(yīng)用,單片機(jī)、DSP、FPGA等處理器易于實(shí)現(xiàn)數(shù)字PID控制算法,從而取代了傳統(tǒng)的模擬PID控制器,使系統(tǒng)電路更簡單、精度更高、通用性更強(qiáng)。由于軟件程序的靈活性,使數(shù)字PID控制算法也變得豐富多樣,可以根據(jù)實(shí)際系統(tǒng)的情況,選擇適合的數(shù)字PID控制算法,數(shù)字PID控制算法通常分為位置式PID控制算法和增量式PID控制算法,前一種算法所得到的控制量為全量輸出,每次運(yùn)算都會對誤差進(jìn)行累加,從而引起系統(tǒng)較大的超調(diào),使系統(tǒng)穩(wěn)定性下降;而后者輸出的則是控制量的增量,減小了累積誤差及精度問題對輸出控制量的影響。
恒溫晶體振蕩器(Oven Controlled Crystal Oseillator,OCXO)簡稱恒溫晶振,它在嵌入式系統(tǒng)中的應(yīng)用有著重要的意義,傳統(tǒng)的恒溫晶體振蕩器采用恒溫槽使晶體溫度保持恒定,為了靈活的控制晶體的輸出頻率及達(dá)到更高的穩(wěn)定性能,設(shè)計(jì)了基于數(shù)字PID增量控制算法的恒溫晶體振蕩器,并采用了TEC制冷技術(shù),使晶體溫度的控制更加靈敏、準(zhǔn)確和高效。
1 系統(tǒng)工作原理
整個(gè)系統(tǒng)對晶體溫度控制的總流程如圖1所示?;赥I公司MSP430單片機(jī)的優(yōu)點(diǎn),系統(tǒng)控制核心選用MSP430F4618單片機(jī),信號采集轉(zhuǎn)換部分使用了高精度的負(fù)溫度系數(shù)熱敏電阻(NTC)與INA330芯片對晶體溫度偏差進(jìn)行采集轉(zhuǎn)換,INA330芯片是基于10 kΩ熱敏電阻的溫度控制器,專為光網(wǎng)絡(luò)及醫(yī)學(xué)分析應(yīng)用中進(jìn)行熱電冷卻控制設(shè)計(jì)的精密放大器,它只采用了一個(gè)10 kΩ精密電阻器R2和10 kΩ熱敏電阻R1,為傳統(tǒng)的橋式電路提供了替代方案。
在INA330芯片的兩個(gè)輸入端V1和V2加上1 V的激勵電壓后,將在熱敏電阻R1和精密電阻器R2上產(chǎn)生I1和I2電流,芯片內(nèi)部電流輸送電路輸出電流Io=I1-I2,該電流流經(jīng)外部增益電阻器R3,任何加至R3另一端的偏置電壓都與輸出電壓相加,所以總的輸出電壓可以表示為:
V0=(I1-I2)×R3+Va (1)
該輸出電壓送至MSP430F4618處理器,通過芯片內(nèi)部集成的12位A/D轉(zhuǎn)換器,使輸入的偏差模擬信號轉(zhuǎn)換為數(shù)字信號,通過數(shù)字PID增量控制算法得到控制量增量,經(jīng)處理器內(nèi)部集成的12位D/A芯片轉(zhuǎn)換輸出,控制DRV593輸出PWM波驅(qū)動TEC對晶體進(jìn)行加熱或制冷,圖中虛線表示TEC到熱敏電阻形成一個(gè)閉環(huán)負(fù)反饋,兩者在機(jī)械位置上是同晶體安裝在一起的,在電氣連接上是相互隔離的。在實(shí)際應(yīng)用中,晶體的實(shí)際溫度可以通過設(shè)置Va大小來進(jìn)行控制。
2 系統(tǒng)硬件設(shè)計(jì)
在原理圖的設(shè)計(jì)中,根據(jù)設(shè)計(jì)的原理及所需要實(shí)現(xiàn)的功能模塊,參考文獻(xiàn),將總的硬件電路劃分為電源模塊、LCD顯示模塊、控制核心模塊、TEC驅(qū)動模塊、INA330控制模塊,鑒于設(shè)計(jì)電路的復(fù)雜性,硬件設(shè)計(jì)采用層次電路繪制原理圖,這樣可以比較清晰和簡單地繪制原理圖,再檢查和核對各模塊就顯得有章可循,整個(gè)控制系統(tǒng)的頂層原理圖如圖2所示。
在具體的硬件電路中,INA330芯片與熱敏傳感器共同構(gòu)成了晶體溫度誤差信號的轉(zhuǎn)換電路,控制核心電路則是MSP430F4618單片機(jī)的最小系統(tǒng),該最小系統(tǒng)電路包括復(fù)位電路、電源電路、JTAG仿真接口、時(shí)鐘電路,其中MSP430F4618單片機(jī)采用直流3.3 V供電,LCD顯示采用段式液晶對晶體溫度值進(jìn)行實(shí)時(shí)顯示,DRV593芯片及其外圍電路構(gòu)成TEC驅(qū)動電路,通過設(shè)置DRV593芯片的負(fù)端電壓,可以調(diào)節(jié)TEC加熱或冷卻的閾值,向DRV593芯片正電壓端輸入控制信號,可以間接控制晶體溫度,在整個(gè)系統(tǒng)中,控制核心模塊與其他外部模塊間數(shù)?;蚰?shù)信號轉(zhuǎn)變的參考電壓均使用單片機(jī)內(nèi)部提供的參考電壓。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 系統(tǒng)總體軟件流程
系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方式,圖3(a)是系統(tǒng)軟件總體設(shè)計(jì)流程,主要包括晶體溫度的采樣轉(zhuǎn)換(見圖3(b))、LCD顯示(見圖3(c))數(shù)字PID增量運(yùn)算、控制量D/A轉(zhuǎn)換(見圖3(d))及控制量的輸出,其中溫度信號的采集與轉(zhuǎn)換采用定時(shí)器TA中斷實(shí)現(xiàn),初始化定時(shí)器TA工作在增計(jì)數(shù)模式,捕獲/比較寄存器CCR0的值定義了采樣周期,當(dāng)TAR計(jì)數(shù)器計(jì)數(shù)值不小于CCR0的值時(shí),定時(shí)器TA中斷標(biāo)志位CCIFG0置1,系統(tǒng)響應(yīng)中斷,對晶體溫度進(jìn)行采樣轉(zhuǎn)換。
3.2 數(shù)字PID增量控制軟件設(shè)計(jì)
PID控制軟件是系統(tǒng)控制的軟件核心,其基本原理如圖4(a)所示,它是對參考輸入量與受控對象輸出量的偏差時(shí)間函數(shù)進(jìn)行比例(P)積分(I)微分(D)運(yùn)算,得到受控對象控制量的過程,其動態(tài)方程表達(dá)式為:
式中:TI與TD分別為積分時(shí)間和微分時(shí)間;kP是比例控制參數(shù),為減少誤差累積及PID算法的精確性,這里采用數(shù)字PID增量算法,當(dāng)采樣周期T遠(yuǎn)小于信號變化的周期時(shí),實(shí)際應(yīng)中可以采用后向差分法對式(2)中的各項(xiàng)進(jìn)行離散處理:
式(6)中,e(n-2)是第n-2次采樣偏差,通過控制量作差,消除了偏差累積效應(yīng),當(dāng)知道采樣偏差e(n),e(n-1),e(n-2)的值時(shí),便可以通過單片機(jī)進(jìn)行數(shù)字PID增量控制運(yùn)算得到下一時(shí)刻的控制增量,具體的軟件流程如圖4(b)所示。
4 PID控制參數(shù)kP,kI,kD的調(diào)節(jié)
在實(shí)際的應(yīng)用中,控制器參數(shù)kP,kI,kD的調(diào)節(jié)需要根據(jù)具體的硬件系統(tǒng)進(jìn)行設(shè)置,初始設(shè)置前可以參考相關(guān)文獻(xiàn)的調(diào)試準(zhǔn)則進(jìn)行設(shè)置,當(dāng)輸出不振蕩時(shí),可以增大比例參數(shù)kP且應(yīng)減小積分時(shí)間常數(shù)TI或增大微分時(shí)間常數(shù)TD?;贛SP430單片機(jī)先進(jìn)的JTAG在線仿真調(diào)試技術(shù),通過IAR軟件查看程序運(yùn)行過程中,偏差變量的變化情況,如圖5(a)所示,為控制參數(shù)分別為kP=5,kI=0,kD=0時(shí)某一時(shí)刻的偏差變量的值。
按照相關(guān)文獻(xiàn)報(bào)導(dǎo)的PID參數(shù)設(shè)置方法及硬件系統(tǒng)的實(shí)際特性,調(diào)節(jié)設(shè)置了控制參數(shù)分別為kP=0.85,kI=0.004,kD=0.002,經(jīng)過調(diào)試后某一時(shí)刻的偏差變量值如圖5(b)所示,從IAR仿真軟件的變量查看表中,可以看到偏差變量的值趨于0,圖6為具體硬件實(shí)物圖和設(shè)置恒溫晶體工作在25℃時(shí)的溫度-時(shí)間(T-t)曲線圖。
5 結(jié)語
本論文設(shè)計(jì)了以MSP430F4618單片機(jī)為控制核心,采用熱敏電阻與INA330芯片對晶體溫度進(jìn)行采集轉(zhuǎn)換,經(jīng)數(shù)字PID增量算法輸出控制增量,通過DRV593芯片驅(qū)動控制TEC對晶體進(jìn)行加熱或冷卻,同時(shí)LCD對晶體溫度進(jìn)行顯示,經(jīng)過軟件調(diào)試設(shè)置了數(shù)字PID的三個(gè)參數(shù)值分別為kP=0.85,kI=0.004,kD=0.002,使系統(tǒng)所采集到的溫度偏差值趨于0,實(shí)現(xiàn)了晶體工作在25℃的恒溫輸出,本系統(tǒng)的設(shè)計(jì)研究對提高控制系統(tǒng)的精確控制性能有著重要意義。