随着现代产品朝着复杂化、小型化、精密化的方向发展,对于产品的装配填充密度与精度要求越来越高,产品装配的难度越来越大,在以大装配为主的飞机制造业中,这种情况表现的更为突出。所以,装配设计与装配工艺规划已经成为产品设计制造的薄弱环节。
飞机装配是飞机制造的龙头,牵动着飞机研制各个方面的工作[1]。飞机产品的开发对设计、制造人员提出了更高的要求,飞机装配由于产品尺寸大、形状复杂、零件以及连接件数量多,其劳动量占飞机制造总劳动量的一半甚至更多[2],同时也是飞机制造过程中的一个瓶颈,非常需要采用数字化技术。而采用大量复杂刚性型架进行定位和夹紧的传统手工装配方法,装配精度、质量稳定性、装配效率等很难满足要求,国际适航认证获批艰难[3]。利用数字化装配仿真技术可以模拟产品装配性能及可装配性,从而达到提高产品质量、缩短周期、降低成本的目的。 飞机产品装配顺序规划研究 装配顺序的生成方法大多基于对几何关系和物理约束的分析来实现。在求解装配顺序时,优先约束方法和“变装为拆”方法[4]是两种自然、直观的求解方法。优先约束建立在常规方法之上,是基于几何可行性推理的方法。通过判断零件相对的阻碍方向来划分空间的可行装配区域,进而求解装配顺序,因此,该方法属于正向求解法。而“变装为拆”的方法是近些年来人们研究的热点,这种方法以建立好的完整装配体为输入,通过生成全部装配单元的拆卸顺序,并将该顺序反向以获得装配顺序。 1 基于割集的拆卸顺序求解算法的改进 传统的基于割集的拆卸顺序求解算法的基本思路是:利用数学图论中图的割集思想,将装配体的拆卸过程与装配体的连接关系图的分割过程相对应,巧妙地解决了装配序列的生成问题,具体步骤为: (1)利用产品装配信息模型,以手电筒的装配为例,如图1所示,生成装配关联图G (V, E),如图2所示。其中,V代表顶点集合,E代表边集合;
(2)任意找到装配关联图的一棵生成树,再由生成树得到其基本割集矩阵Cf; (3)对基本割集矩阵各行环和运算得到完全割集矩阵C; (4)对完全割集矩阵的各行做连通性判断,去除伪割集,即无效割集分解; (5)生成装配体的装配序列。 然而,割集法的缺点在于它对可能的所有拆卸序列(包括可行和不可行的)进行了遍历求解,因为计算量和存储量都比较大,这样程序的效率就大大下降了,对于图1这样的装配连接关系,按照传统方法生成的割集序列1555个,实际有效序列只有66个。而且生成的不可行序列还需要去除,增加了程序的计算量。 2 算法实现过程 根据装配割集的定义,一个装配割集对应装配关联图的一个分割,即装配割集把装配关联图(对应装配体)分割,生成两个零件连通子图(对应两个下一级的子装配体),对分割生成的零件连通子图进行可行性判断,可行的连通子图进一步分割,直至分割到单个零件。一个装配割集对应一个拆卸操作,那么分割过程的逆序列对应产品的装配序列。结合飞机产品的装配特点,实现拆卸序列的算法和过程如下: (1) Step1:分层与简化。 飞机部件划分为组合件、板件、段件等装配单元后,装配过程如图3所示。若采用自顶向下分层规划的方法求解拆卸序列,问题可以大大简化。例如:对于部件层的装配工作通常是前、中、后机身的对接,机翼、尾翼的安装,以及电气系统、起落架等零件的安装,将前机身等子装配体简化为一个零件节点,就简化为如图4所示的多个零件组成一个装配体的情况。第二步再将段件层简化,依次类推,自顶向下,逐层规划。
(2)Step2:建立当前层级的装配关联图。 根据Step1的简化结果,可以建立简化后的装配连接图,简化后的连接图,零部件数量减少,装配关系简单,割集分解的解空间显著缩小。设G=(V,E)是当前简化后装配体的部件联结图,V是部件集合,E是部件之间的连接的集合。BCG是G的基本割集的集合,CBC∈{(∏BCG)-}表示由G的基本割集构成的组合,RCBC是CBC中所有元素环和运算的结果,根据图论的知识,RCBC或者是G的割集,或者是图G的割集的无重边并。如果RCBC构成割集,可用于表示一次拆除,去除RCBC后G分成两个子图G1=(V1,E1)和 G2=(V2,E2)。 (3)Step3:按照基本优先关系对BCG的元素进行分类。 设基本优先约束关系是Li<Lj或 Li=Lj,则将BCG的元素分为3类:第一类:含有连接Li且不含连接Lj的基本割集;第二类:含有连接Lj且不含连接Li的基本割集;第三类:含有连接 Li且含有连接Lj的基本割集。 如果装配体有N个部件,那么相应的部件联结图有N-1个基本割集,分类算法的伪代码如下: For(int k = 0;k<N-1;k++) {if( Li∈BCG[k] ) {if( Lj∈BCG[k] ) belong to the third type; Else belong to the first type; } Else if( Li∈BCG[k] ) belong to the second type;} (4)Step4:预测优先约束关系的合法性。 从{(∏BCG)-}任取一个未处理的组合CBC,如果{(∏BCG)-}的元素已经全部被处理,则算法结束。设Nk为组合CBC中含有连接Lk的基本割集的数目,考察环和运算的特点可知,当Nk为奇数时,Lk∈RCBC,而当Nk为偶数时,Lk∈RCBC。根据这一特点,设基本优先关系为Li < Lj或Li = Lj,并据此对BCG的元素进行分类,设Ni,Nj,Nij分别是第1类、第2类和第3类基本割集的数目,综合考察Ni,Nj,Nij的奇偶性就可以判断RCBC包含 Li和Lj的情况,如表1所示,进而预测割集分解的合法性。 (5)Step5:判断子图合法性。 求解子图G1和G2,检查G1和G2对于优先约束关系的合法性,判断方法与步骤Step4相同。如果可以满足就进入下一步,否则返回Step2。 (6)Step6:子图递归。 将优先约束关系传递给子图G1和G2,对G1和G2作递归处理,递归处理结束后返回Step2。 (7)Step7:层级递归。 回到Step1,将本次简化处理的子装配体分解,作为下次序列规划的装配体。如果已经简化到底层子装配体,则拆卸序列规划规划完成,程序结束。 飞机产品装配路径规划研究 装配路径规划是虚拟装配的关键技术之一,它在装配建模和装配序列规划的基础上,充分利用装配信息进行路径分析和求解,判断并生成一条合理的装配路径,从而达到优化设计的效果。 对于装配路径的规划,通常都是采用逆向推理,即将拆卸路径逆过来的方法,因为在计算机中规划一个零件或子装配体从总装配体中拆卸下来要比将其装配到指定位置容易的多。目前国内外较常用的路径规划方法有:位姿空间法、可视图法、人工势场法、移动边界线法、虚拟现实法等,其基本思想是求解一条使待拆部件从初始位置移动到目标位置的无碰撞路径。 装配路径规划的算法流程图如图5所示。流程图中前置处理模块取得装配序列和装配体的完整模型,零件的配合关系及相关的奇次全局变换矩阵T,然后通过将零件从装配体上一次拆去得到装配路径。为了实现零件的自由分离,移动方向和移动距离的确定必须以保证不与其他零件相干涉为前提。将T应用于该零件,完成第一步分离,然后将当前移动轨迹细化、离散成若干位姿点,逐一在这些位姿点处进行干涉检查,如果发生干涉则需要退回到上一位姿,并重新指定移动距离矢量。重复上述过程,直到自由零件可以无干涉地变换到新的装配位置。此时表明该零件可以按分解序列依次由装配体上拆卸下来至初始位置。最后,将拆卸序列逆转,所得即为该零件的装配路径序列。
飞机装配过程仿真研究 装配过程仿真就是在计算机上模拟产品的装配过程,直观地展示产品的装配过程和装配方法。显然,装配过程仿真模块要完成此功能,就必须将装配工艺规划和装配干涉检验的结果在计算机上以动态演示的方式显示出来,并给出文本方式的工艺报告和干涉检验报告。 装配过程仿真模块的输入信息有两个:一个是产品装配模型的详细信息,它作为装配过程仿真的对象和显示主体;另一个是装配工艺规划的初始和反馈结果,即各零件的装配序列和路径。这两个输入信息组成装配过程仿真的前置处理模块。本文针对上一小节所分析的飞机产品特点,采用了以下具体实现方案: 1 装配/拆卸信息记录与演示控制 装配树的结构如图6所示,装配/拆卸信息的记录列为树状结构如图7所示。
装配信息存储为XML文件如下: <?xml version="1.0" encoding="GB2312" ?> <Root Name="Assemlby Info"> <PartList> <Part Name="partA"> <Attribute Pose="pos1,pos2,..." /> </Part> <Part Name="subAssemblyB"> <Attribute Pose="pos1,pos2,..." /> <Part Name="partC"> <Attribute Pose="pos1,pos2,..." /> </Part> </Part> </PartList> </Root> 其中,pos代表一个零部件或子装配体某时刻的位姿,用矩阵形式表示。 为了信息记录的方便和装配过程仿真控制的需要,采用间接法控制零部件在空间的位置。装配过程仿真控制算法的流程图如图8所示,由于飞机产品装配层次关系复杂,算法过程中需多次递归,得到最底层零部件,才能操纵其移动。
2 设定合适的步长 设定合适的步长,将零部件的运动轨迹离散化为若干关键点,然后将零部件在各关键点处相对于前一关键点的空间位姿矩阵的变化转化为零部件在各关键点的空间变换矩阵。将零部件在各关键点上的三维空间变换矩阵映射为计算机窗口坐标系的变换矩阵,在每一个关键点处显示一幅相应的画面,这样按关键点的顺序依次显示零部件在该点的瞬时画面,在视觉上就产生零部件连续运动的效果。该效果的好坏是由步长的大小来决定,通常步长越小,计算机对每一幅画面显示的时间越短,视觉上画面连续运动的效果就越好。 3 装配过程的多分辨率 美国的仿真互操作标准化组织(SISO)给出的多分辨率定义是“分辨率是指在建模或仿真中,模型描述真实世界的精确度和细节层次(Level of Detail, LOD),亦称粒度”[5]。多层次细节模型简化技术(LOD)Clark是目前多边形简化算法中研究的一个热点领域,基于LOD的实时虚拟场景简化技术也是目前虚拟现实应用中的重要研究内容。LOD简化目的是对多边形模型或场景进行多分辨率表示,依据模型和视点的距离,选择适当分辨率的模型表示进行绘制。如果模型离视点较远,在屏幕空间的投影区域覆盖较少的像素,则用粗糙的模型进行表示;相反,如果模型离视点较近,则采用精细的模型进行绘制。本文所要处理显示的零部件数量巨大,必须考虑绘制效率的问题,因此采用多分辨率显示的技术,对于离视点较远的模型,进行简化处理,对于不重要的模型,如螺钉等,甚至作不显示处理。另外为了进一步减少绘制三角形的数目,可进行窗口裁剪,对于被遮挡的模型,或位于窗口视窗外部的模型可作不显示处理。 飞机产品装配仿真应用实例 为了方便不同商用CAD模型的导入,系统采用STEP格式的文件输入。STEP是一个关于产品数据计算机可理解的表示和交换的国际标准。其目的是提供一种不依赖于具体系统的中性机制,能够描述产品整个生命周期中的产品数据。这种产品数据描述不仅适合于中性文件交换,而且是实现和共享产品数据库以及存档的基础。 1 数据导入 系统运行后进入主界面,选择系统菜单“导入STEP文件”,由于要读入的文件数目较多,直接选择STEP文件所在的文件夹,系统读入文件夹下所有文件。 2 生成拆卸序列 数据读入系统,系统自动构建装配结构树,根据装配树中零部件的层次关系以及配合约束关系,对装配体分层次规划并构建装配体的装配关联图以进行割集求解,最终得到可行的拆卸序列,显示在“顺序规划”窗口中 3 生成装配路径 拆卸过程需要确定零件的拆卸运动方式(平移、旋转),旋转则需要指定旋转轴和旋转角度等。在零件运动过程中,系统自动检测其与周围零部件的碰撞情况,如果发生干涉则需返回上一位置重新确定。 拆卸过程中,对于拆卸有效的过程系统自动记录拆卸信息,并保存为XML格式文件 4 装拆过程仿真 装配过程仿真主要由记录拆卸顺序、拆卸路径的XML文件来驱动完成。为了方便控制,本文构建了一个类似于媒体播放器的控制工具条,可以实现“装配”、“拆卸”、“暂停”、“拆卸一步”、“装配一步”、“退出演示”等操作,同时程序编制过程中采用多线程方法,在零部件装/拆运动过程中,可以对整个装配体、零部件进行旋转、局部放大,或隐藏/显示等操作,使得演示过程更加方便、直观。 5 实例验证 本节中主要以某飞机一段隔框为例,按照本文研究的方法得到完全拆卸爆炸,拆卸顺序,那么拆卸顺序的逆序列即所求解的飞机装配顺序。
本文对数字化装配中的装配工艺规划以及装配过程仿真进行了研究,得到一些有意义的结论和算法,但要真正在我国的航空制造公司中应用,还需解决很多问题;同时本文研究的数字化装配系统自动化程度也有待进一步提高,这些都是下一步的研究方向。同时,由于相关关键技术本身的共通性,通过进一步的扩展与推进,还能够应用到航天器、大型船舶、战略潜艇等的数字化装配过程中。
|