浮点遗传算法(精选3篇)
浮点遗传算法 篇1
0 引言
潮汐发电与常规能源发电相比,没有水力发电带来的淹没损失,运行中不消耗燃料,也没有核电站可能产生的辐射污染。潮汐能是可再生、无污染的清洁能源,充分利用海洋潮汐发电,已成为人类理想的新能源之一[1]。进行潮汐电站的优化运行研究,一方面可以提高电站的经济效益,同时可指导新建潮汐电站站址和装机的选择,为国内大规模开发、利用潮汐能源提供理论依据。
由于潮汐的周期性,潮汐电站的优化调度是含有线性与非线性约束且目标函数呈非线性的复杂多维优化问题。在使用动态规划(DP)法研究潮汐电站优化运行时,随着机组台数m和时段数n的增大,总的状态数2mn所占用的内存量将大大增加,计算量也将急剧增大,有可能形成“维数灾”难题。
近年来,在传统DP等方法基础上,相继提出了一些具有全局性的智能优化算法,如遗传算法(GA)[2]、神经网络和粒子群算法[3]等。本文尝试将传统GA进行改进,利用整体算术交叉和精英保留策略,设计出一种全局寻优、保证收敛的改进浮点数编码GA(FPGA)[4],并将其应用于单库双向开发的江厦潮汐电站月周期优化调度模型的求解。
1 潮汐电站优化调度模型构建
与常规水电站不同,潮汐电站不需要考虑电网的负荷要求,其主要目的是提供电能,以缓和当时、当地的用电紧张状况。潮汐电站优化运行的目的是充分利用潮汐能,使整个调度期内的总发电量最大。
1.1 月周期优化调度模型
月周期优化调度模型可表示为:
式中:m为电站可投入的机组台数;T为调度期划分的总时段数;Δt为时段长;Ht为时段t电站机组的水头;Nit为时段t机组i的出力;Qit为时段t机组i的发电流量;QHimin和QHimax分别为机组i在水头为H时的最小和最大过水流量。
1.2 单一阶段优化调度模型
潮汐是一种周期现象,多数可建潮汐电站的海岸边的潮汐均具有半日潮性质,水位的日变化过程近似为正弦波。潮汐电站月周期最大发电量的求解问题可以转换为求解调度周期内所有涨潮阶段与落潮阶段发电量和的最大值[5,6,7,8]。
以单一落潮阶段为例,其运行工况如图1所示。
一个落潮阶段由等候、发电、泄水3种工况组成一个循环。落潮阶段开始时刻t1为平潮时刻,水库水位保持与外海水位齐平;随着外海平面的下降,在t2时刻,库与外海水位差达到水轮机工作水头h′,机组开始发电;至t3时刻,水位差降至机组的停机水头h″,机组停止发电,此时打开泄水闸,进入落潮泄水工况,至落潮阶段末时刻t4,库水位与外海水位齐平时停止显然和的改变直接影响到电站的发电量,通常h=h′=h″。h过大,使得发电时间缩短,h过小,使得水头变小,机组出力较小,这都会影响发电量。因此,单一阶段优化运行研究的关键问题是在满足电站所有机组发电及闸门过流约束前提下,充分利用潮汐能,确定发电起始时刻、发电终止时刻、闸门开启时刻以及在发电时段内水库的蓄、放水过程,以获得最大发电效益。
如图1,已知落潮阶段始、末时刻t1和t4及始、末水位Zc和Zm,以及落潮发电工况机组最小启闭水头h,由水位库容关系曲线可确定出对应的始、末时刻库容Vc和Vm。按一定的精度要求,取时段步长为Δt,将落潮阶段划分为n个时段。潮汐电站单一阶段优化运行的确定性数学模型可表示为:
式中:Nj为时段j潮汐电站的输出功率;Vj-1为时段j初的水库库容;Qj为时段j电站的发电引用流量,落潮发电阶段从库侧流向海侧;Vjmi1n和Vjma1x分别为时段j初水库允许的最小和最大库容;Qjmin和Qjmax分别为时段j电站机组允许的最小和最大过水流量;Nmin和Nmax分别为潮汐电站的保证出力和装机容量;V0和Vn分别为时段1初和时段n末的水库库容,此处V0>Vn。
式(4)为水量平衡约束;式(5)为水库蓄水量约束;式(6)为机组过流约束;式(7)为出力约束;式(8)为阶段始、末库容约束。
2 月周期优化调度模型的算法实现
2.1 单一阶段优化运行的算法设计
2.1.1 FPGA方法在时间最优化中的应用
在水电站优化调度中,水电站的运行策略一般用发电引用流量序列(Q1,Q2,…,QT)来表示,将GA应用于水电站优化调度中,通常把发电引用流量序列转换为水位变化序列(Z1,Z2,…,ZT),并以水位变化序列为基础进行编码和遗传寻优操作[9,10]。在算法运行过程中,适应值是评判水位变化序列优劣的标准,适应值高的遗传到下一代的概率就大,反之就相对低一些
然而,由于水库地形的影响,潮汐电站为低水头电站,水库水位变化范围小,不同初始水位条件下,相同的水位变化时,引用流量相差极大,这样,在高水位时,水位的微小变化即可导致引用流量的较大变化,这必然影响GA的寻优过程,同时也降低了计算结果的精度。本文采用以库容变化序列对应的个体编码方法,库容变化与引用流量一一对应,可提高计算结果的精度。
1)浮点数编码形成初始群体
用每个时段水库库容状态值作为优化变量对其编码,每个基因对应单一落潮阶段每个时段的一个库容变化方案。单一阶段所划分的n个时段对应有n+1个时段初、末库容,对应为(V0,V1,…,Vn)。初始群体的浮点数编码实现过程如下。
在单一落潮阶段的库容允许变化范围内,随机生成N组库容变化序列VS=(VS1,VS2,…,VSi,…,VSN),其中VSi=(V0i,V1i,…,Vji,…,Vni)。对任一组变化序列i,其第1时段初库容V0i和第n时段末库容Vni均等于对应的阶段始、末时刻库容Vc和Vm。
单一落潮阶段的库容变化从阶段初始库水位Zc对应的库容Vc开始,从高到低,逐渐变化到阶段末库水位Zm对应的库容Vm。据此,在[0,1]区间产生N组按降序排列的随机数序列R=(R1,R2,…,Ri,…,RN),其中Ri=(R1i,R2i,…,Rji,…,Rin-1)。
根据水库水位上下限条件,对应初始群体中第i个库容变化序列,其时刻j末水库库容Vji=Vm+Rji(Vc-Vm)。其中,i=1,2,…,N;j=1,2,…,n-1。
按上述方法生成的初始库容变化序列满足时段水库蓄水量约束,作为优化计算的初始群体Vi(0),已经具有了一定的优化倾向性,可以大大缩短优化运算时间和提高计算精度。
2)个体适应度评价
对于单一落潮阶段最大发电量的求解,其目标函数的值域总是非负的,并且优化目标是求函数的最大值,因此,直接设定个体的适应度F(V)就等于相应的目标函数值f(V),取目标函数值最大的解为最优解,并且不再对它作其他变换处理,即有:
给定一组对应n个时段的库容变化序列值,单一阶段最大发电量等于各时段最优发电量的和。
3)设计遗传算子
在进行遗传操作前选定遗传操作参数群体规模N、交叉概率Pc、变异概率Pm、遗传运算的终止进化代数T。
在用FPGA进行潮汐电站单一阶段优化运行研究中,采用确定式采样选择方法。首先通过计算各可行库容变化序列对应的单一阶段最大发电量值,求得各对应个体的适应度值,再确定各个体被选中的个数,从而获得新种群VSi(1)。
对经确定式选择操作后形成的新库容变化序列VSi(1),采用整体算术交叉法,从i=1到i=N重复以下步骤:(1)依据均匀随机分布,从[0,1]中产生随机数r,若r<Pc,则选择第i个库容变化序列VSi作为一个父代;(2)用VS1′,VS2′,…表示选择的父代,将其随机分成下面的对:(VS1′,VS2′),(VS3′,VS4′),…;(3)从(0,1)中产生一个随机数α,进行整体算术交叉运算,经交叉操作后生成新的库容变化序列VSi(2)。
经过此交叉操作的任一后代中的库容分量仍满足从大到小依次排列的顺序,分析如下。若
对经过交叉运算后形成的新库容变化序列VSi(2),采用自适应性变异。设(V0,V1,…,Vj-1,…,Vn)为被选中变异的一个父代个体,其中的基因Vj被选为进行变异。为保证变异后的个体仍在可行域内,由单一阶段不同时段库容从高到低的变化规律,确定基因Vj的取值区间为(Vj+1,Vj-1),产生变异后的新个体(V0,V1,…,Vj-1,Vj′,…,Vn)。
为保证全局收敛,在变异操作后采用精英保留策略,即在第t代变异后比较当前代中适应度最好个体与前一代保留个体的优劣,选择其中较优的作为当前代保留个体。此精英保留策略可以保证如果在某一代的变异中得到整体极值点,则它就不会在后面的进化过程中从群体中丢失,从而保证全局最优解的实现。
采用给定最大循环代数T的方法。在进化计算中,若第t代、第t+1代进化计算得到的总体适应度最大值趋于收敛,并且满足式(12),则结束进化计算,否则进化计算进行到终止进化代数T。
2.1.2 DP法在空间最优化中的应用
潮汐电站厂内经济运行的数学模型见文献[11]。国内外学者曾采用DP、方向搜索、非线性规划等方法求解水电厂厂内的经济运行问题但随着机组台数的增多,其运算速度明显降低,效果并不十分理想。近些年来随着GA的发展和应用,人们已经开始采用GA对此问题进行研究。厂内经济运行可采用二进制或拟梯度浮点数编码的GA进行求解。为了节约计算机内存,提高计算速度,对于机组间流量的最优分配,本文直接调用由DP法所求得的厂内经济运行最优流量分配表。
若已知某时段水头为H、分配的流量为Qs及电站机组运行工况,即可调用厂内经济运行最优流量分配表,通过线性插值,查表得此种工况下的最优发电量。这样,便将厂内经济运行的DP求解与单一阶段的FPGA求解很好地结合起来。
2.2 月周期优化运行的FPGA设计
由已知的潮位预报曲线,可确定出月周期内共有n个涨潮阶段和落潮阶段。结合已知的水库库容特性曲线,可确定月周期内阶段k末的库水位可行取值范围为[ak,bk]。从调度起始时刻起,取月调度周期内所有落潮和涨潮发电阶段末的库水位作为优化变量,潮汐电站月周期最大发电量的求解问题可以转换为求解调度周期内所有涨潮阶段与落潮阶段最大发电量的和。潮汐电站月周期优化运行的确定性数学模型可表示为:
式中:Zk为第k个优化变量,表示从调度周期起始时刻算起第k个阶段(落潮或涨潮)末库水位;ak和bk分别为第k阶段末可行库水位的最小值和最大值;n为调度周期内涨落潮阶段的个数;f为目标函数,指调度周期内的总发电量,其值为非负。
3 算例
以江厦潮汐电站为研究对象[12],电站参数见文献[11]。采用改进FPGA进行计算,经多次试算,遗传参数设定如下:N=50,Pc=0.7,Pm=0.08,T=150。求得该月最大发电量为708 MW·h。扣除水头损失,比该月的实际发电量增幅达13%,与用DP法求解的结果一致[11],说明该改进FPGA是一种有效的方法。2种优化方法结果见表1。
4 结语
实例计算表明,以DP法求得的优化解为比较基础,每代保留最优个体,采用整体算术交叉的FPGA求解精度优于DP法,相比DP法求解结果增幅达2%以上。改进FPGA既避免了GA计算速度缓慢的问题,又避免了DP法在时间优化过程中随着机组台数的增多而产生的“维数灾”难题,实际优化效果说明该改进FPGA是一种可行且有效的方法。江厦潮汐电站只是一个试验性电站,其装机容量非常小,若能将优化调度用于大型潮汐电站,其经济效益将会非常可观
参考文献
[1]喻依兆,何平.加速新能源和可再生能源的开发利用.昆明理工大学学报,2002(4):9-12.YU Yizhao,HE Ping.The development of new energy and renewable energy.Journal of Kunming University of Science and Technology,2002(4):9-12.
[2]刘博,周建中,杨敬涛.基于动态规划和遗传算法的混合算法研究.计算机仿真,2004,21(12):87-89.LI U Bo,ZHOUJianzhong,YANGJingtao.Ahybrid algorithm based on dynamic programming method and genetic algorithm.Computer Si mulation,2004,21(12):87-89.
[3]向波,纪昌明,罗庆松.免疫粒子群算法及其在水库优化调度中的应用.河海大学学报:自然科学报,2008,36(2):198-202.XI ANG Bo,JI Changming,LUO Qingsong.I mmune particle swarm opti mization algorithm and its application in reservoir operation opti mization.Journal of Hohai University:Natural Sciences,2008,36(2):198-202.
[4]陶春华,马光文,图扬举,等.基于混合遗传算法的水电站经济运行.水力发电,2006,32(5):74-76.TAO Chunhua,MA Guangwen,TU Yangju,et al.Economical operation of hydropower station based on hybrid genetic algorithm.Water Power,2006,32(5):74-76.
[5]GOLDBERG D E.Genetic algorithms in search,opti mization,and machine learning.Boston,MA,USA:Addison-Wesley Publishing Company,1989.
[6]《运筹学》教材编写组.运筹学.北京:清华大学出版社,1990.
[7]董子敖.水库群调度与规划的优化理论和应用.济南:山东科学技术出版社,1989.
[8]刁利,谭忠富.潮汐电站的技术经济分析.电力学报,2005,20(2):99-103.DI AO Li,TAN Zhongfu.Economic and technical analysis of tidal power plants.Journal of Electric Power,2005,20(2):99-103.
[9]畅建霞,黄强,王义民.基于改进遗传算法的水电站水库优化调度.水力发电学报,2001(3):85-90.CHANG Jianxia,HUANG Qiang,WANG Yi min.Opti mal operation of hydropower station reservoir by using an i mproved genetic algorithm.Journal of Hydroelectric Engineering,2001(3):85-90.
[10]钟登华,熊开智,成立芹.遗传算法的改进及其在水库优化调度中的应用研究.中国工程科学,2003,5(9):22-26.ZHONG Denghua,XIONG Kaizhi,CHENG Liqin.The i mprovement of genetic algorithm and its application in the opti mal operation of reservoirs.Engineering Science,2003,5(9):22-26.
[11]李晓英,陈守伦,芮钧.潮汐电站月周期优化调度模型及其应用.水利水运工程学报,2004(1):61-65.LI Xiaoying,CHEN Shoulun,RUI Jun.Opti mum model for month-termoperation of tidal power station andits application.Hydro Science and Engineering,2004(1):61-65.
[12]浙江省电力公司.江厦潮汐试验电站.南京:河海大学出版社,2001.
浮点遗传算法 篇2
井间地震速度反演的遗传算法
井间地震速度反演具有重要的意义,不仅对于准确圈定地下构造的传统地震勘探是重要的,而且速度的`变化可以指示非背斜型的地层岩性圈闭.传统的射线追踪方法一般是先给出入射角,然后根据折射定律修改入射角以达到反演的目的.该方法对每条射线均需通过扫描确定入射角,计算量较大,对初始地质模型的要求较高.遗传算法具有全局收敛性,是一种不用梯度信息的优化方法,特别适用于大型的组合优化问题.采用多项式展开表示界面深度和速度,通过弯曲射线追踪算法来计算射线的旅行时间,利用遗传算法进行迭代优化,可以同时反演出地下复杂构造的界面形态和速度变化.该方法与网格化速度反演相比,减少了未知参数,较好地克服了多解性问题,试验结果表明,该方法可以达到较高的反演精度.
作 者:乐友喜 安鹏 王俊 YUE You-xi AN Peng WANG Jun 作者单位:中国石油大学,地球资源与信息学院,山东,东营,257061刊 名:物探化探计算技术 ISTIC英文刊名:COMPUTING TECHNIQUES FOR GEOPHYSICAL AND GEOCHEMICAL EXPLORATION年,卷(期):30(2)分类号:P631.8+15关键词:速度反演 遗传算法 井间地震 射线追踪 多项式
浮点遗传算法 篇3
随着应对各种飞行器的性能提高, 雷达也要求作用距离、分辨精度等指标得到相应的提高。雷达的作用距离取决于信号的时宽, 即要求信号要有大的时宽, 而雷达的分辨精度取决于信号的带宽, 即要求信号要有大的带宽。但是对于单载频脉冲信号, 时宽和带宽的乘积近似等于1, 所以同时得到大时宽和大带宽是矛盾的。为了解决这一矛盾, 必须采取同时具有大时宽和大带宽的复杂信号形式, 最常用的就是线性调频信号 (LFM) , 这种信号是在宽脉冲内附加载波线性调频, 从而在大时宽的条件下扩展了带宽, 通过脉冲压缩技术使宽脉冲变成窄脉冲, 以获得高的距离分辨能力。[1]
FPGA脉冲压缩处理可采用定点和浮点两种数据格式。采用定点数据格式, 输入的动态范围较小, 脉压结果精度不高, 不能满足某些高性能雷达系统的需要。脉冲压缩包括时域脉压和频域脉压。频域脉压处理系统基于高效快速傅立叶变换, 在处理大时宽信号时其设备量增加不大, 对于带宽比较大的信号具有明显的优势。本文基于Xilinx FPGA IP核, 实现了在频域内的浮点脉冲压缩的算法处理。
2 脉冲压缩技术原理
脉冲压缩实际上就是对接收信号进行匹配滤波处理。由于有多种发射脉冲形式, 根据发射波形的不同, 脉冲压缩时选择不同的匹配滤波器系数。数字脉压可用时域匹配滤波法或频域相关法实现。
时域数字脉压处理系统采用FIR滤波, 通过对2个有限长度序列进行线性卷积而实现脉压处理, 即将回波数据与匹配滤波器进行复卷积。滤波器复相关运算量随着信号时宽的增加而显著增加, 完成运算所需的芯片量级也随之增加, 因此, 时域脉冲压缩处理较短时宽信号时在实现性及设备量上都具有良好的特点, 但随着信号时宽增加, 其设备量将增加。
频域脉压处理是基于高效快速傅立叶变换, 通过H (f) 与线性卷积有限长度序列的FFT相乘, 并将其乘积反变换至时域而获得脉压输出, 即对回波数据进行FFT后, 与匹配滤波器的系数进行复数乘法运算, 然后再经过IFFT得到脉压输出后的数据。
本文脉冲压缩采用频域脉压方式, 为抑制距离旁瓣, 采用加窗的方式。假设输入信号为si (n) , 则输出信号为:
其中h (n) 为脉冲压缩匹配滤波器的输出信号, hamming (n) 为汉明窗输出信号。
根据脉冲压缩理论, h (n) 是si (n) 的共轭转置[2]。输入信号si (n) 是已知的, 因此H (f) =FFT[h (n) ·hamming (n) ]可以预先通过Matlab等工具求出, 在工程上作为权系数, 写入权系数只读存储器 (ROM) 中, 频域脉压原理 (见图1) 。
3 硬件实现
通过上述分析, 频域脉冲压缩具体的工程实现大体分3个步骤:第1步是对输入脉冲信号进行傅里叶变换得到输入信号的频域信号;第2步是输入信号的频域值与预先存储的权系数进行复数相乘;第3步是将复数乘积做傅里叶逆变换得到时域上的输出信号。
通常脉冲压缩前的输入信号多为AD采样后经过数字下变频的定点值, 如果以定点值经过上述步骤处理会带来一个问题, 定点的位数会不断增加, 以10位定点值, 单个脉冲为1024点的输入信号为例, 经过第一级FFT的输出值为21位, 假设权系数为10位定点值, 则经过第二级复数相乘的输出值为32位, 再经过第三级FFT逆变换, 最终输出值将达到43位。这样处理一方面消耗很多硬件资源, 另一方面传输的带宽也可能不满足要求。因此, 作定点脉压必须在每一级处理后进行截位处理, 但是截位有可能会造成信号的损失, 而且不同的信号可能截取得位置不同, 这需要对具体的信号进行仿真验证, 适应性比较差。而采用浮点脉冲压缩就不存在这个问题, 所有的值都是32位, 无论怎样处理都不会增加位数, 也无需考虑是何种信号。
采用浮点脉冲压缩则需先将定点值转换为浮点值, 再进行傅里叶变换和复数相乘等处理。因此, 在FPGA实现中主要用到两个IP核:Floating-point IP核和FFT IP核。
Floating-point IP核可以实现定点转浮点, 浮点运算等多种功能, 如图2所示。
通过选择“Fixed-to-float”可以实现定点转浮点的功能。通过选择“Add/Subtract”以及“Multiply”可以实现浮点数的加减法和与乘法, 这个功能在第二级复数相乘中需要用到。
Floating-point IP核主要用到两个控制信号OPERATION_ND和OPERATION_RFD, 其中输入控制信号OPERATION_ND置高表示当前输入数据有效。输出控制信号OPERATION_RFD置高表示当前输出数据有效。
FFT IP核主要实现傅里叶变换和傅里叶逆变换的功能, 如图3所示。
FFT IP核提供了4种不同的数据处理方式: (1) 流 (Streaming) ; (2) 可变流 (Variable Streaming) ; (3) 缓冲突发 (Buffered Burst) ; (4) 突发 (Burst) ;可采用基4算法、基2算法或者混合基算法;数据包括定点、块浮点和浮点等表示方法。
频域脉压选择“Pipelined, Streaming I/O”, 即流模式, 允许持续的数据进行流水处理。选择“Run Time Configurable Transform length”可是实现变长度脉冲压缩的功能。该IP核主要用到的控制信号有如下几个, 见表1。
通过Floating-point IP核和FFT IP核, 配合FIFO和ROM, 可以完全实现浮点频域脉压的处理, 具体过程如图4所示。
首先, AD采样后数字下变频得到的输入信号I、Q两路输入到定点转浮点的模块, 通过“OPERATION_RFD”信号控制FFT模块的“START”信号启动傅里叶变换, 当FFT模块的“EDONE”信号置高时表明下一个周期将输出FFT的有效值, 这时应将权值的ROM地址置0, 则在下一个周期第一个有效数据读出, 第一个权值同时读出, 两者相乘, 并且在“EDONE”为低时, ROM地址是循环加1的, 这样复数相乘就实现了流水运算。同样通过复数相乘模块的“OPERATION_RFD”信号控制IFFT模块的“START”信号启动傅里叶逆变换, 当“DV”置高时表示, 脉冲压缩的有效数据输出, 该数据可以送到MTI、MTD、恒虚警或者成像等后续模块中继续处理了。
4 工程测试与验证
脉冲压缩模块采用Xilinx V5系列FPGA芯片, 将带宽为5M, 时宽为133us的线性调频信号输入到系统中, 通过Chipscope采集脉压后的数据并导入到Matlab进行分析, 所得结果如图5所示。
实际的脉压结果与Matlab仿真的结果是一致的。
5 结语
基于Xilinx FPGA IP核的浮点频域脉冲压缩系统, 通过模块化的IP核配置, 并配以简单的时序控制, 就可以方便的实现脉冲压缩整个过程, 并且浮点处理方式, 避免了定点值处理逐级截位的繁琐, 对各种信噪比的回波信号适应性强, 不损失精度, 也不增加信号传输的带宽。该方法已经在工程上应用, 并取得了比较好的效果。
摘要:脉冲压缩体制雷达的发射信号通常包括多种线性调频信号, 这就要求对回波信号的脉冲压缩处理适应性要强, 如果采用定点脉压, 不同信噪比的回波信号脉冲压缩结果的截位各不相同, 需要分别进行仿真测试, 以确定截位的位置, 而文章提出一种浮点频域脉压的算法及实现, 基于Xilinx FPGA IP核, 无需考虑截位, 对各种信号适应性强, 方便易用。
关键词:IP核,脉冲压缩,浮点,频域
参考文献
[1]马晓岩, 向家彬, 朱裕生, 等.雷达信号处理[M].长沙:湖南科学技术出版社, 1999.
[2]林茂庸, 柯有安.雷达信号理论[M].北京:国防工业出版社, 1984.