樊新华,林贵瑜,陈宪民
(1.东北大学 计算中心,沈阳 110004;2.东北大学 机械工程与自动化学院,沈阳 110004;3.辽宁抚挖重工机械股份有限公司,辽宁 抚顺 113126)
大型履带起重机设计涉及多方面知识和多种行业,其设计水平标志着一个国家的工业水平和科学技术的发展水平.起重机总体设计是在源头上把握产品的性能,直接影响起重机的性能,也是企业自主设计能力和水平的反映.目前,我国履带起重机行业在初步设计中,确立总体参数还采用繁重的手工和半手工计算方式.由于起重机的用途广泛,产品的规格多,结构复杂多样,设计工作量大,导致设计周期长,远不能适应现今高质量、高速度、高效益的发展趋势[1],采用更先进的设计方法和设计手段势在必行.
在大型履带起重机总体设计过程中,涉及大量的、复杂的计算工作和先进的计算方法,并且还要对设计结果进行优化工作.虽然我国已开发了履带起重机总体设计系统,但只是针对履带起重机的四大机构的计算或某些关键件的可靠性分析功能.针对这种设计现状,应用先进的计算方法和软件开发工具(如 VB.NET、Matlab、ANSYS 和SQL Server软件)等技术,开发了大型履带起重机总体设计软件,实现参数计算的自动化、科学化.
系统需求分析的制定要着眼于企业的现状,还要顾及到企业未来的发展,并适当留出接口,实现软件系统的扩展.根据企业现行的设计现状,确定履带起重机总体设计的目标和内容.
软件系统应涵盖整个设计过程,形成完整的计算体系.据此可以确定履带起重机的关键的几何参数及整机参数,完成对关键件进行可靠性分析等功能,满足企业对大型履带起重机总体设计的要求,还要具有用户界面友好、操作简便方便等特点.
履带起重机设计的核心部分是总体设计,主要包括方案选择、技术参数确定、总体布局、大型构件强度和稳定、整机稳定性、结构机构受力等方面[2].对履带起重机总体设计的问题进行研究,根据企业的现行设计现状,应满足以下需求:
(1)履带起重机总体参数及臂架的主要几何参数确定;
(2)履带起重机四大机构(提升机构、变幅机构、回转机构和行走机构)的传动系统形式、最佳速度参数、力能参数的确定;
(3)根据总体参数样本建立回归方程和绘制曲线的功能;
(4)起重机臂架结构的完整性和可靠性分析计算;
(5)重要零部件受力形式研究;
(6)安全性和保密性,即可满足不同人员的操作和对信息的需求;
(7)操作简便,界面友好.
依据履带起重机设计流程、使用要求及其安全性,参考国内外同类标准,遵循起重机设计规范(GB/T3811-2008),参照起重机设计手册、起重设计计算等资料,对履带起重机设计流程和计算过程进行优化整合,并结合软件工程、计算机相关知识,进行了系统的设计工作.该软件系统分为总体设计参数计算、总体设计参数分析和系统辅助功能3部分,其中总体设计参数计算部分又分为初步设计参数和详细设计参数计算.具体包括功能模块如图1所示.
图1 系统模块图Fig.1 The system module chart
VB.NET是目前较流行的面向对象的、可视化的应用程序开发工具,提供了很多快速开发程序的新功能,大大地提高了编程效率和易用性.Matlab是国际上最流行的科学和工程计算的软件工具,提供了丰富的矩阵运算、图形绘制、数据处理、连接其他编程语言的程序等功能,广泛应用于科学和工程计算、模拟仿真等方面.ANSYS是目前应用较多的大型通用有限元分析软件,具有强大的前处理、分析计算和后处理功能.通过参数化设计语言(ANSYS Parameter Design Language,APDL)的参数化变量方式建立分析模型,可以完成多次分析,从而减少修改模型后重新分析时的所需时间.SQL Server是广泛应用的数据库系统,通过数据库引擎可对数据库里的大量记录进行更新、检索、管理等操作.
本软件系统使用 VB.NET 2005、Matlab R2007、ANSYS 11.0和SQL Server 2000软件进行开发.其中,VB.NET主要开发系统用户界面和简单计算功能;Matlab主要进行复杂计算及回归分析等功能;ANSYS主要对臂架、关键件进行可靠性分析功能;SQL Server主要用于保存计算过程的数据及最终结果.最后通过VB.NET分别调用Matlab、ANSYS、SQL Server等技术,将这些功能整合在一起.
初次使用本软件系统,要通过默认的系统管理员对系统进行初始化工作,即在“系统数据管理”模块中,进行初始数据设置,主要包括用户基本信息、机型基本信息和基本数据信息设置.在初始数据设置后,用户就可以对指定的机型进行相关的计算、分析等工作,也可以输出计算分析结果.
以计算“基本臂架几何参数”为例,说明软件系统的使用过程,具体过程如下:
启动软件系统,首先会出现用户登录界面,如图2所示.用户根据提示信息输入用户名、密码数据,并选择用户权限和机器型号数据.其中,用户权限分为系统操作员和操作员二类.选择不同的用户权限和机器型号,用户可以使用不同的功能,并且可以进行相应的操作.
图2 用户登录界面Fig.2 User login interface
根据上述选择不同的用户权限和产品型号,进入相应操作的主界面.系统管理员所进入的界面如图3所示.
图3 系统的主界面Fig.3 The main interface of the system
在主界面的“臂架系统”菜单中,选择“基本臂架几何参数”子菜单,会出现如图4所示,分为“试算基本臂架几何参数”和“确定基本臂架几何参数”两个选项卡.在“试算基本臂架几何参数”选项卡页面中(图4所示即为此选项卡内容),根据提示输入不同的参数,可以得到不同的试算结果,并将这些试算结果保存在数据库中.在“确定基本臂架几何参数”选项卡页面中,比较上述试算的多组结果,设计者可根据自己的知识选择一个合适的结果作为最终设计的结果.
图4 试算基本臂架几何参数的界面Fig.4 The interface of the basic arm geometric parameters
在主界面(图3)中,选择“查询输出”菜单,可以显示和输出总体设计的相关参数和最终结果.选择“基础数据”子菜单,显示试算的中间结果,带颜色记录是选定的最终结果;选择“整机结果”子菜单,会显示起重机设计的最终设计结果(如图5所示),这些结果也可以通过文件形式保存或打印输出.
本软件主要使用 VB.NET调用 Matlab、ANSYS、SQL Server等编程技术,下面详细介绍调用方法.
VB.NET程序调用Matlab的接口方法很多,主要有两种方法:使用COM组件(动态链接库.dll)和使用ActiveX(OLE)自动化技术.
4.1.1 使用动态链接库的方法
由于Matlab编写的M文件不能被VB.NET程序直接调用,因此首先利用 Matlab自带的deploytool工具将编写的M文件编译成可执行文件(EXE)或动态链接库文件(DLL);然后在VB.NET程序中通过访问该动态链接库来调用它的各个封装函数,以实现所需的各种功能[3~5].这种方法不需要安装Matlab软件,就可以正常的运行Matlab程序.
4.1.1.1 使用Matlab创建COM组件
在Matlab的Command Window窗口中,输入命令mbuild-setup,并根据Matlab的提示选择合适的编译器,用 Matlab内部的 Matlab Builder for.Net组件便可以生成M文件的DLL组件,独立地集成到 VB.NET中.其中,Matlab Builder for.Net组件的使用方法主要包括:编译M函数文件、创建 COM Builder工程、生成和打包 DLL文件.
创建COM组件具体步骤:
步骤1编写并调试要完成所需功能的M函数文件(函数文件名为mytest);在Matlab命令窗口中,输入 deploytool命令,会出现 Deployment Tool窗口.
步骤 2选择“File”->“New Deployment Project”菜单项,会出现“New Deployment Project”窗口,选择“MATLAB Builder for.NET”和“Generic COM Component”->输入 Name(文件名为GCOM)并选择存入路径,选择“OK”按钮.
步骤3在(文件名)class上单击右键->Add File,找到已编写的.M 文件;选择“Tools”->“Build”菜单项,编译所建项目.
图5 最终结果显示界面Fig.5 The final results showing interface
4.1.1.2 注册并使用COM组件
在使用COM组件之前,必须先对其进行注册,然后就可以使用COM组件.具体步骤如下:
步骤1创建一个应用程序.在Visual Basic.NET中选择菜单“文件”->“新建”->“项目”->“Visual Basic”->“Windows应用程序”,在打开的对话框中填入工程文件名称,并且选择文件要存放的目录.
步骤2注册DLL文件.在Visual Basic.NET中选择菜单“项目”->“添加引用”->“浏览”,找到生成的DLL文件,然后按“OK”按钮.
步骤3在应用程序中使用DLL文件.在程序代码中,生成对象并调用相应的M文件中的方法.VB.NET代码如下:
4.1.2 使用ActiveX自动化技术
Matlab支持ActiveX自动化技术.因此Matlab可以作为自动化服务器,VB.NET作为一个客户端程序.在VB.NET程序中调用Matlab服务功能的步骤:在VB.NET应用程序中,首先创建Matlab的ActiveX应用对象;然后通过这个对象提供的方 法 (函 数)(如 Excute、GetFullMatrix、PutFullMatrix、MaximizeCommandWindow、Minimize CommandWindow 等[6~7])来实现对 Matlab 的调用;最后释放ActiveX应用对象.这种方法需要安装Matlab软件,但无需启动就可以运行Matlab程序.
在VB.NET应用程序中创建 Matlab的ActiveX对象,其对象名为“Matlab.Application”.VB.NET程序调用Matlab程序如下:
在履带起重机臂架可靠性分析中,使用ANSYS的ADPL实现臂架结构的参数化有限元建模,将需要修改的数据设置成参数.在VB.NET程序中,首先在用户界面上输入参数,并将输入参数与APDL编写的命令流中的参数进行关联形成APDL宏文件;然后通过后台调用ANSYS进行分析;最后提取计算结果并显示到界面上.至此,用户可以根据不同的参数变化,查看ANSYS计算结果[8].
VB.NET程序后台调用 ANSYS有 Shell和ShellExecute等多种方法,其中Shell方式简单高效、并可带输入输出文件参数,但是需要判断ANSYS的批处理操作结束.VB.NET程序调用ANSYS 的程序[9~10]如下:
这里的<Drive>表示ANSYS 11.0软件的安装目录;-b表示用批处理方式运行ANSYS命令;-p product表示选用ANSYS软件产品特征码,此处选择的产品特征码是ane3fl;–i标志后面的文件是输入文件,ADPLFile文件是ANSYS的APDL宏文件;-o标志后面的文件是输出文件,ResultFile文件记录分析过程中使用的命令流、错误信息、计算求解结果等.如果指定的输出文件不存在,则会由程序自动生成.
由于ANSYS计算结束时,会最后生成file.err文件,因而可在程序中通过检测file.err文件是否存在来判断ANSYS计算是否完成.在VB.NET程序中,使用Timer控件的Timer事件判断ANSYS计算是否完成.在ANSYS计算开始时打开Timer控件,间隔设为3000ms,如果检测到生成的文件,提示计算完成.程序代码如下:
ADO.NET是.NET平台的数据访问标准,是由一组相关类和接口组成,主要包括两个核心组件:DataSet和数据提供程序.在ADO.NET对象模型中包括5个数据库访问和操作对象:Connection、Command、DataReader、DataSet 和DataAdapter等对象[11],见表 1.
表1 ADO.NET的对象功能Table 1 The ADO.NET object function
对于SQL Server数据库的访问,应在对象名前加上Sql前缀,通常需引入命名空间:
Imports system.data
Imports system.data.SqlClient
为了简化访问数据库的过程,将常用的数据访问操作(如数据库连接打开和关闭、SQL语句执行等操作)封装在通用数据库访问类[12,13]中,通过使用类的方法就可以实现数据库的访问,也可重复使用类文件,可以节省编程并提高效率[14].
大型履带起重机总体设计软件采用面向对象的编程方法,经过了企业实际设计的多次应用,体现了设计经验与设计理论的有机结合,满足了系统设计需求,缩短了起重机的设计周期,为企业的设计工作提供强大的辅助工具.由此得出以下结论:
(1)所采用的多种软件和不同数据集成的方法正确有效;
(2)为保证软件的容错性,依据国标采用在程序中限制输入数据范围,此方法行之有效;
(3)总体参数确定和臂架几何参数计算采用最小二乘法、回归分析法等方法[13],起重机臂架进行可靠度计算采用了蒙特卡洛方法,这些方法通过实际验证是正确的;
(4)软件具有继承性和扩展性,基本满足要求;
(5)功能较全面,涵盖了起重机的总体设计要求.
另外,该软件可以同时对不同型号的履带起重机进行总体设计,提高了计算的准确性,降低了计算的复杂性.不熟悉编程的人员也可方便使用,改变了设计人员的设计方式,对行业发展也会带来的相应的促进和提升.
[1]方增强.履带起重机机构设计计算程序的开发[D].吉林大学硕士论文,2009.
(Fang Zengqiang.The development of the computation program for crawler crane mechanisms design[D].Jilin University Master Thesis,2009.)
[2]罗琰峰.大型履带式起重机总体设计系统软件设计[D].大连理工大学硕士论文,2006.
(Luo Yanfeng.Software design of large scale crawler crane overall design system[D].Dalian University of Technology Master Thesis,2006.)
[3]刘绍清.基于COM 技术的Matlab和VB.net混合编程[J].软件导刊,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应用程序集成研究[J].软件导刊,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调用matlab进行混合编程[J].电脑学习,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中应用Matlab实现三维数据可视化[J].微机发展,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的大气扩散模型设计[J].环境与可持续发展,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调用ANSYS与MATLAB软件在电磁力计算中的应用[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调用 ANSYS与MATLAB在可靠性计算中的应用[J].机电技术,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二次开发与应用[J].电脑知识与技术,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程序设计技术[M].北京:清华大学出版社,2011.
(Shang Zhanlei,Bao Kongjun,Chen Yuanling,et al.Visual Basic 2008 programming technology[M].Beijing:Tsinghua University press,2011.)
[12]熊志斌,陈文宇.基于.NET的通用数据库访问组件设计与实现[J].软件导刊,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]余振伟.履带起重机总体参数确定及臂架设计原理研究[D].沈阳:东北大学,2008.
(Yu Zhenwei.The overall parameter determination and the jib design principle research[D]. Shenyang:Northeastern University,2008.)
[14]张晓霞,陈为欢,林旭,等.基于APDL的DGZ6行星齿轮系强度非线性分析软件二次开发[J].沈阳建筑大学学报(自然科学版),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.)