摘 要:
为研究结构动力学参数识别问题,基于图解的蚁群系统,提出伪并行蚁群算法,利用ANSYS程序的参数编程,将其成功应用于动力学模型中弹模和阻尼的识别。数值试验表明,该方法具有满意的识别效果,并具有较强的抗噪能力,可用于工程实际。
关键词:参数识别;伪并行;蚁群算法;ANSYS
1 引言
蚁群算法(Ant Colony Algorithm)是一种源于大自然生物世界的新型仿生类算法[1],是20世纪90年代初由意大利学者Dorigo提出,依照蚂蚁觅食原理即蚂蚁寻找从蚁巢到食物的最短路径时的搜索机制设计而成的一种群体智能算法。
蚁群算法在求解一系列困难的组合优化问题上取得成效,成为解决TSP (traveling salesman problem)、QAP(quadratic assignment problem)、JSP (job-shop problem)等典型问题的一种新型强有力算法。但在工程方面,应用比较少而且不成熟,处于探索阶段。本文基于水电站厂房与机组的耦联振动开展基础性研究,通过改进的蚁群算法,即自适应伪并行蚁群算法,识别结构动弹模和结构阻尼,以建立尽可能准确的有限元模型,对为进一步的结构动力学研究奠定基础。
2 伪并行蚁群算法描述
2.1 蚁群算法的基本思想
(1)状态转移规则蚁群算法使用的状态转移规则为随机比例规则,是基于求解TSP问题提出的,它给出来位于城市i的蚂蚁k选择移动到城市j的概率。公式为:
为距离L(i,j)的倒数。βα,为两个参数,分别表示蚂蚁运动过程中积累的信息和启发信息的相对重要程度。
在蚁群算法中,选择方式为:
其中,q为均匀分布在[0,1]上的一个随机变量,q0为在[0,1]上的参数,而J则是根据等式(1)计算出来的概率分布来进行选择。
(2)全局更新规则
蚂蚁算法有不同的更新规则,蚁群系统采用全局全局更新规则,只允许全局最优的蚂蚁释放信息素。这样做可以使蚂蚁的搜索主要集中在当前循环为止所找出的最好路径的邻域内。全局更新在所有蚂蚁都完成一次搜索后用下边(2)式进行全局更新:
其中:ρ为信息素挥发参数;为到目前为止找到的全局最优路径。gbL(3)局部更新规则每只蚂蚁建立一个解的过程中也同时进行激素迹的更新,规则如下其中, γ为[0,1]间的参数。
2.2 伪并行蚁群算法
在蚁群寻优的过程中,各个蚂蚁的运行是相互独立的,是一种天然的并行结构。Stutzle提出了并行蚁群算法[40],通过并行计算提高了蚁群算法的搜索效率和求解精度。基于并行蚁群算法的思想,本文提出一种伪并行蚁群算法,即将整个蚁群分为几个子蚁群,每个子蚁群独立进行寻优计算,但每循环N次,进行一次子蚁群的信息交换,即将各子蚁群最优路径的Δτ (i, j),依次增加到下一个相邻子种群的对应路径上。算例表明,这样做也可以有效地避免陷入局部最优,提高求解精读和求解速度。
3 蚁群算法求解最优化问题
3.1 基于图解的蚁群系统
用蚁群算法求解最优化问题,首先需要将最优化问题转化为求解最短路径问题。为此,文[2]提出了有向图的概念,文[3]提出了构造图的概念,他们的共同特点是通过行程对可行解进行编码,进而求解优化问题。
本文在文[3]的基础上,以二进制为基础,编制了如图1 所示的构造图。每只蚂蚁从初始子结点N00 或 N01 出发,顺序走过N1,N2,…,的其中一个子结点,直到终结点Nk0、Nk1,组成路径(N0t N1tN2t…Nkt),(t∈{0,1})。Nkt 取二进制数0 或1,路径即可代表一个二进制可行解。
在图 1 中,每两个相邻结点Ni, Nj 之间有4 个并行路径,分别连接他们的子结点:Ni0->Nj0,Ni0->Nj1 ,Ni1 - >Nj0 ,Ni1 - >Nj1 ,其信息值分别记为1 2 3 4 τ (i, j) ,τ (i, j) ,τ (i, j) ,τ (i, j) ,蚂蚁行进时只能选择其中的一条路径。每只蚂蚁行进开始时,首先根据(0,1) ,s∈{1,2,3,4} s τ ,概率选择一条路径,确定前两个子结点。当第二个子结点为N10 时,根据1 2 τ (1,2) ,τ (1,2)值的大小按概率选择下一个子结点;当第二个子结点为N11 时,根据3 4 τ (1,2) ,τ (1,2) 值的大小按概率选择下一个子结点。这样一直概率选择到最后的子结点Nk0或Nk1,即构成一个完整路径及可行解。
3.2 用于优化的蚁群算法
(1)参数取值的二进制编码
参数取值的二进制编码与遗传算法相同。假设优化问题的可行解为{x1, x2,…,xm},其中变量xi用长度为l的二进制串表示为{bl bl-1…b2b1},其中bj∈{0,1},它对应蚁群算法结构图1 中的一段路径(NL+1,t NL+2,t…NL+l,t)。设xi取值范围为[ximin,ximax ],则对应的解码公式为:
在 TSP 问题中,最优路径对应的是最短路径。
在优化问题中,最优路径为对应目标函数值最优(最大或最小)的蚂蚁行进路径。
3.3 数学算例
由于蚁群算法程序运行中存在大量的随机操作,从理论上对其性能进行分析比较困难,因此本文通过一个测试函数对上文提出的伪并行算法进行比较分析。
测试函数取 Rosenbrock 函数,即:
它有一个最优解 f (2.048,2.048) = 3905.626,用蚁群算法进化计算时很容易收敛到另外一个次优解f (2.048,2.048) = 3897.734。分别用遗传算法(算法1)、蚁群算法(算法2)、伪并行蚁群算法(算法3)进行计算。遗传算法染色体数目取40个,最大进化代数200 代;蚁群算法蚁群数量取40 只,最多循环200 次;伪并行蚁群算法将40 只蚂蚁分为两个子蚁群,每个子蚁群20 只蚂蚁,每循环5 次进行一次信息交换。每种算法计算500 次,统计结果如表1 所示。
从表 1 可以看出,蚁群算法在目标值、收敛次数和收敛速度方面都比基本遗传算法有所提高,引入伪并行思想后,伪并行蚁群算法的求解效率更高。这一点对于工程问题是很有意义的。因为工程优化问题计算比较费时,实践中必须尽可能提高求解速度和求解效率。
3 动力学参数识别
3.1 问题描述
取如图2所示的三维有限元框架模型进行数值试验,结构材料设为有机玻璃,顶部右侧95、109两结点处作用有频率、幅值、相位均相同的简谐力F1、F2,取已知参数作用下结点171处x方向(即顺框架方向)有限元计算得到的时域位移向量um为实测位移,利用伪并行蚁群算法,通过对模型参数识别得到的时域位移响应向量uc和实测位移向量um的各分向量项误差平方和求最小,识别结构的弹性模量E以及Rayleigh阻尼的质量阻尼系数α和刚度阻尼系数β。
3.2 参数取值
有机玻璃材料结构模型物理参数根据经验选取为:
密度ρ=1180Kg/m3,波松比μ=0.35弹模E=3800MPa,阻尼比ξ=0.045遗传算法参数取值为:
蚁群规模 M=40; 编码长度 L=20;(2) 蚁群算法参数取值在公式(1)~(4)中,取:
0,1==βα,50),(=sjiτ。4,3,2,1ors=05.0,95.0,1.00===γρq,。5.0=gbL0=β意味着即不考虑启发信息的作用。时5.0=gbL2),=Δsjiτ。为了防止路径信息值过大或过小,还规定:10),(,100),(min,max,==ssjijiττ。
最大循环代数:200代3.3伪并行蚁群算法动力学参数识别步骤:
参数识别问题来源于控制论,利用蚁群算法,可转化为优化问题,即求解一个变参数的目标函数最小值问题。本文主要利用伪并行蚁群算法识别动力学中的动弹模E、阻尼比ξ两个未知数,具体实现步骤如下:
(1) 编码。采用操作简单的二进制编码,变量E、ξ识别范围分别取[2000,4048] 、[0,0.512],对应的二进制编码长度分别为11、9,编码总长度L=20。两个变量连在一起形成一个20结点的如图1所示的构造图。
(2)蚁群规模取40,并将蚁群分成2个子蚁群,每个子蚁群含20只蚂蚁。开始时将每只蚂蚁放置在起点N0(N01或 N01)。
(3) 在每只蚂蚁行进过程中,根据sji),(τ值选择行进路径和下一个子结点。同时,每行进一步,根据公式(4)对其经过的路进进行信息素更新。
(4) 每只蚂蚁行进到终点Nk时,对其完整路径对应的二进制串解码,得到参数值},{iiEξ,进而计算每只蚂蚁的目标函数值。目标函数值参考文献[6]定义为:
目标函数:2)(XuuXJcm)= 2(3)其中为待识别参数数组。使目标函数值最小的参数即为识别出的参数。当目标函数TEX},{ξ=0)(=XJ时,对应的参数为真实参数。
具体计算时,将每只蚂蚁行进路径的解码值,即两个待识别参数定义为一个参数数组X,将其写入一个数据文件,然后在伪并行蚁群遗传算法程序中调用APDL语言编写的ANSYS源文件,使其读入此数据文件并进行动力学计算,并输出结点171的X向位移向量uc,然后利用公式(3)计算目标函数值。
(5) 对每个子蚁群,求出使目标函数值最小的最优蚂蚁,根据公式(3)对其经过的整个路径进行信息素全局更新。
(6) 每隔5代进行一次信息交换,即将各子蚁群最优路径的),(jiτΔ,依次增加到另一个子种群的对应路径上。
(7) 终止条件判断。本文终止条件为进化代数,即进化到第200代时结束运算,否则继续第(2)步。
3.3 识别结果
应用伪并行蚁群算法,共计算不考虑噪声和5%、10%、15%的白噪声四种情况,识别结果如表2所示3.4 识别结果分析(1)通过表2看出,伪并行蚁群算法可以较好的识别出动力参数。参数识别结果比较精确,相对误差较小。而且经过较少的循环次数即能取得较好的识别结果,求解速度快,有利于在实际工程中的应用。
(2)由表2来看,在较低的噪声水平下,伪并行蚁群算法仍然得到较好的识别结果,说明该方法具有较强的抗噪声能力。
(3)从识别结果看,阻尼比ξ普遍比弹模E的相对误差大,主要原因是阻尼比ξ对目标函数不敏感,即ξ有较大变化时,相应目标函数值变化较小,识别难度相对较大,对此可以有针对性地加以改进。
4 结论
识别计算结果表明,运用伪并行蚁群算法进行动力学参数识别,不仅具有较强的全局最优解搜索性能,而且还有较快的收敛速度,经过较少的循环次数即能找到最优解,可用于解决大型复杂结构的工程实际问题。