国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android系統(tǒng)的電子分度表軟件設(shè)計

2020-03-30 13:58:46郭向霞周偉建俞利明陳青峰
化工自動化及儀表 2020年1期
關(guān)鍵詞:基類熱電阻分度

郭向霞 周偉建 俞利明 陳青峰

(浙江中控自動化儀表有限公司)

在工業(yè)控制領(lǐng)域中,溫度是測量頻率較高的物理參數(shù),而常用的溫度測量傳感器主要有熱電偶和熱電阻。以熱電偶為例,在使用熱電偶測量溫度時,測得電動勢后,需要將電動勢的值轉(zhuǎn)換成溫度,而目前的主要方式是查詢由熱電偶的電動勢和溫度列成的表格,即熱電偶分度表。熱電偶根據(jù)所使用材料的不同分為多種型號,每種型號有各自的分度表,查詢時很容易出錯。另外由于熱電偶分度表是在參考端溫度為0℃時制定的,而在實際使用環(huán)境中,參考端溫度通常不為0℃,這就需要工作人員再次進(jìn)行手動換算。同時由于分度表中是以1℃為分割的,如果需要查詢非整數(shù)的溫度值,仍需要根據(jù)前后兩個值進(jìn)行換算。綜上所述,查詢分度表的表格非常不方便,迫切需要開發(fā)一個分度表查詢軟件來解決用戶的不便。目前也有一些PC版本的查詢分度表軟件,但是操作人員在現(xiàn)場作業(yè)時仍需要攜帶電腦。考慮到目前Android智能手機的普及性,筆者設(shè)計開發(fā)了一款基于Android系統(tǒng)的分度表雙向查詢軟件,可以滿足操作人員隨時隨地查詢分度表的需求。

1 軟件特點

本軟件基于Android系統(tǒng)開發(fā),對使用環(huán)境沒有限制,任何Android系統(tǒng)的手機、平板電腦都可以安裝使用。本軟件有以下特點:

a.支持10種標(biāo)準(zhǔn)型號熱電偶分度表查詢,分別是 R 型、S型、B 型、J型、T型、E 型、K 型、N型、C型、A型;

b.支持6種標(biāo)準(zhǔn)型號熱電阻分度表查詢,分別是 Pt100、Pt200、Pt500、Pt1000、Cu50、Cu100;

c.可以查看每種測溫元件的有效測溫范圍,幫助工作人員選型;

d.對于熱電偶,支持輸入冷端補償?shù)臏囟戎?,解決現(xiàn)有分度表只能查詢冷端溫度為0℃的問題;

e.支持輸入非整數(shù)的溫度值,解決現(xiàn)有分度表只支持查詢1℃分割的問題;

f.支持溫度或者電動勢、電阻超限時的提示;

g.支持雙向轉(zhuǎn)換,對于熱電偶可以根據(jù)設(shè)置的冷端值,由溫度換算成電動勢或者由電動勢換算成溫度,對于熱電阻可以由電阻值轉(zhuǎn)換成溫度值,或由溫度值轉(zhuǎn)換成電阻值。

2 軟件實現(xiàn)

本軟件的開發(fā)語言是JAVA,設(shè)計采用MVC模式,實現(xiàn)界面、邏輯、數(shù)據(jù)的解耦。因此軟件開發(fā)分為3個部分:界面(UI)、控制和轉(zhuǎn)換算法。

UI設(shè)計時除了滿足功能特點外,還需要考慮到工業(yè)現(xiàn)場操作的友好性,為此自定義了下拉控件,實現(xiàn)分度號類型的選擇。

控制層考慮到其可擴展性,使用面向?qū)ο蟮亩鄳B(tài)性原理,設(shè)計一個抽象基類定義各子類需要實現(xiàn)的抽象方法,有正向和逆向轉(zhuǎn)換方法,有1個熱電偶基類、1個銅熱電阻基類和1個鉑熱電阻基類,熱電偶各子型號繼承熱電偶基類,銅熱電阻各子型號繼承銅熱電阻基類,鉑熱電阻各子型號繼承鉑熱電阻基類?;悓崿F(xiàn)抽象基類需要實現(xiàn)的公共轉(zhuǎn)換方法,各子類實現(xiàn)各自個性數(shù)據(jù)的存儲和轉(zhuǎn)換算法,這樣后期如需要增加鉑熱電阻的子型號,只需要新增一個子類,繼承鉑熱電阻基類,在子類里定義其特有的參數(shù)和方法,然后把類型和其轉(zhuǎn)換控制類綁定即可實現(xiàn)相應(yīng)類型的分度表轉(zhuǎn)換。

