一种基于蚁群算法的装配序列规划方法与流程

文档序号:19420917发布日期:2019-12-14 01:26阅读:396来源:国知局
一种基于蚁群算法的装配序列规划方法与流程

本发明涉及装配单元划分领域,具体涉及一种基于蚁群算法的装配序列规划方法。



背景技术:

装配序列规划是指以装配序列评价函数为优化目标,对零件装配顺序进行不断组合和寻优,最后得出一个最优或近似最优的产品零件装配序列。随着现代工业的发展,产品越来越复杂,在对其进行装配序列规划时不可避免的会产生序列评价困难和序列的实用性差等问题。

目前,装配单元划分的研究大多是以零件信息、工艺信息等作为主要指标对装配体进行装配单元划分,缺乏对装配关系的研究,划分所得的装配单元的实用性有限。基于蚁群算法、遗传算法和粒子群算法等智能优化算法的装配序列规划方法虽然有着智能化程度高、研究成本低、实用性广泛等优点。但是,存在着算法参数设置复杂、面对不同的产品需要编写的程序也不相同、算法求解效率与解的质量难以兼顾、算法容易引起早熟收敛或发散和稳定性差等缺点。



技术实现要素:

本发明针对现有技术中存在的技术问题,提供一种基于蚁群算法的装配序列规划方法。

本发明解决上述技术问题的技术方案如下:一种基于蚁群算法的装配序列规划方法,所述方法包括:

获取装配体的装配单元和各个装配单元中包含的零件,基于蚁群算法分别对所述零件和所述装配单元进行装配序列规划;

根据单一零件装配序列的时间代价确定对所述零件进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值;根据单一装配单元装配顺序的时间代价确定对所述装配单元进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值。

一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述基于蚁群算法的装配序列规划方法的步骤。

本发明的有益效果是:根据单一装配单元装配顺序的时间代价确定对装配单元进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值,根据单一零件装配序列的时间代价确定对零件进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值,可以解决蚁群算法易陷入早熟收敛的缺陷;智能化程度高、研究成本低;应用程度高,可规划复杂零部件的装配序列规划;应用范围广,可用于多种零部件的装配序列规划。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,基于蚁群算法对所述零件进行装配序列规划的过程包括:

步骤101,对参数进行初始化,设置迭代次数初始值nc和最大迭代次数ncmax;

步骤102,所有蚂蚁首先访问基础件,对每个蚂蚁分别建立待访问零件库,对所述待访问零件库中的所述零件进行干涉检查,将通过干涉检查的所述零件存入可访问零件集中;

步骤103,所述蚂蚁根据转移概率和轮盘法则在所述可访问零件集中选取转移目标零件,将所述转移目标零件从所述待访问零件库中移除;

步骤104,进行信息素的局部更新;

步骤105,判断所有所述蚂蚁是否均完成全部所述零件的访问,是,执行步骤106,否,返回步骤102;

步骤106,完成本次迭代并对所有路径的所述信息素进行更新,迭代次数nc=nc+1,判断所述迭代次数nc是否大于所述最大迭代次数ncmax,是,结束迭代过程并输出结果,否,返回步骤102。

所述步骤102中对所述待访问零件库中的所述零件进行干涉检查的过程包括:

步骤10201,建立已装配零件集合为a={a1,a2,...am},未装配零件集合为b={b1,b2,...bn},下一个可装配零件的集合c={},设定i的初始值为1;

步骤10202,判断所述未装配零件集合中的所述零件bi是否与所述集合a中的任意一个所述零件存在装配关系;是,执行步骤10203;否,执行步骤10206;

步骤10203,拟装配所述零件bi;

建立拟已装配零件集合a'={a1,a2,...am,bi}和拟未装配零件集合b'={b1,b2,...bi-1,bi+1,...bn};

步骤10204,判断所述集合b'的任一零件沿其方向装配时是否与所述集合a'的所有所述零件均不干涉;是,执行步骤10205;否,执行步骤10206;

步骤10205,将所述零件bi存入所述集合c中;

步骤10206,判断i是否等于n;否,则i=i+1,并返回步骤10202;是,则结束并输出所述集合c。

所述步骤103中所述转移概率为任一蚂蚁k在t时刻完成零件i的装配,下一个装配零件选择零件j的概率

