|
客车骨架腐蚀
如何确定各种车辆车体钢结构的腐蚀限度是制定铁道车辆厂修规范中的一个重要问题.
由于问题本身的复杂性、车辆使用状况的差异性及一些不确定因素的影响,使得对问题的理论分析与计算受到了极大的限制.
遗传算法是基于自然界生物进化理论而演变出来的一种进化计算方法,它是60 年代由美国和德国的一些科学家所提出. 由于当时计算机发展水平及本身理论工作等方面的一些问题,使得这种方法未能得到人们的重视. 70 年代后期,美国Michigan 大学的John Holland 教授等对遗传算法进行了一系列的理论研究工作之后,这种方法才逐渐成熟并被人们所接受[1 ] . 80年代以来,随着人们对自然系统和各种人工系统研究工作的深入以及计算机容量和速度的迅速提高,这种进化计算的理论和方法引起了国际学术界的普遍重视和大量研究. 目前,遗传算法作为进化计算的一个分支,已经被人们广泛地应用于诸多的领域.
在我国,对于遗传算法的研究基本上始于90 年代初[2 ] . 在机车车辆方面,我们已经采用遗
传算法对该领域中某些最优化的问题进行了一些初步的研究[3 ,4 ] ,并取得了较好的结果.
1 问题的描述与建模
所谓车体钢结构的腐蚀限度是指:在不失去其承载能力的条件下车体钢结构各零部件所允许的最大腐蚀量. 一般来说,车体钢结构的承载能力是随着车体腐蚀程度的增加而下降. 但是精确计算车体钢结构各零部件的极限腐蚀量却非常困难. 除了对实际结构的测量和数据统计方面的困难外,在理论分析和计算上的主要困难在于: ①车体钢结构的腐蚀情况不均匀; ②车体钢结构承受一定的腐蚀量后,各零部件腐蚀程度的不同将使得车体钢结构上的应力产生某种重新分布; ③车体钢结构腐蚀限度的计算实际上是一个多工况、多参数条件下具有隐性约束的非线性极值求解问题.在本文的研究工作中,对车体的分析采用了有限元方法. 车体钢结构的有限元计算模型由
空间梁、板单元组合而成. 离散结构节点总数为8 196 ;板单元总数为9 714 ,梁单元总数为4 323. 为使有限元分析成为可能,所有零部件的腐蚀量均以其厚度的减薄量来表示. 严格地说,实现车体钢结构所有零部件腐蚀限度的搜索计算是可能的. 但考虑到问题的求解规模及所花费的代价,本文将研究重点放在了对牵引梁、枕梁和侧梁腐蚀限度的搜索计算上. 这些部件为车体钢结构的主要承载件,其腐蚀程度对车体强度影响较大. 在对原始车体钢结构进行反复细致分析的基础上,依据现场应用的实际情况及统计数据预先给定了车体钢结构除牵引梁、枕
梁和侧梁外其它所有零部件的腐蚀限度. 并确定了对车体钢结构主要零部件进行搜索计算的计算模型. 该计算模型中,10 个搜索参数选定为枕梁、侧梁和牵引梁的各部分厚度.由于应力及位移约束对问题可行解的限制,该搜索问题的目标函数不能用简单的结构重量来表示. 因此,我们按文献[5 ]所推荐的方法建立结构的应力及位移约束条件. 其中,结构的位移约束条件可由车体的垂向弯曲刚度评定标准转化得到. 在此基础上我们采用了如下的罚
函数来表示问题的目标函数
F( X) = W + f s ( X) + f d ( X) ,
式中 W 为结构底架部分全部板单元的计算重量, f s ( X) 为结构最大应力的函数, f d ( X) 为结构侧梁中央及波纹地板中央位移的函数,而X 则表示问题的全部搜索参数. 如果结构的强度和刚度条件同时被满足则F = W ,否则F > W .
2 遗传搜索方法及其实施
2. 1 遗传算法的特点及参数表示
遗传算法是在计算机上模拟生物的进化过程和遗传操作,其特点是采用随机统计的理论,从问题解空间的多个点开始搜索问题的解. 它不同于一些传统的最优化方法和搜索技术. 这种方法具有对问题搜索上的全局性、计算上的内在并行性、处理上的灵活性以及很好的橹棒性[1 ] . 此外,遗传算法是一种直接的搜索方法, 其搜索的信息仅仅依赖于问题本身的目标函数,而不需要其它的任何条件和辅助信息等. 因此,它是解决大型、复杂搜索问题的一种有力的工具.在遗传算法中,搜索参数是以二进制串的形式表示的. 这与传统的搜索方法是不同. 串中的每一位数值表示了一个特定的基因. 正是这种基因按照某种规则的传递与交换使得遗传搜索向着人们所期待的方向进行. 而搜索的取向则是通过遗传算法的一些基本运算得以实现的.
2. 2 遗传算法的基本运算
遗传算法的处理对象是一个群体而不是某个单独的个体. 其基本运算包括:
(1) 选择 选择是这样一种运算过程:它使群中的所用个体按其目标函数的优与劣加以选择,并根据其优劣的程度分别进行如下所述的各种不同的遗传运算. 在遗传算法中个体的目标函数称之为个体的适应值.
(2) 复制 复制是最简单的一种遗传运算,该运算使得群中的某些个体不作任何改变地进入到下一代的群体中. 其目的是使得群中具有某些特性的个体得以保存下来并直接进入下一代. 参与该运算的个体是按群体中个体的适应值来确定的.
(3) 交叉 两个具有不同优良特性的个体之间进行信息交换的一种运算,该运算的结果将产生两个新的个体并使其进入下一代的群体中. 在遗传算法中,人们把参与交叉运算的两个个体称之为双亲,而它们的交叉运算结果则被称之为后代. 参与交叉运算的个体是按照其适应值来确定的,它们组成一个子群. 而双亲的选择则是在该子群中按随机确定的.
(4) 变异 某些劣等个体为生存的需要而改变其某些基因. 该运算的操作是个体自身基因的改变. 运算的结果是产生一个新的个体并进入下一代的群体中. 在遗传算法中,人们把个体变异的结果也称之为后代. 该运算使得群体在进化过程中不断加入新的基因和遗传信息. 参与变异运算的个体是在某子群中随机选择的,变化基因的确定也是随机的. |
|