這是在做一個高精度高溫傳感器配套測驗系統時的文獻學習筆記,僅做記錄總結,方便自己之后查看匯總,言語如有不得體之處還請見諒,轉載注明出處,
這篇筆記主要是記錄一些文獻中,熱電偶溫度測驗系統相關的信號調理電路以及資料處理方式,并稍作總結,在之后做一些測驗作業,歸并改進,以對初步設計的系統進行升級迭代,
1.用電壓—頻率轉換的方法處理熱電偶信號
Murmu, A., Bhattacharyya, B., Munshi, S., 2018. A synergy of voltage-to-frequency converter and continued-fraction algorithm for processing thermocouple signals. Measurement 116, 514–522.. doi:10.1016/j.measurement.2017.11.047
文獻主要的亮點是用了Vtof 電壓頻率轉換電路處理熱電偶信號,用 continued-fraction algorithm 連續分數演算法在MCU中做信號處理,較之后面的其他文獻,實作的精度不是特別高,但勝在簡單可靠,沒有復雜的硬體設計,實作程序也易于理解,
電路用了 負溫度系數的熱敏電阻,接入LM311的8引腳進行冷端溫度補償,再把帶有補償、熱電偶輸出的資訊的方波輸入MCU,
電路圖:

電路首先使用三個OP07組成的差分放大器,按照虛短虛斷推算,放大倍數為R1/R2,放大后經過一個RC低通濾波濾除工頻干擾,然后通過高精度電壓頻率轉換器LM311轉換成一定頻率的脈沖序列,
輸出方波頻率與輸入電壓的關系:
約束條件:
使得LM311引腳 67 的時間常數匹配
而參考節點的電阻由方波的上升時間τ決定:![]()
再之后,把vout通過采集卡輸入進處理器后,就可以由信號的上升時間、頻率獲得熱電偶所測溫度了,文獻中使用PC聲卡采集信號,因為要求輸入信號有效值不超過1V所以進行了分壓、去耦處理,然后分別使用上升沿觸發、下降沿觸發得到兩個脈沖序列,從而獲得τ與f,
在大多數實作線性化輸出的技術,多是基于只讀存盤器 (ROM) 的查找表(LUT) 方法和涉及分段線性或多項式插值的軟體方法,基于硬體的線性化方案,特別是模擬線性化電路很少,這是一個很不錯的參考電路,
文獻中,還學到了Steinhart-Hart 方程 :一種通過熱敏電阻變化計算溫度的方法,

作者在恒溫油箱中的測驗結果:


2.用雙輸入對數運算放大器處理,用模電提高線性化
A. Mukherjee, D. Sarkar, A. Sen, D. Dey and S. Munshi, "An analog signal conditioning circuit for thermocouple temperature sensor employing thermistor for cold junction compensation," 2013 International Conference on Control, Automation, Robotics and Embedded Systems (CARE), 2013, pp. 1-5, doi: 10.1109/CARE.2013.6733711.
先看電路圖:

冷端補償:

上面的三運放放大網路的分析沒太看懂,但這個作者設計這個電路的初衷是通過模擬電路的方式使得熱電偶的輸出信號能更具線性度,用這總方式可以實作不用MCU,僅僅通過模擬電路與基礎ADC、譯碼器和顯示電路就能完成溫度讀取,但在我所做的系統中并不想考慮這種方案,因為運放太多了,較多的有源器件會映入更多的噪聲,也對電路測驗調整帶來了很大的困難,而且較之調研的這些方案我覺得我的軟體設計能夠成為一個亮點,
簡而言之就這個電路比較復雜了,有一定的參考價值,但不值得做復現或者改良,
作者通過SPICE仿真驗證了在非線性輸入與溫度補償,從其他文獻以及熱敏電阻資料手冊獲得模擬引數,仿真結果 標準偏差在0.32°C 到 0.76°C ,用實物做的話肯定達不到這個精度,
3.用反向插值表or函式處理熱電偶信號
L. Ximin, "A Linear Thermocouple Temperature Meter Based on Inverse Reference Function," 2010 International Conference on Intelligent Computation Technology and Automation, 2010, pp. 138-143, doi: 10.1109/ICICTA.2010.284.
這個處理電路使用了AD590讀取冷端溫度,AD轉換輸入單片機做資料處理與結果顯示,
電路示意圖:

