一、實驗?zāi)康?/b>???????????????????????????????????????????????????????????????????????????????
1.了解晶體管PN結(jié)作為溫度傳感器的測溫原理。
2.進一步理解雙積分A/D轉(zhuǎn)換的工作原理。
3.掌握溫度檢測與控制方法。
4. 掌握基于Labview的虛擬溫度檢測與控制儀的軟件設(shè)計。
1.學(xué)習(xí)溫度檢測和控制電路的原理。
2.使用Labview,設(shè)計溫度檢測和控制的程序,要求:
(1)設(shè)計用戶界面;
(2)控制A/D轉(zhuǎn)換,測量電壓計算轉(zhuǎn)換為溫度;
(3)溫度控制到設(shè)定溫度;
(4)顯示溫度隨時間的變化曲線。
3.調(diào)試和測試溫度檢測和控制儀,記錄和分析實驗結(jié)果。
1.計算機???????????????????????????????????????? 1臺
2.SJ-8002B電子測量實驗箱???????????????????????? 1臺
3.SJ7005溫度檢測實驗板 ????????????????????????? 1塊
?? 4.1.PN結(jié)溫度二極管的測溫原理
?? 二極管的正向特性與溫度有關(guān),溫度升高時,正向伏安特性曲線左移,規(guī)律是:溫升1℃,曲線左移(2~2.2)mV。
?
圖1 溫度對二極管伏安特性的影響
?? 4.2.溫度檢測和控制原理
溫度二極管上的電壓V輸入給ADC7109的正輸入端,另外檢測電路產(chǎn)生V0,輸入給ADC7109的負輸入端測量,采集ADC7109的A/D轉(zhuǎn)換后的輸出數(shù)據(jù),即可計算出實際溫度T,它們之間的關(guān)系為:
??? T=K0-K1×(V-V0)
T為測試溫度,(V-V0)為ADC7109測量的差分電壓。經(jīng)過實驗測試,取K0=71,K1=500,溫度每變化1℃,V變化0.002mv。
????????????????????????? 圖2????? 溫度檢測與控制系統(tǒng)原理框圖
?? 溫度自動控制原理:實驗選擇自動控制方式時,若實際溫度超過設(shè)定值,控制電路發(fā)出信號,使繼電器動作,斷開燈泡的加熱電壓,停止加熱。由于保溫盒向外散熱,盒內(nèi)空氣溫度下降,當下降到低于設(shè)定值時,控制電路發(fā)出接通繼電器的信號,使燈泡通電加熱,盒內(nèi)空氣溫度上升,如此周而復(fù)始的測控操作,使盒內(nèi)空氣溫度維持在設(shè)定值附近。
4.3 溫度實驗板的電路原理圖
?????? ???????? ??????? ??????? ?????????? 圖3 ? 溫度實驗電路圖
4.4 雙積分A/D轉(zhuǎn)換器ICL7109工作原理和通道增益
?? 如圖4為雙積分A/D轉(zhuǎn)換器ICL7109實驗電路圖。待測模擬信號從實驗箱的外部接線端7109+和7109-輸入。
?? 7109的A/D轉(zhuǎn)換關(guān)系為:
式中, —— A/D轉(zhuǎn)換器輸入電壓;
—— A/D轉(zhuǎn)換結(jié)果的12bit數(shù)字量;
?? —— A/D轉(zhuǎn)換器外部參考輸入電壓,調(diào)節(jié)為
=2.048V;
由上式可知,若=2.048V ,則
即為以mv單位表示了
,即
??????????????????????????????? 圖4?? 雙積分式A/D轉(zhuǎn)換器7109測量電壓原理
(3) 增益選擇電路
??? 待測模擬信號經(jīng)過兩級測量放大器進行信號放大,前級放大器的增益有3檔,分別為1、10、100,后級放大器的增益有4檔,分別為0.5、1、2、5,通過模擬開關(guān)CD4052選擇放大器反饋電阻,即可進行兩級放大器的增益組合選擇,設(shè)置了10檔量程: 40mV、80mV、200mV、400mV、800mV、2V、4V、8V,對應(yīng)增益:×100 、× 50、× 20、×10、×5、×2、×1、×0.5。選擇的依據(jù)是輸入信號經(jīng)過放大后的電壓范圍為-4V~+4V。
五、設(shè)計指導(dǎo)
5.1.方案設(shè)計
??? 本實驗基于“SJ8002B電子測量實驗箱”的模擬輸入通道A/D轉(zhuǎn)換和基于PC機的虛擬儀器軟件平臺(Labview)構(gòu)建測量方案,實現(xiàn)溫度檢測和控制。其過程是7109轉(zhuǎn)換,加熱的啟動及停止控制,傳感器電壓檢測以及放大,電壓值通過計算轉(zhuǎn)換為溫度值,當前時間/溫度及初始時間/溫度值獲取。
?? (1)整個程序為循環(huán)結(jié)構(gòu),循環(huán)內(nèi)部采取順序結(jié)構(gòu),依次實現(xiàn)系統(tǒng)的初始化,溫度檢測,加熱控制,溫度顯示和時間顯示。設(shè)計思路流程圖如圖5:
?
?
?
?
?
?
?
?
????????????????? 圖5 設(shè)計總流程圖???????????????????? 圖 6 溫度檢測流程圖
?? (2)溫度檢測的流程圖如圖6:
?? (3)加熱工作模式分為手動和自動兩種。加熱控制的流程圖如圖7:
?
?
?
?
?
?
?
?
? ????? ? ?????????????????????????? 圖7 加熱控制流程圖
?? (4)總的系統(tǒng)簡化結(jié)構(gòu)如圖8所示:
?
?
?
?
????????????????????????????????? 圖8 系統(tǒng)設(shè)計總圖
5.2.功能與前面板界面設(shè)計
??? 虛擬溫度監(jiān)控儀主要完成溫度板溫度的測量、顯示及控制。因此,在虛擬儀器界面上需有多個布爾控件,如加熱/加熱方式控制,退出選擇;同時需要數(shù)字輸入和接受控件,如溫度,電壓,實驗相關(guān)信息的輸入和測量值獲取等;以及溫度計和表格顯示控件,溢出指示。
??? 圖9為前面板設(shè)計的參考。啟動虛擬儀器labview軟件開發(fā)環(huán)境,建立新的工程文件,打開front Panel設(shè)計界面,并存儲,由界面文件自動生成相關(guān)流程圖框架。
?
?
?
?
?
?
?
?
?
?
????????????????????????????????? ???????????
?
圖9? 軟件界面
?? 本程序中需要用到的前面板控件有:
?????????????????????????????????????? 表1 前面板控件
控件類別 |
控件位置 |
控件名及作用 |
控件圖標 |
輸入控制類 |
All Controls>Numeric>Numeric Control |
起始溫度 |
|
Text Ctrls>String Control |
實驗日期 |
| |
實驗人員 |
| ||
按鍵控制類 |
All Controls>Classic Controls>Classic Boolean>Horizontal Switch |
加熱方式選擇 |
|
All Control>Classic Controls>Classic Boolean>Labeled Oblong Button |
手控/自控加熱控制 |
| |
Buttons>Stop Button |
程序退出控制 |
| |
數(shù)字顯示類 |
Num Inds>Num Indicator |
傳感器電壓/放大后電壓 |
|
Num Inds>Num Indicator |
開始時間/當前時間/經(jīng)歷時間/實驗日期 |
|
指示類 |
LEDS>Round LED |
加熱狀態(tài)指示 |
|
All Controls>Numeric>Vertical Fill Slide |
溫度計指示 |
||
Graph Inds>Waveform Chart |
溫度波形變化指示 |
||
裝飾控件 |
All Controls>Decorations |
美觀 |
5.3.動態(tài)鏈接庫調(diào)用
?? 本程序設(shè)計的主要實現(xiàn)已經(jīng)做成底層fp函數(shù)(用Labwindows/CVI實現(xiàn)),在程序?qū)崿F(xiàn)時可直接調(diào)用實驗箱提供的驅(qū)動函數(shù)動態(tài)鏈接(即.dll函數(shù)),驅(qū)動函數(shù)I原型及常數(shù)和變量在t_control.prj中,因此,程序設(shè)計時,應(yīng)加入動態(tài)鏈接t_control.dll。另外,本程序調(diào)用了兩個個Labview自帶的時間函數(shù):獲取當前日期/時間:All Controls>Time&Diaglogue>Get Date/Time String;計算經(jīng)歷時間:All Controls>Time&Dialogue>Elapsed Time。實現(xiàn)溫度檢測及控制的驅(qū)動函數(shù)如下表:
?????????? ?????? ???????? ??????? ???? 表2? 動態(tài)鏈接調(diào)用
序號 |
fp函數(shù) |
實現(xiàn)功能 |
輸入參數(shù) |
輸出參數(shù) |
返回值 |
動態(tài)鏈接圖標 |
1 |
void __stdcall epp_init(void) |
初始化EPP接口 |
無 |
無 |
無 |
|
2 |
int__stdcall epp_read_check (void) |
EPP讀數(shù)檢查 |
無 |
無 |
0:EPP可正常讀數(shù);1:EPP不能讀數(shù) |
|
3 |
int __stdcall run_7109 ( unsigned char m_what, unsigned char gain_cw,double vref, double *rult) |
運行7109,實現(xiàn)7109的讀數(shù)及轉(zhuǎn)化 |
m_what:測試對象 |
rult:測量結(jié)果 |
0:讀數(shù)有效;2:讀數(shù)無效,正溢出;3:讀數(shù)無效,負溢出;4: EPP不能讀數(shù) |
|
4 |
void __stdcall amp_7109 (unsigned char gain_cw, double *gain, int *showdot) |
根據(jù)量程設(shè)置增益和顯示位數(shù) |
gain_cw: 量程控制字 |
gain:量程的增益 howdot:該量程的有效位數(shù)(V為單位,showdot為小數(shù)點后的位數(shù)) |
無 |
|
5 |
void__stdcall indicator_7109 (unsigned char gain_cw, double *indicator_gain,double *indicator_max) |
根據(jù)量程設(shè)置7109輸入增益,電壓表表最大顯示數(shù)字 |
gain_cw: 量程控制字 |
gain:量程的增益 |
無 |
|
6 |
void __stdcall start_7109 (void) |
啟動7109 |
無 |
無 |
無 |
|
7 |
int __stdcall led_display(double display_data) |
LED顯示 |
display_data:顯示數(shù)據(jù) |
無 |
成功執(zhí)行后,返回值為0 |
|
8 |
void __stdcall turn_on(unsigned char heat_cw) |
控制溫度板的燈點亮/熄滅 |
heat_cw:亮/滅控制 (加熱) |
無 |
無 |
|
動態(tài)鏈接調(diào)用舉例: int? led_display(double display_data):
? 在block panel中點擊右鍵:All functions>Advanced>Call library function node.
? ?????????????????????????????? 圖10? 動態(tài)鏈接調(diào)用界面
雙擊出現(xiàn)如圖11:
????????????????????????????????????? 圖11 動態(tài)鏈接調(diào)用
? 此時可根據(jù)調(diào)用函數(shù)的路徑,參數(shù)及名稱進行設(shè)置進行得到圖12:
?
?
?
?
?
?
?
?
????????????????????????????????????? 圖12 動態(tài)鏈接設(shè)置
??? 這樣就完成了動態(tài)鏈接的調(diào)用及設(shè)置。
5.4.流程圖設(shè)計
?? (1)整個程序要求由 “退出”按扭來控制程序的運行與否,因此主框架可以設(shè)計為structure中的while循環(huán)。 整個程序分為三個部分:溫度測量,加熱控制及溫度顯示,時間顯示。因此可在總循環(huán) 內(nèi)部采取順序結(jié)構(gòu)以實現(xiàn)以上功能。
? (2)溫度測量:在初始化系統(tǒng)以后,要測量溫度是依靠運行7109實現(xiàn)的。將7109測到的電壓通過溫度電壓的轉(zhuǎn)換公式溫度(℃)=71-500*電壓(mV),即可以得到當前溫度。同時取選初值作為起始溫度。注:此處需要調(diào)用兩個動態(tài)鏈接:run_7109和led_display來實現(xiàn)溫度的檢測及顯示。
? (3)加熱控制及溫度顯示:
?? 加熱控制實現(xiàn)的方式包括兩種:自動加熱方式和手動加熱方式。可以通過case結(jié)構(gòu)來判斷前面板布爾量進行選擇加熱方式 “設(shè)定溫度”框中填入值是要求達到的目標溫度;實驗過程中,溫度值通過“當前溫度”顯示框顯示,或者由“溫度指示”的模擬溫度計顯示。加熱過程中溫度隨時間變化的曲線可由右邊的GRAPH顯示屏顯示。“加熱狀態(tài)”指示燈的紅色代表正在加熱,白色代表停止加熱。
注意:“溫度設(shè)定”的范圍是:
???????????????????????????????? ????????????????? 表3 加熱控制
判斷控件 |
位置 |
布爾值 |
意義 |
注釋 |
加熱方式 |
左邊 |
FALSE |
自動控制方式 |
設(shè)定溫度>當前溫度時加熱啟動 |
右邊 |
TRUE |
手動控制方式 |
手動控制加熱及顯示 |
?? <1> 自動加熱:
?? 自動加熱方式時,當“自控開始”按下,且設(shè)定溫度<當前溫度:啟動加熱,并將當前溫度送到顯示。
?? 自動加熱方式時,當“自控開始”按下,但設(shè)定溫度〈當前溫度,加熱停止,但溫度仍然送顯示。直到當前溫度〈當前溫度,重復(fù)上一步,再次加熱。如此循環(huán)。
?? 自動加熱方式時,當“自控結(jié)束”按下,停止加熱,溫度值不再送顯。
?? <2> 手動加熱:與自動加熱方式相同的是,手動方式也需判斷“手控開始”按下與否,但手動方式中不用判斷當前溫度與設(shè)定溫度之間的關(guān)系。
?? 手動加熱方式中,當“手控開始”按下時,即開始加熱,并將當前溫度送顯。
手動加熱方式中,當“手控停止”按下時,停止加熱,但溫度仍然送顯。
? (3)時間顯示:本程序最后一個步驟是將當前時間與初始時間送顯。基于LavVIEW自身強大的功能,我們可以通過調(diào)用后面板中 AllFunctions>Time&Dialogue>Elapsed Time來實現(xiàn)。
?六、測試和調(diào)試
? 6.1.硬件連線
? 硬件連線如圖16。在開電源前插卡和連線:
??????????????????? 圖13 溫度檢測與控制實驗硬件連線圖
- 將溫度檢測實驗板插在J001位置;
- 連接溫度檢測實驗板電源接口J2和電子測量實驗箱左上角的JP004的AC 9V;
- 連通實驗箱和計算機EPP并行接口。
- 跳線S101向左邊(連接到DC-)。
6.2.程序功能檢查
? (1)溫度測量檢查: 運行程序,不加熱,這時測量的溫度值為室溫,左上角顯示的“傳感器電壓”范圍在0.09V~0.13V之間,顯示的放大后電壓=5×傳感器電壓。
?(2)加熱控制檢查
?? 手控方式時,點擊“手控加熱”,燈泡點亮,溫度上升;關(guān)閉“手控加熱”,燈泡滅,溫度下降。
?? 自控方式時,點擊“自控開始”,當設(shè)定溫度>當前溫度時,燈泡點亮,溫度上升;當設(shè)定溫度≤當前溫度時,燈泡滅,溫度下降。
6.3 溫度檢測與控制實驗
表4? 自動加熱溫度檢測實驗板的數(shù)據(jù)記錄表
實驗人員 |
? |
設(shè)定溫度(℃) |
40 |
室溫(℃) |
? |
實驗日期 |
? | ||||||||||||
時間(S) |
0 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
100 |
110 |
120 | ||||||
溫度(℃) |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? | ||||||
時間(S) |
130 |
140 |
150 |
160 |
170 |
180 |
190 |
200 |
210 |
220 |
230 |
240 |
250 | ||||||
溫度(℃) |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
? |
由表4的數(shù)據(jù)和程序記錄的溫度-時間曲線,計算出溫度的上升時間、穩(wěn)定時間、穩(wěn)定度、超調(diào)量。
附:溫度檢測實驗板溫度校正方法
評論