S型標準熱電偶分度表的MFC設計
發布時間:2022-08-29
瀏覽次數:
摘要:MFC具有強大的算法功能、穩定的固定界面、執行效率高、運行快等優點。針對
S型標準熱電偶熱電勢求取問題,結合
標準熱電偶溯源證書及GB/T16839.1-2018《熱電偶第1部分:電動勢規范和允差》規定的公式,通過解一-組三元一.次聯立方程確定差值函數,使用MFC完成S型標準熱電偶分度表的設計。最后通過與JJG75-1995《
標準鉑銠10-鉑熱電偶檢定規程》及標準鉑銠10-鉑熱電偶溯源證書中對應數據比對,進行結果驗證。
在Excel中,有意或無意對數據或公式的改動、插入表格或刪除一行(或列)均可能會發生嚴重錯誤,而這種錯誤不容易被發現。MFC(微軟基礎類庫)具有可視的人機界面、強大的算法功能,穩定的固定界面,此外還具有代碼執行效率高、運行快、資源占用少及移植性強等優點。
針對S型標準熱電偶(標準鉑銠10-鉑熱電偶)熱電勢求取問題.結合標準熱電偶溯源證書及GB/T16839.1-2018《熱電偶第1部分:電動勢規范和允差》規定的公式,通過解一-組三元一次聯立方程確定差值函數,使用MFC完成S型標準熱電偶分度表的設計。
1理論分析
1.1參考函數
S型標準熱電偶在溫度范圍(-50~1768.1)℃內的參考函數以多項式形式表示,如式(1)所示:
式中:Er(t90)一電動勢,μV;
T90一ITS-90溫度,℃;
αi一多項式第i項的系數;
n一多項式階數。
αi與n的值在GB/T16839.1-2018《熱電偶第1部分:電動勢規范和允差》表3中列出。
1.2差值函數
S型標準熱電偶在溫度范圍(300~1100)℃內的差值函數△E(t)如式(2)所示:
△E(t)=E(t)-Er(t)=a+bt-ct
2(2)
式中:E(t)一-S型標準熱電偶熱電勢,μV;溫度值,℃。
a、b和c三個系數由每支熱電偶在三個分度點上測得的熱電勢(可由溯源證書得知)代入式(2)解-組三元一次聯立方程求得,其推導公式分別如式(3)~式(5)所示:
式中:t1、t2和t3一S型標準熱電偶三個分度點的溫度值,℃;
△E1、△E/2和△E3一三個分度點的差值函數.μV。
2.MFC編程實現
2.1流程圖及界面設計
流程圖及界面設計如圖1、圖2所示。
2.2程序編寫
安裝VC6.0,新建“MFCAppWizard[exe]”工程,選擇“基本對話框”應用程序類型,再根據MFC應用程序向導完成4步驟。選擇resources中Dialog設置界面,在界面.上新增9個編輯框(分別對應溫度t、標準熱電偶鋅凝固點熱電勢、標準熱電偶鋁凝固點熱電勢、標準熱電偶銅凝固點熱電勢、系數α、系數b、系數c、E(t)及E,(t))和1個按鈕(由溫度t、標準熱電偶鋅凝固點熱電勢、標準熱電偶鋁凝固點熱電勢、標準熱電偶銅凝固點熱電勢求取并顯示系數α、系數b、系數c、E(t)及E,(t)的功能),對每個編輯框和按鈕右擊點擊“屬性”賦予不同的ID,雙擊按鈕自動添加處理函數。在處理函數中添加式(1)~式(5)的程序,主要程序如下所示:
CStringtzifu;//溫度t字符
GetDlgItemText(IDC_t,tifu);/1從ID為IDC_t的編輯框讀取內容并賦予溫度t字符
doubletshuzhi=atof(zifu);/1將溫度t字符轉換為浮點數類型并賦予溫度t數值
從ID地址為IDC_t的編輯框讀取溫度t的字符,并將其轉換為浮點數類型從而參與公式(1)~公式(5)的運算,標準熱電偶在鋅、鋁和銅凝固點熱電勢的讀取類似。
doubled1[9]={0,5.40313308631*pow(10,0),1.2593428974*pow(10,-2),-2.32477968689*pow(10,-5),3.22028823036*pow(10,-8),-3.31465196389*pow(10,-11),2.55744251786*pow(10,-14),-1.25068871393*pow(10,-17),2.71443176145*pow(10,-21)};
doubled2[5]={1.32900444085*pow(10.3),3.34509311344*pow(10.0).6.54805192818*pow(10,-3),-1.64856259209*pow(10,-6),1.29989605174*pow(10,-11)};
doubled3[5]={1.46628232636*pow(10,5),-2.58430516752*pow(10,2),1.63693574641*pow(10,-1),-3.30439046987*pow(10,-5),-9.43223690612*pow(10,-12)};
doubleErtshuzhi=0;11參考函數E,(t)數值
if(-50<=tshuzhi&&tshuzhi<=1064.18)for(inti=0;i<9;i++)
{Ertshuzhi=Ertshuzhi+d16]*pow(tshuzhi,i);}
}
elseif(1064.18<tshuzhi&&tshuzhi<=1664.5)
{
for(inti=0;i<5;i++)
{Ertshuzhi=Ertshuzhi+d26]*pow(tshuzhi,i);}
}
elseif(1664.5<tshuzhi&&tshuzhi<=1768.1)
{
for(inti=0;i<5;i++)
{Ertshuzhi=Ertshuzhi+d3i]*pow(tshuzhi,i);}
}
doubleErZnshuzhi=0,ErAlshuzhi=0,ErCushuzhi=0;11參考函數在鋅鋁銅凝固點數值
for(intj=0;j<9;j++)
{
ErZnshuzhi=ErZnshuzhi+d1j]*pow(419.527,j);
ErAlshuzhi=ErAlshuzhi+d1Gj]*pow(660.323,j);
}
for(intk=0;k<5;k++)
{
ErCushuzhi=ErCushuzhi+d2[k]*pow(1084.62,k);
}
doubleashuzhi=0,bshuzhi=0,cshuzhi=0;1/系數a、b和c數值
doubletl=419.527,t2=660.323,t3=1084.62;
doubleE1=EZnshuzhi-ErZnshuzhi,E2=EAlshuzhi-ErAlshuzhi,
E3=ECushuzhi-ErCushuzhi;//差值函數在鋅鋁銅凝固點數值
doubleal=t2*t3/((t1-t2)*(tl-t3)),a2=-t1*t3/((t1-t2)*(t2-t3)),a3=t1*2/((t1-t3)*(t2-t3));
doubleb1=-(t2+t3)/((t1-t2)*(t1-t3)),b2=(t1+t3)/((t1-t2)*(t2-t3)).b3=-(t1+t2)/((t1-t3)*(t2-t3));
doublec1=1/((t1-2)*(t1-t3)),c2=-1/((t1-2)*(t2-t3)),
c3=1/((tl-t3)*(t2-t3));
ashuzhi=al*E1+a2*E2+a3*E3;
bshuzhi=b1*E1+b2*E2+b3*E3;
cshuzhi==c1*E1+c2*E2+c3*E3;
doubleEtshuzhi=0;1/熱電勢E(t)數值
Etshuzhi=ashuzhi+bshuzhi*tshuzhi+cshuzhi*tshuzhi*tshuzhi+Ertshuzhi;
多項式系數αi放在數組d1[9]、d2[5]及d3[5]中,最后將各數值在對應的編輯框中顯示出來,以E(t)為例(系數a、b和c與參考函數Er(t)類r似),程序如下所示:
CStringEtzifu;//熱電勢E(t)字符
Ezifu.Format("%.15f",Etshuzhi);//將熱電勢E(t)數值轉換為小數點后15位字符串SetDlgItemText(IDC_Et,Ezifu);11在ID為IDC_Et的編輯框中顯示出來
快捷鍵F5運行調試無錯后即可使用工程所在文件夾下Debug文件中的執行文件,可以移植到其他電腦上。
3結果驗證
已知JJG75-1995《標準鉑銠10-鉑熱電偶檢定規程》附錄2鉑銠10-鉑熱電偶(S型)參考函數[E,(D]表與標準鉑銠10-鉑熱電偶溯源證書中數據,利用編好的軟件求取Er(t)、系數a、b和c及E(t),與JJG75-1995《標準鉑銠10-鉑熱電偶檢定規程》附錄2及溯源證書中對應數據比對分析,如表1所示。
從表1可知,軟件給出的各溫度點參考函數均能通過數字修約規則“四舍六入,逢五取偶”得到JJG75-1995《標準鉑銠10-鉑熱電偶檢定規程》附錄2鉑銠10-鉑熱電偶(S型)參考函數(除鋅、鋁和銅凝固點對應的參考函數外,因為規程未給出數值)。
從表1也可知,軟件給出的各溫度點熱電勢均能通過數字修約規則“四舍六入,逢五取偶”得到標準鉑銠10-鉑熱電偶溯源證書中對應的熱電勢。
通過以上比對分析,證明了該軟件數據的可靠性。只要知道S型標準熱電偶溯源證書中鋅、鋁和銅凝固點熱電勢以及溫度t,就可求出新系數a、b和c,即求出新差值函數。可以使用.上述方法將S型標準熱電偶分度表準確的計算和打印出來,便于工作中使用。