基于并列选择遗传算法的太阳影子定位方法

2017-01-12 01:07刘泽锋郭改慧陆金巧
陕西科技大学学报 2017年1期
关键词:影长遗传算法影子

于 鹏, 刘泽锋, 郭改慧, 陆金巧, 吕 杨

(1.陕西科技大学 文理学院, 陕西 西安 710021; 2.陕西科技大学 机电工程学院, 陕西 西安 710021)

基于并列选择遗传算法的太阳影子定位方法

于 鹏1, 刘泽锋2, 郭改慧1, 陆金巧1, 吕 杨1

(1.陕西科技大学 文理学院, 陕西 西安 710021; 2.陕西科技大学 机电工程学院, 陕西 西安 710021)

根据“立竿见影”和竿影日照图的原理,提出了一种太阳影子定位方法.首先结合太阳高度角、太阳赤纬角,以理论影长和实际影长的相关系数最大和其误差平方和最小为目标函数建立了求太阳影子定位的多目标优化模型,并以测量地的经纬度作为设计变量,运用并行选择的遗传算法进行求解,实现了对测量地的精准定位.最后通过实例分析,指出与传统的枚举算法相比,本文采用的遗传算法的求解结果无论在精度还是在收敛速度上都优于传统的枚举算法.

太阳影子定位; 多目标优化; 并行选择; 遗传算法

0 引言

“立竿见影”现象揭示了在某地一根直立的杆,一天之内其影子的长度随太阳位置的变化而变化的自然规律,在这种自然现象中,影长的变化与杆所在的位置有着密切的联系.通过观察一个直杆的影长随时间的变化情况,确定直杆所在的位置,具有积极的科学意义与应用价值.例如在建筑物的采光设计[1]中,可以用竿影日照图的原理来求某地的建筑物投射的影长,进而来确定建筑物的采光条件.再比如在光伏阵列的设计[2]中,可以通过建立地理经纬度与影长的数学模型来求得光伏阵列所在地的遮挡物的影长变化,进而合理设计阵列的排布间距.因此,设计一种简洁实用的算法,来实现太阳影子的定位就显得尤为重要.

遗传算法是20世纪70年代兴起的一种全新的仿生优化算法,它是在模拟达尔文生物进化论和孟德尔遗传学理论基础上发展起来的一种概率优化搜索算法.遗传算法一经提出,便引起了广泛的关注[3-8],众多作者根据不同的目的,提出了一系列改进的算法.例如,以解决单目标问题为目的的顺序选择、大变异、自适应等遗传算法,以及以解决多目标问题为目的的权重法、并列选择法、共享函数法等遗传算法[9].如何运用遗传算法来解决太阳影子定位问题,是本文要解决的一个核心问题.在本文中,作者采用逆推的思想,结合太阳高度角、太阳赤纬角,建立了求太阳影子定位的多目标优化模型,并运用并行选择的遗传算法进行求解,实现了对测量地的精准定位.

1 太阳影子定位问题

1.1 设计变量确定

求解太阳影子定位问题的最终目的,是希望通过观察未知地点某一天内太阳影子的实际长度,从而确定该地的经、纬度,所以可以选取测量地的经、纬度作为设计变量.由于东西半球昼夜相反,而本文是以东半球为研究对象,所以设计变量的取值范围为:

-90 ° ≤φ≤90 °

(1)

0 °<θ≤180 °

(2)

1.2 目标函数的确定

实际影长已知,而通过给定经纬度的数值,可得到对应的理论影长,当理论影长接近或等于实际影长时,此时的经纬度值即为测量地点.为此,以理论影长和实际影长的接近程度作为优化的目标函数.由于一天内的影长变化为一个向量,而比较向量的接近程度可以从其方向(即变化规律)和数值大小两方面比较.衡量变化规律的相似性用相关系数,相关系数越接近1,则说明两个向量的变化规律越相似,衡量数值大小选用误差平方和,误差平方和越小说明两个向量的偏离程度越小.经过上述分析,建立以下两个目标函数:

(3)

(4)

1.3 约束条件

1.3.1 理论影长的计算

假设某天某时刻太阳的位置如图1所示,立于地面上的杆高为H,太阳光线通过杆顶P点,在地面上形成一个影子点P′,影子长度OP为S′,太阳光线与地面的夹角为α.则其满足的数学表达为

(5)

图1 影子形成图

1.3.2 太阳高度角的计算

太阳高度角是指某地太阳光线与该地作垂直于地心的地表切线的夹角,它随地方时和太阳赤纬角的变化而变化.其计算公式[10]为:

sinβ=sinφsinσ+cosφcosσcost

(6)

式(6)中:β为太阳高度角,φ为当地的纬度,σ为太阳赤纬角,t为地方时角,其位置如图2所示.

图2 太阳高度角示意图

由于太阳光射到地球表面上时,会经过大气层,使太阳光发生折射,折射后的太阳高度角α的计算公式为:

(7)

由于影响大气层的折射率的因素[11]较多,为了方便计算,取空气折射率来近似代替,n=1.000 273.

1.3.3 地方时角的计算

本文以东半球为研究对象,则对应的地方时角的推导公式为:

(8)

式(8)中:T为北京时间,θ为当地经度.

1.3.4 太阳赤纬角的计算

太阳赤纬角[12]是地球赤道平面与太阳和地球中心的连线之间的夹角,赤纬角以一年为周期,在南北回归线的范围内移动,这成为季节的标志,其近似的计算公式为:

sinσ=0.397 95cos[0.985 63/(N-173)]

(9)

式(9)中:N为日数,从1月1日算起,取值范围为0≤N≤365.

1.3.5 优化模型

根据上述的目标函数和约束条件,建立太阳影子定位的优化模型为:

2 遗传算法求解太阳影子定位问题

2.1 并行选择的遗传算法

并行选择[9]的基本思想是先将群体中的全部个体按子目标函数的数目均等地划分为一些子群体,对每个子群体分配一个子目标函数,各个子目标函数在相应的子群体中独立地进行选择运算,各自选择出适应度高的个体组成一个新的子群体,然后再将所有这些新生成的子群体合并成一个完整的群体,在这个群体中进行交叉和变异运算,从而生成下一代的完整群体,如此不断地进行“分割-并列选择-合并”操作,最终可求出多目标优化问题的Pareto最优解.

图3为并列选择的遗传算法示意图.

图3 并列选择遗传算法的示意图

2.2 算法步骤

(1)对设计变量经度、纬度,用格雷码进行编码,根据每个变量的精度和变化范围确定其对应的编码个数为21.其对应的编码公式[9]为:

2mj<(bj-aj)×10n≤2mj-1

(10)

式(10)中:[aj,bj]为变量的取值范围,mj为二进制编码的个数,n为变量精度.

(2)采用随机的方法产生个体数为100的初代种群,且设置最大遗传代数为50,使用遗传代沟为0.9;

(11)

式(11)中:Ni为种群的大小,P为根据目标函数的大小所确定的个体在种群的位置,sp为选择压力,一般取1.7.

(4)对上一步生成的种群,采用单点交叉[9]的方式,如图4所示,生成新的种群,交叉概率取0.7;

图4 单点交叉运算的示意图

(5)为了避免问题过早收敛,对新种群的个体进行变异操作,变异概率取0.01;

(6)由于遗传代沟的存在,为了保证每一代的种群个数不变,对种群进行重插入.采用的策略为基于适应度插入方法,用子代代替适应度小的父代.

(7)判断种群是否达到最大遗传代数,如果未达到则转向步骤3,否则此时种群中适应度最大的个体所对应的目标函数值,即为全局最优解.

遗传算法的具体工作流程如图5所示.

图5 遗传算法的流程图

3 实例运算与结果分析

3.1 实例问题

通过测量得到某地在4月18日中从14∶42到15∶42的长度为2 m的直杆在水平地面上的太阳影子顶点坐标数据如表1所示,其中直杆垂直于地面,以杆的底端为坐标原点,水平面为xy平面.给出可能的地点.(以上数据来源于2015年全国大学生数学建模大赛)

表1 某地4月18日杆的影子坐标数据表

3.2 运算结果

本问题在2015年全国大学生数学建模大赛中采用了枚举法进行求解,在给定经纬度搜索的步长为1度的情形下,最终得到的最优解为:

z1=1.15×10-6,z2=0.100 5

对应的经纬度为(108 °E,17 °N),搜索用时4 min.

运用上述的并列选择的遗传算法,并使用Mat lab编程,对模型进行求解,由于遗传算法在求解中具有随机性,我们多次运行程序,计算结果如表2所示.

表2 遗传算法求解结果汇总表

对计算结果进行分析,最终得到最优解

z1=2.61×10-8,z2=4.41×10-4

对应的经纬度为(109.02 °E,18.76 °N)遗传算法收敛的时间为8 s.

3.3 结果分析