這個實作比上一個還要復雜,其中冷端補償的方式也是獨具一格:用多路復用放大電路,對熱電偶、校準電阻輸出信號(U1~U5)進行一定的數學運算從而運算確定0℃電壓值,進行零點校準的同時也完成了冷端補償,這個思路很有特點,但是仔細一想,根本不用做的這么復雜,零點校準完全可以放到MCU里面來做,換一個運算速度更高的處理器,比實作這個復雜電路省錢還省力,
這里用AD590做冷端溫度補償,這個溫度傳感器在許多教程、課程中都有例舉,但查了一下,典型的舊時代外國產品,又貴精度還低,完全是吃了老教材、教程的紅利(個人觀點),而且我設計的初步方案也有考慮用這個傳感器,但是進行傳感器調研選型后連買來試一下的想法都沒有,
做輸出計算,一般是根據標準參考函式或反向參考函式計算溫度值,這樣可以獲得準確和線性的測量,但是,通過微處理器計算的函式比較低效,并且對實時測量有很大的影響,在這篇文獻中,作者研究了標準參考表的方法,其不僅可以實作按標準參考功能進行溫度測量,而且可以節省大量的計算時間,保證實時測量的準確性,與搜索標準參考表的方法相比,反向參考表的查找方法以熱電動力經過簡單運算為表地址,節省搜索時間,簡化程式,也在一定程度上提高了實時性,
首先復習一下單片機中熱電偶信號最簡單的處理方法:首先通過冷端溫度to 查表找到對應熱電勢Et,然后加上熱電偶輸出E2,得到所需要的E(t) ,中間溫度定理,上節筆記有提到,
這里作者做了一件我認為非常有參考意義的事:他對比了多項式擬合法和參考函式表查找法的精度匹配情況:

