《温度重建-遗传算法.doc》由会员分享,可在线阅读,更多相关《温度重建-遗传算法.doc(6页珍藏版)》请在金锄头文库上搜索。
1、遗传算法求解温度场1. 系统图:图1 系统图根据程序计算出来的系数矩阵和常数项向量,计算各个网格内的温度。为了把计算出来的温度结果与假设的温度结果进行比较,这里对网格进行编号,如图所示, k=1:149,温度范围:752.18659857.14286;k=2:5098,温度范围:756.559771071.42858K;k=3:99147,温度范围:760.93295991285.71429K;k=4:148196,温度范围:765.306121500K;k=5:197245,温度范围:760.932951285.71429K;k=6:246294,温度范围:756.559771071.428
2、58K;k=7:295343,温度范围:752.18659857.14286K。这样可以把343个体元假设的温度值分布,表示如下图所示:图2 原始假设温度信息可以看出,有七个峰值,而且有对称性。从1343个体元的排序是在对象中按照从下到上,一层一层排列的。2. 在6001800K范围内搜索图3 遗传算法性能跟踪图4 遗传算法结果与原始假设温度对比上图中,GATemperature是遗传算法计算出来的温度分布,origintemp是原始的假设温度。由于搜索区域较大,重建温度分布与原始的假设温度相差的比较大。3. 在7501500K范围内搜索图5 遗传算法性能跟踪图6 遗传算法结果与原始假设温度对
3、比根据原始温度信息,缩小了搜索范围,结果仍不理想。4. 分温度区域搜索图7 遗传算法性能跟踪图8 遗传算法结果与原始假设温度对比分区域搜索就是把每层的温度范围信息加入到遗传算法程序中,这样可以更为准确的进行求解。求解结果比上两种方法有所改进,但仍旧不太理想。5. 直接用matlab左除求得的温度分布:图8 Matlab重建结果与原始假设温度对比这里使用Matlab中的左除直接计算温度场,在Matlab中,如果A是方阵,则AB大体上等于inv(A)*B,如果A是一个n*n的矩阵,B是一个n维列向量,则表示采用高斯消去法求解方程的解。如果A是个m*n的矩阵,则是不定或者超定方程组的最小二乘解。(Matlab7 基础与提高,电子工业出版社,飞思科技产品研发中心编著,北京,2005)。可见结果与准确解相差很大,出现负的温度值,主要是由于此线性方程组为严重的病态方程组,常数项向量B的微小变化都会带来解得巨大变化,在由准确解和系数矩阵求解常数项向量B时,由于舍入误差已经带来常数项有所变化,造成了最后解与准确解相差悬殊。