官术网_书友最值得收藏!

1.5 非線性軟件處理

1.5.1 概述

在數據處理系統中,總是希望系統的輸入與輸出之間的關系為線性關系。但在工程實際中,大多數傳感器的輸出電信號與被測參數之間呈非線性關系。例如在溫度測量中,熱電偶或熱電阻的輸出電壓與被測溫度之間就是一個非線性關系。產生非線性的原因,一方面是由于傳感器本身的非線性,另一方面非電量轉換電路也會出現一定非線性。為了保證系統的參數具有線性輸出,就必須對輸入參數的非線性進行“線性化”處理。過去,通常采用在輸入通道中加線性補償電路的硬件處理技術來進行“線性化”處理。這種處理的基本原理是電路中引入負反饋技術,并要求引入的負反饋電路具有與輸入參數相同的非線性特性。但在實際上做到“相同”是非常困難的。隨著計算機技術的廣泛應用,用軟件進行傳感器的非線性補償對輸入參數進行“線性化”處理的方法也得到了越來越廣泛的應用。

用軟件代替硬件進行“線性化”處理,其優點在于:

(1)省去了復雜的非線性硬件電路,簡化裝置,降低成本。

(2)發揮計算機的快速運算功能,提高了檢測的準確性和精度。

(3)適當改變軟件的內容,就可對不同的傳感器進行補償。也可同時對多個通道、多個參數進行補償。

1.5.2 非線性軟件處理方法

用軟件進行“線性化”處理有3種方法:計算法、查表法和插值法,下面分別進行介紹。

1. 計算法

當輸出電信號與傳感器的參數之間有確定的數學表達式時,就可采用計算法進行非線性補償。所謂計算法,就是用軟件編制一段完成數學表達式的計算程序。當被測參數經過采樣、濾波和變換后,直接進入計算程序進行計算,計算后的數值即為經過線性化處理的輸出參數。

在工程實際中,被測參數和輸出電壓常常是一組測定的數據。這時,如果仍想采用計算法進行線性化處理,則可采用數學曲線擬合的方法,對被測參數和輸出電壓進行擬合,得到誤差最小的近似表達式。

2. 查表法

當數學表達式比較簡單時,采用計算法進行補償是一個切實可行的方法。但如果某些參數計算非常復雜,特別是計算公式涉及指數、對數、三角函數和微分、積分等運算時,程序編制相當麻煩,用計算法計算不僅程序冗長,而且相當費時間。這時,可以采用查表法。

所謂查表法,就是根據A/D的轉換精度要求把測量范圍內參數變化分成若干等分點,然后由小到大順序計算出(如沒有確定關系,則由實驗測定出)這些等分點相對應的輸出數值。這些等分點和其對應的輸出的數據就組成了一張表。把這些數據表存放在特定的存儲區中。軟件處理方法就是在程序中編制一般查表程序,當被測參數經采樣等轉換后,通過查表程序直接從數表中查出其對應的輸出參數值。

與計算法相比,查表法雖然沒有計算過程,但查表照樣要花費時間。同時,數據表格要占據相當大的存儲容量,表格的編制也比較麻煩。

3. 插值法

實際使用時,常常把查表法與計算法有機結合起來,形成插值法。下面通過圖1-31所示比較詳細地討論這種方法。

圖1-31 插值法圖示

圖1-31所示是某傳感器的 X-Y 特性,其中 X為被測參數,Y為輸出電量,可以看出它是一個非線性函數關系。將圖中輸入 X分成 n個均勻的區間,則每個區間的端點 Xk都對應一個輸出Yk。把這些(XkYk)編制成表格存儲起來。實際的檢測量Xi一定會落在某個區間(XkXk+1)內,即 XkXiXk+1。插值法就是用一段簡單的曲線近似代替這段區間里的實際曲線,然后通過近似曲線公式計算出輸出 Yi。使用不同的近似曲線可形成不同的插值方法,其中最常用的為線性插值。

線性插值又稱為折線法,用通過(XkYk)、(Xk+1Yk+1)兩點的直線近似代替原特性。由圖1-32可以看出,通過點M1M2的直線的斜率為

圖1-32 線性插值法

Yi的計算表達式為

實際使用線性插值時,線性化的精度由折線的段數所決定。所分的段數越多,精度和準確度越好。但所分段數越多,所需表格存儲容量也越大。一般分成16~32段折線。具體分段時,可以等分也可以不等分,可根據特性的實際情況而定。

有時候為了提高精度,采用拋物線插值,即以通過(XkYk)、(Xk+1Yk+1)、(Xk+2Yk+2)三點的拋物線近似代替區間特性。這時,可以證明,Yi的計算公式為

用軟件進行“線性化”處理,不論采用哪種方法,都要花費一定的程序運行時間。因此,這種方法也并不是在任何情況下都是優越的。特別是在實時控制系統中,如果系統處理的問題很多,實時時間性又很強,這時,采用硬件進行處理是必要的。但一般來說,當控制系統的時間夠用時,應盡量采用軟件方法,從而大大地簡化硬件電路。總之,對于傳感器的非線性補償問題,應根據系統的具體情況統籌安排后再決定,或硬件,或軟件,或“軟硬兼施”。

主站蜘蛛池模板: 泾阳县| 石狮市| 万载县| 新闻| 梨树县| 四会市| 天门市| 广丰县| 微山县| 崇义县| 青冈县| 教育| 文昌市| 台前县| 奈曼旗| 新营市| 白水县| 浦县| 甘泉县| 慈溪市| 尼木县| 兴化市| 鹤峰县| 富宁县| 太湖县| 张家口市| 夏河县| 新建县| 万宁市| 峨边| 汝南县| 乌鲁木齐市| 赤水市| 江孜县| 塔城市| 上高县| 鹰潭市| 始兴县| 色达县| 青铜峡市| 旌德县|