船载随动平台参数化设计
2021-08-24付彦琨吴恩启
万 健,周 洪,付彦琨,王 红,吴恩启
(1.上海理工大学 机械工程学院,上海 200093;2.上海船舶设备研究所,上海 200079)
0 引言
航空、航海技术的发展体现了一个国家的综合国力,是国家军事实力、科技水平及经济实力的综合展现。该领域的发展对国家安全、国民经济甚至人民生活质量的提高都起到重要作用[1]。与陆地相比,航海受到海浪的影响,会产生复杂的多维摇荡运动,从而导致船上需要保持惯性空间方位不变的装置无法正常且精准的运作。例如船载摄像机[2]、舰载激光武器[3]等设备在摇荡的环境中,无法获取清晰的视频图像,因而无法对目标进行精确损伤,这些都会造成不可预估的后果。因此,需要随动平台隔离载体产生的多维摇荡运动。
随动平台在民用、科考、救援和军事等领域有着广泛运用,其在国防安全、人民生活和经济建设中都发挥着至关重要的作用。但同时随动平台也面临着动态性能差、结构强度低以及与环境产生共振等问题,这些都会影响设备的正常工作,甚至威胁工作人员的生命安全。因此,随动平台结构的优劣将直接关系到设备工作的可靠性。在随动平台设计过程中,不可避免地要反复多次进行修改,多次对模型零件进行重建以及对装配体重新进行组装,如果对每个零件都进行个性化设计,会导致工作量大、开发周期长、效率低下等问题[4]。
随着计算机网络技术日趋成熟与完善,计算机辅助设计已成为现代制造业的发展方向。研究表明,采用参数化建模方法可显著提高复杂零件三维建模时的自动化程度[5]。参数化设计可实现模型的系列化生成,提高设计效率[6-7]。陈雨等[8]基于C++对Pro/E 进行二次开发,提高了变速箱设计效率;Fan[9]利用UG 建立液压支架的三维模型;李振华等[10]基于VB 对SolidWorks 进行二次开发,并对高速动车组弹簧进行参数化设计;Necdet 等[11]通过自顶向下的建模方法对球关节进行参数化建模。
目前,随动平台的设计存在零件设计重复、图纸修改任务量大等问题。为此,本文开发一种可自动生成零件并完成装配的设计系统,通过调用Solid Works 内置的API 函数对三维模型参数进行修改,实现参数化设计。在输入基本参数后,计算机自动进行建模及装配。该方法可有效提升设计质量与效率。
1 随动平台结构分析与工作原理
随动平台由基础部件、横摇机构、纵摇机构等组成,整体结构如图1 所示。其中,基础部件主要由底板、左右基架等组成,横摇机构由承重轴、立杆、摆盘、箱体、横摇电机、减速器等组成,纵摇机构由随动底座、支架、拉杆、纵摇电机、减速器等组成。
纵摇机构上的拉杆与基础部件的左右基架相接,控制纵摇机构的纵向摆动。横摇机构放置在纵摇机构上与纵摇机构串联,通过横摇电机获取的姿态信息控制摆盘的横向摆动。其中,箱体放置在摆盘上,箱体内放置需要保持惯性空间稳定的设备,箱体数量可根据需要增加或减少。
2 随动平台程序化建模系统设计
利用SolidWorks 进行二次开发的原理分为两种:一种是基于组件对象模型规范(Component Object Model,COM),另一种是基于对象链接与嵌入(Object Linking and Embedding,OLE)技术,实现OLE 自动化[12]。SolidWorks 提供了二次开发应用程序接口API 函数,能使用户根据自己的需求进行二次开发,完成模块定制。用户编写的程序通过调用API 成员与SolidWorks 应用程序的对象成员进行交互,完成对SolidWorks 的访问与操作,从而建立产品的三维模型。API 功能函数以COM 技术为基础,COM 技术是对象模型的组建技术,通过其可实现对象组件化程序编程设计思想[13]。COM 技术也是一种面向对象的编程模式,支持COM 技术的编程语言(VB、C#、C++)都可用来进行Solid⁃Works 二次开发。C#是目前最流行的编程语言之一,因其简单易用、功能强大,受到了广大设计人员欢迎。本文研究的程序化建模系统提高了随动平台建模效率,缩短了随动平台设计周期,提高了设计质量。
2.1 随动平台系统总体架构
系统总体架构设计在产品系统开发与使用的整个生命周期中都至关重要,系统各个功能模块的实现是系统整体架构的基础,模块之间的有机统一是实现系统整体性的有力保障[14]。随动平台参数化设计系统基于C#通过Visu⁃alStudio 建立人机交互界面,设计人员输入指定参数,通过与三维建模软件进行衔接,一键生成三维模型。该系统总体由用户层、开发层与数据层组成,用户层是设计人员与系统交互的通道,将设计参数直接传递给开发层;开发层是构建三维模型的通道,接收设计人员提供的设计参数信息,并进行主动尺寸与关联尺寸计算,完成程序化建模后再将信息传递给数据层;数据层为整个系统提供数据支撑,主要包括零部件库、装配体库等。系统总体架构如图2所示。
Fig.2 System architecture图2 系统总体架构
2.2 人机交互界面设计
系统界面设计是影响人机交互的重要环节之一,也是用户对软件的第一印象,因此是软件设计的重要组成部分[15]。通过人机交互方式,根据用户需求快速获得结构参数,并生成对应参数模型,可缩短设计周期,提高设计效率与准确性,从而降低了对设计人员专业素质的要求[16]。依据本文的设计需求,设计员能够通过随动平台参数化设计系统的人机交互界面与三维建模软件衔接,根据指定参数生成三维模型。程序化建模的主要步骤与手动建模步骤相同[17],通过获取箱体数量、质心高度等参数,自动计算相应零件尺寸,逐步建模生成立杆、支架、左右基架等零部件,并进行模型装配,完成程序化建模。人机交互界面如图3 所示。
Fig.3 Human-machine interaction interface图3 人机交互界面
通过人机交互界面,设计人员可输入参数对模型进行个性化设计。人机交互界面可实时显示所搭建的支架和装配体模型图,以方便、直观地展示给设计人员。同时为了保证建模的准确性,人机交互界面可显示各个参数取值范围,并在参数超出该范围时进行警示。为便于后续分析,设有模态分析及动力仿真模块,可提供部分模型的模态分析结果及动力性能相关参数作为参考。
2.3 程序化建模
参数化设计方法有两种:模型驱动法和尺寸驱动法。模型驱动法是指完全调用API 函数构建模型,是从无到有地生成模型。但该方法比较复杂、编程工作量大,且建模速度缓慢,对开发人员的专业性有着极高要求,针对形状简单且较为规则的零部件可采用该方法。尺寸驱动法是在现有模型基础上设置主动参数变量,通过修改参数变量重新进行建模。该方法编程工作量小,更易于开发,相较于模型驱动法,其在生成一些造型相似且需要系列化的零件时可节约大量计算资源,减少设计人员工作量[18]。本文将尺寸驱动法与模型驱动法相结合进行参数化设计。
2.3.1 零件模块设计
零件模块中包含两类零部件:一类是固定参数零部件,是指不经过任何更改,直接调用装配的零件;另一类是关键零部件,是指需要经过尺寸参数的更改变化,重新建模的零件[19]。通过对主动参数的赋值生成自定义参数零部件,将主动参数对应的零部件与被动参数对应的零部件建立关联,将参数变化逐级传递至整体模型。为保证程序化建模质量,参数分析是其中的关键。参数包括主动尺寸参数、被动尺寸参数和不变尺寸参数。在零部件建模过程中,主动参数包括箱体数量、支架下底边长度、支架上边线长度、初始横摇角度、初始纵摇角度、左右基架高度、基架横梁高度等。被动参数包括立杆高度、支架高度、拉杆长度等。控制参数如表1 所示。
Table 1 Control parameters表1 控制参数
设计人员输入主动参数后,根据箱体数量自动改变立杆高度、支架高度及拉杆高度等被动参数,并进行命名与保存。零件模块化设计典型指令代码如下:
2.3.2 装配体模块设计
以往的装配都是由CAD 完成的,通过配合关系手动完成每个部件的装配,耗时耗力。通过智能装配可节省大量时间成本,且易于操作[20]。模型装配分为自顶向下和自底向上两种方式,由于该系统已通过参数化获得了零件模型,因此这里选择自底向上的装配方式[21]。在完成零部件程序化建模后,通过自底而上的建模方法进行模型装配,按照零部件之间的结构及位置关系添加约束类型。在自动装配过程中,大多数装配都可利用基准面或基准轴进行配合,但在选择零件的点、线、面进行装配时,则需要采用遍历技术。通过对零件待装配面进行自定义命名,装配时计算机选定零部件后,对零件所有面都遍历一遍,直到遍历至命名面后,利用Select4 选定面后再进行装配。为保证模型中各个机构能够按照要求运动,需选择合适的元素进行装配才能保证模型的自由度。装配示意图如图4 所示。
装配系统实现步骤如下:
(1)打开装配体及插入零件。首先通过编写的代码打开装配体环境,然后利用AddComponent 函数向装配体中插入立杆和支架。插入零件后,利用CloseDoc 函数关闭零件以释放零件所占内存。主要代码如下:
Fig.4 Assembly diagram图4 装配示意图
(2)添加配合关系。在装配过程中,需要选择点、线、面等元素进行装配。配合关系主要包括重合、距离配合、同轴心、平行等。大多数装配都可利用基准面或基准轴进行配合,但当需要选择零件的点、线、面进行装配时便需要采用遍历技术。对零件的面命名后,再编制程序遍历零件所有的面。当遍历到命名的面之后,利用Select4 选定面。当选定所需装配的元素后,利用Addmate5 函数添加配合关系完成装配。
同轴心配合的部分代码如下:
(3)模型重建及保存。在装配完成后,利用ForceRe⁃build2 函数对模型进行重建,防止出现添加配合关系不成功的现象,之后再利用SaveAs3 对模型进行保存。主要代码如下:
通过API 函数的调用完成程序化建模,具体装配参数如表2 所示。
Table 2 Assembly parameters表2 装配参数
3 结语
以工程思想为指导,将参数化设计及自动装配技术应用于随动平台结构设计系统中,以C#为开发语言,通过调用API 函数对SolidWorks 进行二次开发,应用面遍历技术实现对面的精准选择及装配。通过对自动装配的研究,对模型参数化方法有了更深入的了解。该系统提高了设计效率,降低了设计成本,缩短了设计周期,具有一定的现实意义。后续还需要进一步提高系统运行效率,并改善人机交互界面。