算法部分主要實現(xiàn)熱電偶和熱電阻不同型號的分度表雙向轉(zhuǎn)換。GB/T 16839.1—2018給出了熱電偶各型號的轉(zhuǎn)換公式,算法只需要用代碼實現(xiàn)即可。JB/T 8623—2015和 GB/T 30121—2013只給出了熱電阻溫度轉(zhuǎn)電阻的轉(zhuǎn)換公式,而由電阻轉(zhuǎn)溫度的轉(zhuǎn)換公式,筆者研究了多項式擬合和牛頓迭代法兩種實現(xiàn)方式。以下部分給出各算法的公式和關(guān)鍵程序段。

2.1 熱電偶

根據(jù)GB/T 16839.1—2018,不同型號的熱電偶電動勢轉(zhuǎn)溫度公式是[1]:

式中di——多項式第i項的系數(shù);

E——電動勢,μV;n——多項式階數(shù);

t90——ITS—1990溫度,℃。K型熱電偶0~1 300℃溫度范圍內(nèi),溫度轉(zhuǎn)電動勢公式是[1]:

式中ai——多項式第i項的系數(shù);

c0、c1——常數(shù)項,參考GB/T 16839.1—2018表8。

其他型號和K型熱電偶-270~0℃溫度范圍內(nèi),溫度轉(zhuǎn)電動勢的公式是[1]:根據(jù)分層設(shè)計原則,熱電偶基類里實現(xiàn)公共的轉(zhuǎn)換公式而不同型號的熱電偶參見GB/T 16839.1—2018表2~11設(shè)置各自的參數(shù)n和a0~an的值,然后調(diào)用公用的方法計算。

計算溫度和電動勢的關(guān)鍵算法如下,其中需要調(diào)用數(shù)學(xué)函數(shù)Math.pow(x,y)來計算(t90)i或者Ei:public double calculate(double param,int count){

double d=0.0d;

for(int i=0;i<=count;i++){

d+=this.a[i] *Math.pow(param,i);

}

return d;

}

2.2 熱電阻

根據(jù)JB/T 8623—2015,工業(yè)銅熱電阻溫度轉(zhuǎn)電阻換算公式是[2]:

根據(jù)GB/T 30121—2013,工業(yè)鉑熱電阻溫度轉(zhuǎn)電阻換算公式是[3]:式中A、B、C——常數(shù);

R0——溫度為0℃時的電阻,Ω;

Rt——溫度為t時的電阻,Ω;

t——溫度,℃。

由于銅熱電阻和鉑熱電阻各分度號只有0℃時的電阻值不同,轉(zhuǎn)換公式是相同的。因此只需要在各自基類里實現(xiàn)公式,各子類傳入R0值即可。以鉑熱電阻為例,其溫度轉(zhuǎn)電阻的算法如下:

//鉑熱電阻溫度轉(zhuǎn)電阻的算法

double fromTempSub(double param) {

if ((param >= -200.0) && (param <=0.0d)) {

return this.R0 * (1.0d + this.A *param+this.B*param*param+(this.C

* (param-100)

*param

*param

*param));

}

if ((param>0.0d) && (param <=850.0d)) {

return this.R0*(1.0d+this.A*param+this.B

*param*param);

}

return overError();

}

由于熱電阻溫度轉(zhuǎn)電阻的公式是高階多項式,直接求解比較困難,因此筆者提出兩種解決方案,一種是把溫度和電阻對應(yīng)的樣本數(shù)據(jù)通過曲線擬合,生成電阻和溫度對應(yīng)的多項式,另一種是通過牛頓迭代法來求解復(fù)雜方程的根。

2.2.1 曲線擬合方法

曲線擬合是要求擬合的曲線能大致模擬數(shù)據(jù)的基本趨勢,其準(zhǔn)確性判別準(zhǔn)則也有很多,如偏差的絕對值之和最小、偏差的最大絕對值最小或偏差的平方和最小,偏差的平方和最小也叫最小二乘法,經(jīng)常采用最小二乘法來確定多項式的系數(shù),擬合工具可以選擇Matlab、Excel等,擬合過程不再細(xì)述,以下為Pt100擬合的多項式算法:

//Pt100電阻值轉(zhuǎn)溫度算法

public double toTempSub(double param) {

if ((param >=18.52) && (param < 100)) {

return 1.7237E-08*param*param*param*param-9.9584E-06*param*param*param+2.8581E-03*param*param+2.2161*param-241.96;

}else if ((param >= 100) && (param <=390.49)) {

return (1.7571E-09) *param*param*param

*param-3.0900E-07*param*param*

param+9.9568E-04*param*param

+2.3592*param-245.8;

}

return overError();

}

2.2.2 牛頓迭代法

牛頓迭代法是牛頓在17世紀(jì)提出的一種在實數(shù)域和復(fù)數(shù)域上近似求解方程的方法,是把非線性方程f(x)=0線性化的一種近似方法。迭代關(guān),其 中f(x)是 正 向 方 程 ,nf′(xn)是f(xn)的一階導(dǎo)函數(shù)。 以Pt100(-200~0℃)溫度轉(zhuǎn)電阻的公式為例:

牛頓迭代法計算步驟為:

a.選初始近似值x0,計算f0=f(x0),f′0=f′(x0);

c.如果abs(xi-xi-1)滿足設(shè)定的誤差值,則終止迭代,否則轉(zhuǎn)到步驟d;

d.如果迭代次數(shù)達(dá)到預(yù)先指定的次數(shù)N,或者 f′i=0,則方法失敗,否則以(xi+1,fi+1,f′i+1)替代(xi, fi,f′i)并轉(zhuǎn)到步驟b繼續(xù)迭代。

通過對比兩種算法的精確度,軟件最終使用牛頓迭代法實現(xiàn)電阻到溫度的轉(zhuǎn)化,其精度可達(dá)10-7,迭代次數(shù)為4次左右,算法效率較高。

3 結(jié)束語

筆者開發(fā)的基于Android系統(tǒng)的分度表軟件,對于熱工操作人員有極大的幫助。筆者應(yīng)用的曲線擬合技術(shù)和牛頓迭代算法對其他應(yīng)用領(lǐng)域也有很好的啟發(fā)。為了提高數(shù)據(jù)計算的精確度,曲線擬合的系數(shù)需要在合理范圍內(nèi)做些許調(diào)整,牛頓迭代算法也需要選取合適的初值,才能滿足收斂性。作為一個可以實際應(yīng)用的軟件,軟件設(shè)計過程中也充分考慮了容錯性、可擴展性和友好性。

猜你喜歡
基類熱電阻分度
制動主缸體斜孔加工夾具的設(shè)計應(yīng)用
基于C#面向?qū)ο蟪绦蛟O(shè)計的封裝、繼承和多態(tài)分析
基于PT100鉑熱電阻的離心泵溫度監(jiān)測系統(tǒng)設(shè)計
防爆電機(2020年4期)2020-12-14 03:11:04
三齒盤定位分度工作臺的設(shè)計研究
NHR-213不隔離智能溫度變送器
傳感器世界(2017年6期)2017-11-21 03:03:56
空戰(zhàn)游戲設(shè)計實例
基于STM32F4的時柵數(shù)控分度轉(zhuǎn)臺控制系統(tǒng)設(shè)計
電子器件(2015年5期)2015-12-29 08:43:16
一種基于用戶興趣的STC改進(jìn)算法
虛機制在《面向?qū)ο蟪绦蛟O(shè)計C++》中的教學(xué)方法研究
發(fā)那科 自制分度臺DDR
自動化博覽(2014年8期)2014-02-28 22:32:53
黑龙江省| 逊克县| 大港区| 松原市| 洛浦县| 那坡县| 安溪县| 庆安县| 马公市| 临清市| 新竹县| 鱼台县| 大田县| 澄迈县| 龙陵县| 莫力| 裕民县| 宝坻区| 长治县| 二连浩特市| 荣昌县| 罗平县| 韶关市| 应城市| 来宾市| 颍上县| 阿巴嘎旗| 祥云县| 伊金霍洛旗| 罗源县| 阿克| 高淳县| 康定县| 安国市| 泰宁县| 彭阳县| 浠水县| 大荔县| 潞西市| 荃湾区| 铜山县|