一种基于阈值式局部迭代搜索算法的叶片排序方法
1.本发明涉及一种汽轮机叶片排序方法,具体涉及一种基于阈值式局部迭代搜索算法的叶片排序方 法,属于机械装配技术领域。
背景技术:
2.汽轮机转子的动平衡对其性能和寿命有很大影响,然而汽轮机叶片在实际制造过程中,由于加工 误差很难做到每个叶片的质量和重心位置相同。叶片质径积为叶片重心到转轴的矢径与质量的乘积, 质径积的差异会导致转子存在一定的初始不平衡量。合理的叶片排列顺序可以减少初始不平衡量,使 得作用在轴上的合力最小。
3.叶片的排序问题是一个组合优化问题,然而叶片的数量通常很多,一般几十到上百片不等,所有 排列的解空间为n!级别,因此其是一个np-hard问题,只能求近似最优解。叶片的排序方法可分为传 统方法和启发式方法,传统方法通常使用分组优化方法,该方法将叶片分为几组,对每组总质量采用 穷举的方式进行优化,再对分组间的顺序进行优化。然而这种方法鲁棒性较差,对于不同的数据,无 法保证每次都能很好的分组。
4.启发式方法通过对解空间进行搜索选择最优值,常用的启发式方法有遗传算法、蚁算法、离散 粒子算法、局部搜索算法等。吴根红采用遗传算法通过对叶片的编号进行编码后,经过一系列交叉、 选择、变异最终选择最优解。李丹丹等采用蚁算法,根据蚂蚁的觅食行为的原理进行随机搜索,通 过多个蚂蚁随机寻路径,根据各个路径所代表序列的合力大小收敛到最优路径。李岩等采用离散粒 子方法将多个粒子通过局部最优解和全局最优解来更新,具有算法简单、易于实现、收敛速度快的 特点。然而全局搜索算法对整个空间进行搜索,当状态空间较大时,效率比较低。
5.局部搜索算法在解空间中定义邻域概念,后从一个初始解开始,根据迭代策略选择某个邻域的解 进行迭代。局部搜索算法会陷入局部最优,很多算法对于跳出局部最优解指定了不同的策略,brito,j 等提出一种迭代局部搜索算法,在每次陷入局部最优时,从当前邻域中随机选择一个进行转移,通过 将此步骤执行若干次,达到扰动目的。wang,y等提出一种贪婪随机自适应搜索算法,在每次陷入局 部最优时,通过随机构造的方式重新选择一个初始解,采用重启机制跳出局部最优。wayne pullan等 提出一种动态局部搜索算法,该方法通过加入惩罚函数来影响评估函数的值,使其跳出局部最优。
6.其中,局部迭代搜索算法在每次迭代到局部最小值时需要较多的迭代次数,产生该现象的原因是 局部迭代搜索算法在每次到达局部最优时,通过随机邻域扰动来跳出局部最优,由于具有随机性,无 法控制扰动的大小,因此其平均迭代到局部最优的步数多,存在叶片排序搜索效率低的问题。
技术实现要素:
7.本发明的目的是为了解决现有局部迭代搜索算法平均迭代到局部最优的步数多,存在叶片排序搜 索效率低的问题。进而提供一种基于阈值式局部迭代搜索算法的叶片排
序方法。
8.本发明的技术方案是:一种基于阈值式局部迭代搜索算法的叶片排序方法,它包括以下步骤:
9.步骤一:对叶片进行编号:
10.步骤一一:对于均匀分布在汽轮机轴上的n个叶片,从任意一个叶片开始,按照逆时针方向,将 叶片分别编号为1,2
……
n;
11.步骤一二:将n个编号的任意组合定义为叶片的质径积的一个序列h;
12.步骤一三:将所有的序列h构成解空间集合,记作σ;
13.步骤二:对步骤一二中的序列h进行初始化:
14.随机初始化一个序列h,定义局部搜索算法的邻域变换为序列h中的任意两个元素,记作 τ(h),定义序列h的邻域为其所有邻域变换的集合记作σh,设定基于阈值式局部迭代搜索算法的 阈值为c
th
,步长为step,偏置概率为bia;
15.步骤三:对步骤二中的序列h进行局部搜索:
16.以序列h为初始序列,进行局部搜索迭代下降,并返回局部搜索得到的局部最优解序列h
local
, 以及下降过程中所有目标函数值小于阈值c
th
的序列的集合σ1;
17.步骤四:更新全局最优解h
global
;
18.步骤五:判断集合σ1的元素个数是否大于步长step:若是,则跳转到步骤六,否则跳转到步骤 七;
19.步骤六:阈值扰动:
20.取集合σ1的第一个元素值记作取出元素值所有邻域变换中具有下降趋势的序列,记作下 降趋势集合σ
perturbation
;
21.步骤七:将下降趋势集合σ
perturbation
中的所有元素依次用于步骤三的初始序列h,并重复步骤三 和步骤四;
22.步骤八:随机扰动:
23.以偏置概率1-bia对最优解序列h
local
作随机的邻域转移后作为初始序列h,以偏置概率bia随 机初始化一个初始序列h,若达到最大的执行时间则算法结束,否则继续执行步骤二,至此,完成了 对叶片最优排序的搜索。
24.进一步地,步骤一二中叶片的质径积的序列h定义过程如下:
25.s1:对序列h进行编号:
26.给定一个初始叶片的质径积序列m=(m1r1,m2r2,......,m
nrn
),序列h为将质径积序列m重新排 序后对应下标所组成的序列;
27.s2:计算目标函数:
28.对于一个序列h,首先将其转化为对应的质径积序列m,当n个叶片均匀圆周分布时,相邻叶 片的夹角为:
29.定义质径积序列m中第i个元素所对应的矢量为:
30.定义目标函数值为:
[0031][0032]
更进一步地,步骤一二中叶片的质径积为叶片的重心到转轴的矢径与叶片质量的乘积;假如:序 列h对应的质径积序列为m,均匀的排列在轴上,总的质径积的计算方法为s2。
[0033]
进一步地,步骤三中的具体实现方法为:
[0034]
步骤三一:初始化一个序列h,并通过邻域变换τ(h)获取序列h的邻域σh;
[0035]
步骤三二:从序列h的邻域σh中随机抽取一个序列记作h
new
,满足h
new
∈σh,计算f(h
new
), 并将其从序列h的邻域σh中去除;
[0036]
步骤三三:若f(h
new
)<f(h),则h=h
new
;否则执行步骤三五;
[0037]
步骤三四:若f(h
new
)<c
th
,将h
new
添加到集合σ1,执行步骤三二;
[0038]
步骤三五:若序列h的邻域σh不为空集,执行步骤三二,否则h
local
=h,返回局部最优解 h
local
和集合σ1后结束。
[0039]
进一步地,步骤四中更新全局最优解的过程如下;
[0040]
若f(h
global
)<f(h
local
),更新h
global
=h
local
。
[0041]
进一步地,步骤六的具体实现方法如下:
[0042]
步骤六一:取集合σ1中的第一个元素并通过邻域变换计算元素的邻域
[0043]
步骤六二:从元素的邻域中随机抽取一个序列记作h
new
,计算f(h
new
),并将其从元素的邻域中去除;
[0044]
步骤六三:若将h
new
添加到集合σ
perturbation
,该集合为阈值扰动序列的候选 集合,用于提供阈值扰动序列;
[0045]
步骤六四:若元素的邻域不为空集,执行步骤六二,否则返回集合σ
perturbation
并结束。
[0046]
进一步地,步骤八的具体实现方法如下:
[0047]
步骤八一:分别以偏置概率bia和1-bia的概率执行步骤八二和步骤八三;
[0048]
步骤八二:通过邻域变换τ(h
local
)计算h
local
的邻域并在中随机采样一个序列h后 返回;
[0049]
步骤八三:在解空间集合σ中随机采样一个序列h后返回。
[0050]
本发明与现有技术相比具有以下效果:
[0051]
1、本发明加入了阈值限制扰动,通过控制扰动量有效的较少了迭代到局部最小值时需要的迭代 次数。进而有效的提高了搜索效率。
[0052]
2、本发明与ils算法(指局部迭代搜索算法)相比,本发明通过在步骤六中加入阈值限定扰动, 通过将扰动限制在阈值以内,从而使平均迭代到局部最优解所需的步数大大减少。如表2所示,针对 表1中的组合优化问题,表2分别选择了84s和1470s两组时间,每组实验重复20次求平均值,其中, 平均局部最优解个数表示在该时间内到的局部最优解的
数量,平均最小局部最优解表示所有局部最 优解中的最小值,平均迭代步数表示平均每次从初始解迭代到最优解所需的步数,从表2中可以看出, tils算法(指阈值式局部迭代搜索算法)的平均迭代步数大大减小,因此,在相同时间内其搜索到的 局部最小值更多。比ils算法的搜索效率提高了20%以上。
具体实施方式
[0053]
具体实施方式一:本实施方式的一种基于阈值式局部迭代搜索算法的叶片排序方法,它包括以下 步骤:
[0054]
步骤一:对叶片进行编号:
[0055]
步骤一一:对于均匀分布在汽轮机轴上的n个叶片,从任意一个叶片开始,按照逆时针方向,将 叶片分别编号为1,2
……
n;
[0056]
步骤一二:将n个编号的任意组合定义为叶片的质径积的一个序列h;
[0057]
步骤一三:将所有的序列h构成解空间集合,记作σ;
[0058]
步骤二:对步骤一二中的序列h进行初始化:
[0059]
随机初始化一个序列h,定义局部搜索算法的邻域变换为序列h中的任意两个元素,记作 τ(h),定义序列h的邻域为其所有邻域变换的集合记作σh,设定基于阈值式局部迭代搜索算法的 阈值为c
th
,步长为step,偏置概率为bia;
[0060]
步骤三:对步骤二中的序列h进行局部搜索:
[0061]
以序列h为初始序列,进行局部搜索迭代下降,并返回局部搜索得到的局部最优解序列h
local
, 以及下降过程中所有目标函数值小于阈值c
th
的序列的集合σ1;
[0062]
步骤四:更新全局最优解h
global
;
[0063]
步骤五:判断集合σ1的元素个数是否大于步长step:若是,则跳转到步骤六,否则跳转到步骤 七;
[0064]
步骤六:阈值扰动:
[0065]
取集合σ1的第一个元素值记作取出元素值所有邻域变换中具有下降趋势的序列,记作下 降趋势集合σ
perturbation
;
[0066]
步骤七:将下降趋势集合σ
perturbation
中的所有元素依次用于步骤三的初始序列h,并重复步骤三 和步骤四;
[0067]
步骤八:随机扰动:
[0068]
以偏置概率1-bia对最优解序列h
local
作随机的邻域转移后作为初始序列h,以偏置概率bia随 机初始化一个初始序列h,若达到最大的执行时间则算法结束,否则继续执行步骤二,至此,完成了 对叶片最优排序的搜索。
[0069]
为了进一步说明本发明与现有技术相比所具有的技术优势,采用局部搜索算法的流程如下:
[0070][0071]
采用随机扰动的ils算法时的流程如下:
[0072][0073][0074]
而本发明采用阈值扰动的tils算法的流程如下:
[0075][0076][0077]
其中,algorithm2为ils算法,algorithm2-1为algorithm2中的一个函数。
[0078]
algorithm3为tils算法,algorithm3-1为algorithm3中的一个函数。
[0079]
本实施方式的tils算法,在ils算法的基础上,针对叶片排序问题的特点,在陷入局部最优时, 采用阈值限定扰动与随机扰动相结合的方法来跳出局部最优,该方法相对于迭代局部搜索算法在扰动 后通过局部迭代到达局部最优的平均步数大大减少,提高了局部搜索的效率。
[0080]
另外,本发明属于一种组合优化方法,该方法针对叶片排序类问题对ils算法进行
了改进,针对 ils中采用随机扰动来提出局部最优值,tils算法引入了阈值式扰动的概念,相对于ils算法的区别 是加入了步骤六阈值扰动,本发明旨在合理的计算时间内通过对汽轮机叶片进行排序来减小初始的质 径积不平衡量,且算法适用于各类叶片数量以及不同的数据分布,具有通用性。
[0081]
其中,阈值的选取需要根据数据的大小来人为的调节,是一个超参数,不同数据的阈值不同,扰 动是为了跳出局部最小值。
[0082]
组合优化是指叶片的排序问题再数学上是一个组合优化问题,而ils和tils是解决此类组合优 化问题的方法。这个组合优化问题的目标是寻一个序列,这个序列对应的力合成后的质径积最小。
[0083]
具体实施方式二:本实施方式步骤一二中叶片的质径积的序列h定义过程如下:
[0084]
s1:对序列h进行编号:
[0085]
给定一个初始叶片的质径积序列m=(m1r1,m2r2,......,m
nrn
),序列h为将质径积序列m重新排 序后对应下标所组成的序列;
[0086]
s2:计算目标函数:
[0087]
对于一个序列h,首先将其转化为对应的质径积序列m,当n个叶片均匀圆周分布时,相邻叶 片的夹角为:
[0088]
定义质径积序列m中第i个元素所对应的矢量为:
[0089]
定义目标函数值为:
[0090][0091]
其它组成和连接关系与具体实施方式一相同。
[0092]
具体实施方式三:本实施方式的步骤一二中叶片的质径积为叶片的重心到转轴的矢径与叶片质量 的乘积;假如:序列h对应的质径积序列为m,均匀的排列在轴上,总的质径积的计算方法为s2。其 它组成和连接关系与具体实施方式一或二相同。
[0093]
具体实施方式四:本实施方式步骤三中的具体实现方法为:
[0094]
步骤三一:初始化一个序列h,并通过邻域变换τ(h)获取序列h的邻域σh;
[0095]
步骤三二:从序列h的邻域σh中随机抽取一个序列记作h
new
,满足h
new
∈σh,计算f(h
new
), 并将其从序列h的邻域σh中去除;
[0096]
步骤三三:若f(h
new
)<f(h),则h=h
new
;否则执行步骤三五;
[0097]
步骤三四:若f(h
new
)<c
th
,将h
new
添加到集合σ1,执行步骤三二;
[0098]
步骤三五:若序列h的邻域σh不为空集,执行步骤三二,否则h
local
=h,返回局部最优解 h
local
和集合σ1后结束。其它组成和连接关系与具体实施方式一、二或三相同。
[0099]
具体实施方式五:本实施方式步骤四中更新全局最优解的过程如下;
[0100]
若f(h
global
)<f(h
local
),更新h
global
=h
local
。
[0101]
如此设置,局部搜索算法目的性较强,能够在较短时间内到该定义下的局部最优解。其它组成 和连接关系与具体实施方式一、二、三或四相同。
[0102]
具体实施方式六:本实施方式的步骤六的具体实现方法如下:
[0103]
步骤六一:取集合σ1中的第一个元素并通过邻域变换计算元素的邻域
[0104]
步骤六二:从元素的邻域中随机抽取一个序列记作h
new
,计算f(h
new
),并将其从元素的邻域中去除;
[0105]
步骤六三:若将h
new
添加到集合σ
perturbation
,该集合为阈值扰动序列的候选 集合,用于提供阈值扰动序列;
[0106]
步骤六四:若元素的邻域不为空集,执行步骤六二,否则返回集合σ
perturbation
并结束。
[0107]
如此设置,能够有效利用之前的搜索过程,另外,对扰动施加阈值来限制扰动的大小有利于减少 搜索到局部最优解的次数。其它组成和连接关系与具体实施方式一、二、三、四或五相同。
[0108]
具体实施方式七:本实施方式的步骤八的具体实现方法如下:
[0109]
步骤八一:分别以偏置概率bia和1-bia的概率执行步骤八二和步骤八三;
[0110]
步骤八二:通过邻域变换τ(h
local
)计算h
local
的邻域并在中随机采样一个序列h后 返回;
[0111]
步骤八三:在解空间集合σ中随机采样一个序列h后返回。
[0112]
如此设置,通过随机扰动重新选择初始序列来实现对算法进行重启,通过采用随机邻域转移与随 机选择初始序列结合的方法,每种转移方式有一定的概率。随机邻域转移可以实现较小的扰动,有利 于较少迭代次数,但更容易搜索到同一个局部最优解,而随机选择初始序列可以减少搜索到同一个局 部最优解的次数,两者以一定概率结合来针对特定的数据实现更好的搜索,其它组成和连接关系与具 体实施方式一、二、三、四、五或六相同。
[0113]
实施例1:
[0114]
为更好地理解前述发明内容,根据本发明的方法,以某88叶片的汽轮机叶片排序为例,如表1 所示,设置求解时间为84
±
0.5s以及1470
±
1s两组,分别使用ils和tils算法进行计算,设置参数 step=3,c
th
=1000,bia=0.1,其结果如表2所示。
[0115]
其中,平均迭代步数为平均每次迭代到局部最优解所需的局部迭代次数,可以看到tils的迭代 步数明显减少,因此其搜索到的平均局部最优解的个数增加,从而有更大概率搜索到较小的局部最优 解。
[0116]
表1某88叶片汽轮机叶片质径积数据
[0117]
[0118][0119]
表2 ils与tils结果对比
[0120][0121]
实施例2:
[0122]
为了更进一步说明本发明在针对叶片排序算法上的优势,现将本发明与现有技术中的:1、“一种 透平动叶片排序方法[j].燃气轮机技术,2018,31(03):39-42”,用于汽轮机中,所采用的是分组排序法。 2、“叶片质量矩优化排序中遗传算法的应用[j].航空动力学报,2011,26(01):204-209”用于航空发动 机中,采用的遗传算法。3、“航空发动机同心转子不平衡最小化的叶片排序方法”用于 航空发动机中,所采用的是caga算法。将上述三种算法分别与本发明同时做实验,得到以下数据, 见表3:
[0123]
表3 tils与其他算法的对比效果
[0124]
[0125][0126]
通过上述实验对比可知,本发明在可观的时间内,相比于分组排序、遗传算法、caga算法,最 终的求解结果分别减少到其最小值的0.3%~31%。
[0127]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了 详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修 改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离 本发明各实施例技术方案的精神和范围。