計算后發現,對資料進行九階擬合的精度
對比: 0 ~ 50℃的參考表E ( t ) 51個資料
-200 ~ 1372℃的反參考表t ( E ) 2026個資料
這兩個表的查詢、插值精度是和多項式擬合計算的結果相差不大的(甚至表做的資料夠多,間隔等于Et解析度時都不用插值)
這里作者做的反向差值表 ,溫度區間根據測量不同決定,把計算得的熱電動力E(t) 除以反向參考表的間隔(文中是30uV),商數乘以 2 作為查找表的地址,可以直接獲得溫度測量,根據存盤空間的大小,對逆參考函式表t [ E ( t , 0 ) ]進行盡可能的擴展,以獲得盡可能高的測量精度,
而在MCU中計算一個九階多項式,花的時間是非常多的,使用ROM存盤查詢表,地址搜搜查找的方式, 明顯后者復雜度更低,這是一種用靜態記憶體換取運算速度的方式,考慮到我目前使用的STM32 512Kb記憶體,存三五千個資料的查詢表完全夠用(雖然這會對后面接入微處理器作業系統造成一定影響,不過開發板帶了SD卡,大不了存SD卡,用的時候放到閃存里面),我會在后續的系統迭代中使用這個資料處理的方法,
此外,這個通過熱電勢的值簡單運算得到查找表地址的思路,和有序向量插值查找的思路十分相似,甚至可以說如出一轍,而文獻中的這種查找方式有很大的局限性:它必須要求查找表按照Et等間隔、在測量范圍內全部有序的給出,這導致,如果想要提高查詢表密度以提高精確的,就得全面地提高查找表的密度,占用更大的靜態記憶體,雖然提高密度不過是在生產查詢表的程式中改一個引數而已,不過占用記憶體總歸不大方便,基于此,我準備利用有序向量插值查找的思路,對這個查找方法進行改寫,實作在loglogn的時間復雜度內(這是非常低的了)實作Et到t 的查詢、插值,且不必要求查詢表等間隔分布,可以在重點測溫范圍內大密度做表,在其他地方小密度做表,
4.基于遞回B樣條最小二乘的方法給出擬合函式
Guo Wei, Xin Wang and Jinwei Sun, "Signal processing method with cold junction compensation for thermocouple," 2009 IEEE Instrumentation and Measurement Technology Conference, 2009, pp. 1458-1462, doi: 10.1109/IMTC.2009.5168685.
作者用一種基于遞回B樣條最小二乘的方法作為解決方案 ,生產兩個計算模型E(t) 、 t(E) ,來消除冷端干擾并計算熱電偶熱電勢到溫度轉換,
采用 B 樣條最小二乘法是因為它的近似質量很好,遞回方法用于簡化操作并使其適合在MCU中使用,所以就可以實時的在MCU中進行模型的校準(熱電偶使用久了,要是不是校準標定),而其他的計算模型,無論是最小回歸、查詢表法,都得測得資料后在計算機中建立計算模型,這點是這篇文章所用方法的最大兩點,
測驗結果:
S型相對誤差為0.45%,K型為0.29% ,作者僅使用熱電偶標準表的模擬研究 ,但是沒做實物,
再提一嘴,這些文章提到所做測驗系統的精度時,用的標準都沒有統一,這篇文章給的引數是最大相對誤差和平均相對誤差(做例外值判斷了嗎,給的是平均值與參考值的相對誤差的話,需要給出測驗點數啊),而其他文章有的給精度Accuracy(給精度要給置信區間啊),有的給絕對誤差,有的給均方根誤差(這個好),這對各方案的精度橫向對比造成了很大的困難,
之后我寫的各種報告,精度確定規范一定按照國際計量標準來,
5.用虛擬儀器和神經網路技術校準系統
D. Wen, L. Qing and Lu Qiang, "Calibration System for Thermocouple Application Based on Technology of Virtual Instrument and Neural Network," 2007 8th International Conference on Electronic Measurement and Instruments, 2007, pp. 1-268-1-273, doi: 10.1109/ICEMI.2007.4350439.
在熱電偶自動校準系統中,實作熱電偶與溫度之間轉換的手段是建立熱電偶特性E~t的數學模型,論文將虛擬儀器技術與神經網路相結合,建立了E~t熱電偶特性的模型,并采用帶動量因子的梯度下降演算法調整RBF神經網路的引數,然后用它在線測量熱電偶,
亮點是介紹了基于虛擬儀器技術的熱電偶標定系統的新方法,對比分段線性擬合和分段多項式擬合,神經網路模塊具有高速并行計算能力和非線性傳遞特性,可以隨時學習,效率高,與常用的求模方法相比,神經網路不能深入了解物件的原理,只能簡單地求出數學模塊運算式,
文章用了一個徑向基函式RBF神將網路,這是一種三層神經網路,其包括輸入層、隱層、輸出層,從輸入空間到隱層空間的變換是非線性的,而從隱層空間到輸出層空間變換是線性的,隱含層的作用是把向量從低維度的p映射到高維度的h,這樣低維度線性不可分的情況到高維度就可以變得線性可分了,主要就是核函式的思想,(理解有一定困難,但沒有必要完全弄懂)
文章在建立E~t數學模型時,主要改變的是輸出層的權值向量和偏移向量,
簡而言之就是換了種更nb的擬合方法 蹭了神經網路的熱度,進行學習時要一直用程式輸資料,然后讓網路學習 ,資料來自其他文獻和資料手冊,作者說一共用了260 組資料作為 RBF 神經網路的訓練樣本,從 ITS90 表的 0°C 開始,每 5°C 作為一組資料,
測驗層面,作者用了Lab View MATLAB Script Nodes 仿真,得到了不錯的準確度,程式具有簡單、速度快、精度高等特點,結果表明,在智能領域使用神經網路是可行的,
我覺得這篇文獻時候放在論文最后一段“未來技術發展展望”這塊,實話實說就是用神經網路建了個模,目前于我而言,做的測驗系統,參考意義不大,
再記錄一點,在讀到這篇文獻時,有強烈的吐槽欲望,因為讀英文文獻還是比較痛苦的,但讀的大多是文獻,都是中國人寫的文獻,都寫成英文發,而在知網找不到啥有價值的文獻,純屬為難英語不好的國內孩子,我甚至這其中有期刊評價因素等居多深層次問題,所以只是簡單抱怨一下,
6.利用熱電偶的非線性來執行冷端補償
D. A. Lampasi and L. Podesta, "A measurement system exploiting non-linearity of thermocouples for cold junction compensation," Proceedings of the 21st IEEE Instrumentation and Measurement Technology Conference (IEEE Cat. No.04CH37510), 2004, pp. 2170-2175 Vol.3, doi: 10.1109/IMTC.2004.1351520.
介紹了一種創新技術,該技術利用熱電偶的非線性來執行冷端補償,溫度是通過比較兩種不同型別熱電偶的電壓得出的,這樣,測量既不需要其他型別的傳感器,也不需要冰浴,文章對新的補償計算方法進行了完整的理論分析,并驗證了一些數值方法,
簡而言之,就是多加一熱電偶,然后用倆熱電偶,通過一些演算法(有一些復雜),實作冷端補償
作者還解釋說他們實驗室冷端溫度傳感器數量沒熱電偶多 ,但我尋思著 我買的精度最高的±0.2℃溫度傳感器也不到熱電偶價格十分之一,而且倆熱電偶非線性度求補償溫度 ,要求解高階多項式方程組,這在單片機中實作是很耗時間的啊
作者是matlab里面解的高階次方程組, 然后測驗的時候熱電偶信號經過調理電路,到采集卡,傳到labview虛擬儀器,再跑matlab求解的 目前的系統不考慮這個,同上篇文獻適合放在論文最后一段“未來技術發展展望”
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/355766.html
標籤:其他
