chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

NTC測(cè)溫方式之查表方式和公式計(jì)算方式

安費(fèi)諾傳感器學(xué)堂 ? 來源:安費(fèi)諾傳感器學(xué)堂 ? 2023-11-15 16:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

NTC測(cè)溫,尤其面對(duì)通過ADC轉(zhuǎn)換得到的數(shù)值時(shí),你是否會(huì)猶豫:用什么方式更為合理地將這個(gè)ADC值轉(zhuǎn)換為溫度T?

假設(shè)我們已經(jīng)對(duì)ADC的分辨率、準(zhǔn)確度,以及所選的NTC精度范圍都有了選擇。對(duì)于絕大多數(shù)的應(yīng)用而言,通過電阻分壓方式的配置就可以滿足我們所需的配置及所需的精度;個(gè)別高精度的NTC測(cè)溫會(huì)用到4線制以消除導(dǎo)線電阻帶來的誤差,這些暫不在我們今天討論的話題范圍。

因?yàn)樘峁┑腘TC的參數(shù)內(nèi)容不一樣,本文以我們之前除霧傳感器中的測(cè)量前擋風(fēng)玻璃溫度的NTC為例作為比較和說明。

查表方式的特點(diǎn)

查表方式的操作:二分法查找和線性插值;

通過R-T表獲取擬合NTC的R(T)特性公式;

公式計(jì)算方式的特點(diǎn)

對(duì)于查表和R-T公式計(jì)算方式測(cè)溫的兩種方法比較

查表方式的特點(diǎn)

相對(duì)的,對(duì)于測(cè)量精度要求不是太高,或者只提供了R-T表的,而且相應(yīng)溫度測(cè)量范圍不是太寬情況下的應(yīng)用,用查表方式一般可以解決問題。這里表內(nèi)存儲(chǔ)的元素為int類型的ADC值,而不是其他字節(jié)數(shù)長(zhǎng)度更多的float或者double數(shù),否則無法達(dá)到節(jié)省代碼的目的,從而表占用的代碼空間就不會(huì)太大。當(dāng)利用查表方式使用NTC測(cè)溫時(shí),最好將制表的溫度分辨率不低于需要的測(cè)溫精度。例如,如果測(cè)溫精度要求為+/-1°C,那么表中的溫度參數(shù)間隔就至少不低于1°C;而位于表內(nèi)兩個(gè)鄰近溫度值之間的數(shù)值,則采用線性插值的方式進(jìn)行。

以除霧傳感器中的NTC為例。下側(cè)圖中:

7de31210-838b-11ee-939d-92fbcf53809c.png

R_NTC為當(dāng)前的NTC

Rs為串聯(lián)分壓電阻(9kohm)

Vcc為驅(qū)動(dòng)電壓(5V)

V_ADC為12位的分壓ADC數(shù)值。

在以上這種設(shè)定情況下,我們通過使用excel可以得到像以下一樣的表格:

TEMP(°C) R_NTC (kohm) Vout ADC(12bit)
0 27.76 3.757009 3078
1 26.57 3.716083 3044
2 25.438 3.674521 3010
3 24.361 3.632344 2976
4 23.335 3.589651 2941
5 22.358 3.546371 2905
6 21.427 3.502596 2869
7 20.54 3.458323 2833
8 19.695 3.41365 2796
9 18.89 3.368501 2759
10 18.121 3.323023 2722
11 17.389 3.277182 2685
12 16.69 3.230993 2647
13 16.022 3.184605 2609
14 15.386 3.13788 2571

這樣,通過這個(gè)表,我們就可以建立溫度和分壓電路ADC之間的映射。從表中任意兩個(gè)相鄰溫度對(duì)應(yīng)的ADC值可以看到,還有許多ADC值將面對(duì)“空白”。

如果允許,一方面我們可以在兩個(gè)溫度值對(duì)應(yīng)的ADC之間進(jìn)行線性插值的方式進(jìn)行換算;另一方面,如果允許,還可以生成更多的數(shù)值對(duì),以實(shí)現(xiàn)更高的查表分辨率。