τij(t)表示零件i至零件j的路径上在t时刻的信息素浓度;ηij表示启发函数;α为表示蚂蚁在选择下一个零件时信息素发挥作用的程度的信息启发因子;β为表示启发函数值在蚂蚁选择下一个零件时的重要程度的期望启发因子;allowedk为蚂蚁k的待访问零件的集合;fij(a)表示单一零件装配序列的时间代价;

所述步骤104中对所述信息素进行局部更新的公式为:

τij(t+1)=(1-ρ1)τij(t)+ρ1*δτkij(t,t+1);

其中,τij(t+1)表示更新后的信息素的值;ρ1表示信息素局部挥发系数,0<ρ1<1;q为一只蚂蚁在一次迭代中单位距离所释放的信息素的常数,dij=fij(a)+1。

所述单一零件装配序列的时间代价fij(a)为:

ω1表示装配工具可操作性所占权重;ω2表示装配操作重定向性所占权重;fij(t)表示各类工具更换影响系数;fij(r)表示实际装配过程的各类的方向变换所耗费时间的影响系数。

基于蚁群算法对所述装配单元进行装配序列规划的过程包括:

步骤201,对参数进行初始化,设置迭代次数初始值nc和最大迭代次数ncmax;

步骤202,所有蚂蚁根据随机原则选取首个访问的装配单元,对每个蚂蚁分别建立待访问装配单元库,对所述待访问装配单元库中的所述装配单元进行干涉检查,将通过干涉检查的所述装配单元存入可访问装配单元集中;

步骤203,所述蚂蚁根据转移概率和轮盘法则在所述可访问装配单元集中选取转移目标装配单元,将所述转移目标装配单元从所述待访问装配单元库中移除;

步骤204,进行信息素的局部更新;

步骤205,判断所有所述蚂蚁是否均完成全部所述装配单元的访问,是,执行步骤206,否,返回步骤202;

步骤206,完成本次迭代并对所有路径的所述信息素进行更新,迭代次数nc=nc+1,判断所述迭代次数nc是否大于所述最大迭代次数ncmax,是,结束迭代过程并输出结果,否,返回步骤202。

所述步骤202中对所述待访问装配单元库中的所述装配单元进行干涉检查的过程包括:

步骤20201,建立已装配的装配单元集合为a={a1,a2,...am},未装配的装配单元集合为b={b1,b2,...bn},下一个可装配的装配单元的集合c={},设定i的初始值为1;

步骤20202,判断所述未装配的装配单元集合中的所述装配单元bi是否与所述集合a中的任意一个所述装配单元存在装配关系;是,执行步骤20203;否,执行步骤20206;

步骤20203,拟装配所述装配单元bi;

建立拟已装配的装配单元集合a'={a1,a2,...am,bi}和拟未装配的装配单元集合b'={b1,b2,...bi-1,bi+1,...bn};

步骤20204,判断所述集合b'的任一装配单元沿其方向装配时是否与所述集合a'的所有所述装配单元均不干涉;是,执行步骤20205;否,执行步骤20206;

步骤20205,将所述装配单元bi存入所述集合c中;

步骤20206,判断i是否等于n;否,则i=i+1,并返回步骤20202;是,则结束并输出所述集合c。

所述步骤203中所述转移概率为任一蚂蚁k在t时刻完成装配单元i的装配,下一个装配单元选择装配单元j的概率

τij(t)'表示装配单元i'至装配单元j'的路径上在t时刻的信息素浓度;ηij'表示启发函数;α'为表示蚂蚁在选择下一个装配单元时信息素发挥作用的程度的信息启发因子;β'为表示启发函数值在蚂蚁选择下一个装配单元时的重要程度的期望启发因子;allowedk'为蚂蚁k的待访问装配单元的集合;fij(b)表示单一装配单元装配序列的时间代价;

所述步骤204中对所述信息素进行局部更新的公式为:

τij(t+1)'=(1-ρ1)τij(t)'+ρ1*δτkij(t,t+1)';

τij(t+1)'表示更新后的信息素的值;ρ1表示信息素局部挥发系数,0<ρ1<1;q为一只蚂蚁在一次迭代中单位距离所释放的信息素的常数,dij'=fij(b)+1。

所述单一装配单元装配序列的时间代价fij(b)为:

ω3表示装配单元工具变换所占权重;ω4表示装配单元操作重定向性所占权重;ω5表示装配单元可运输性所占权重;fij(t)'表示装配单元工具变换影响系数;fij(r)'表示装配单元重定向影响系数;fij(d)表示装配单元可运输性影响系数。

