【物理实验及其数据处理】 集成电路传感器特性测量及其应用
實(shí)驗(yàn)?zāi)康?/h2>
1.學(xué)習(xí)和測(cè)量AD590溫度傳感器的特性
2.測(cè)量輸出電流與溫度之間的關(guān)系并繪制該傳感器的伏安特性曲線
3.通過(guò)設(shè)計(jì)數(shù)據(jù)處理程式提升python編程能力,以及培養(yǎng)計(jì)算思維
實(shí)驗(yàn)儀器
實(shí)驗(yàn)儀器的規(guī)格型號(hào)依各學(xué)校的規(guī)定,會(huì)有相應(yīng)的變化,由于本人是上個(gè)學(xué)期做的實(shí)驗(yàn),“年代久遠(yuǎn)”,有所忘記,請(qǐng)?jiān)彙T诖?#xff0c;本人引用了某高校的相應(yīng)規(guī)定作為參考
智能式數(shù)字恒溫控制儀;量程0 至 19.999V四位半數(shù)字式電壓表;直流1.5V 至 12V穩(wěn)壓輸出電源;可調(diào)式磁性攪拌器以及加熱器;玻璃管;AD590集成電路傳感器;ZX21型電阻箱;保溫杯;水銀溫度計(jì)等
實(shí)驗(yàn)原理
先在這里簡(jiǎn)單的介紹下AD590溫度傳感器:
AD590傳感器是美國(guó)ANALOG DEVICES公司研發(fā)的兩段式集成電路溫度傳感器,管腳引出有兩個(gè),紅色引線接電源正端,黑色引線接電源負(fù)端,另一根引線則接地或者不用。AD590工作電壓為4~30V,若兩端電壓在4V一下,則出現(xiàn)非線性。
集成電路傳感器將溫敏晶體管與其他相應(yīng)輔助電路集成與同一芯片上,其能夠給出正比于絕對(duì)溫度的正比輸出,一般用于-50℃~120℃間的溫度測(cè)量。在AD590傳感器兩側(cè)加有某一直流電壓時(shí),其輸出電流(I)與溫度(T)之間成以下關(guān)系
I=B?T+AI = B* T + AI=B?T+A
其中I的單位為毫安μA\mu AμA,T的單位為℃;B為傳感器靈敏度(理論值為B0 = 1μA/℃);A為0℃時(shí)的電流值
實(shí)驗(yàn)電路圖如下:
實(shí)驗(yàn)步驟
該實(shí)驗(yàn)步驟大致如下:
1.將輸出電源的輸出電壓調(diào)至4V,將保溫杯里的液體從29.0℃緩緩至50.0℃,每隔3℃記錄一次電壓表示數(shù)。
2.將溫度保持在50℃,將電源電壓降至1.4V,記錄此時(shí)傳感器兩端電壓,并且按如下表格記錄數(shù)據(jù):
數(shù)據(jù)處理
在這里,筆者僅提供最小二乘法擬合的代碼,伏安曲線的請(qǐng)讀者自行描繪
使用的庫(kù)
首先,我們來(lái)簡(jiǎn)單介紹下我們將使用的python庫(kù):
import numpy as np from scipy.optimize import leastsq import matplotlib.pyplot as pltnumpy是數(shù)據(jù)處理常用的庫(kù)之一,其由C語(yǔ)言編寫(xiě),具有效率高的特點(diǎn);scipy常用與科學(xué)計(jì)算以及仿真,在本例中,我們將使用scipy模塊中的optimize子包中的leastsq方法對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行擬合;matplotlib庫(kù)是常用的數(shù)據(jù)可視化的庫(kù),我們常用它來(lái)繪制曲線,圖表等,在這里,我們利用其pyplot子包來(lái)繪制擬合后的曲線
數(shù)據(jù)讀取
file_path = input("請(qǐng)輸入您所測(cè)量的AD590的輸出電流I與溫度t的關(guān)係圖表: ")I_t = np.loadtxt(file_path, delimiter=',')我們使用numpy的loadtxt方法來(lái)讀取數(shù)據(jù)的csv文件。csv文件是一種以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)的文件類(lèi)型,每條記錄用字段組成,字段之間用","或其他字符進(jìn)行分格。
loadtxt方法讀取數(shù)據(jù)后,把數(shù)據(jù)轉(zhuǎn)化為雙精度浮點(diǎn)數(shù)類(lèi)型
最小二乘法擬合
首先,我們先定義我們需要擬合的函數(shù)為線性函數(shù):
def func(p, x):k, b = preturn k * x + b定義損失函數(shù):
def error(p, x, y):return func(p, x) - y訓(xùn)練數(shù)據(jù):
p0 = [1, 20]# 把error函數(shù)中除了p0以外的參數(shù)打包到args中 Para = leastsq(error, p0, args=(t, I1)) B, A = Para[0]我們首先初始化參數(shù),將其設(shè)置為p0=[1,20](常用)
然后調(diào)用leastsq函數(shù),其括號(hào)內(nèi)第一項(xiàng)為損失函數(shù),第二項(xiàng)為初始參數(shù),我們需要訓(xùn)練的數(shù)據(jù)將其打包進(jìn)args中(args=[x,y])
當(dāng)訓(xùn)練完成后,將para[0]中的元素分別賦值于B,A當(dāng)中(para[0]是訓(xùn)練好的參數(shù))
計(jì)算相關(guān)系數(shù)
計(jì)算相關(guān)系數(shù)設(shè)計(jì)到最小二乘法的公式(講到這里,覺(jué)得我的程序真的好低效),我們需要分別計(jì)算LttL_{tt}Ltt?,LtiL_{ti}Lti?以及LiiL_{ii}Lii?,其分別是計(jì)算下標(biāo)第一個(gè)向量的每一個(gè)元素減去其向量的均值再乘以下表第二個(gè)向量的每一個(gè)元素減去第一個(gè)向量的均值,然后累加作和(有點(diǎn)拗口)。相關(guān)系數(shù)的計(jì)算公式如下r=LiiLtt?Liir=\frac{L_{ii}}{\sqrt{L_{tt}*L_{ii}}}r=Ltt??Lii??Lii??
其計(jì)算代碼如下:
# 相關(guān)係數(shù)計(jì)算t_hat = np.mean(t) I1_hat = np.mean(I1) Ltt = 0 for i in range(len(t)):Ltt = Ltt + (t[i] - t_hat) ** 2 Lti = 0 for i in range(len(I1)):Lti = Lti + (t[i] - t_hat) * (I1[i] - t_hat) Lii = 0 for i in range(len(I1)):Lii = Lii + (I1[i] - I1_hat) ** 2 r = Lti / pow(Ltt * Lii, 0.5)最后,我們計(jì)算下實(shí)驗(yàn)誤差
誤差分析
Bt = 1.0 Er_B = abs(B - Bt) / Bt畫(huà)圖
# 畫(huà)圖 plt.figure(figsize=(8, 6)) # 設(shè)置圖標(biāo)比例 plt.scatter(t, I1, color='blue', label='sample', linewidths=1.0) # 畫(huà)散點(diǎn)圖 T = np.linspace(0, 50, 10000) # 在0~50℃之間取10000個(gè)點(diǎn) i = B * T + A plt.plot(T, i, color='red', label='The Line of I-T') # 畫(huà)輸出電流與溫度的關(guān)係圖 plt.legend() plt.show()結(jié)果輸出
print('經(jīng)計(jì)算得A為:{:.2f},B為:{:.2f},相關(guān)係數(shù)r={:.3f},誤差為{:.3f}'.format(A, B, r, Er_B))總結(jié)
以上是生活随笔為你收集整理的【物理实验及其数据处理】 集成电路传感器特性测量及其应用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: GIS开发之二维地下管线综合管理系统(A
- 下一篇: 洛谷 P1718 图形复原