另外,如果限于所使用器件(比如MCU的代碼空間尺寸)的限制,不得不使用當(dāng)前表格的分辨率,甚至需要減小表格的溫度分辨率時(shí)(比如從間隔1°C增加到2°C),如果允許,就更需要使用線性插值的方式來計(jì)算當(dāng)ADC值落入中間空白值時(shí)對(duì)應(yīng)的溫度,比如在上表中如果ADC=2700時(shí),那么對(duì)應(yīng)的溫度值將處于10°C和11°C之間。

我們看一下基于分壓電路的ADC值和溫度T之間的關(guān)系圖(如下)。

7df0e48a-838b-11ee-939d-92fbcf53809c.png

再比較一下NTC的原始R-T圖(如下)。

7e029e82-838b-11ee-939d-92fbcf53809c.png

由于ADC值/T圖中的曲線更加平直,在橫軸上取溫度間隔?T很小時(shí),對(duì)應(yīng)的ADC—T曲線將非常近似于直線,這也是為什么可以在相鄰的表格溫度T與ADC值之間可以采用線性插值的理由。

查表方式的操作:二分法查找+線性插值

兩個(gè)步驟:(1)二分法找到當(dāng)前ADC對(duì)應(yīng)的表中索引位置;(2)線性插值計(jì)算溫度值。

相比于線性查找時(shí)間復(fù)雜度O(N),二分法查找的時(shí)間復(fù)雜度是O(LnN/Ln2),即總體上二分法所花的時(shí)間會(huì)更短。這都是在假設(shè)所查找值為一個(gè)隨機(jī)值情況下的統(tǒng)計(jì)。實(shí)際上由于NTC溫度探頭的響應(yīng)時(shí)間的存在,或者環(huán)境溫度的平緩變化,或者ADC采集頻率的提高,那么如果程序中記錄了前一次的查找值,那么在后一次根據(jù)ADC值查找過程中,是可以將前一次的查找索引值作為參考值來處理從而縮小查找范圍的,不過在實(shí)現(xiàn)上會(huì)增加一些代碼。

二分法查找的python示意代碼(C和Python代碼都可以在我們網(wǎng)站對(duì)應(yīng)文章頁面下載):

def binary_search(array, target):
low, high = 0, len(array) - 1
while low <= high:
mid = low + (high - low) // 2
mid_val = array[mid]
if mid_val == target:
return mid, mid
elif mid_val < target:
low = mid + 1
else:
high = mid - 1
return high, low?
if __name__ == '__main__':
array = [1, 2, 4, 5, 6, 8, 11, 15, 20, 30]
target = 7
low, high = binary_search(array, target)
if low == high:
print(f'Element {target} is at index {low}')
else:
print(f'Element {target} is between indexes {low} and {high}')

上面的二分法查找代碼中有個(gè)小bug,讀者可以嘗試查找,或者在我們的網(wǎng)站文章頁面鏈接中下載修正之后的代碼。

以上代碼中,當(dāng)low==high,即二分法查找函數(shù)返回的數(shù)組索引值相等時(shí),此時(shí)ADC值剛好有對(duì)應(yīng)表值,否則,返回值表示當(dāng)前的ADC結(jié)果位于表中array [low]和array [high]兩個(gè)值之間。

當(dāng)ADC的值位于表中array [low]和array [high]兩個(gè)元素值之間時(shí),就可以考慮線性插值了。

7e0cd6a4-838b-11ee-939d-92fbcf53809c.png

如圖,在對(duì)應(yīng)的2個(gè)ADC值之間出現(xiàn)一個(gè)中間值A(chǔ)DC時(shí)(橙色線表示的坐標(biāo)點(diǎn)為待求值,圖中溫度間隔為1℃),由于ADC(n)和ADC(n+1)之間近于直線,則根據(jù)簡(jiǎn)單的相似原理計(jì)算出?T后就可以得出當(dāng)前ADC(t)值對(duì)應(yīng)的溫度值。

7e1d2ea0-838b-11ee-939d-92fbcf53809c.png

得到:

7e2e6346-838b-11ee-939d-92fbcf53809c.png

