<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于MSP430的溫度控制系統(tǒng)的設(shè)計與實現(xiàn)

          基于MSP430的溫度控制系統(tǒng)的設(shè)計與實現(xiàn)

          作者: 時間:2012-02-03 來源:網(wǎng)絡(luò) 收藏

          如冰箱、冰柜、空調(diào)已廣泛地走進(jìn)大眾家庭,這些設(shè)備帶給了人們更多的舒適,人們也越來越依賴它們。為此,我們小組搭建了一個,模擬在日常生活中的運(yùn)作,深入探討其工作原理及可優(yōu)化潛力。

          本文引用地址:http://www.ex-cimer.com/article/257730.htm

          1 系統(tǒng)組成

          本系統(tǒng)以系統(tǒng)板為控制核心,包括溫度采集、PID算法功率控制、調(diào)溫、人機(jī)交互等模塊。其采用數(shù)字式溫度傳感器DS18B20作為溫度采樣元件,在通用定時器B周期中斷的控制下,低功耗單片機(jī)F449通過其通用I/O口從DS18B20讀取采樣值,再通過PID控制算法計算出控制量去控制主電路的電流方向和PWM波的輸出。電流方向決定對控溫對象進(jìn)行加熱或制冷,輸出的PWM波驅(qū)動功率MOSFET IRF540,從而達(dá)到控制熱電模塊加熱或制冷的功率的目的,系統(tǒng)組成框圖如圖1所示。


          2 F449簡介

          MSP430F449是TI公司推出的16位超低功耗混合信號處理器,同時集成數(shù)字和模擬電路。其具有特點:16位CPU通過總線連接到存儲器和外圍模塊;直接嵌入仿真處理,具有JTAG接口;多時鐘能夠降低功耗,多總線能夠降低噪聲;16位數(shù)據(jù)寬度,數(shù)據(jù)處理更有效。它的集成調(diào)試環(huán)境Embedded Workbench提供了良好的C語言開發(fā)平臺。

          MSP430F449的定時器A和定時器B都可以實現(xiàn)PWM:當(dāng)定時器工作在PWM波產(chǎn)生模式,就可以利用寄存器CCR0控制PWM波形的周期,用另外寄存器控制占空比,生成PWM波方便。并且片內(nèi)集成段式液晶驅(qū)動模塊,便于顯示溫度值。

          3 PID控制算法原理

          3.1 PID控制系統(tǒng)筒介

          PID控制系統(tǒng)如圖2所示,D(s)完成PID控制規(guī)律,稱為PID控制器。PID控制器是一種線性控制器,用輸出量y(t)和給定量r(t)之間的誤差的時間函數(shù)e(t)=r(t)-y(t)的比例、積分和微分的線性組合構(gòu)成控制量u(t),稱為比例(Proportional)、積分(Integrating)、微分(Differ-entiation)控制,簡稱PID控制。

          PID控制組合了比例控制、積分控制和微分控制這3種基本控制規(guī)律,通過改變調(diào)節(jié)器參數(shù)來實現(xiàn)控制,其基本輸入輸出關(guān)系為:

          實際應(yīng)用中,可以根據(jù)受控對象的特性和控制的性能要求,靈活采用比例(P)控制器、比例+積分(PI)控制器、比例+積分+微分(PID)控制器3種不同控制組合。

          3.2 PID參數(shù)控制效果分析

          PID控制的3基本參數(shù)為KP、KI、KD,這3項參數(shù)的實際控制作用為:

          比例碉節(jié)參數(shù)(KP) 按比例反映系統(tǒng)的偏差。增大KP,系統(tǒng)的反應(yīng)變靈敏、速度加快、穩(wěn)態(tài)誤差減小,但振蕩次數(shù)也會加多、調(diào)節(jié)時間加長。在該反饋環(huán)中,該值主要影響速度。

          積分調(diào)節(jié)參數(shù)(KI) 消除系統(tǒng)靜態(tài)(穩(wěn)態(tài))誤差,提高系統(tǒng)的控制精度。積分調(diào)節(jié)會使系統(tǒng)的穩(wěn)定性下降,動態(tài)響應(yīng)變慢,超調(diào)加大。積分控制一般不單獨作用,而是與P或者PD結(jié)合作用。

          微分調(diào)節(jié)參數(shù)(KD) 反映系統(tǒng)偏差信號的變化率,可以預(yù)見偏差的變化趨勢,產(chǎn)生超前控制作用。因此,微分控制可以提高系統(tǒng)的動態(tài)跟蹤性能,減小超調(diào)量,但對噪聲干擾有放大作用。過強(qiáng)的微分調(diào)節(jié)會使系統(tǒng)劇烈震蕩,對抗干擾不利。

          常規(guī)的PID控制系統(tǒng)中,減少超調(diào)和提高控制精度難以兩全其美。主要是積分作用有缺陷造成的。如果減少積分作用,靜差不易消除,有擾動時,消除誤差速度變慢;而加強(qiáng)積分作用時又難以避免超調(diào),這也是常規(guī)PID控制中經(jīng)常遇到的難題。所以在該系統(tǒng)中,對積分參數(shù)做了分段處理,已達(dá)到理想的效果。

          4 溫控裝置及原理

          DS18B20支持“一線總線”接口,測量溫度范圍為-55~+125℃,測量范圍廣。DS18B20可以程序設(shè)定9~12位的分辨宰,精度為0.0625 ℃,分辨率高。支持3~5.5 V的電壓范圍。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。并且只需占用一根微控制器的I/O口,節(jié)省I/O口。本系統(tǒng)選用PR-35封裝。

          控制電路選擇VDD供電方式,即VDD接+5 V,GND接地,I/O接單片機(jī)I/O。

          DS18B20的主要部件:64位激光ROM,溫度傳感器,非易失性溫度報警觸發(fā)器TH和TL,高度暫存器。

          4.1 單線總線訪問DS18B20的協(xié)議

          DS18B20需要嚴(yán)格的協(xié)議以確保數(shù)據(jù)的完整性。協(xié)議包括幾種單線信號類型:復(fù)位脈沖、存在脈沖、寫0、寫1、讀0和讀1。所有這些信號,除存在脈沖外,都由總線控制器發(fā)出。

          4.1.1 初始化

          通過單線總線的所有執(zhí)行都從一個初始化序列(一個由總線控制器發(fā)出的復(fù)位脈沖和跟在其后由從機(jī)發(fā)出的存在脈沖)開始。之后存在脈沖讓總線控制器知道DS18B20在總線上且已做準(zhǔn)備好操作。

          4.1.2 ROM操作命令

          一旦總線控制器檢測到一個存在脈沖,它就可以發(fā)出5個ROM命令中的任一個:Read ROM,Match ROM,Skip ROM,Search ROM,Alarm Search。

          由于只用到一個DS18B20,所以選擇Skip ROM跳過指令,無需進(jìn)行地址序列號的檢查,可以加大軟件運(yùn)行速度。

          4.1.3 存儲器操作命令

          4.1. 4 RAM操作指令如表1所示

          一般先執(zhí)行溫度轉(zhuǎn)換指令,然后用讀暫存器指令將16位溫度值讀入主控制器。

          4. 1.5 執(zhí)行/數(shù)據(jù)

          執(zhí)行數(shù)據(jù)前,一定確保先指令已經(jīng)輸入,并嚴(yán)格按照時間時序。執(zhí)行、數(shù)據(jù)時,要注意:只有數(shù)據(jù)時間隙把握準(zhǔn)確,讀寫數(shù)據(jù)才能正確。

          4.2 讀寫時間隙

          DS18B20的數(shù)據(jù)讀寫是通過時間隙處理位和命令字來確認(rèn)信息交換。必須在時間隙開始的確切時間讀取或?qū)懭胄枰臄?shù)據(jù)。所以,對DS 18B20的時序控制要嚴(yán)格把握時間分段。當(dāng)主機(jī)把數(shù)據(jù)線從邏輯高電平拉到邏輯低電平時,寫時間隙開始;當(dāng)從DS18B20讀取數(shù)據(jù)時,主機(jī)生成讀時間隙。

          5 TEC1-12708驅(qū)動電路

          制冷片TEC1-12708:依據(jù)帕爾帖效應(yīng)制作的溫差電制冷組件重量輕、體積小并具有相對高的制冷量,特別適用于有限空間的制冷,由于制冷組件是一種固態(tài)熱泵,因而它無需維護(hù),無嗓音,能在任何位置工作,抗沖擊和抗震動能力強(qiáng)。另外,改變組件工作電流機(jī)型時,又可以制熱,改變電流強(qiáng)度可調(diào)整制冷功率。

          由于TEC要求的驅(qū)動電流是雙向的,所以選擇功率管MOSFET,結(jié)合雙向可控硅光電耦合器組成H橋式電路控制TEC方向。功率MOSFET管IRF 540的導(dǎo)通電阻很小,能有效提高供給負(fù)載的最大功率。光電耦合器是一種電-光-電轉(zhuǎn)換器件,把發(fā)光源和受光器用透明絕緣體隔離,不會對電路造成任何損害,比繼電器性能好。

          圖3為雙向可控硅光電耦合器構(gòu)成4個由高電平控制的開關(guān)電路。用該4個開關(guān)電路連接成H橋電路,以實現(xiàn)對制冷片加熱與降溫。當(dāng)開關(guān)1.3關(guān)閉時,電流正向流經(jīng)制冷器件,制冷器開始加熱;當(dāng)開關(guān)2,4關(guān)閉時候,電流反向流經(jīng)制冷器件,制冷器件降溫。

          經(jīng)過對控制原理進(jìn)行透析,繪制該制冷片的總控制原理圖如圖4所示。通過控制PWM波的占空比來控制功率管IRF540的導(dǎo)通時間,從而控制電路提供給制冷片的有效電流及方向。控制效果良好。


          6 系統(tǒng)軟件設(shè)計

          該系統(tǒng)軟件完成制冷制熱、設(shè)置溫度值、自動調(diào)溫等功能。重要算法實現(xiàn)包括PID算法和數(shù)字溫度傳感器DS18B20的控制。整體過程為:系統(tǒng)初始化,等待按健中斷。選擇制冷或制熱后,設(shè)定指定溫度值;將溫度采集的數(shù)據(jù)接收進(jìn)來,與設(shè)定溫度值比較,將差值經(jīng)過PID算法后計算出進(jìn)行功率控制的占空比,從而調(diào)節(jié)溫度。其中,PWM波由MSP430F449的定時器B產(chǎn)生,在該模式下,寄存器CCR0用于控制PWM波頻率,其他任意一個寄存器控制占空比,控制靈活,相當(dāng)方便。控制積分調(diào)節(jié)參數(shù)對,對其采取分段積分PID算法,控制系統(tǒng)超調(diào)量。軟件流程如圖5所示。

          該系統(tǒng)軟件完成制冷制熱、設(shè)置溫度值、自動調(diào)溫等功能。重要算法實現(xiàn)包括PID算法和數(shù)字溫度傳感器DS18B20的控制。整體過程為:系統(tǒng)初始化,等待按鍵中斷。選擇制冷或制熱后,設(shè)定指定溫度值;將溫度采集的數(shù)據(jù)接收進(jìn)來,與設(shè)定溫度值比較,將差值經(jīng)過PID算法后計算出進(jìn)行功率控制的占空比,從而調(diào)節(jié)溫度。其中,PWM波由MSP430F449的定時器B產(chǎn)生,在該模式下,寄存器CCR0用于控制PWM波頻率,其他任意一個寄存器控制占空比,控制靈活。

          7 測試結(jié)果

          7. 1 測試過程

          為防止室溫變化對測試造成影響,選擇有空調(diào)室溫恒定的地方進(jìn)行測試。在室溫16℃下,測試數(shù)據(jù)如表2所示。


          7.2 測試結(jié)果分析

          由上實驗數(shù)據(jù)可以看出,溫度讀數(shù)可以達(dá)到0.1℃,設(shè)定的溫度值與最終溫度值讀數(shù)相差最大為0.8℃,完全滿足實驗要求±2℃范圍的要求。從實驗數(shù)據(jù)第2組可以看出溫差大于15℃時,達(dá)到指定度所需時間為2分43秒。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();