邢隆飛,張越,于海英,郝俊生
(山西大學(xué) 化學(xué)化工學(xué)院,山西 太原 030006)
化工原理基礎(chǔ)實驗是化工原理課程體系中重要的技術(shù)基礎(chǔ)課,其應(yīng)用自然科學(xué)原理和工程實驗方法來解決化工過程中的實際工程問題,不同于無機化學(xué)、有機化學(xué)、分析化學(xué)等課程的基礎(chǔ)實驗,化工原理基礎(chǔ)實驗具有較強的工程背景,不局限于驗證某一原理或觀察某一現(xiàn)象,更注重加深對化工生產(chǎn)過程及設(shè)備的認識和理解,樹立工程意識、解決工程問題[1]。但化工原理基礎(chǔ)實驗涉及設(shè)備多、流程復(fù)雜、規(guī)模大、采集數(shù)據(jù)多、實驗結(jié)束后數(shù)據(jù)處理復(fù)雜[2]。隨著計算機的不斷普及,計算機處理繁瑣的實驗數(shù)據(jù)已經(jīng)成為普遍的數(shù)據(jù)處理方式。中國石油大學(xué)(華東)倪化境[3]針對手工作圖求理論板數(shù)方法的步驟繁瑣且誤差較大的問題,采用Excel 軟件處理精餾實驗數(shù)據(jù),給出了兩組非理想溶液的分區(qū)域擬合方法及理論板梯級圖的繪制過程,該方法簡單快速準(zhǔn)確、容易熟練掌握。東北電力大學(xué)李強[4]使用PowerBuilder 語言工具,編寫了能對空氣物性數(shù)據(jù)、傳熱系數(shù)、傳熱準(zhǔn)數(shù)等計算的傳熱實驗數(shù)據(jù)處理軟件,提高了實驗數(shù)據(jù)處理的效率和實驗數(shù)據(jù)處理的精確度。常州大學(xué)黃澤恩等[5]使用Origin 軟件對離心泵性能曲線測定實驗進行數(shù)據(jù)處理,介紹了如何使用Origin 軟件對實驗數(shù)據(jù)進行非線性擬合,并得到擬合曲線的擬合參數(shù)、標(biāo)準(zhǔn)誤差及相關(guān)系數(shù)。
MATLAB(Matrix Laboratory)軟件是由Marhworks公司于20 世紀(jì)80 年代開發(fā)的數(shù)學(xué)軟件,是目前應(yīng)用最廣泛的科學(xué)計算機軟件之一,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)據(jù)計算的高級技術(shù)計算語言和交互式環(huán)境,幾乎可以解決科學(xué)計算中的所有問題,而且MATLAB 軟件具有編寫程序簡單、代碼效率高等優(yōu)點,使得MATLAB 軟件在工程計算與仿真、圖像處理等領(lǐng)域獲得廣泛應(yīng)用[6]。
本文以離心泵性能曲線測定實驗數(shù)據(jù)處理為例,介紹使用MATLAB 軟件在處理實驗數(shù)據(jù)時的簡捷、直觀和高效。
離心泵特性曲線測定實驗裝置流程圖如圖1所示。
圖1 離心泵性能曲線測定實驗裝置流程圖
對給定型號的離心泵,在一定轉(zhuǎn)速下,揚程H、軸功率N以及效率η都隨著流量Q的改變而改變,通過實驗測出Q-H、Q-N、Q-η的關(guān)系,并用曲線表示,稱為特性曲線,是流體在離心泵內(nèi)部流動規(guī)律的宏觀表現(xiàn)形式。由于泵內(nèi)部結(jié)構(gòu)復(fù)雜導(dǎo)致流體在離心泵內(nèi)部的流動情況復(fù)雜,因此不能通過理論方法推導(dǎo)出離心泵的特性關(guān)系曲線,只能采取實驗方式測定[1]。
1.2.1 揚程H 的測定
在離心泵進口真空表安裝處和出口壓力表安裝處之間,運用伯努利方程式:
其中,Σhf為離心泵進口和出口之間管路的流體流動阻力(不包括離心泵內(nèi)部的流動阻力所引起的壓頭損失),由于兩截面間的管長度較短,通常與伯努利方程中其他相相比,阻力項Σhf可忽略不計。另外,因速度平方差也很小,故也可忽略不計,則有:
式(1)~式(2) 中:H0=z2-z1,為離心泵出口和進口間的位差(m);ρ為流體密度(kg/m3);g為重力加速度(m/s2);p1、p2分別為離心泵流體進、出口壓力(Pa);H1、H2分別為離心泵流體進、出口壓力所對應(yīng)的壓頭(m);u1、u2分別為離心泵流體進、出口流速(m/s);z1、z2分別為離心泵進口真空表、出口壓力表的安裝高度(m)。
由式(2)可知,只要測出離心泵流體進、出口壓力及離心泵出口和進口間的位差,就可計算出離心泵的揚程H。
1.2.2 軸功率N 的測定
功率表測得的功率是電動機的輸入功率。由于泵由電動機直接帶動,傳動效率k可以取值0.95,因此軸功率N的計算公式為:
軸功率N=功率表的讀數(shù)N電×電動機傳動效率k(3)
1.2.3 效率η的計算
離心泵的有效功率Ne與軸功率N的比值為離心泵的效率η[7]。
式(4)~式(5)中:η為 離 心 泵 的 效率(%);N為 離心泵的軸功率(kW);Ne為離心泵有效功率(kW);H為離心泵壓頭(m);Q為離心泵流量(m3/s);ρ為流體密度(kg/m3)。
1.2.4 實驗數(shù)據(jù)記錄
某離心泵特性曲線測定實驗的原始數(shù)據(jù)如表1 所示,將表1 數(shù)據(jù)保存到excel 文件中,文件命名為1-1.xls。
表1 離心泵特性曲線測定實驗的原始數(shù)據(jù)
由式(1)可知在計算揚程時,需要使用水在采集數(shù)據(jù)點時對應(yīng)溫度下的密度,其數(shù)據(jù)的準(zhǔn)確性直接影響實驗數(shù)據(jù)處理的準(zhǔn)確性。而在常壓不同溫度下水的密度的數(shù)據(jù)文獻較多,不同來源的水的密度數(shù)據(jù)由于疏密程度和有效數(shù)字的不同,會導(dǎo)致不同的實驗數(shù)據(jù)處理結(jié)果。因此,同一組實驗數(shù)據(jù)會由于選取的水的密度數(shù)據(jù)不同而得到不同的實驗處理結(jié)果,給實驗數(shù)據(jù)處理結(jié)果的評判帶來了較大的困難。為了提供統(tǒng)一的水的密度數(shù)據(jù),可以用化工過程模擬軟件Aspen Plus,選取合適的物性方法,來估算常壓下在不同溫度下水的密度,最終得到水的密度與溫度的關(guān)系[8],實驗中測得溫度下的水的密度可以使用插值法獲得。如果采用傳統(tǒng)的手工計算方法,計算過程復(fù)雜、效率較低、出錯率較高。為了提高計算的效率和準(zhǔn)確性,可以采用MATLAB 的插值函數(shù)interp1,使用20 世紀(jì)40 年代逐漸發(fā)展起來的樣條插值,該方法具有良好的收斂性與穩(wěn)定性,理論研究和現(xiàn)實應(yīng)用上都具有重要意義[9]。
采用化工過程模擬軟件Aspen Plus,選取NRTL 物性方法估算出常壓下在實驗測得溫度范圍內(nèi)不同溫度下水的密度數(shù)據(jù),如圖2 所示,包括溫度數(shù)據(jù)、壓力數(shù)據(jù)和密度數(shù)據(jù)。將溫度數(shù)據(jù)和密度數(shù)據(jù)保存到MATLAB軟件可以讀取的excel 文件中,命名為T-ρ.xls。
圖2 Aspen Plus 軟件估算不同溫度下水的密度數(shù)據(jù)
再利用MATLAB 軟件編寫程序可實現(xiàn)插值計算。首先,用MATLAB 軟件中的xlsread 函數(shù)讀取T-ρ.xls 數(shù)據(jù);其次,使用MATLAB 軟件中的插值函數(shù)interp1,用三次樣條插值(spline)的插值方法進行插值計算;最后,運行程序,并將數(shù)據(jù)結(jié)果用xlswrite函數(shù)保存到t-Density.xls 文件中,以備后續(xù)MATLAB軟件處理離心泵性能曲線測定實驗時使用。
MATLAB 軟件代碼如下:
x=xlsread('T-ρ.xls');T=x(:,1);density=x(:,2);
y=xlsread('1-1.xls');t=y(:,3);%t 為插值溫度單位℃
Density=interp1(T,density,t,'spline')
xlswrite('t-Density.xls',Density,1,'B1:B25');xlsw rite('t-Density.xls',t,1,'A1:A25');
利用化工過程模擬軟件Aspen Plus 估算的常壓下不同溫度下水的密度數(shù)據(jù),再結(jié)合數(shù)學(xué)計算軟件MATLAB 中插值函數(shù)interp1 處理物性數(shù)據(jù),可以高效快捷地得到高精確度數(shù)據(jù),大大提高了學(xué)習(xí)效率,將學(xué)生從枯燥乏味的重復(fù)性計算中解脫出來,激發(fā)學(xué)習(xí)興趣,使學(xué)生有充分的時間和熱情去更好地理解熟悉離心泵結(jié)構(gòu)和特性,學(xué)會離心泵操作,掌握離心泵特性曲線測定方法、表示方法,加深對離心泵性能以及離心泵工作點和流量調(diào)節(jié)方法的了解。
離心泵性能曲線是將流量與揚程、流量與軸功率、流量與效率關(guān)系在同坐標(biāo)系中繪制出來。Q-H、Q-N和Q-η實驗數(shù)據(jù)是離散數(shù)據(jù),需要用一定的擬合方法擬合出一條光滑的曲線,該曲線要準(zhǔn)確地反映離散數(shù)據(jù)點的變化趨勢。若實驗離散數(shù)據(jù)與曲線對應(yīng)數(shù)據(jù)的誤差平方和最小,擬合曲線可以不通過實驗數(shù)據(jù)的每一個點,這種擬合方法是化學(xué)化工經(jīng)常使用的最小二乘法[10]。離心泵性能曲線關(guān)系是非線性的,選取二次多項式作為曲線擬合模型,擬合的二次多項式相關(guān)系數(shù)R接近于1,說明二次多項式方程的相關(guān)性好,因此選取二次多項式作為曲線擬合的模型[5]。過程中涉及機械重復(fù)性的計算過程比較復(fù)雜、耗時較長、出錯率較高,因此為了提高數(shù)據(jù)處理的效率和準(zhǔn)確性,采用MATLAB 中的多項式擬合函數(shù)polyfit 對Q-H、Q-N和Q-η關(guān)系數(shù)據(jù)進行擬合,另外為了能夠清楚直觀地在同一坐標(biāo)系中展現(xiàn)出Q-H、Q-N和Q-η關(guān)系,則使用MATLAB 編寫函數(shù)對使用polyfit 函數(shù)擬合好的數(shù)據(jù)進行歸一化處理,再將歸一化數(shù)據(jù)選取同一參照按照一定比例縮小或放大處理。最后將處理后的Q-H、Q-N和Q-η關(guān)系使用MATLAB 畫圖函數(shù)plot繪制。
數(shù)據(jù)處理具體步驟如下:
首先,MATLAB 編寫歸一化函數(shù),命名為gyi.m,具體代碼如下:
function y1=gyi(y)
m i n y=m i n(y);m a x y=m a x(y);y 1=(y-m i n y)./(maxy-miny);end
然后,MATLAB 編寫縮小或放大函數(shù),命名為fgyi.m,具體代碼如下:
function fy=fgyi(y,y1)
maxy1=max(y1);miny1=min(y1);fy=y.*(maxy1-miny1)+miny1;end
最后,MATLAB 編寫程序?qū)Ρ4娴絜xcel 文件中的數(shù)據(jù)(即1-1.xls)按照公式計算出揚程H、軸功率N和效率η,并使用MATLAB 自帶函數(shù)polyfit 對Q-H、Q-N和Q-η關(guān)系數(shù)據(jù)進行擬合,再使用自建函數(shù)gyi 和fanguiyi 對擬合好的數(shù)據(jù)和擬合前的數(shù)據(jù)進行處理,然后使用MATLAB 自帶函數(shù)plot 繪制3Y 軸的離心泵特性曲線。運行程序后結(jié)果如圖3 所示,其代碼如下:
x=xlsread('1-1.xls');density=xlsread('t-Density.xls');density1=density(:,2);
Q=x(:,2);n1=3100;n=x(:,7);Q1=Q.*(n1./n);
P1=x(:,4);P2=x(:,5);H=0.1+(P2-P1).*1000./9.8./density1;H1=H.*((n1./n).^2);
k=0.95;N=x(:,6);N1=N*k;N2=N1.*((n1./n).^3);y=(Q1.*H1.*9.8.*density1)./N2./3600.*100;
Q1fit=Q1(1):0.001:Q1(end);p1=polyfit(Q1,H1,2);H1fit=polyval(p1,Q1fit);p2=polyfit(Q1,N2,2);N2fit=polyval(p2,Q1fit);p3=polyfit(Q1,y,2);yfit=polyval(p3,Q1fit);
N21=gyi(N2);fN21=fgyi(N21,H1fit);y1=gyi(y);f y1=fgyi(y1,H1fit);N2fit1=gyi(N2fit);fN2fit=fgyi(N2f it1,H1fit);yfit1=gyi(yfit);fyfit=fgyi(yfit1,H1fit);
h1=axes('position',[0.1 0.1 0.65 0.8]);plot(Q1fit,H1fit,'k','LineWidth',1.5);
hold on
plot(Q1fit,fN2fit,'k','LineWidth',1.5);plot(Q1fit,fyfit,'k','LineWidth',1.5);
plot(Q1,H1,'ko','LineWidth',1.5);plot(Q1,fN21,'k*','LineWidth',1.5);
plot(Q1,fy1,'k^','LineWidth',1.5);
hold off
xlabel('流量Q /m^3/h','FontSize',20);ylabel('揚程H /m','FontSize',20);
set(gca,'xminortick','on','yminortick','on','FontSi ze',20);axis([0.35 6.7 13 27]);
h2=axes('position',[0.8 0.1 0.0001 0.8]);plot(Q1fit,yfit,'w');
set(h2,'ycolor','k','yaxislocation','right','xtick',[],'xminortick','on','yminortick','on','FontSize',20);
hold on
limx2=get(h2,'Xlim');limy2=get(h2,'Ylim');plot([limx2(2) limx2(2)],limy2,'k')
hold off
ylabel('效率 η /%','FontSize',20);
h 3=a x e s('p o s i t i o n',[0.9 0.1 0.0 0 0 1 0.8]);plot(Q1fit,N2fit,'w');
set(h3,'ycolor','k','yaxislocation','right','xtick',[],'xminortick','on','yminortick','on','FontSize',20)
hold on
limx3=get(h3,'Xlim');limy3=get(h3,'Ylim');plot([limx3(2) limx3(2)],limy3,'k')
hold off
ylabel('軸功率 N /kW','FontSize',20);
圖3 為使用MATLAB 軟件處理實驗數(shù)據(jù)后得到的離心泵性能曲線。由圖3 可知,離心泵的揚程H隨著流量Q的增加而減少,軸功率N隨著流量Q的增加而增加,效率η隨著流量Q的增加呈現(xiàn)先增加后減小趨勢。
MATLAB 軟件應(yīng)用于離心泵特性曲線實驗數(shù)據(jù)處理中,可以得到預(yù)期的數(shù)據(jù)處理效果。但是MATLAB 軟件對數(shù)據(jù)的處理正確與否建立在實驗數(shù)據(jù)的精確采集上。因此,需要嚴格按照實驗的操作規(guī)程進行操作,保證實驗中每個取樣點記錄的實驗數(shù)據(jù)的準(zhǔn)確性,可以通過多次實驗取平均值的方法減少實驗的偶然誤差,保證MATLAB 軟件處理實驗數(shù)據(jù)的準(zhǔn)確性。
實驗數(shù)據(jù)處理是離心泵性能曲線測定實驗的關(guān)鍵環(huán)節(jié),實驗需要處理的數(shù)據(jù)量巨大、涉及的計算過程復(fù)雜,離散Q-H、Q-N和Q-η關(guān)系需要按照二次多項式模型進行擬合,只要其中有一個步驟出現(xiàn)差錯都會影響實驗結(jié)果。若采用傳統(tǒng)的手工計算,為了保證實驗數(shù)據(jù)處理結(jié)果的準(zhǔn)確性,必須對數(shù)據(jù)處理的每一個過程進行反復(fù)計算和檢查,大大降低了學(xué)習(xí)效率。因此,將MATLAB 軟件應(yīng)用于離心泵性能曲線測定實驗數(shù)據(jù)處理過程中具有明顯的優(yōu)勢,MATLAB 強大的數(shù)據(jù)處理功能、操作性強的編程及繪圖功能可以使復(fù)雜的計算和繪圖過程變得簡單,提高學(xué)習(xí)效率。