久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: Steinhart-hart方程ntc熱敏電阻測溫電阻計算公式 [打印本頁]

作者: 路明非.    時間: 2022-6-8 18:05
標題: Steinhart-hart方程ntc熱敏電阻測溫電阻計算公式
這是一段使用Steinhart-hart方程做ntc測溫的代碼。這個函數只需要ntc100度和ntc0度的固定值和一個現場測得的ad值就可以測出溫度,其中是怎么利用ad值計算出當前溫度的電阻值的,有沒有大佬可以解答一下呢?
/*************************************************
函數名稱:  NTC30K_function
函數功能:  NTC30K計算函數
函數形參:  
            advalue:adc值
            advalue_NT0:校正的0度ADC
            advalue_NT100:校正的100度ADC
            advalue_NTShort:校正的偏移ADC,NTC短路值
函數返回值:溫度值
*************************************************/
FP32 NTC30K_function(FP32 advalue,FP32 advalue_NT0,FP32 advalue_NT100,FP32 advalue_NTShort)
{
  FP32 REF,VREF,Rt,LNR;
  REF=94980*2069*(advalue_NT0-advalue_NT100);
  REF=REF/(94980*(advalue_NT100-advalue_NTShort)-2069*(advalue_NT0-advalue_NTShort));
  VREF=(advalue_NT100-advalue_NTShort)*((2069+REF)/2069);
  advalue=advalue-advalue_NTShort;
  Rt=(advalue*REF)/(VREF-advalue);
  LNR=log(Rt);
  Rt=(1/(0.00093494+(0.0002211*LNR)+(0.0000001275*LNR*LNR*LNR)))-273.15;
  return(Rt);
}


作者: 路明非.    時間: 2022-6-8 18:07
/*************************************************
函數名稱:  NTC30K_function
函數功能:  NTC30K計算函數
函數形參:  
            advalue:adc值
            advalue_NT0:校正的0度ADC
            advalue_NT100:校正的100度ADC
            advalue_NTShort:校正的偏移ADC
函數返回值:溫度值
*************************************************/
FP32 NTC30K_function(FP32 advalue,FP32 advalue_NT0,FP32 advalue_NT100,FP32 advalue_NTShort)
{
  FP32 REF,VREF,Rt,LNR;
  REF=94980*2069*(advalue_NT0-advalue_NT100);
  REF=REF/(94980*(advalue_NT100-advalue_NTShort)-2069*(advalue_NT0-advalue_NTShort));
  VREF=(advalue_NT100-advalue_NTShort)*((2069+REF)/2069);
  advalue=advalue-advalue_NTShort;
  Rt=(advalue*REF)/(VREF-advalue);
  LNR=log(Rt);
  Rt=(1/(0.00093494+(0.0002211*LNR)+(0.0000001275*LNR*LNR*LNR)))-273.15;
  return(Rt);
}

作者: 17337161031    時間: 2022-6-8 18:45
中間那一段代碼就是對采集到的數據的轉換,那就是計算的啊,你寫成公式的形式就比較清晰了
作者: 路明非.    時間: 2022-6-8 18:53
17337161031 發表于 2022-6-8 18:45
中間那一段代碼就是對采集到的數據的轉換,那就是計算的啊,你寫成公式的形式就比較清晰了

電阻值具體是怎么從3個ad量算出來的呢?
作者: 路明非.    時間: 2022-6-8 18:56
17337161031 發表于 2022-6-8 18:45
中間那一段代碼就是對采集到的數據的轉換,那就是計算的啊,你寫成公式的形式就比較清晰了

94980和2069是0度和100度對應的阻值
作者: Hephaestus    時間: 2022-6-8 18:57
你的問題跟硬件相關,沒有電路圖我們也不會算命。
作者: 路明非.    時間: 2022-6-8 19:02
Hephaestus 發表于 2022-6-8 18:57
你的問題跟硬件相關,沒有電路圖我們也不會算命。

這是電路

1_070158.png (49.48 KB, 下載次數: 129)

1_070158.png

2_070200.png (32.67 KB, 下載次數: 143)

2_070200.png

作者: Hephaestus    時間: 2022-6-8 19:07
路明非. 發表于 2022-6-8 19:02
這是電路

這電路圖畫的只能說一個字:服!連NTC在哪里都可以看不到。
作者: 路明非.    時間: 2022-6-8 19:09
Hephaestus 發表于 2022-6-8 19:07
這電路圖畫的只能說一個字:服!連NTC在哪里都可以看不到。

TP+是ntc
作者: 路明非.    時間: 2022-6-8 19:10
Hephaestus 發表于 2022-6-8 19:07
這電路圖畫的只能說一個字:服!連NTC在哪里都可以看不到。