采用上述进一步方案的有益效果是:基于蚁群算法对零件和装配单元分别进行装配序列规划时,先对零件和装配单元进行干涉检查,保证零件和装配单元的装配序列的可行性;零件的时间代价为装配操作重定向和装配工具可操作性所引起的装配时间代价,装配单元的时间代价为装配单元操作重定向、装配工具变换影响以及装配单元的可运输性所引起的装配时间代价,由该时间代价确定转移概率和信息素的局部更新,解决蚁群算法易陷入早熟收敛的问题。

附图说明

图1为本发明提供的一种基于蚁群算法的零件的装配序列规划方法的实施例的流程图;

图2为本发明提供的一种基于蚁群算法的装配单元的装配序列规划方法的实施例的流程图;

图3为本发明提供的一种对零件进行干涉检查的实施例的方法流程图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

本发明提供的一种基于蚁群算法的装配序列规划方法包括:

获取装配体的装配单元和各个装配单元中包含的零件,基于蚁群算法分别对该装配单元和零件进行装配序列规划。

其中,根据单一零件装配序列的时间代价确定对零件进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值,根据单一装配单元装配顺序的时间代价确定对装配单元进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值。

蚁群算法是根据蚂蚁在寻找食物源时,会在其经过的路径上释放信息素,信息素浓度的大小表征路径的远近,蚂蚁会以较大的概率优先选择信息素浓度较高的路径并释放信息素,形成正反馈,最终得到距离最短的最佳路径,将蚁群算法应用于解决优化问题的基本思路为用蚂蚁的行走路径表示待优化问题的可行解,整个蚂蚁群体的所有路径构成待优化问题的解空间,每个蚂蚁完成访问后会进行信息素的浓度的局部更新,蚂蚁选择下一个访问点的概率由更新后的信息素浓度和启发函数值确定。

本发明提供的一种基于蚁群算法的装配序列规划方法,基于蚁群算法对已经划分了装配单元以及装配单元所含有的零件进行装配序列规划,根据单一装配单元装配顺序的时间代价确定对装配单元进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值,根据单一零件装配序列的时间代价确定对零件进行装配序列规划时蚁群算法的启发函数值和信息素浓度的更新值,可以解决蚁群算法易陷入早熟收敛的缺陷;智能化程度高、研究成本低;应用程度高,可规划复杂零部件的装配序列规划;应用范围广,可用于多种零部件的装配序列规划。

实施例1

本发明提供的实施例1为本发明提供的一种基于蚁群算法的装配序列规划方法的实施例,具体的,获取装配体的装配单元和各个装配单元中包含的零件,基于蚁群算法分别对该零件和装配单元进行装配序列规划。

如图1和图2所示分别为本发明提供的一种基于蚁群算法的零件的装配序列规划方法的实施例的流程图和基于蚁群算法的装配单元的装配序列规划方法的实施例的流程图。

本发明提供的一种基于蚁群算法规划装配体中的零件序列先是以基础件作为装配单元的基础和其他零件装配的载体,是第一个被装配的零件。其中基础件是装配单元的基础零件,每个装配单元有且仅有一个。下一个装配的零件需满足以下条件:(1)待装配零件与已装配零件里的某一零件存在装配关系;(2)待装配零件与所有已装配零件可进行无干涉装配;(3)待装配零件装配完成后,不影响未装配零件的无干涉装配。

由图1可知,本发明提供的一种基于蚁群算法装配序列规划方法的实施例中,对零件进行装配序列规划的过程包括:

步骤101,对参数进行初始化,设置迭代次数初始值和最大迭代次数。

具体的,设定该迭代次数初始值nc=1,最大迭代次数ncmax=100。

步骤102,所有蚂蚁首先访问基础件,对每个蚂蚁分别建立待访问零件库,并对该待访问零件库中的零件进行干涉检查,将通过干涉检查的零件存入可访问零件集中。

为保证零件的装配序列的可行性,需要通过干涉检查判断零件的装配序列是否可行,在选取下一个装配零件时须通过干涉检查来判断选取的零件是否为可装配零件。其中在完成零件i的装配之后,如果零件j可进行无干涉装配,并且零件j装配完成后不影响其他未装配零件的无干涉装配,则称零件j为零件i装配完成之后的可装配零件。在完成一个零件的装配后,进行下一个装配的零件需满足以下条件:(1)待装配零件与已装配零件里的某一零件存在装配关系;(2)待装配零件与所有已装配零件可进行无干涉装配;(3)待装配零件装配完成后,不影响未装配零件的无干涉装配。