所以,ADC(t)對(duì)應(yīng)的溫度值就是(T+)。這里ADC(n)和T之間存在簡(jiǎn)單映射。讀者需要根據(jù)自己的溫度間隔設(shè)置來調(diào)整上面的公式。

在一些小型應(yīng)用中,如果因?yàn)镸CU的代碼空間限制問題導(dǎo)致無法使用更多的代碼,則可以簡(jiǎn)單估算中間值,或者只好犧牲一些表格精度了。

可能會(huì)有人問,為什么一直在說MCU的代碼空間?如果有R-T公式,直接調(diào)用中的公式是不是會(huì)更加節(jié)省代碼?比如像下面的這種公式:

7e3c2260-838b-11ee-939d-92fbcf53809c.png

通過R-T表獲取擬合NTC的R(T)特性公式

由于手邊只有R-T表,現(xiàn)在考慮通過擬合的方式獲取R-T特性公式。

7e4a2bee-838b-11ee-939d-92fbcf53809c.png

其中,T(K)=t+273.15,T0=273.15+25=298.15(K),R_To在這里也是常數(shù),取25℃時(shí)的R值,可以從R-T表中讀取。通過處理lnR和1/T之間的線性關(guān)系,可得下圖所示的坐標(biāo)圖:

7e4e7b90-838b-11ee-939d-92fbcf53809c.png

從擬合的公式中看到,可以取材料常數(shù)β=3365.8K。

余數(shù)部分經(jīng)核算也基本符合,和上圖擬合公式中的2.1166相差0.04。

到這一步,[式-2]中常數(shù)項(xiàng)都已經(jīng)得到,R-T特性公式也就定了。如果知道了NTC的當(dāng)前R值,就可以根據(jù)[式-2]計(jì)算溫度值。

公式計(jì)算方式的特點(diǎn)

由公式計(jì)算溫度值通過以下幾步完成:

讀取分壓電路的ADC值;

通過ADC值計(jì)算NTC的R(T)值;

將R(T)值代入[式-2]計(jì)算獲取溫度值。

直接代碼如下:

#include
floatCalWindyScreenTemp(intinputTempADC)
{
floatbelta = 3365.8;
floatR25 = 100000.0;
//float_Serial=9000.0;
//floatVcc= 5.0;
floatVout = 5.0 * inputTempADC/4096.0;//GetVout
if(Vout>=5.0)return(-100.0);//Error indicator
floatR_NTC = Vout * 90000.0/(5.0-Vout);//R_NTC
floattemperature =log(R_NTC/R25)/belta + 1/(273.15+25.0);
temperature = 1/temperature - 273.15;
return(temperature);
}

使用公式計(jì)算似乎更為方便。不著急,我們先看一下后續(xù)的比較。

對(duì)于查表和R-T公式計(jì)算方式測(cè)溫的兩種方法比較

單從表面的代碼長(zhǎng)度上比較的話,用公式計(jì)算的代碼要比要查表的代碼簡(jiǎn)單得多。不過我們還是先比較一下實(shí)際編譯后的可執(zhí)行代碼尺寸。

以下的數(shù)據(jù)基于STM32F103和STM32CubeIDE。

Text Data Bss Dec 代碼內(nèi)容 代碼變化
寫入到flash 初始化后數(shù)據(jù) 未初始化數(shù)據(jù) 前三部分總和
3512 20 1572 5104 無NTC測(cè)溫
5888 20 1572 7480 查表測(cè)溫 2376
8188 100 1884 10172 公式測(cè)溫 4676

從上面的表中可以看到,看似代碼少的公式計(jì)算法反而需要更多的代碼空間。而查表的方法(+插值運(yùn)算)所需的代碼空間卻要更少些。

實(shí)際上,公式方式中單純調(diào)用log的計(jì)算所用到的函數(shù),就會(huì)占用1~2k的字節(jié)。如果用于計(jì)算我們另外一款SC30系列高精度互換型NTC,則在額外使用指數(shù)函數(shù)(可以用連乘方式替代)的時(shí)候,代碼還會(huì)再額外增加2k字節(jié)的樣子。

