一、遗传算法简介

1 引言


2 遗传算法理论
2.1 遗传算法的生物学基础


2.2 遗传算法的理论基础




2.3 遗传算法的基本概念






2.4 标准的遗传算法


2.5 遗传算法的特点


2.6 遗传算法的改进方向

3 遗传算法流程



4 关键参数说明

二、部分源代码

v0=10.5;a1=0;%初始风速、风向
PopSize=100;%种群规模
MaxGen=1000; %遗传代数
ChromLen=10;  %编码长度
N=16;%优化变量个数
LLimits = 0;%优化变量的下限
HLimits = 0.33;%优化变量的上限
Chrom=round(rand(PopSize,N*ChromLen));%随机产生初始种群的染色体
for k=1:MaxGen    for s=1:PopSize  %种群产生m=Chrom(s,:);%解码for i=1:Nm1=m(1+ChromLen*(i-1):1:ChromLen*i);DigVal=0;b=1;for j=1:ChromLenDigVal=DigVal+m1(j)*b;b=b*2;endx(s,i) = LLimits+(HLimits-LLimits)*DigVal/(2^ChromLen-1); end[P,Pz,v]=Pmax(v0,a1,x(s,:));%求目标函数endFit0=(1./Pz);  %适应度函数%适应度函数尺度变换C=1.5;f_avg= sum(Fit0)/PopSize;f_max =max(Fit0);    f_min =min(Fit0);if f_min>(C*f_avg- f_max)/( C-1)    a=(C-1)/(f_max-f_avg)*f_avg;b=(f_max-C*f_avg)/(f_max-f_avg)*f_avg;elsea=f_avg/(f_avg - f_min);b= - (f_min*f_avg)/(f_avg-f_max);endFit =a*Fit0+b;%轮盘赌式选择totalfit=sum(Fit);%求适应值之和 fitvalue=cumsum(Fit); for newin = 1:PopSizefitin = 1;temp=rand*totalfit;while  temp  > fitvalue(fitin)fitin=fitin+1;end        TempChrom(newin,:)=Chrom(fitin,:);         endChrom = TempChrom;Pc=0.6;for i=1:2:(PopSize-1)      %单点交叉temp=rand;if Pc>tempn=ceil(N*ChromLen*rand);for j=n:N*ChromLenTempChrom(i,j)=Chrom(i+1,j);TempChrom(i+1,j)=Chrom(i,j);end            endendfunction v=wake_speed(x,y,v0,a,a0)                       %计算一台风机风机前尾流风速
x=x-1;y=y-1;D=300;R=31.5;
X=x*D*cos(a)+y*D*sin(a);                                 %根据风向偏角进行坐标变换
Y=y*D*cos(a)-x*D*sin(a);
i=0;j=0;v2=0;
for m=1:4    for n=1:4                                            %循环计算每台风机的尾流影响k=i*D*cos(a)+j*D*sin(a);l=-i*D*sin(a)+j*D*cos(a);if (X-k) > 0                                     %判断两台风机上下游位置关系rx=R+(X-k)*0.04;if ((Y+R) < (l-rx)) || ((Y-R) > (l+rx))      %判断是否无尾流遮挡并计算v1=v0;b=0;elseif ((Y-R) > (l-rx)) && ((Y+R) < (l+rx))  %判断是否为全遮挡并计算Ct=4*a0(i+1,j+1)*(1-a0(i+1,j+1));v1=v0*(1-((R/rx)^2)*(1-(1-Ct)^0.5));b=1;else[v1,b]=Ashad(k,l,X,Y,v0,a0(i+1,j+1));%计算部分遮挡endendv2=v2+b*((1-v1/v0)^2);                       %对各个风机的尾流影响风速累加elseend
end
[BestFit,BestId] = max(Fit);
figure
plot(Jlist)
%输出结果
Result = x(BestId,:)
[P,Pz,v]=Pmax(v0,a1,Result)
function [v,B]=Ashad(x1,y1,x2,y2,v0,a)
D=63;Ct=4*a*(1-a);                           %初始条件
rx=0.5*D+abs(x2-x1)*0.04;                    %尾流半径
v=v0*(1-((0.5*D/rx)^2)*(1-(1-Ct)^0.5));
y=((rx)^2-(0.5*D)^2-y1^2+y2^2)/(2*(y2-y1));
z=((0.5*D)^2-(y-y2)^2)^0.5;
d=abs(y2-y1);
A=((rx)^2)*acos((d^2+(rx)^2-(0.5*D)^2)/(2*d*rx))+((0.5*D)^2)*acos((d^2+(0.5*D)^2-(rx)^2)/(2*d*rx))-d*z;
B=A/(2*pi*(0.5*D)^2);                        %尾流遮挡面积与风轮面积之比
end

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
《智能优化算法及其MATLAB实例(第2版)》包子阳 余继周 杨杉著 电子工业出版社

【优化调度】基于matlab改进的遗传算法求解风电场优化调度问题【含Matlab源码 1245期】相关推荐

  1. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  2. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  3. 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】

    一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...

  4. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  5. 【Matlab水果识别】自助水果超市【含GUI源码 594期】

    一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...

  6. 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  7. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  8. 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】

    一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...

  9. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

  10. 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】

    一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...

最新文章

  1. Taglib原理和实现:再论El和JST
  2. 【jquery仿datalist的一个问题,求助】——设置每行显示几列,块状DIV的解决办法...
  3. jQuery中ajax的4种常用请求方式
  4. Linux命令中的rpm安装命令
  5. win10安装dockerx docker的常见命令 可以子腾讯云上做做练习
  6. U盘安装ubuntu 14.10遇到gfxboot.c32
  7. 携程专车入局:牌照在手,说走就走
  8. 用华为eNSP仿真校园网
  9. H3CSE路由-BGP属性
  10. 产品读书《产品经理面试攻略》
  11. mysql8.0安装/配置教程。
  12. 记一次在咸鱼上购买 MacBook Pro 的经历
  13. 百度地图自定义覆盖物
  14. Windows设备管理器中的错误代码
  15. 读ICCV Best Student Paper有感
  16. linux phpunit 安装,Mac如何在PHPStrom中配置phpunit
  17. Endnote中字体大小怎么改变?
  18. android 恢复出厂 自动恢复文件夹,基于Android系统快速恢复出厂设置方法的实现...
  19. 【 STM32实例 】 智能小车的红外循迹
  20. win7鼠标设置在哪_WIN7系统下ODIS和5054蓝牙配对教程

热门文章

  1. 如果你忘记了DotnetNuke站点的host和admin密码,解决方案
  2. DDL、DML、TCL
  3. VSCode编译Python环境搭建及发布Python应用
  4. Mysql 计划任务
  5. 在eclipse中引入mybatis和spring的约束文件
  6. sql server2008 如何获取上月、上周、昨天、今天、本周、本月的查询周期(通过存储过程)...
  7. ThinkPHP 3.1.2 模板中的变量
  8. [backbone] Getting Started with Backbone.js
  9. 堆栈小应用(一):括号匹配程序
  10. 什么是ibatis?(供初学ibatis的人阅读)