具体的,如图3所示为本发明提供的一种对零件进行干涉检查的实施例的方法流程图,由图3可知,对待访问零件库中的零件进行干涉检查的过程包括:

步骤10201,设已装配零件集合为a={a1,a2,...am},未装配零件集合为b={b1,b2,...bn},下一个可装配零件的集合c={},i的初始值为1。

步骤10202,判断未装配零件集合中的零件bi是否与集合a中的任意一个零件存在装配关系。是,执行步骤10203;否,执行步骤10206。

步骤10203,拟装配零件bi,则有,拟已装配零件集合a'={a1,a2,...am,bi},拟未装配零件集合b'={b1,b2,...bi-1,bi+1,...bn}。

步骤10204,判断集合b'的任一零件沿其方向装配时是否与集合a'的所有零件均不干涉;是,执行步骤10205;否,执行步骤10206。

步骤10205,将零件bi存入集合c中。

步骤10206,判断i是否等于n;否,则i=i+1,并返回步骤10202;是,则结束并输出集合c。

步骤103,蚂蚁根据转移概率和轮盘法则在可访问零件集中选取转移目标零件,将该转移目标零件从待访问零件库中移除。

将转移目标零件从待访问零件库中移除避免该零件在该蚂蚁之后的转移中被重复访问。

该转移概率为任一蚂蚁k在t时刻完成零件i的装配,下一个装配零件选择零件j的概率该转移概率由零件i至零件j的路径上在t时刻的信息素浓度τij(t)和单一零件装配序列的时间代价fij(a)共同决定。

具体的,转移概率的计算公式为:

其中,α为信息启发因子,表示蚂蚁在选择下一个零件时信息素发挥作用的程度;β为期望启发因子,表示启发函数值ηij在蚂蚁选择下一个零件时的重要程度;allowedk为蚂蚁k的待访问零件的集合。时间代价fij(a)表示由装配操作重定向和装配工具可操作性所引起的装配时间代价,具体公式为:

其中,ω1表示装配工具可操作性所占权重;ω2表示装配操作重定向性所占权重;fij(t)表示各类工具更换影响系数;fij(r)表示实际装配过程的各类的方向变换所耗费时间的影响系数。

步骤104,进行信息素的局部更新。

对信息素进行局部更新以减弱该转移路径在本次迭代中对其它蚂蚁的吸引力,以增大蚁群搜索范围,具体的,信息素更新的公式为:

τij(t+1)=(1-ρ1)τij(t)+ρ1*δτkij(t,t+1)(4)

其中,τij(t+1)表示更新后的信息素的值;ρ1表示信息素局部挥发系数,0<ρ1<1。

其中,q为一只蚂蚁在一次迭代中单位距离所释放的信息素的常数,dij=fij(a)+1。

步骤105,判断所有蚂蚁是否均完成全部零件的访问,是,执行步骤106,否,返回步骤102。

步骤106,完成本次迭代并对所有路径的信息素进行更新,即全局更新,迭代次数nc=nc+1,判断该迭代次数nc是否大于最大迭代次数ncmax,是,结束迭代过程并输出结果,否,返回步骤102。

由图2可知,本发明提供的一种基于蚁群算法装配序列规划方法的实施例中,对装配单元进行装配序列规划的过程包括:

步骤201,对参数进行初始化,设置迭代次数初始值和最大迭代次数。

具体的,设定该迭代次数初始值nc=1,最大迭代次数ncmax=50。

步骤202,所有蚂蚁根据随机原则选取首个访问的装配单元,对每个蚂蚁分别建立待装配单元库,并对该待装配单元库中的装配单元进行干涉检查,将通过干涉检查的装配单元存入可访问装配单元集中。

为保证装配单元的装配序列的可行性,需要通过干涉检查判断装配单元的装配序列是否可行。在选取下一个装配单元时须通过干涉检查来判断选取的装配单元是否为可装配单元。其中在完成装配单元i的装配之后,如果装配单元j可进行无干涉装配,并且装配单元j装配完成后不影响其他未装配单元的无干涉装配,则称装配单元j为装配单元i装配完成之后的可装配单元。在完成一个装配单元的装配后,进行下一个装配单元的装配时需满足以下三个条件:(1)待装配的装配单元与已装配的装配单元中的某个存在装配关系;(2)待装配的装配单元与已装配的装配单元可进行无干涉装配;(3)待装配的装配单元完成装配后,不影响其他未装配的装配单元无干涉装配。