所以真要比較兩種計(jì)算方法,我們可以簡(jiǎn)單羅列如下表:

比較內(nèi)容 查表插值法 公式法
優(yōu)勢(shì) 一定條件下占用代碼空間小
適用已知溫度特性和測(cè)溫范圍,一個(gè)表格即可滿足應(yīng)用
代碼執(zhí)行速度可能會(huì)稍快,尤其在R-T表精度本身就滿足應(yīng)用的情況下
在要求限制代碼尺寸的應(yīng)用中可以節(jié)省成本
代碼編寫和調(diào)用較為方便
結(jié)果輸出直觀,計(jì)算結(jié)果基本可以直接作為最終輸出
劣勢(shì) 代碼編寫稍復(fù)雜
應(yīng)用前需要選擇溫度范圍和精度來建表
超出表之外的溫度無法提供
不同溫度范圍需要不同的參數(shù)
實(shí)際代碼相比之下稍長(zhǎng),在限制代碼尺寸的應(yīng)用中可能會(huì)增加成本
在要求運(yùn)行速度的應(yīng)用中可能略微慢

[源碼鏈接在我們網(wǎng)站的同名應(yīng)用文檔中]

總結(jié)

應(yīng)用的選擇考慮,總是成本和效能的博弈結(jié)果。窮則迂回穿插,達(dá)則全域轟炸。

關(guān)于NTC,我們?cè)诠揪W(wǎng)站及公眾號(hào)還有其他相關(guān)的文檔可以參考。

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2573

    文章

    54316

    瀏覽量

    785414
  • NTC
    NTC
    +關(guān)注

    關(guān)注

    7

    文章

    491

    瀏覽量

    54268
  • adc
    adc
    +關(guān)注

    關(guān)注

    100

    文章

    7318

    瀏覽量

    553616
  • 測(cè)溫
    +關(guān)注

    關(guān)注

    1

    文章

    260

    瀏覽量

    32570

原文標(biāo)題:NTC測(cè)溫—查表計(jì)算vs公式計(jì)算