tp+是ntc
作者: wulin    時間: 2022-6-8 20:40
樓主所述NTC熱敏電阻可能是PT100、PT1000等鉑電阻。普通NTC熱敏電阻幾乎不可能通過公式計算獲得較準確溫度值。NTC熱敏電阻不同廠家產品溫阻曲線差異較大,同一廠家相同規格的產品電參數也有較大離散性。不適合用公式計算溫度值。除非對精度要求很低。
作者: 路明非.    時間: 2022-6-8 21:08
wulin 發表于 2022-6-8 20:40
樓主所述NTC熱敏電阻可能是PT100、PT1000等鉑電阻。普通NTC熱敏電阻幾乎不可能通過公式計算獲得較準確溫度 ...

實際情況是ntc測溫的確用的公式計算的而且測溫精度還很高,具體參考Steinhart-hart方程
作者: Hephaestus    時間: 2022-6-8 21:10
wulin 發表于 2022-6-8 20:40
樓主所述NTC熱敏電阻可能是PT100、PT1000等鉑電阻。普通NTC熱敏電阻幾乎不可能通過公式計算獲得較準確溫度 ...

你看了代碼再來發言好不好?什么都不懂就上來胡說很沒有禮貌的。樓主明顯是個30k的NTC,B值未知。而且標定了三個點,1)短路NTC測試放大以及ADC環節的誤差;2)0度時NTC的值;3)100度時NTC的值。
作者: Y_G_G    時間: 2022-6-8 21:46
如果不是內存實在不夠用,NTC用查表是常用也是最實在的
至于這個方程的原理,它是兩個老外一個叫Steinhart,一個叫Hart,合起來就是Steinhart-Hart,根據熱敏電阻的特性研究出來的
個人感覺原理什么的并不重要,你上網也不一定能查得到,會用就行
電子編程這一塊,那么多恐怖的公式,哪能個個都知道原理呀
作者: 路明非.    時間: 2022-6-8 22:19
Y_G_G 發表于 2022-6-8 21:46
如果不是內存實在不夠用,NTC用查表是常用也是最實在的
至于這個方程的原理,它是兩個老外一個叫Steinhart, ...

知道原理才能改進提高啊,這個利用三個點校準也是為了提高測溫的精度,而且這樣測溫精度高反應速度也快
作者: Hephaestus    時間: 2022-6-8 22:21
Y_G_G 發表于 2022-6-8 21:46
如果不是內存實在不夠用,NTC用查表是常用也是最實在的
至于這個方程的原理,它是兩個老外一個叫Steinhart, ...

你錯了,Steinhart-hart方程用這兩句就解決完了,完全沒有任何難度,不存在看不懂的地方。
  LNR=log(Rt);
  Rt=(1/(0.00093494+(0.0002211*LNR)+(0.0000001275*LNR*LNR*LNR)))-273.15;

樓主的問題是第一句的Rt是怎么來的,這個前面的代碼也太復雜了,要動手算算。
作者: wulin    時間: 2022-6-9 07:29
Hephaestus 發表于 2022-6-8 21:10
你看了代碼再來發言好不好?什么都不懂就上來胡說很沒有禮貌的。樓主明顯是個30k的NTC,B值未知。而且標 ...

樓主所列代碼確實沒看懂。只知道NTC是在25度條件下的標稱精度,25~50度的標稱B值。偏離標準溫度越多,精度和B值誤差越大。用固定公式計算,除非對NTC元件預選,否則很難批量生產。大佬如有自動糾偏的方法,還望分享。 中國NTC溫度傳感器150K B3950 ±1%.rar (28.31 KB, 下載次數: 19)


作者: aide51    時間: 2022-6-9 08:39
溫度計算,Steinhart-Hart方程和B值法

使用Steinhart-Hart方程或者B值計算方法將熱敏電阻的電阻值轉換為溫度讀數。

  Steinhart-Hart方程計算法:

1/T = A + B*ln(R) + C*[ln(R)]

這里: T 為絕對溫度K(開爾文溫度),R 單位是歐姆

. 溫度系數B值計算法:

Rt = R(25℃)*exp[B*(1/T - 1/298.15)]

這里:T 為絕對溫度K(開爾文溫度 = 273.15),R(25℃) 是熱敏電阻在 25℃時的阻值 (單位為Ω),exp是e的n次方;

3. C語言實現的溫度計算公式

Tsteinhart = 1/(A+B*log(Rth)+C*pow(log(Rth),3))-273.15;

Tbeta = 1/(1/(273.15+25)+1/Beta*log(Rth/R25))-273.15;


  ln、log、lg在數學公式中和c語言中的區別:

參考:cplusplus的"<cmath> (math.h) - C++ Reference"這篇文章

數學中log是對數符號,右邊寫真數和底數(上面是真數,下面是底數)lg是以10為底數(例lg100=2)(lg為常用對數)ln是以e為底數(lne2=2)(ln為自然對數 e=2.718281828459045...)

  c語言里面只有兩個函數log和log10,其中函數 log(x) 表示是以e為底的自然對數,即 ln(x)函數。 log10(x) 以10為底的對數,即 lg(x)。以其它數為底的對數用換底公式來表示:loga(b)=ln(b)/ln(a),C語言表示成log(b)/log(a)。