本发明提供的一种对待访问装配单元库中的装配单元进行干涉检查的实施例的过程包括:

步骤20201,设已装配的装配单元集合为a={a1,a2,...am},未装配的装配单元集合为b={b1,b2,...bn},下一个可装配单元的集合c={},i的初始值为1。

步骤20202,判断未装配的装配单元集合中的装配单元bi是否与集合a中的任意一个装配单元存在装配关系。是,执行步骤20203;否,执行步骤20206。

步骤20203,拟装配的装配单元bi,则有,拟已装配的装配单元集合a'={a1,a2,...am,bi},拟未装配的装配单元集合b'={b1,b2,...bi-1,bi+1,...bn}。

步骤20204,判断集合b'的任一装配单元沿其方向装配时与集合a'的所有装配单元均不干涉;是,执行步骤20205;否,执行步骤20206。

步骤20205,将装配单元bi存入集合c中。

步骤10206,判断i是否等于n;否,则i=i+1,并返回步骤20202;是,则结束并输出集合c。

步骤203,蚂蚁根据转移概率和轮盘法则在可访问装配单元集中选取转移目标装配单元,将该转移目标装配单元从待访问装配单元库中移除。

将转移目标装配单元从待访问装配单元库中移除可以避免该装配单元在该蚂蚁之后的转移中被重复访问。

该转移概率为任一蚂蚁k在t时刻完成装配单元i'的装配,下一个装配单元选择装配单元j'的概率该转移概率由装配单元i'至装配单元j'的路径上在t时刻的信息素浓度τij(t)'和单一装配单元装配序列的时间代价fij(b)共同决定。

具体的,转移概率的计算公式为:

其中,α'为信息启发因子,表示蚂蚁在选择下一个装配单元时信息素发挥作用的程度;β'为期望启发因子,表示启发函数值ηij'在蚂蚁选择下一个装配单元时的重要程度;allowedk'为蚂蚁k的待访问装配单元的集合。

时间代价fij(b)表示由装配单元操作重定向、装配工具变换影响以及装配单元的可运输性所引起的装配时间代价,具体公式为:

其中,ω3表示装配单元工具变换所占权重;ω4表示装配单元操作重定向性所占权重;ω5表示装配单元可运输性所占权重;fij(t)'表示装配单元工具变换影响系数;fij(r)'表示装配单元重定向影响系数;fij(d)表示装配单元可运输性影响系数。

步骤204,进行信息素的局部更新。

对信息素进行局部更新以减弱该转移路径在本次迭代中对其它蚂蚁的吸引力,以增大蚁群搜索范围,具体的,信息素更新的公式为:

τij(t+1)'=(1-ρ1)τij(t)'+ρ1*δτkij(t,t+1)'(9)

其中,τij(t+1)'表示更新后的信息素的值;ρ1表示信息素局部挥发系数,0<ρ1<1。

其中,q为一只蚂蚁在一次迭代中单位距离所释放的信息素的常数,dij'=fij(b)+1。

步骤205,判断所有蚂蚁是否均完成全部装配单元的访问,是,执行步骤206,否,返回步骤202。

步骤206,完成本次迭代并对所有路径的信息素进行更新,即全局更新,迭代次数nc=nc+1,判断该迭代次数nc是否大于最大迭代次数ncmax,是,结束迭代过程并输出结果,否,返回步骤202。

实施例2

本发明提供的实施例2为本发明提供的一种基于蚁群算法的装配序列规划方法的具体应用实施例,该具体应用实施例中装配体为独立后悬架结构。

如下表1和表2分别为独立后悬架结构的零部件代号信息表和装配单元划分表。

表1零部件代号信息表

表2装配单元划分表

以装配单元z1为例,该装配单元z1为左右对称结构,因为其存在较多的装配时间代价相等的对称装配序列,按照步骤101-步骤106的方法得到装配单元z1的最优(即装配时间代价最小)的零件装配序列共存在104组,如下表3所示为装配单元z1零件最优装配序列表。

表3装配单元z1的零件最优装配序列表

按照步骤201-步骤206的方法得到装配单元的最优(即最小装配时间代价)装配序列为z1、z2和z3或者z1、z3和z2。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1