基于符号zbdd的装配序列生成方法

文档序号:8282513阅读:628来源:国知局
基于符号zbdd的装配序列生成方法
【技术领域】
[0001]本发明涉及装配序列规划技术领域,具体涉及一种基于符号ZBDD的装配序列生成方法。
【背景技术】
[0002]装配序列规划(Assembly Sequences Planning,ASP)是指在给定设计方案的前提下,既要保证满足所有几何约束,又要尽可能缩短装配时间和减少装配的复杂度,从而寻找出合理的、可行的装配序列,以此来降低装配成本和优化产品性能。ASP问题在本质上是NP组合优化问题,穷尽搜索算法复杂度为指数级。当产品较为复杂、零件数较多时,极易出现状态组合爆炸问题。可见,组合复杂性是制约装配序列规划效率和自动化水平的一个关键因素。
[0003]减缓或者部分程度上避免组合复杂性问题的一种可行策略是采用符号或者隐式描述技术。有序二叉决策图(Ordered Binary Decis1n Diagrams,0BDD)及其扩展形式可以实现状态空间或者变量组合的隐式表示和搜索,是迄今为止最为有效的符号技术之一。近年来,OBDD在装配序列规划方面已经有了一些应用。实验结果表明,利用OBDD作为装配序列的表示比使用AND/OR图表示占用更小的存储空间。但是用OBDD表示装配序列和装配操作时,实质上是将装配操作和装配序列表示成布尔特征函数,然后根据布尔函数和OBDD之间的对应关系,建立装配序列的OBDD表示。在这种表示中,包含在子装配体中的零件用变量的肯定形式表示,不包含在子装配体中的零件用变量的否定形式表示,即在一个装配体的装配过程中,不论子装配体包含的零件有多少,表示子装配体的变量数都一样多。

【发明内容】

