雷平
(洛陽LYC軸承有限公司 技術中心,河南 洛陽 471039 )
如何方便快捷地處理和分析試驗數據,尋找其內在規(guī)律并直觀地顯示出來,對于試驗工作有著重要的意義。隨著計算機軟件技術的飛速發(fā)展,各類工具軟件已廣泛應用于現(xiàn)代科學的各個領域,并發(fā)揮了巨大的作用,這些軟件在解決各自專業(yè)領域的問題時非常得心應手,有時甚至替代了人工無法實現(xiàn)的計算和分析功能,大幅度提高了工作效率。但是,由于工具軟件功能的局限性,單一的軟件往往不能完全滿足實際工作中對數據處理和分析的需要。下面介紹一種在軸承試驗中使用多種軟件進行混合應用及編程,實現(xiàn)對試驗數據方便地進行輸入、分析和處理的方法。
通常情況下,通過試驗測量所得到的目標數據y的值與多種因素xi有關,因此y的數值是離散的。在很多應用領域中,又時常需要根據這些測量的數據,在分析的基礎上求得自變量xi和因變量y之間的近似函數關系表達式(又稱經驗公式或數學模型)y=f(x),并可以用圖形方式直觀地顯示出來。
針對上述問題,并考慮到同類問題的相似性,擬編制一試驗數據處理軟件,該軟件采用Matlab進行試驗數據的分析和結果表達,采用Excel進行試驗數據的輸入,使用VB作為編程工具,將在Excel中輸入的數據傳遞到Matlab中,并可以根據實際需要靈活地定制操作界面、控制試驗數據分析結果的表現(xiàn)形式以及生成Word格式的試驗報告等[1-3]。
編程所需的操作系統(tǒng)為Windows XP,應用軟件為Matlab6.5, Excel2003,Word2003和 VB6.0中文版,硬件要求CPU P4 1.2 G以上,內存大于512 M ,硬盤可用容量大于10 G。程序流程如圖1所示。
圖1 程序流程
為了了解金屬材料的沖擊功與材料所受的熱處理溫度及取樣部位之間的關系,以便改進熱處理工藝,提升產品質量,進行了大量試驗,并測得了不同溫度和取樣部位材料的沖擊功?,F(xiàn)將使用VB+Matlab+Excel軟件進行混合編程的實現(xiàn)方法簡述如下。
(1)將每次試驗所得到的數據按一定的格式輸入到Excel中形成數據文件。如此例中將同一回火溫度、不同淬火溫度下所測得的不同位置試樣(周向、軸向、徑向)的材料沖擊功AK分別整理輸入到一個Excel文件sj.xls中。
(2)利用VB的DDE技術,根據Matlab分析和處理這些試驗數據的需要,將Excel數據文件的數據進行處理并形成Matlab運行所需的.m文件。
Cmdstr = "Workbook = invoke(Workbooks, ′Open c: estsj.xls′)"
MathApp.Execute ("Excel = actxserver(′Excel.Application′);")
MathApp.Execute ("Workbooks = Excel.Workbooks;")
MathApp.Execute (Cmdstr)
MathApp.Execute ("Sheets = Excel.ActiveWorkBook.Sheets;")
MathApp.Execute ("sheet1 = get(Sheets, ′Item′, 1);")
MathApp.Execute ("invoke(sheet1, ′Activate′);")
MathApp.Execute ("Activesheet = Excel.Activesheet;")
Cmdstr="Range =get(Activesheet, ′Range′, ′A2:D’ & sjnum′);"
MathApp.Execute (Cmdstr)
MathApp.Execute ("B = Range.value;")
For i = 1 To sjnum ′sjnum為試驗數據的個數
Cmdstr = "x(" & i & ") = numeric(B{" & i & ",2})"
MathApp.Execute (Cmdstr)
Next i
For i = 1 To sjnum
Cmdstr = "y1(" & i & ") = numeric(B{" & i & ",3})"
MathApp.Execute (Cmdstr)
Next i
……
(3)用Matlab編程形成最終的rg570b.m文件。
x=[800,820,840,860];
y(1,:)=[40,50,40,38];
y(2,:)=[21,17,18,21];
y(3,:)=[31,38,34,32];
y(4,:)=[36,29,27,21];
y(5,:)=[87,87,84,96];
y(6,:)=[124,117,123,122];
hold on
plot(x,y,′*′);
xi=[800:1:860];
z(1,:)=interp1(x,y(1,:),xi);
z(2,:)=interp1(x,y(2,:),xi);
z(3,:)=interp1(x,y(3,:),xi);
z(4,:)=interp1(x,y(4,:),xi);
z(5,:)=interp1(x,y(5,:),xi);
z(6,:)=interp1(x,y(6,:),xi);
z(1,:)=spline(x,y(1,:),xi);
z(2,:)=spline(x,y(2,:),xi);
z(3,:)=spline(x,y(3,:),xi);
z(4,:)=spline(x,y(4,:),xi);
z(5,:)=spline(x,y(5,:),xi);
z(6,:)=spline(x,y(6,:),xi);
xlabel(′淬火溫度/℃′)
ylabel(′沖擊功AK值/J′)
title(′570℃回火下,不同淬火溫度下各部位沖擊功AK值變化曲線′);
plot(xi,z,′LineWidth′,2);
(4)通過Matlab的數據接口,利用VB將.m文件自動調入到Matlab環(huán)境中,并驅動Matlab執(zhí)行該.m文件,生成試驗數據分析結果和相應的圖形。
Dim Tmppath,Jgstr As String ′初始化Matlab繪圖環(huán)境
Set MathApp = CreateObject("MatLab.Application")
MathApp.Visible = True
MathApp.Execute ("clc")
MathApp.Execute ("clear")
Tmppath = "path(path,?& App.Path & ?)
MathApp.Execute (Tmppath)
MathApp.Execute ("colorbar") ′執(zhí)行matlab程序并輸出結果圖形
MathApp.Execute “rg570b.m”
Call Comm_envset
Jgstr = App.Path & "·70b.bmp"
Cmdstr = "print(gcf,′-dbmp′,? & Jgstr & ?)"
MathApp.Execute (Cmdstr)
(5)利用VB編程控制試驗數據輸出結果,自動生成Word格式的試驗報告并打印出來。
Dim ftest, txtstr, sbuffer As String
Dim rng As Range,lsize, ret As Long
Set WordApp = CreateObject("Word.Application")
txtstr = "沖擊功試驗數據分析報告"
WordApp.Visible = True
WordApp.Documents.Add (" ") ′在Word中插入文本
WordApp.Selection.TypeText (txtstr) ′控制文本字體格式
Set rng = WordApp.ActiveDocument.Range(0, 2)
rng.Select
With rng
.Font.Size = 14
.Font.Name = "Arial"
.ParagraphFormat.Alignment = wdAlignParagraphCenter
End With
WordApp.Selection.TypeParagraph′插入結果圖片
WordApp.Selection.InlineShapes.AddPicture (Jgstr) '插入試驗報告其他信息內容
……
WordApp.Selection.TypeParagraph
WordApp.Selection.TypeText ("試驗條件及參數: ")
WordApp.Selection.TypeParagraph
WordApp.Selection.TypeParagraph
WordApp.Selection.TypeText ("數據采集: 報告人:")
WordApp.Selection.TypeParagraph
WordApp.Selection.TypeParagraph
WordApp.Selection.TypeText ("XXXXX公司")
sbuffer = “c: est eport.doc”
WordApp.ActiveDocument.SaveAs (sbuffer)′關閉當前文檔
WordApp.Documents.Close
WordApp.Quit
該軟件的程序界面如圖2所示,其主要的功能特點如下:
圖2 程序界面
(1)數據處理非常靈活,只需改變Excel中的試驗數據即可得到不同的輸出結果,極大增強了試驗數據的對比分析和調試功能。
(2)數據分析的結果非常直觀,可以以多種方式展示,支持3D應用及顯示,如圖3所示。
圖3 數據分析結果
(3)試驗報告由程序自動生成,既可保存也可直接打印,完全滿足實際工作需要。
(4)對于相似問題的試驗數據,只需對程序界面稍加修改即可使用,從而使該軟件系統(tǒng)的通用性大大增強。
綜上所述,通過這3種軟件的綜合應用與混合編程,發(fā)揮軟件各自的優(yōu)勢,完成對試驗數據輸入、匯總、分析、顯示及輸出的一體化處理,并可自動生成分析報告??赏耆m用于其他領域類似數據的處理,具有較強的實用性和推廣應用價值。