随着我国社会经济的繁荣发展与工业制造技术的快速进步,我国已取代韩国,成为世界船舶制造的第一大国。在船舶制造的工作环节中,船舶设计占有重要作用,优秀的船舶设计是造船的前提条件与基础。完善的设计方案能够有效缩短船舶制造周期、降低制造成本,提升利润[1]。在本文中,主要与船舶机舱的管路布置方法进行研究,首先提出了机舱管路布置的快速三维仿真环境建立方法,然后介绍了一种机舱管路三维布置优化方法,最后利用三维CAD建模技术与Visual Basic编程语言进行仿真实验。
1 管路布置的三维仿真环境船舶机舱空间狭小,并且设备繁多,管路布置工作繁复。因此,在对船舶机舱管路进行三维仿真时,需要对相关模型与布置环境进行简化,以保证后续算法的高效性。在本文中,主要利用场景分割、模型简化、简易布置平台3种方法快速建立机舱管路的仿真环境。
由于与管路相关联的机舱设备与管路机构与形状过于复杂,在进行三维仿真过程中,必须进行模型的精简。本文所采用的模型简化方法是,尽可能地将所有实物以形状近似的长方体、球体、柱体以及多面体等简单的几何空间来表示,而简化后模型要能够反映自身以及与管路接口的空间位置,并且能够编辑。
场景分割的主要目的是为了便于管理、降低算法复杂度。本文场景分割采用层次划分方法,分割的原则为层次划分要合理、边界条件要确定。
2 船舶机舱管路布置算法设计 2.1 遗传算法本文选用遗传算法进行管路智能布置设计。遗传算法由John Holland于1975年提出[2],遗传算法是将“物竞天争,适者生存”的自然界法则应用到优化问题中。1999年,Sandurkar. S提出了使用遗传算法解决管路布置问题。遗传算法的流程如图 2所示。
在遗传算法中,主要包括初始群体、编码、适应度函数3个重要基本概念。其中,初始群体中的个体通常随机产生;编码是待处理问题的空间参数转化为遗传空间的染色体,编码方式的好坏直接关系到遗传算法的计算效率;适应度函数也成评价函数,用于评估个体的优劣,适应度函数的计算直接影响遗传算法的性能。常见的用于求解最大值与最小值问题的适应度函数如下:
$ \begin{array}{l} F(x) = \left\{ {\begin{array}{*{20}{c}} {f(x) + {C_{\min }},\;\;f(x) + {C_{\min }} > 0}\text{;}\\ {0,\;\;\;\;\;\;\;\;\;\;\;\;\;\;f(x) + {C_{\min }} \leqslant 0}\text{;} \end{array}} \right.\\ F(x) = \left\{ {\begin{array}{*{20}{c}} {{C_{\max }} - f(x),\;\;{C_{\max }} - f(x) < 0}\text{;}\\ {0,\;\;\;\;\;\;\;\;\;\;\;\;\;\;{C_{\max }} - f(x) \geqslant 0}\text{。} \end{array}} \right. \end{array} $ | (1) |
其中:F(x)为适应度函数;f(x)为目标函数。
虽然遗传算法能够获得较好的设计结果,但是,传统的遗传算法却需要消耗大量的计算资源,并且存在局部优化能力差的问题。因此,本文使用了一种改进的遗传算法。
2.2 基于改进遗传算法的管路布置方法为了改善传统遗传算法存在的问题,本文将爬山法加入到遗传算法中,此外,由于船舶管路设计不能够完全满足实际工程稳定性要求,本文还在算法中引入了人工个体[3],用人机结合的方式,提高管路布置效率与质量。该算法流程如图 3所示。
爬山算法是一个局部择优能力很强的算法,因此,在遗传算法寻找局部最优的过程中,反复利用爬山法能够获得更快的收敛速度。
1)编码方式
本文采用的编码方式为浮点数编码如下:
$ /{x_1},{y_1},{z_1}/{x_2},{y_2},{z_2}/{x_3},{y_3},{z_3}/ \cdots /{x_n},{y_n},{z_n}/\text{。} $ | (2) |
染色体个体由坐标值构成,对应于管路路径。坐标值为机舱内空间栅格节点位置(x,y,z)。
2)适应度函数
$ f(p) = A - [a \cdot L(p) + b \cdot B(p) + c \cdot E(p)] - d \cdot O(p)\text{。} $ | (3) |
式中:p为染色体个体;f(p)为适应度函数;L(p)为管路长度;B(p)为弯头数目;E(p)为管路通过的区域能量和;O(p)为惩罚函数。A为以常数,用来保证f(p)的非负性,a,b,c,d则为权重参数。
3)遗传算子
在本文中,选择算子、交叉算子、变异算子分别使用的是轮盘赌算子、随机点交叉运算、随机点变异。随机点交叉运算如式(4)。
$ \begin{array}{l} {\text{父代}}1:\;/0,0,0/1,0,0{/^*}1,0,0/ \cdots /9,9,9/\\ {\text{父代}}2:\;/0,0,0/ \cdots /9,0,7{/^*}9,0,8/\\ {\text{子路径:}}\;/1,0,0/2,0,0/2,0,1/9,0,7/\\ {\text{子代}}1:\;/0,0,0\underbrace {/1,0,0{/^{\rm{*}}}2,0,0/ \cdots /9,0,7{/^*}}_{{\text{子路径}}}9,0,8/9,9,9/\\ {\text{子代}}2:\;/0,0,0\underbrace {/9,0,7{/^{\rm{*}}} \cdots /2,0,0/2,0,1/1,0,0{/^*}}_{{\text{子路径}}}1,0,1/ \cdots /9,9,9/ \end{array} $ | (4) |
式中,交叉点以*标识,而子路径则表示交叉点之间随机生成的新路径。
在人工个体加入时,需要遵循以下原则:一是人工个体的数量不能超过群体的20%,二是只有当进化的子代性能高于人工个体时,人工个体则不加入。
3 仿真实验为了验证本文所描述方法的可行性,本文进行仿真实验,实验条件如下:实验主机为Intel(R)Xeon(R)CPU X5650@2.67GHz 2.66 GHz,内存24 GB;操作系统为:Windows 10;三维设计软件为AutoCAD 2014;编程语言为Visual Basic 6.0。所设计船舶相关参数如表 1所示。
船舶机舱管路布置算法中,相关参数设置如下:M=50,T=200,Pc =0.8,Pm =0.05,A=10 000,a=3,b=4,c=3,d=18,R=200。
仿真示意图及算法计算效果如图 4所示。
为了比较本文算法与传统遗传算法的效率,本文进行了对比实验,实验情况如表 2所示。
实验结果表明,本文所给出的方法能够得到与实际布置相符合的管路路径,并且在计算效率上,有所提高。
4 结语船舶管路的智能布置是降低设计成本,提高设计效率的关键。在本文中,给出一种人机结合的船舶机舱管路智能布置算法,并利用AutoCAD三维仿真软件进行了仿真实验,实验结果表明,该方法具有较好的布置质量与效率。
[1] | 贾金, 宋永庄, 张闯, 等. 船舶管路综合布局优化[J]. 科技资讯, 2013 (23): 90. |
[2] | HAJELA P, YOO J. Constraint handling in genetic search using expression strategies[J]. AIAA J., 1996, 34 : 2414–2420. DOI: 10.2514/3.13410 |
[3] | 苗玉彬, 刘成良, 赵爽, 等. 一种基于人机交互的退火遗传算法[J]. 上海交通大学学报, 2003, 37 (11): 1713–1718. |