樊新華,林貴瑜,陳憲民
(1.東北大學(xué) 計算中心,沈陽 110004;2.東北大學(xué) 機械工程與自動化學(xué)院,沈陽 110004;3.遼寧撫挖重工機械股份有限公司,遼寧 撫順 113126)
大型履帶起重機設(shè)計涉及多方面知識和多種行業(yè),其設(shè)計水平標志著一個國家的工業(yè)水平和科學(xué)技術(shù)的發(fā)展水平.起重機總體設(shè)計是在源頭上把握產(chǎn)品的性能,直接影響起重機的性能,也是企業(yè)自主設(shè)計能力和水平的反映.目前,我國履帶起重機行業(yè)在初步設(shè)計中,確立總體參數(shù)還采用繁重的手工和半手工計算方式.由于起重機的用途廣泛,產(chǎn)品的規(guī)格多,結(jié)構(gòu)復(fù)雜多樣,設(shè)計工作量大,導(dǎo)致設(shè)計周期長,遠不能適應(yīng)現(xiàn)今高質(zhì)量、高速度、高效益的發(fā)展趨勢[1],采用更先進的設(shè)計方法和設(shè)計手段勢在必行.
在大型履帶起重機總體設(shè)計過程中,涉及大量的、復(fù)雜的計算工作和先進的計算方法,并且還要對設(shè)計結(jié)果進行優(yōu)化工作.雖然我國已開發(fā)了履帶起重機總體設(shè)計系統(tǒng),但只是針對履帶起重機的四大機構(gòu)的計算或某些關(guān)鍵件的可靠性分析功能.針對這種設(shè)計現(xiàn)狀,應(yīng)用先進的計算方法和軟件開發(fā)工具(如 VB.NET、Matlab、ANSYS 和SQL Server軟件)等技術(shù),開發(fā)了大型履帶起重機總體設(shè)計軟件,實現(xiàn)參數(shù)計算的自動化、科學(xué)化.
系統(tǒng)需求分析的制定要著眼于企業(yè)的現(xiàn)狀,還要顧及到企業(yè)未來的發(fā)展,并適當(dāng)留出接口,實現(xiàn)軟件系統(tǒng)的擴展.根據(jù)企業(yè)現(xiàn)行的設(shè)計現(xiàn)狀,確定履帶起重機總體設(shè)計的目標和內(nèi)容.
軟件系統(tǒng)應(yīng)涵蓋整個設(shè)計過程,形成完整的計算體系.據(jù)此可以確定履帶起重機的關(guān)鍵的幾何參數(shù)及整機參數(shù),完成對關(guān)鍵件進行可靠性分析等功能,滿足企業(yè)對大型履帶起重機總體設(shè)計的要求,還要具有用戶界面友好、操作簡便方便等特點.
履帶起重機設(shè)計的核心部分是總體設(shè)計,主要包括方案選擇、技術(shù)參數(shù)確定、總體布局、大型構(gòu)件強度和穩(wěn)定、整機穩(wěn)定性、結(jié)構(gòu)機構(gòu)受力等方面[2].對履帶起重機總體設(shè)計的問題進行研究,根據(jù)企業(yè)的現(xiàn)行設(shè)計現(xiàn)狀,應(yīng)滿足以下需求:
(1)履帶起重機總體參數(shù)及臂架的主要幾何參數(shù)確定;
(2)履帶起重機四大機構(gòu)(提升機構(gòu)、變幅機構(gòu)、回轉(zhuǎn)機構(gòu)和行走機構(gòu))的傳動系統(tǒng)形式、最佳速度參數(shù)、力能參數(shù)的確定;
(3)根據(jù)總體參數(shù)樣本建立回歸方程和繪制曲線的功能;
(4)起重機臂架結(jié)構(gòu)的完整性和可靠性分析計算;
(5)重要零部件受力形式研究;
(6)安全性和保密性,即可滿足不同人員的操作和對信息的需求;
(7)操作簡便,界面友好.
依據(jù)履帶起重機設(shè)計流程、使用要求及其安全性,參考國內(nèi)外同類標準,遵循起重機設(shè)計規(guī)范(GB/T3811-2008),參照起重機設(shè)計手冊、起重設(shè)計計算等資料,對履帶起重機設(shè)計流程和計算過程進行優(yōu)化整合,并結(jié)合軟件工程、計算機相關(guān)知識,進行了系統(tǒng)的設(shè)計工作.該軟件系統(tǒng)分為總體設(shè)計參數(shù)計算、總體設(shè)計參數(shù)分析和系統(tǒng)輔助功能3部分,其中總體設(shè)計參數(shù)計算部分又分為初步設(shè)計參數(shù)和詳細設(shè)計參數(shù)計算.具體包括功能模塊如圖1所示.
圖1 系統(tǒng)模塊圖Fig.1 The system module chart
VB.NET是目前較流行的面向?qū)ο蟮?、可視化的?yīng)用程序開發(fā)工具,提供了很多快速開發(fā)程序的新功能,大大地提高了編程效率和易用性.Matlab是國際上最流行的科學(xué)和工程計算的軟件工具,提供了豐富的矩陣運算、圖形繪制、數(shù)據(jù)處理、連接其他編程語言的程序等功能,廣泛應(yīng)用于科學(xué)和工程計算、模擬仿真等方面.ANSYS是目前應(yīng)用較多的大型通用有限元分析軟件,具有強大的前處理、分析計算和后處理功能.通過參數(shù)化設(shè)計語言(ANSYS Parameter Design Language,APDL)的參數(shù)化變量方式建立分析模型,可以完成多次分析,從而減少修改模型后重新分析時的所需時間.SQL Server是廣泛應(yīng)用的數(shù)據(jù)庫系統(tǒng),通過數(shù)據(jù)庫引擎可對數(shù)據(jù)庫里的大量記錄進行更新、檢索、管理等操作.
本軟件系統(tǒng)使用 VB.NET 2005、Matlab R2007、ANSYS 11.0和SQL Server 2000軟件進行開發(fā).其中,VB.NET主要開發(fā)系統(tǒng)用戶界面和簡單計算功能;Matlab主要進行復(fù)雜計算及回歸分析等功能;ANSYS主要對臂架、關(guān)鍵件進行可靠性分析功能;SQL Server主要用于保存計算過程的數(shù)據(jù)及最終結(jié)果.最后通過VB.NET分別調(diào)用Matlab、ANSYS、SQL Server等技術(shù),將這些功能整合在一起.
初次使用本軟件系統(tǒng),要通過默認的系統(tǒng)管理員對系統(tǒng)進行初始化工作,即在“系統(tǒng)數(shù)據(jù)管理”模塊中,進行初始數(shù)據(jù)設(shè)置,主要包括用戶基本信息、機型基本信息和基本數(shù)據(jù)信息設(shè)置.在初始數(shù)據(jù)設(shè)置后,用戶就可以對指定的機型進行相關(guān)的計算、分析等工作,也可以輸出計算分析結(jié)果.
以計算“基本臂架幾何參數(shù)”為例,說明軟件系統(tǒng)的使用過程,具體過程如下:
啟動軟件系統(tǒng),首先會出現(xiàn)用戶登錄界面,如圖2所示.用戶根據(jù)提示信息輸入用戶名、密碼數(shù)據(jù),并選擇用戶權(quán)限和機器型號數(shù)據(jù).其中,用戶權(quán)限分為系統(tǒng)操作員和操作員二類.選擇不同的用戶權(quán)限和機器型號,用戶可以使用不同的功能,并且可以進行相應(yīng)的操作.
圖2 用戶登錄界面Fig.2 User login interface
根據(jù)上述選擇不同的用戶權(quán)限和產(chǎn)品型號,進入相應(yīng)操作的主界面.系統(tǒng)管理員所進入的界面如圖3所示.
圖3 系統(tǒng)的主界面Fig.3 The main interface of the system
在主界面的“臂架系統(tǒng)”菜單中,選擇“基本臂架幾何參數(shù)”子菜單,會出現(xiàn)如圖4所示,分為“試算基本臂架幾何參數(shù)”和“確定基本臂架幾何參數(shù)”兩個選項卡.在“試算基本臂架幾何參數(shù)”選項卡頁面中(圖4所示即為此選項卡內(nèi)容),根據(jù)提示輸入不同的參數(shù),可以得到不同的試算結(jié)果,并將這些試算結(jié)果保存在數(shù)據(jù)庫中.在“確定基本臂架幾何參數(shù)”選項卡頁面中,比較上述試算的多組結(jié)果,設(shè)計者可根據(jù)自己的知識選擇一個合適的結(jié)果作為最終設(shè)計的結(jié)果.
圖4 試算基本臂架幾何參數(shù)的界面Fig.4 The interface of the basic arm geometric parameters
在主界面(圖3)中,選擇“查詢輸出”菜單,可以顯示和輸出總體設(shè)計的相關(guān)參數(shù)和最終結(jié)果.選擇“基礎(chǔ)數(shù)據(jù)”子菜單,顯示試算的中間結(jié)果,帶顏色記錄是選定的最終結(jié)果;選擇“整機結(jié)果”子菜單,會顯示起重機設(shè)計的最終設(shè)計結(jié)果(如圖5所示),這些結(jié)果也可以通過文件形式保存或打印輸出.
本軟件主要使用 VB.NET調(diào)用 Matlab、ANSYS、SQL Server等編程技術(shù),下面詳細介紹調(diào)用方法.
VB.NET程序調(diào)用Matlab的接口方法很多,主要有兩種方法:使用COM組件(動態(tài)鏈接庫.dll)和使用ActiveX(OLE)自動化技術(shù).
4.1.1 使用動態(tài)鏈接庫的方法
由于Matlab編寫的M文件不能被VB.NET程序直接調(diào)用,因此首先利用 Matlab自帶的deploytool工具將編寫的M文件編譯成可執(zhí)行文件(EXE)或動態(tài)鏈接庫文件(DLL);然后在VB.NET程序中通過訪問該動態(tài)鏈接庫來調(diào)用它的各個封裝函數(shù),以實現(xiàn)所需的各種功能[3~5].這種方法不需要安裝Matlab軟件,就可以正常的運行Matlab程序.
4.1.1.1 使用Matlab創(chuàng)建COM組件
在Matlab的Command Window窗口中,輸入命令mbuild-setup,并根據(jù)Matlab的提示選擇合適的編譯器,用 Matlab內(nèi)部的 Matlab Builder for.Net組件便可以生成M文件的DLL組件,獨立地集成到 VB.NET中.其中,Matlab Builder for.Net組件的使用方法主要包括:編譯M函數(shù)文件、創(chuàng)建 COM Builder工程、生成和打包 DLL文件.
創(chuàng)建COM組件具體步驟:
步驟1編寫并調(diào)試要完成所需功能的M函數(shù)文件(函數(shù)文件名為mytest);在Matlab命令窗口中,輸入 deploytool命令,會出現(xiàn) Deployment Tool窗口.
步驟 2選擇“File”->“New Deployment Project”菜單項,會出現(xiàn)“New Deployment Project”窗口,選擇“MATLAB Builder for.NET”和“Generic COM Component”->輸入 Name(文件名為GCOM)并選擇存入路徑,選擇“OK”按鈕.
步驟3在(文件名)class上單擊右鍵->Add File,找到已編寫的.M 文件;選擇“Tools”->“Build”菜單項,編譯所建項目.
圖5 最終結(jié)果顯示界面Fig.5 The final results showing interface
4.1.1.2 注冊并使用COM組件
在使用COM組件之前,必須先對其進行注冊,然后就可以使用COM組件.具體步驟如下:
步驟1創(chuàng)建一個應(yīng)用程序.在Visual Basic.NET中選擇菜單“文件”->“新建”->“項目”->“Visual Basic”->“Windows應(yīng)用程序”,在打開的對話框中填入工程文件名稱,并且選擇文件要存放的目錄.
步驟2注冊DLL文件.在Visual Basic.NET中選擇菜單“項目”->“添加引用”->“瀏覽”,找到生成的DLL文件,然后按“OK”按鈕.
步驟3在應(yīng)用程序中使用DLL文件.在程序代碼中,生成對象并調(diào)用相應(yīng)的M文件中的方法.VB.NET代碼如下:
4.1.2 使用ActiveX自動化技術(shù)
Matlab支持ActiveX自動化技術(shù).因此Matlab可以作為自動化服務(wù)器,VB.NET作為一個客戶端程序.在VB.NET程序中調(diào)用Matlab服務(wù)功能的步驟:在VB.NET應(yīng)用程序中,首先創(chuàng)建Matlab的ActiveX應(yīng)用對象;然后通過這個對象提供的方 法 (函 數(shù))(如 Excute、GetFullMatrix、PutFullMatrix、MaximizeCommandWindow、Minimize CommandWindow 等[6~7])來實現(xiàn)對 Matlab 的調(diào)用;最后釋放ActiveX應(yīng)用對象.這種方法需要安裝Matlab軟件,但無需啟動就可以運行Matlab程序.
在VB.NET應(yīng)用程序中創(chuàng)建 Matlab的ActiveX對象,其對象名為“Matlab.Application”.VB.NET程序調(diào)用Matlab程序如下:
在履帶起重機臂架可靠性分析中,使用ANSYS的ADPL實現(xiàn)臂架結(jié)構(gòu)的參數(shù)化有限元建模,將需要修改的數(shù)據(jù)設(shè)置成參數(shù).在VB.NET程序中,首先在用戶界面上輸入?yún)?shù),并將輸入?yún)?shù)與APDL編寫的命令流中的參數(shù)進行關(guān)聯(lián)形成APDL宏文件;然后通過后臺調(diào)用ANSYS進行分析;最后提取計算結(jié)果并顯示到界面上.至此,用戶可以根據(jù)不同的參數(shù)變化,查看ANSYS計算結(jié)果[8].
VB.NET程序后臺調(diào)用 ANSYS有 Shell和ShellExecute等多種方法,其中Shell方式簡單高效、并可帶輸入輸出文件參數(shù),但是需要判斷ANSYS的批處理操作結(jié)束.VB.NET程序調(diào)用ANSYS 的程序[9~10]如下:
這里的<Drive>表示ANSYS 11.0軟件的安裝目錄;-b表示用批處理方式運行ANSYS命令;-p product表示選用ANSYS軟件產(chǎn)品特征碼,此處選擇的產(chǎn)品特征碼是ane3fl;–i標志后面的文件是輸入文件,ADPLFile文件是ANSYS的APDL宏文件;-o標志后面的文件是輸出文件,ResultFile文件記錄分析過程中使用的命令流、錯誤信息、計算求解結(jié)果等.如果指定的輸出文件不存在,則會由程序自動生成.
由于ANSYS計算結(jié)束時,會最后生成file.err文件,因而可在程序中通過檢測file.err文件是否存在來判斷ANSYS計算是否完成.在VB.NET程序中,使用Timer控件的Timer事件判斷ANSYS計算是否完成.在ANSYS計算開始時打開Timer控件,間隔設(shè)為3000ms,如果檢測到生成的文件,提示計算完成.程序代碼如下:
ADO.NET是.NET平臺的數(shù)據(jù)訪問標準,是由一組相關(guān)類和接口組成,主要包括兩個核心組件:DataSet和數(shù)據(jù)提供程序.在ADO.NET對象模型中包括5個數(shù)據(jù)庫訪問和操作對象:Connection、Command、DataReader、DataSet 和DataAdapter等對象[11],見表 1.
表1 ADO.NET的對象功能Table 1 The ADO.NET object function
對于SQL Server數(shù)據(jù)庫的訪問,應(yīng)在對象名前加上Sql前綴,通常需引入命名空間:
Imports system.data
Imports system.data.SqlClient
為了簡化訪問數(shù)據(jù)庫的過程,將常用的數(shù)據(jù)訪問操作(如數(shù)據(jù)庫連接打開和關(guān)閉、SQL語句執(zhí)行等操作)封裝在通用數(shù)據(jù)庫訪問類[12,13]中,通過使用類的方法就可以實現(xiàn)數(shù)據(jù)庫的訪問,也可重復(fù)使用類文件,可以節(jié)省編程并提高效率[14].
大型履帶起重機總體設(shè)計軟件采用面向?qū)ο蟮木幊谭椒?,?jīng)過了企業(yè)實際設(shè)計的多次應(yīng)用,體現(xiàn)了設(shè)計經(jīng)驗與設(shè)計理論的有機結(jié)合,滿足了系統(tǒng)設(shè)計需求,縮短了起重機的設(shè)計周期,為企業(yè)的設(shè)計工作提供強大的輔助工具.由此得出以下結(jié)論:
(1)所采用的多種軟件和不同數(shù)據(jù)集成的方法正確有效;
(2)為保證軟件的容錯性,依據(jù)國標采用在程序中限制輸入數(shù)據(jù)范圍,此方法行之有效;
(3)總體參數(shù)確定和臂架幾何參數(shù)計算采用最小二乘法、回歸分析法等方法[13],起重機臂架進行可靠度計算采用了蒙特卡洛方法,這些方法通過實際驗證是正確的;
(4)軟件具有繼承性和擴展性,基本滿足要求;
(5)功能較全面,涵蓋了起重機的總體設(shè)計要求.
另外,該軟件可以同時對不同型號的履帶起重機進行總體設(shè)計,提高了計算的準確性,降低了計算的復(fù)雜性.不熟悉編程的人員也可方便使用,改變了設(shè)計人員的設(shè)計方式,對行業(yè)發(fā)展也會帶來的相應(yīng)的促進和提升.
[1]方增強.履帶起重機機構(gòu)設(shè)計計算程序的開發(fā)[D].吉林大學(xué)碩士論文,2009.
(Fang Zengqiang.The development of the computation program for crawler crane mechanisms design[D].Jilin University Master Thesis,2009.)
[2]羅琰峰.大型履帶式起重機總體設(shè)計系統(tǒng)軟件設(shè)計[D].大連理工大學(xué)碩士論文,2006.
(Luo Yanfeng.Software design of large scale crawler crane overall design system[D].Dalian University of Technology Master Thesis,2006.)
[3]劉紹清.基于COM 技術(shù)的Matlab和VB.net混合編程[J].軟件導(dǎo)刊,2012(5):11-12.
(Liu Shaoqing.Matlab and VB.net mixed programming based on COM technology[J].Software Guide,2012(5):11-12.)
[4]楊永健.基于.NET平臺的MATLAB應(yīng)用程序集成研究[J].軟件導(dǎo)刊,2009(8):120-121.(Yang Yongjian.Research on MATLAB application integration based on .NET platform[J].Software Guide,2009(8):120 -121.)
[5]吳煥瑞,車紫輝.C#.net調(diào)用matlab進行混合編程[J].電腦學(xué)習(xí),2010(4):93-94.
(Wu Huanrui,Che Zihui.C#.net calling matlab on hybrid programming[J].Computer Study,2010(4):93 -94.)
[6]胡春霞,賀昌海,賀敏.在VB.NET中應(yīng)用Matlab實現(xiàn)三維數(shù)據(jù)可視化[J].微機發(fā)展,2005(5):66-67,71.
(Hu Chunxia,He Changhai,He Min.Implementing 3D data visualization by using matlab in VB. NET [J].Microcomputer Development,2005(5):66 -67,71.)
[7]于蘇俊,夏永秋.基于VB.net和Matlab的大氣擴散模型設(shè)計[J].環(huán)境與可持續(xù)發(fā)展,2006(1):22-23.
(Yu Sujun, Xia Yongqiu. Model design of atmospheric diffusion based on VB.net and Matlab[J].Environment and Sustainable Development,2006(1):22 -23.)
[8]邵正,毛中亞,郭其一.VB調(diào)用ANSYS與MATLAB軟件在電磁力計算中的應(yīng)用[J].電工電氣,2010(4):20-22.
(Shao Zheng,Mao Zhongya,Guo Qiyi.Application of VB calling ANSYS and MATLAB in calculation of electromagnetic force[J].Jiangsu Electrical Apparatus,2010(4):20 -22.)
[9]李小易,楊志軍,李會杰,等.VB調(diào)用 ANSYS與MATLAB在可靠性計算中的應(yīng)用[J].機電技術(shù),2008(1):15-17.
(Li Xiaoyi,Yang Zhijun,Li Huijie,et al.Application of VB calling ANSYS and MATLAB in the calculation of reliability[J].Mechanical & Electrical Technology,2008(1):15-17.)
[10]廖孟柯.基于VB的ANSYS二次開發(fā)與應(yīng)用[J].電腦知識與技術(shù),2012(19):4614-4617.
(Liao Mengke.Applying VB to the second development of ANSYS[J].Computer Knowledge and Technology,2012(19):4614 -4617.)
[11]尚展壘,包空軍,陳嫄玲,等.Visual Basic 2008程序設(shè)計技術(shù)[M].北京:清華大學(xué)出版社,2011.
(Shang Zhanlei,Bao Kongjun,Chen Yuanling,et al.Visual Basic 2008 programming technology[M].Beijing:Tsinghua University press,2011.)
[12]熊志斌,陳文宇.基于.NET的通用數(shù)據(jù)庫訪問組件設(shè)計與實現(xiàn)[J].軟件導(dǎo)刊,2008(8):95-97.
(Xiong Zhibin,Chen Wenyu.Design and implementation of general database access component based on .NET[J].Software Guide,2008(8):95 -97.)
[13]余振偉.履帶起重機總體參數(shù)確定及臂架設(shè)計原理研究[D].沈陽:東北大學(xué),2008.
(Yu Zhenwei.The overall parameter determination and the jib design principle research[D]. Shenyang:Northeastern University,2008.)
[14]張曉霞,陳為歡,林旭,等.基于APDL的DGZ6行星齒輪系強度非線性分析軟件二次開發(fā)[J].沈陽建筑大學(xué)學(xué)報(自然科學(xué)版),2013,29(3):561-565.
(Zhang Xiaoxia,Chen Weihuan,Lin Xu,et al.Secondary development of nonlinear strength analysis software for DGZ6 planetary gear based on APDL language[J]. Journal of Shenyang Jianzhu University(Natural Science),2013,29(3):561 -565.)