文章出處:【微信號(hào):安費(fèi)諾傳感器學(xué)堂,微信公眾號(hào):安費(fèi)諾傳感器學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    一種基于NTC的控溫電路及軟件實(shí)現(xiàn)

    ,查表可知在100攝氏度以上。職業(yè)便是這個(gè)電路的理論測(cè)量范圍。2、軟件設(shè)計(jì)前面我們?cè)O(shè)計(jì)了測(cè)量電路,也分析了檢測(cè)電壓與NTC電阻制的關(guān)系。接下來我們主要討論一下軟件設(shè)計(jì)。軟件的設(shè)計(jì)我們采用了公式法和
    發(fā)表于 11-25 18:52

    常見的NTC類型有哪些

    1、常見的NTC類型(1)3435;(2)3950;2、溫度轉(zhuǎn)換的常用方式(1)查表法;(2)表達(dá)式直接轉(zhuǎn)換;3、NTC阻值轉(zhuǎn)溫度算法因?yàn)?b class='flag-5'>NTC
    發(fā)表于 01-10 07:58

    求助,關(guān)于NTC查表法獲得溫度的問題

    最近在做一個(gè)溫度采集模塊,單片機(jī)通過查表法獲得NTC的溫度值,調(diào)試時(shí)間長(zhǎng)了,有點(diǎn)犯迷糊了,發(fā)現(xiàn)一個(gè)問題,不知道是不錯(cuò)覺,最近感覺頭腦頭不怎么好使了……貌似通過查表法獲得溫度時(shí),跟單片機(jī)的供電電壓似乎
    發(fā)表于 11-08 06:00

    步進(jìn)電機(jī)S加減速算法與查表方式哪個(gè)更好?

    步進(jìn)電機(jī)S加減速算法與查表方式哪個(gè)更好,有誰用過,能否提供實(shí)例?
    發(fā)表于 11-08 08:10

    MTBF計(jì)算方式

    MTBF計(jì)算方式
    發(fā)表于 10-19 08:47 ?65次下載

    計(jì)算機(jī)尋址方式解析

    計(jì)算機(jī)尋址方式解析 尋址方式 就是尋找操作數(shù)地址的方式,解決的是如何在指令中表示一個(gè)操作數(shù)的地址。 形式地址 :在指令中出現(xiàn)的操作數(shù)地址
    發(fā)表于 04-15 11:22 ?7023次閱讀

    用正反饋方式改善線性的簡(jiǎn)化電阻測(cè)溫電路

    用正反饋方式改善線性的簡(jiǎn)化電阻測(cè)溫電路 電路的功能 本電路是一
    發(fā)表于 05-06 17:02 ?1108次閱讀
    用正反饋<b class='flag-5'>方式</b>改善線性的簡(jiǎn)化電阻<b class='flag-5'>測(cè)溫</b>電路

    計(jì)算機(jī)取證工具及方式

    本內(nèi)容講述了計(jì)算機(jī)取證技術(shù),如何進(jìn)行計(jì)算機(jī)取證,計(jì)算機(jī)取證工具及方式等知識(shí)
    發(fā)表于 05-07 15:11 ?4895次閱讀

    Labview不同掃描方式顯示正弦波形

    Labview不同掃描方式顯示正弦波形,很好的Labview資料,快來下載學(xué)習(xí)吧。
    發(fā)表于 04-19 11:28 ?0次下載

    濾波器的原理種類以及計(jì)算方式

    濾波器的濾波電路、原理種類以及計(jì)算方式
    的頭像 發(fā)表于 03-12 17:16 ?8.7w次閱讀
    濾波器的原理種類以及<b class='flag-5'>計(jì)算</b><b class='flag-5'>方式</b>

    額溫槍不同的測(cè)溫方式有什么區(qū)別

    不同的測(cè)溫方式,標(biāo)準(zhǔn)溫度也就不同。
    發(fā)表于 03-21 13:54 ?1.3w次閱讀

    電源參數(shù)的計(jì)算方式

    參考文檔金升陽應(yīng)用筆記電源參數(shù)的計(jì)算方式1、輸出電壓精度 =
    發(fā)表于 01-11 11:44 ?15次下載
    電源參數(shù)的<b class='flag-5'>計(jì)算</b><b class='flag-5'>方式</b>

    方法二 NTC熱敏電阻轉(zhuǎn)換溫度的計(jì)算方式

    一.硬件STC15W408AS單片機(jī) 10KNTC熱敏電阻?二.資料?NTC 熱敏電阻溫度計(jì)算公式Rt?= R *EXP(B*(1/T1-1/T2))這里T1和T2指的是K度即開爾文溫度,K度
    發(fā)表于 01-14 14:29 ?45次下載
    方法二 <b class='flag-5'>NTC</b>熱敏電阻轉(zhuǎn)換溫度的<b class='flag-5'>計(jì)算</b><b class='flag-5'>方式</b>

    關(guān)于無線電力測(cè)溫方式有哪些?

    溫度,是衡量電力設(shè)備是否正常運(yùn)行的重要標(biāo)準(zhǔn)之一,所以測(cè)溫電力設(shè)備溫度的變化尤為重要。目前,無線電力測(cè)溫是應(yīng)用較多的手段,其能夠?qū)崿F(xiàn)實(shí)時(shí)在線監(jiān)測(cè)。對(duì)于無線測(cè)溫方式有以下幾種
    的頭像 發(fā)表于 06-01 18:12 ?2333次閱讀
    關(guān)于無線電力<b class='flag-5'>測(cè)溫</b>的<b class='flag-5'>方式</b>有哪些?

    開關(guān)柜無線測(cè)溫有哪些類型方式

    蜀瑞創(chuàng)新為大家科普:開關(guān)柜無線測(cè)溫技術(shù)是一種非接觸式的溫度監(jiān)測(cè)方法,廣泛應(yīng)用于電力系統(tǒng)中,以確保開關(guān)柜及其內(nèi)部設(shè)備的安全運(yùn)行。開關(guān)柜無線測(cè)溫主要有以下幾種類型方式
    的頭像 發(fā)表于 09-05 12:00 ?970次閱讀