比较2015年全国大学生数学建模大赛所给的准确地点(109.5 °E,18.3 °N),本文给出的结果是比较理想的.当然本文所给结果仍有一定误差,这主要是由折射率数值的选取和搜索误差造成的.不过就求解的过程而言,本文所用的方法与枚举算法相比,求解结果的精度更高,收敛的时间更短.

4 结论

本文针对太阳影子定位问题,建立了多目标优化模型,并运用并行选择的遗传算法进行求解,最终通过实例分析,指出应用并行选择遗传算法进行太阳影子定位问题的求解,不仅收敛速度快,而且能够避免陷入局部最优化,因此该方法是一种值得推广的好方法.

[1] 郑鹏飞,林大均,刘小羊,等.基于影子轨迹线反求采光效果的技术研究[J].华东理工大学学报(自然科学版),2010,36(3):458-463.

[2] 张文华,司德亮,徐淑通,等.太阳影子倍率的计算方法及其对光伏阵列布局的影响[J].太阳能,2011(9):28-31.

[3] Tang Kezong,Sun Tingkai,Yang Jingyu.An improved genetic algorithm based on a novel selection strategy for nonlinear program-mingproblems[J].Computers and Chemical Engineering,2011,35(4):615-621.

[4] 刘淳安,王宇平.基于新模型的多目标遗传算法[J].西安电子科技大学学报(自然科学版),2005,32(2):260-267.

[5] 于志刚,宋申民,段广仁.遗传算法的机理与收敛性研究[J].控制与决策,2005,20(9):971-980.

[6] Ding Wanfu,Guo Ruifeng,Qin Chenggang,et al.A fault-tolerant scheduling algorithm with software fault tolerance in hard real-time systems[J].Journal of Computer Research and Development,2011,48(4):691-698.

[7] 马永杰,云文霞.遗传算法研究进展[J].计算机应用研究,2012,29(4):1 201-1 206.

[8] 林基明,班文娇,王俊义,等.基于并行遗传-最大最小蚁群算法的分布式数据库查询优化[J].计算机应用 ,2016,36(3):675-680.

[9] 雷英杰,张善文,李续武,等.MATLAB遗传算法工具箱及其应用[M].西安:西安电子科技大学出版社,2005.

[10] 王昌名.可照时数和太阳高度角计算公式的简化证明[J].山东气象,1989(2):46-48.

[11] 金群锋.大气折射率影响因素的研究[D].杭州:浙江大学,2006:4-5.

[12] 陈晓勇,郑科科.对建筑日照计算中太阳赤纬角公式的探讨[J].浙江建筑,2011,28(9):6-8.

[13] 梁昔明,朱灿,颜东煌.基于物种选择的遗传算法求解约束非线性规划问题[J].中南大学学报(自然科学版),2009,40(1):185-189.

【责任编辑:蒋亚儒】

Positioning method by the shadow of the sun based on parallel selected genetic lgorithm

YU Peng1, LIU Ze-feng2, GUO Gai-hui1, LU Jin-qiao1, LV Yang1

(1.School of Arts and Sciences, Shaanxi University of Science & Technology, Xi′an 710021, China; 2.College of Mechanical and Electrical Engineering, Shaanxi University of Science & Technology, Xi′an 710021, China)

According to the natural phenomenon that produces a shadow of objects under direct sunlight and the formation principle of stick sunlight shadow chart,the positioning method by the shadow of the sun is offered.Combined with relevant knowledge such as solar altitude and declination of sun.The multiple object optimization model,whose objective fun-ction is the maximum of correlation coefficient and the minimum of error sum of squares about practical and theoretical shadow′s length,is built.Regarding longitude and latitude of measure area as design variables,the measure area is confirmedwith parallelism selection genetic algorithm.In the analysis of case, compared with enumeration method,there is the truth that,the result by genetic algorithm is more accurate and the solution speed is faster than enumeration method.

positioning by the shadow of the sun; multiple object optimization; parallelism selection; genetic algorithm

2016-07-21

国家自然科学基金项目(11401356)

于 鹏(1981-),男,宁夏永宁人,讲师,硕士,研究方向:不确定推理

1000-5811(2017)01-0193-05

TP391

A

猜你喜欢
影长遗传算法影子
“拐弯”的影子
平行光下物高与影长问题的解法
一种基于遗传算法的聚类分析方法在DNA序列比较中的应用
基于遗传算法和LS-SVM的财务危机预测
What a Nice Friend
和影子玩耍
利用相似形解决影子问题
不可思议的影子
软件发布规划的遗传算法实现与解释