作者: Y_G_G    時間: 2022-6-9 13:31
路明非. 發表于 2022-6-8 22:19
知道原理才能改進提高啊,這個利用三個點校準也是為了提高測溫的精度,而且這樣測溫精度高反應速度也快

想要精度高就查表
作者: fbn20050523    時間: 2022-6-10 12:39
Y_G_G 發表于 2022-6-9 13:31
想要精度高就查表

我認為這個方程好像貝塞爾曲線通過控制點擬合的結果
作者: 路明非.    時間: 2022-7-13 21:48
公式的推導過程

ntc.jpg (403.62 KB, 下載次數: 131)

ntc.jpg

作者: lkg1    時間: 2022-7-15 23:17
剛好也在研究一個儀器的NTC測溫電路,界面顯示是一個電壓值多少mv,旁邊一個溫度值。能查到系統的a b c值,正在研究中,有什么進展大家共同分享
作者: hui7279    時間: 2024-1-20 16:17
本帖最后由 hui7279 于 2024-1-20 17:03 編輯

REF=94980*2069*(advalue_NT0-advalue_NT100);
//將ADC值轉換為校準的ADC值
REF=REF/(94980*(advalue_NT100-advalue_NTShort)-2069*(advalue_NT0-advalue_NTShort));
//將ADC值轉換為硬件的實際電壓值
VREF=(advalue_NT100-advalue_NTShort)*((2069+REF)/2069);
//將ADC值電壓轉換基準點,與硬件接高低位有關
advalue=advalue-advalue_NTShort;
//將電壓值轉換為電阻值
  Rt=(advalue*REF)/(VREF-advalue);
//據Steinhart-hart方程計算中間值ln(Rt)
  LNR=log(Rt);
//據Steinhart-hart方程計算溫度值,RT最后轉化為Tr,用同一個變量節約內存
  Rt=(1/(0.00093494+(0.0002211*LNR)+(0.0000001275*LNR*LNR*LNR)))-273.15;
/******************************************
Steinhart-Hart方程計算法:
1/T = A + B*ln(R) + C*[ln(R)]^3
由于:T值在公式中是用熱力學溫度單位K,攝氏度就要減273.15;
此公式中:A=0.0009349, B=0.0002211, C =0.0000001275
ABC值與硬件NTC有關,不同廠家的NTC表值需要用不同參數;
---------------------------------------------------
ABC值的計算方法:
具體可以將要用到的三個關鍵溫度點值:T0、T1、T2、R0、R1、R2;
利用計算ln(R0)、ln(R1)、ln(R2);代入Steinhart-Hart方程(溫度值要+273.15)
得到三元一次方程組,可以用矩陣法解方程法,具體查常用C算法函數;
也可用EXCEL的方法解三元一次方程組,具體可以百度
************************************************/
作者: hui7279    時間: 2024-1-20 17:02
hui7279 發表于 2024-1-20 16:17
REF=94980*2069*(advalue_NT0-advalue_NT100);
//將ADC值轉換為校準的ADC值
REF=REF/(94980*(advalue_N ...

//據Steinhart-hart方程計算溫度值,RT可能用Tr表達會更準確:
//據Steinhart-hart方程計算溫度值,是最后Rt值已轉化為溫度值Tr,用同一個變量減少內存消耗
作者: TTQ001    時間: 2024-1-21 08:55
這個問題的討論對于我理解NTC的計算很有幫助。 謝謝你!
作者: 人中狼    時間: 2024-1-22 11:02
其實既然使用了能計算對數的單片機,那么是不是直接查表就好了,畢竟廠家提供的數據表也只是整數溫度,那么計算出來的小數溫度又是否能代表精度呢
作者: 巨人卡奧    時間: 2024-8-12 16:19
直接查表就好了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 羞羞视频在线观看免费观看 | 免费成人高清在线视频 | 日韩在线小视频 | 国产在线精品免费 | 日韩喷潮 | 精品在线一区 | 操到爽 | 免费午夜剧场 | 中文字幕一区二区三区在线视频 | 亚洲第1页| 国产欧美一区二区三区日本久久久 | 在线观看www视频 | 亚洲自拍偷拍av | 视频一区二区三区四区五区 | 日韩在线免费视频 | 日本精品久久久一区二区三区 | 国外成人在线视频网站 | 国产精品视频一区二区三区, | 久久综合一区 | 成人免费在线观看 | 91在线成人 | 亚洲精品第一国产综合野 | 免费一区二区三区 | 99精品国产一区二区三区 | 国产91观看 | 成人在线视频观看 | 黄色一级电影免费观看 | 国产美女久久 | 中文字幕 亚洲一区 | 午夜影视免费片在线观看 | 亚洲国产一区二区三区在线观看 | 精品欧美一区二区久久久伦 | 欧美性生活免费 | 国产精品无码专区在线观看 | 久久视频免费看 | 成人av免费播放 | 亚洲综合二区 | 中文字幕在线三区 | 国产在线观看av | 精品视频在线观看 | 毛片高清 |