[0004]本发明要解决的是用OBDD表示装配序列时,无论一个子装配体包含几个零件,表示子装配体、装配操作及装配序列的变量数都一样多的问题,提供一种基于符号ZBDD的装配序列生成方法,其能够提高装配序列规划的效率,扩大装配序列规划的规模。
[0005]为解决上述问题,本发明是通过以下技术方案实现的:
[0006]一种基于符号ZBDD的装配序列生成方法,包括步骤如下:
[0007]步骤A.获得装配体知识,即装配体的连接矩阵和干涉矩阵;
[0008]步骤B.根据装配体的连接矩阵,创建连接矩阵的ZBDD ;
[0009]步骤C.根据装配体的干涉矩阵,创建干涉矩阵的ZBDD ;
[0010]步骤D.搜索出所有可行的装配,即可行装配序列,并创建表示可行装配序列的ZBDD ;
[0011]步骤E.对生成的表示可行装配序列的ZBDD进行精化,删除装配过程中的死状态。
[0012]所述步骤B的具体步骤如下:
[0013]步骤B1.对装配体的各个零件进行编号,如果装配体有η个零件,则用η个变量X=(X(),X1,…,Xlri)对零件和子装配体进行编码。每个变量表示一个零件,两个或多个变量组成的集合表示子装配体。根据装配体的连接矩阵,得到装配体连接矩阵的组合集合表示为C(X) = (XiXj I Xie X,XX,i乒j},其中X X」表示两个不同的零件;
[0014]步骤B2.根据装配体连接矩阵的组合集合以及组合集合到ZBDD的映射关系,进而得到装配体连接矩阵的ZBDD表示,记为ZBDDC。
[0015]所述步骤C的具体步骤如下:
[0016]步骤Cl.对坐标轴的各个方向进行编码,三维坐标共有+X、+Y、+Z、_X、-Y和-Z六个方向,所以使用6个变量Z = (z0, Z1, z2, z3, z4, z5)为其编码。根据装配体的干涉矩阵,得到装配体干涉矩阵的组合集合表示为T(XZ) = (XiXjZkI XiG X,XX,z ke Z,i乒j},其中xjP X j表示两个不同的零件;
[0017]步骤C2.根据装配体干涉矩阵的组合集合以及组合集合到ZBDD的映射关系,进而得到装配体干涉矩阵的零压缩二叉决策图表示。
[0018]所述步骤D的具体步骤如下:
[0019]步骤Dl.创建一个用于表示可行装配序列的ZBDD,记为,初始为空。另外,将存有装配体零件的动态数组记为FeasibleOperat1n[],申请一个变量n,令η =FeasibleOperat1n.Length,用于存放装配体的零件个数;
[0020]步骤D2.申请两个整型变量i = 1,j = O ;
[0021]步骤D3.取 FeasibleOperat1n[i]为当前位置 Peur,取 FeasibleOperat1n[j]为参考位置PMf,如果P.代表的子装配体不包含P μ代表的子装配体或子装配体中的零件时,转到步骤D4 ;否则,转到步骤D6 ;
[0022]步骤D4.判断FeasibleOperat1n [i]所代表的零件或子装配体与FeasibleOperat1n [j]所代表的零件或子装配体是否满足连接关系约束和优先关系约束;
[0023]步骤D5.动态申请一块空间,使动态数组FeasibleOperat1n的长度加1,然后在数组的最后添加该装配操作生成的装配体,创建相应的ZBDD,记为ZBDDfs。对于每一个装配操作,都是将两个零件和/或子装配体组装在一起。并且,其中一个零件或子装配体可以根据另一个零件或子装配体以及装配操作所生成的装配体推导出来。因此,对于一个具有η个零件的装配体,可以用2η个变量(Χ,Υ)的组合集合表示装配操作。其中,用前η个变量X=(X0^X1,…,Xlri)的组合表示参与装配的一个零件或子装配体,即P.所代表的零件或子装配体,用后η个变量Y= (y0,yi,…,yn_i)的组合表示执行装配操作所生成的子装配体。令 ZBDDf= ZBDD FU ZBDD FS;
[0024]步骤D6.令j = j+1,如果j〈i,转步骤D3 ;否贝丨」,令i = i+Ι,如果i ^ FeasibleOperat1n.Length-Ι,则令 j = 0,转步骤 D3 ;否则,执行步骤 E。
[0025]所述步骤D4的具体步骤如下:
[0026]步骤D41.建立FeasibleOperat1n[i]所代表的零件或子装配体的组合集合Fi(X),建立FeasibleOperat1n [j]所代表的零件或子装配体的组合集合Fj (X);
[0027]步骤D42.计算Fi⑴和Fj⑴的笛卡尔积,记为Fij⑴,即Fij⑴=Fi⑴X Fj⑴,并创建Fij⑴所对应的ZBDD,记为ZBDDij;
[0028]步骤D43.执行 ZBDDij Π ZBDD。,如果结果不为空,则 FeasibleOperat1n [i]所代表的零件或子装配体和FeasibleOperat1n [j]所代表的零件或子装配体满足连接关系约束,转到步骤D44 ;否则,不满足连接关系约束,转到步骤D6 ;
[0029]步骤D44.对于ZBDDij Π ZBDD。中的某一条路径x J1…Xlri,在ZBDDt中搜索对应的路径 XtlX1...XlriZ0Z1Z2Z3Z4Z5,截取 Z0Z1Z2Z3Z4Z5,仓Ij建对应的 ZBDD,记为 ZBDDds。创建 ZBDDd,并令 ZBDDd= ZBDD ds;
[0030]步骤D45.对于ZBDDij Π ZBDD c中剩余的每一条路径x J1…Xlri,在ZBDDt*搜索对应的路径X0X1...X^1Z0Z1Z2Z3Z4Z5,截取Z0Z1Z2Z3Z4Z5,创建对应的ZBDD,记为ZBDDdso然后执行ZBDDd= ZBDDdH ZBDDds;
[0031]步骤D46.如果ZBDDd不为空,则FeasibleOperat1n[i]所代表的零件或子装配体和FeasibleOperat1n [j]所代表的零件或子装配体满足优先关系约束,转到步骤D5 ;否贝1J,不满足优先关系约束,转到步骤D6。
[0032]所述步骤E的具体步骤如下:
[0033]步骤El.申请一个整型变量 pos = FeasibleOperat1n.Length-2 ;
[0034]步骤E2.判断表示可行装配序列的ZBDDf中是否存在一条路径:该路径的前η位为FeasibleOperat1n[pos]所代表的子装配体。如果不存在,则删除ZBDDf中后η位为FeasibleOperat1n [pos]所代表的子装配体的路径;
[0035]步骤E3.令pos = pos-Ι,如果pos彡n,其中η为装配体的零件个数,贝Ij继续执行步骤Ε2 ;否则,返回ZBDDf,算法结束。
[0036]为了减少装配序列规划中表示子装配体、装配操作和装配序列的变量个数,进而提高装配序列规划的效率,扩大装配序列规划的规模,本发明对子装配体、装配操作和装配序列的特点进行分析,将其表示成组合集合,使得不在子装配体中的零件,其变量不出现在表示该子装配体的集合中,以减少编码所用变量数;此外,本发明还利用ZBDD表示和处理组合集合高效性的特点,降低了装配序列生成过程中对空间的需求,更好地解决组合问题,具有较高的计算效率。
[0037]与现有技术相比,本发明用于已知装配知识的前提下生成可行装配序列,其能够在较高的时间和空间效率下,通过分析所有可能的装配操作保证装配序列的完备性,通过判断局部装配几何可行性保证装配序列的可靠性,最终完成对装配体的所有可行装配序列的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1