第35卷第1期2017年2月陕西科技太摩摩裉Journal of Shaanxi University of Science & TechnologyVol.35 No.1Feb.2017关文章编号:1000-5811 (2017)01-0193-05基于并列选择遗传算法的太阳影子定位方法于鹏\刘泽锋2,郭改慧\陆金巧\吕杨1(1.陕西科技大学文理学院,陕西西安710021: 2.陕西科技大学机电工程学院,陕西西安710021)摘要:根据“立竿见影”和竿影日照图的原理,提出了一种太阳影子定位方法.首先结合太阳 高度角、太阳赤綷角,以理论影长和实际影长的相关系数最大和其误差平方和最小为目标函数 建立了求太阳影子定位的多目标优化模型,并以测量地的经綷度作为设计变量,运用并行选择 的遗传算法进行求解,实现了对测量地的精准定位.最后通过实例分析,指出与传统的枚举算 法相比,本文采用的遗传算法的求解结果无论在精度还是在收敛速度上都优于传统的枚举算法.关键词:太阳影子定位;多目标优化;并行选择;遗传算法中图分类号:TP391 文献标志码:APositioning method by the shadow of the sun based onparallel selected genetic lgorithmYU 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,X i’an 710021,China)Abstract: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 bined with relevant knowledge such as solar altitude and declination of sun.The multiple object optimization model,whose objective function is the maximum of correlation coefficient and the minimum of error sum of squares about practical and theoretical shadow7s 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.Key words:positioning by the shadow of the sun;multiple object optimization;parallelism selection;genetic algorithm收稿日期=2016-07-21基金项目:国家自然科学基金项目(11401356)作者简介:于鹏(1981 —),男,宁夏永宁人,讲师,硕士,研究方向:不确定推理•194 •f矣备科技大嗲#裉第35卷〇引言“立竿见影”现象揭示了在某地一根直立的杆,一天之内其影子的长度随太阳位置的变化而变化的自然规律,在这种自然现象中,影长的变化与杆所在的位置有着密切的联系.通过观察一个直杆的影长随时间的变化情况,确定直杆所在的位置,具有积极的科学意义与应用价值.例如在建筑物的采光设计[1]中,可以用竿影日照图的原理来求某地的建筑物投射的影长,进而来确定建筑物的采光条件.再比如在光伏阵列的设计[2]中,可以通过建立地理经纬度与影长的数学模型来求得光伏阵列所在地的遮挡物的影长变化,进而合理设计阵列的排布间距.因此,设计一种简洁实用的算法,来实现太阳影子的定位就显得尤为重要.遗传算法是20世纪70年代兴起的一种全新的仿生优化算法,它是在模拟达尔文生物进化论和孟德尔遗传学理论基础上发展起来的一种概率优化搜索算法.遗传算法一经提出,便引起了广泛的关注[3_8],众多作者根据不同的目的,提出了一系列改进的算法.例如,以解决单目标问题为目的的顺序选择、大变异、自适应等遗传算法,以及以解决多目标问题为目的的权重法、并列选择法、共享函数法等遗传算法[9].如何运用遗传算法来解决太阳影子定位问题,是本文要解决的一个核心问题.在本文中,作者采用逆推的思想,结合太阳高度角、太阳赤纬角,建立了求太阳影子定位的多目标优化模型,并运用并行选择的遗传算法进行求解,实现了对测量地的精准定位.1太阳影子定位问题1.1 设计变量确定求解太阳影子定位问题的最终目的,是希望通过观察未知地点某一天内太阳影子的实际长度,从而确定该地的经、纬度,所以可以选取测量地的经、纬度作为设计变量.由于东西半球昼夜相反,而本文是以东半球为研究对象,所以设计变量的取值范围为:一 90 ^c p^ 90 (1)〇°<0<18〇°(2) 1.2 目标函数的确定实际影长已知,而通过给定经纬度的数值,可得到对应的理论影长,当理论影长接近或等于实际 影长时,此时的经纬度值即为测量地点.为此,以理 论影长和实际影长的接近程度作为优化的目标函 数.由于一天内的影长变化为一个向量,而比较向 量的接近程度可以从其方向(即变化规律)和数值大小两方面比较.衡量变化规律的相似性用相关系 数,相关系数越接近1,则说明两个向量的变化规 律越相似,衡量数值大小选用误差平方和,误差平 方和越小说明两个向量的偏离程度越小.经过上述 分析,建立以下两个目标函数:zi =min(l—R),R=R(S,S )(3)cp^dz2 = min V] (Sz—S z)2(4)i = i式(3)〜(4)中:只为理论影长与实际影长的 相关系数,S为一天中实际影长组成的向量,S'为理论影长.S;为一天中z时刻计算得到的影长,&为一天中z时刻对应的实际影长.1.3 约束条件1.3.1理论影长的计算假设某天某时刻太阳的位置如图1所示,立于 地面上的杆高为H,太阳光线通过杆顶P点,在地 面上形成一个影子点P',影子长度O P为S',太阳 光线与地面的夹角为a.则其满足的数学表达为S =且(5)tana1.3.2太阳高度角的计算太阳高度角是指某地太阳光线与该地作垂直 于地心的地表切线的夹角,它随地方时和太阳赤纬 角的变化而变化.其计算公式[1°]为:sin/? = sin^sina +cos<pcoS(jcost(6)式(6)中:/?为太阳高度角,为当地的纬度,a 为太阳赤纬角^为地方时角,其位置如图2所示.由于太阳光射到地球表面上时,会经过大气第1期于鹏等:基于并列选择遗传算法的太阳影子定位方法•195•层,使太阳光发生折射,折射后的太阳高度角a的计算公式为:■丌(7)由于影响大气层的折射率的因素[11]较多,为了方便计算,取空气折射率来近似代替,^ =1.000 273.1.3. 3地方时角的计算本文以东半球为研究对象,则对应的地方时角 的推导公式为:(12。
—们X A.X 15 °(8)式(8)中:了为北京时间j为当地经度.1.3.4太阳赤纬角的计算太阳赤纬角[12]是地球赤道平面与太阳和地球 中心的连线之间的夹角,赤纟韦角以一^年为周期,在 南北回归线的范围内移动,这成为季节的标志,其 近似的计算公式为:sin c7=0.397 95cos[〇. 985 63/CN—173)](9)式(9)中:N为日数,从1月1日算起,取值范围为 0<N<365.1.3. 5优化模型根据上述的目标函数和约束条件,建立太阳影子定位的优化模型为:zx =min(l—R),R=R(S,S )C fhdz2 =m i n(St—S t)2sin/?=sin^sina+coscpcosacost./ T C n\12-T-(120-…表X 15sinc7 = 0.397 95cos[〇.985 63/CN—173)]一 90 ^cp^ 900 ° 180 °2遗传算法求解太阳影子定位问题2. 1 并行选择的遗传算法并行选择[9]的基本思想是先将群体中的全部 个体按子目标函数的数目均等地划分为一些子群 体,对每个子群体分配一个子目标函数,各个子目 标函数在相应的子群体中独立地进行选择运算,各 自选择出适应度高的个体组成一个新的子群体,然 后再将所有这些新生成的子群体合并成一个完整的群体,在这个群体中进行交叉和变异运算,从而生成下一代的完整群体,如此不断地进行“分割-并列选择-合并”操作,最终可求出多目标优化问题的 Pareto最优解•图3为并列选择的遗传算法示意图.选择标准2.2 算法步骤(1)对设计变量经度、纬度,用格雷码进行编 码,根据每个变量的精度和变化范围确定其对应的编码个数为21.其对应的编码公式[9]为:2 7<C(bj—Uj)X10;i^2J —1(10)式(10)中:[A,~]为变量的取值范围,%为(2) 采用随机的方法产生个体数为100的初种群,且设置最大遗传代数为50,使用遗传代沟为 0. 9;(3) 将种群均匀地分为两部分,其中一部分群以A =min(l—幻为目标函数,另一部分种群(fhd的目标函数为A=r n in f;(& —S:)2,分别采用随f'9 i = \机遍历抽样的方法进行选择计算,选出各部分种群适应度高的个体组成新的子群体;适应度计算函数采用如下的线性函数[13]:P-1/(P)=2-sp +2X(sp -1)X ly(I D 式(11)中:凡为种群的大小,P为根据目标函数的大小所确定的个体在种群的位置,分为选择压力,一^般取1. 7.(4) 对上一步生成的种群,采用单点交叉[方式,如图4所示,生成新的种群,交叉概率取0.7;(5) 为了避免问题过早收敛,对新种群的个进行变异操作,变异概率取〇.01;(6) 由于遗传代沟的存在,为了保证每一代种群个数不变,对种群进行重插入.采用的策略为基于适应度插入方法,用子代代替适应度小的父 代.(7) 判断种群是否达到最大遗传代数,如果未sm71sm•196•f矣备科技大嗲#裉第35卷表1某地4月18日杆的影子坐标数据表北X M y/^S/m图4 单点交叉运算的示意图达到则转向步骤3,否则此时种群中适应度最大的 个体所对应的目标函数值,即为全局最优解.遗传算法的具体工作流程如图5所示.图5 遗传算法的流程图3实例运算与结果分析3.1 实例问题通过测量得到某地在4月18日中从14 : 42 到15 : 42的长度为2 m的直杆在水平地面上的太 阳影子顶点坐标数据如表1所示,其中直杆垂直于 地面,以杆的底端为坐标原点,水平面为平面.给出可能的地点.(以上数据来源于2015年全国大 学生数学建模大赛)14 :■42 1. 036 50.497 3 1. 149 614 :•45 1. 069 90. 502 9 1. 182 214 :t 481.103 80. 508 5 1. 215 314 *■511,13830. 514 2 1. 249 114 s'54 1. 173 20. 519 81.283 214 ^■57 1. 208 70. 525 5 1. 318 015 :【0Q1.244 80.531 1 1. 353 115 :■03 1. 281 50, 536 8 1. 389 415 ::06 1. 318 90. 542 6 1. 426 215 ::09 1. 356 80. 548 3 1. 463 415 ^:121.395 50. 554 1 1. 501 515 :■15 1. 434 90. 559 8 1. 540 215 :■18 1.475 10.563 71.579 915 :【21 1. 516 00.571 51.620 115 :>241.557 70* 577 4 1. 661 315 :■27 1. 600 30. 583 3 1. 703 315 :■30 1. 643 80.589 2 1. 746 215 ^■33 1. 688 20. 595 2L790 115 :>361.733 70. 601 3 1. 835 D15 :【39 1. 780 10.607 4 1. 880 915 s■421.827 7Q.613 51.927 9 3. 2 运算结果本问题在2015年全国大学生数学建模大赛中 采用了枚举法进行求解,在给定经纬度搜索的步长为1度的情形下,最终得到的最优解为:^= 1. 15 X 10—6,% =〇•100 5对应的经纬度为(l〇8°E,17°N),搜索用时4 min.运用上述的并列选择的遗传算法,并使用Mat lab编程,对模型进行求解,由于遗传算法在求解中具有随机性,我们多次运行程序,计算结果如表2所示.表2遗传算法求解结果汇总表次数纬度/(°)经度/(〇)釔1之2118. 76109. 022, 61X10—8 4. 41X10-4217. 13109.05 2. 23X10—8 4. 4X10—3316. 67108.97 2. 13X10—39. 4X10 (3)418. 1710B.63 1. 94X10—« 1.75X10"517. 17109.26 2. 25X10-83, 07X10 —4616, 32105.13 3. 18X10-19‘ 71X10-1717. 41109.24 2. 15X10-8 2. 04X10 —4820.10108.343‘14X10-8 3. 47X10-4917.40108.832, 58X10 —& 1.22X10-10:18, 99108.80 2.62X10s1. 1X10'对计算结果进行分析,最终得到最优解^ =2. 61 X10—8,% =4. 41 X10—4对应的经纬度为(109. 02 °E,18. 76 °N)遗传算法收敛的时间为8 s.3.3 结果分析比较2015年全国大学生数学建模大赛所给的第1期于鹏等:基于并列选择遗传算法的太阳影子定位方法•197 •准确地点(1〇9_5 °E,18.3 °N),本文给出的结果是 比较理想的.当然本文所给结果仍有一定误差,这 主要是由折射率数值的选取和搜索误差造成的.不 过就求解的过程而言,本文所用的方法与枚举算法 相比,求解结果的精度更高,收敛的时间更短.4结论本文针对太阳影子定位问题,建立了多目标优 化模型,并运用并行选择的遗传算法进行求解,最 终通过实例分析,指出应用并行选择遗传算法进行 太阳影子定位问题的求解,不仅收敛速度快,而且 能够避免陷人局部最优化,因此该方法是一种值得 推广的好方法.参考文献[1]郑鹏飞,林大均,刘小羊,等.基于影子轨迹线反求采光效果的技术研究[J].华东理工大学学报(自然科学版),2010,36(3):458-463.[2]张文华,司德亮,徐淑通,等.太阳影子倍率的计算方法及其对光伏阵列布局的影响[J].太阳能,2011(9): 28-31.[3]T a n g K e z o n g»S u n T in g k a i»Y a n g J in g y u. A n im p r o v e d gen e tic a lg o r it h m based o n a n o v e l s e le c tio n s tra te g y fo rn o n lin e a r p r o g r a m-m in g p ro b le m s[J].C o m p u te rs and(上接第192页)[4]李德懿,李宗林.可控模拟口腔环境的改良M l>300恒化器的建立及应用[J].临床口腔医学杂志,2002, 18 (4):243-245.[5]阮士贵.恒化器模型的动力学[J].华中师范大学学报(自然科学版),1997,31 (4): 377-397.[6]孙树林,张瑞娟.具有时滞和脉冲输人的一类双资源和两种微生物恒化器模型的分析[J].系统科学与数学,2012,32(1):111-120.[7]Z h a n g Y J»X iu Z L» C h e n L S. C h a o s in a fo o d c h a in c h e m-o s ta t w i t h p u ls e d in p u t a n d w a s h o u t[J].C h a o s»S o lito n s&- F r a c ta ls«2005,26(1): 159-166.[8]X ia I I X^W o lk o w ic z G S K,W a n g L. T r a n s ie n t o s c illatio n s in d u c e d b y d e la y e d g r o w t h re s p o n s e in th e c h e m o-s t a t[J].J o u r n a l o f M a th e m a tic a l B io lo g y»2005 »50 ( 5 ):489-530.[9]M e n g X Z»Z h a o Q L»C h e n L S. G lo b a l q u a lita tiv e a n a ly s iso f n e w m o n o d ty p e c h e m o s ta t m o d e l w i t h d e la y e d respon se a n d in p u t in p o llu te d e n v iro n m e n t [J ].A p p lie dM a th e m a tic s a n d M e c h a n ic s»2008»29( 1) :75-87.C h e m ic a l E n g in e e r in g»2011»35(4):615-621.[4]刘淳安,王宇平.基于新模型的多目标遗传算法[;!].西安电子科技大学学报(自然科学版),2005,32(2):260-267. [5]于志刚,宋申民,段广仁.遗传算法的机理与收敛性研究[J].控制与决策,2005,20(9): 971-980.[6]D in g W a n fu»G u o R u ife n g»Q in C h e n g g a n g»e t al. A f a u lt-t o le r a n t s c h e d u lin g a lg o r it h m w i t h s o ftw a r e f a u lt t o le rance in h a rd r e a l-tim e s y s te m s [J]. J o u r n a l o f C o m p u te rR e s e a rc h a n d D e v e lo p m e n t,2011,48(4): 691-698.[7]马永杰,云文霞.遗传算法研究进展[J].计算机应用研究,2012,29(4):!201-1206.[8]林基明,班文娇,王俊义,等.基于并行遗传-最大最小蚁群算法的分布式数据库查询优化[J].计算机应用,2016,36(3):675-680.[9]雷英杰,张善文,李续武,等.M A T L A B遗传算法工具箱及其应用[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.【责任编辑:蒋亚儒】[10]魏春金,陈兰荪.具时滞增长反应及脉冲输人M o n o d-I l a k l d a n e恒化器模型的分析[J].南京师范大学学报,2008,31(3):6-11.[11]W a n g F Y,P a n g G P,L u Z Y. A n a ly s is o f a B e d d in g to n-D e A n g e lis fo o d c h a in c h e m o s ta t w i t h p e r io d ic a lly v a r y in gd ilu t io n r a t e[J].C h a o s»S o litio n s a n d F r a c t a ls» 2009 » 40(2):1 609-1 615.[12]M ile d E I I, A la in R. P r a c tic a l c o e x is te n c e o f tw o speciesin th e c h e m o s ta t A s lo w-fa s t c h a r a c te r iz a tio n[J]. M a th em a tic a l B io s c ie n c e,2009,218(1):33-39.[13]L a k s h m ik a n th a m V»B a in o v D D»S im e o n o v P S. T h e o r yo f im p u ls iv e d iff e r e n tia l e q u a t io n s[M].S in g a p o re: W o r ldS c ie n tific, 1989.[14]陈兰荪,陈健.非线性生物动力系统[M].北京:科学出版社,1993.[15]K u a n g Y. D e la y d iffe r e n tia l e q u a tio n s w i t h a p p lic a tio nd y n a m ic s[M].C a lif o r n ia: A c a de m ic P re s s I n c, 1993.【责任编辑:陈佳】。