摘 要: 为了保证机械产品质量,提高产品生产效率,满足不同客户的特殊需求,对SolidWorks做二次仿真开发,并在此基础上进一步做协同开发,实现协同、仿真合二为一;同时,对后台大量仿真数据采用自动管理和人工管理两种方式,确保前台协同仿真设计系统的高效性、实用性。
关键词: 机械产品;协同仿真设计;SolidWorks;自动管理;人工管理;齿轮
现今机械产品设计呈现多元化、实用化、信息化的特点,需要提供新的工作环境来满足这种变化;传统的机械产品生产从设计到原型生产、测试需要花费很多时间,开发周期长,而且各个环节之间缺乏信息沟通,常导致设计人员之间的合作不协调。随着计算机技术、网络技术、信息技术的发展,产品协同仿真设计应运而生。协同仿真设计改变了传统的生产模式,适应当今纷繁多变的市场需求及团队合作研发[1-2]。
1 协同仿真设计
1.1 协同仿真设计的必然性
现今的机械设计已经演变为一个多学科、多技术的综合研究领域,机械产品设计的复杂度越来越高,设计活动越来越强调基于知识资源的协同设计,从而克服时间、空间、计算机软硬件等限制,形成一个便于群体相互交流和合作的“虚拟同地”的共同设计空间,由于协同设计人员分布于不同的单位及机构,使研发资金分散开来,降低了各部门的研发开支。协同设计可以充分利用机械产品研发中的不同知识资源,避免大量“知识孤岛”的形成,提高知识共享和重用效率,加快创新速度。
另一方面,为了改变原始的工人原型生产弊端,在机械产品的研发设计阶段可以采用仿真设计。仿真设计充分利用各种有效资源实现产品数字模拟、性能仿真分析,方便、安全地找出产品的错误设计,及时改正,保证产品的安全性;研发过程充分汇集了工程实用信息、产品最新理念信息及其他相关信息,确保产品的实用性和创新性。为了最大限度地提高产品研发进程,将协同设计和仿真设计合二为一,协同仿真设计是目前制造业的重要应用技术[3]。
1.2 协同仿真设计的工作原理
分布在不同地点的设计人员通过网络进行产品协同仿真设计,生成产品数字原型,在虚拟环境中做相关实验、测试,确保生产进度并保证产品质量。协同工作模式在时间段上可以是同步或异步,在整个协同设计过程中,用户可以根据实际情况选择使用。
例如,设计者A邀请设计者B对他的设计目标进行操作时,二者可以共同设计目标产品,同时可以进行信息交流,操作过程中需要满足仿真数据与模型显示同步,所以传输数据应尽可能少,这里利用VS C#中的ADO.NET和XML的紧密集成、显示统一作为网络编程接口的基础,实现协同仿真设计开发,如图1所示。
产品设计过程中产生的大量仿真数据,需要优化管理,否则占用的存储空间较大,通常在几百兆至上千兆之间。协同仿真设计在数据管理方面可以采用自动管理和人工管理两种方式,前者获取多人设计的最优仿真数据替换原始数据,避免数据冗余;后者由多人设计组组长来确定是替换原始数据还是产生新数据,确保关键数据不会丢失。通常情况下,可以采用前者,重要设计时应该指定组长来主控。
2 机械产品的协同仿真设计
2.1 SolidWorks做二次开发的先决条件
SolidWorks是一种全新的三维机械仿真软件,以PDM为平台,集成CAD/CAE/CAPP/CAM等CAX软件,提供全参数化三维实体造型设计;并提供了几百个API函数,为二次开发提供了充分空间。基于SolidWorks的二次开发创建网络支持的协同仿真设计系统,可以充分利用异地资源,大大提高设计效率,减少设计成本,具有重要的现实意义。
SolidWorks二次开发可以采用OLE技术或COM技术。利用OLE技术可以开发独立的可执行程序(*.exe),用户可以使用来自两个或多个Windows应用程序的资源来解决复杂的应用课题;基于COM的技术可以使用最多的SolidWorks API函数,生成*.dll格式的文件,加载到主架构应用系统中,形成二次开发软件系统的一个插件。一般情况下,在执行SolidWorks中的大部分操作时,模块内的DLL比模块外的EXE运行速度快许多,因此采用COM技术开发方式比较多。
2.2 SolidWorks协同仿真组件的二次开发
SolidWorks同其他CAD软件一样,是针对整个制造业所设计的通用软件,而非为某个具体行业和企业量身订制,因此不能最大程度地满足具体用户的特殊要求,常常要对SolidWorks进行二次开发,实现三维CAD系统的专业化和本土化。Microsoft推出的Visual C#是一个纯面向对象程序设计语言,其编译系统提供了与其他软件系统良好的接口,很适合对SolidWorks进行二次仿真开发,这里采用COM技术对SolidWorks做二次开发。
2.2.1 仿真组件二次开发
首先,SolidWorks API需要导入Visual C#编译系统,即执行“选择工具箱项”命令,切换到“COM组件”选项卡导入SLDWorks类库;接着,在“解决方案资源管理器”中引入命名空间SldWorks,即实现SolidWorks API函数库的导入;最后,利用导入的函数库资源进行程序编码,代码经过编译生成零件仿真组件PartsDLL.dll,将组件PartsDLL再嵌入仿真应用系统,则此系统便可以在需要的地方创建PartsDLL中类的对象并进行对象行为的执行,由此完成SolidWorks仿真组件二次开发,实现SolidWorks的专业化、本土化。
2.2.2 基于仿真组件的协同设计开发
在专业化、本土化的SolidWorks仿真组件基础上再做协同设计开发,这里协同模式包括自动管理和人工管理两种方式。协同设计过程中要求传输数据量应尽可能少,这里提出XML增量数据传输。如设计者A在数据模型上做参数修改,建立与参数模型相对应的中间变量。此中间变量中包括原标识码、新标识码及其他参数,并将此中间变量中机械产品的修改参数替换数据库中对应记录的相应参数。设计者B做协同设计时,可以读取设计者A的数据库中记录的变动元素信息,转换成XML增量文件做数据传输,接收到本机后从XML增量文件中抽取增量信息,利用原标识码在数据库中检索此记录,若此次是自动管理协同设计,则将抽取到的增量信息替换检索记录中的对应字段;若此次协同设计很重要,采用人工管理方式,由组长确定是替换原记录还是产生新记录[4-6]。然后调用DLL仿真组件来绘制出三维仿真数据模型,并实现产品模型在设计者A与设计者B之间的同步显示,完成协同设计的任务,具体实现如图2所示。
将生成的多个DLL仿真组件及一个DLL协同设计组件嵌入到仿真应用系统中,实现协同仿真设计开发,如图3所示。
2.3 齿轮的协同仿真设计
齿轮传动的设计参数不仅对齿轮的寿命和强度产生影响,而且对齿轮组在啮合的传动性能也有很大的影响。例如齿轮模数大小的变化对齿轮传动中齿轮振动、润滑间隙、齿轮啮合稳定性会产生影响,从而影响齿轮的强度及寿命;齿轮螺旋角的大小对于齿轮传动的扭矩和齿轮的强度产生影响;变位齿的变位系数的变化直接产生齿轮根切,影响齿轮的传动。
这里设计者A和设计者B对齿轮模数做协同仿真设计,设计者A先对产品做模数修改并将修改参数存入数据库,同时利用仿真组件生成三维仿真数据模型;设计者B实时从数据库中提取设计者A修改过的参数,生成XML增量文件传输到本机,再利用本机仿真组件生成与设计者A相同的三维仿真数据模型,实现显示同步,如图4所示。
接着,对齿轮做两方面的仿真分析:(1)静态分析。通过调整齿轮的应变、应力、转矩的参数,找出一组使齿轮具有更好的使用时间和效率的数据;(2)运动分析。施加不同的阻尼来模仿实际中的效果,找出最优阻尼以利于更好地提高齿轮的使用效率。
通常情况下可以采用自动管理方式,若此仿真设计数据最优则中间变量替换原始数据,实现数据最优管理;若原数据是阶段性的关键数据,则应采用人工管理方式由设计组组长做仿真分析,确定是替换原始数据还是产生新数据,实现关键数据管理。
协同仿真设计的引入使设计人员、供应商、制造商和客户保持紧密联系,提高沟通效率,及时汇集多方面信息,快速开发新产品。可是远程协同设计由于刚刚起步,像其他新兴技术一样还不够完善,随着CAD技术、计算机网络技术、数据库技术及人工智能技术的不断发展,远程协同设计的内容必将越来越丰富,功能越来越强大,所提供的服务也将越来越完善。
参考文献
[1] 孙林夫.面向网络化制造的协同设计技术[J].计算机集成制造系统,2005,11(1):1-6.
[2] 张淑慧,刘士军,张磊,等.网络化制造平台发展现状与技术趋势分析[J].计算机工程与应用,2006,18(5):193-197.
[3] 陈纯,张申生,张敬谊,等.面向大批量定制产品协同设计系统研究[J].计算机集成制造系统,2003,9(9):788-792.
[4] 吴晨,牛江川,李素娟.ASP.NET 2.0+SQL Server 2005数据库开发与实例[M].北京:清华大学出版社,2008.
[5] 范丹丹,刘涛.一种基于XML的数据库动态建模的方法在工程飞行模拟器的应用研究[J].计算机系统应用,2007(12):41-44.
[6] 蒋夏军,吴慧中,李蔚清.仿真数据收集中的实时数据库技术研究[J].系统仿真学报,2005,17(8):1872-1874.