【优化调度】基于matlab改进的遗传算法求解风电场优化调度问题【含Matlab源码 1245期】
一、遗传算法简介
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期】相关推荐
- 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】
一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...
- 【Matlab语音分析】语音信号分析【含GUI源码 1718期】
一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...
- 【Matlab身份证识别】身份证号码识别【含GUI源码 014期】
一.代码运行视频(哔哩哔哩) [Matlab身份证识别]身份证号码识别[含GUI源码 014期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MAT ...
- 【Matlab车牌识别】停车计费系统【含GUI源码 735期】
一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...
- 【Matlab水果识别】自助水果超市【含GUI源码 594期】
一.代码运行视频(哔哩哔哩) [Matlab水果识别]自助水果超市[含GUI源码 594期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]倪云峰,叶健,樊娇娇 ...
- 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】
一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...
- 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】
一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...
- 【Matlab电力负荷预测】粒子群优化支持向量机短期电力负荷预测【含GUI源码 751期】
一.代码运行视频(哔哩哔哩) [Matlab电力负荷预测]粒子群优化支持向量机短期电力负荷预测[含GUI源码 751期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 ...
- 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】
一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...
- 【Matlab指纹识别】指纹识别门禁系统【含GUI源码 1692期】
一.代码运行视频(哔哩哔哩) [Matlab指纹识别]指纹识别门禁系统[含GUI源码 1692期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继 ...
最新文章
- Taglib原理和实现:再论El和JST
- 【jquery仿datalist的一个问题,求助】——设置每行显示几列,块状DIV的解决办法...
- jQuery中ajax的4种常用请求方式
- Linux命令中的rpm安装命令
- win10安装dockerx docker的常见命令 可以子腾讯云上做做练习
- U盘安装ubuntu 14.10遇到gfxboot.c32
- 携程专车入局:牌照在手,说走就走
- 用华为eNSP仿真校园网
- H3CSE路由-BGP属性
- 产品读书《产品经理面试攻略》
- mysql8.0安装/配置教程。
- 记一次在咸鱼上购买 MacBook Pro 的经历
- 百度地图自定义覆盖物
- Windows设备管理器中的错误代码
- 读ICCV Best Student Paper有感
- linux phpunit 安装,Mac如何在PHPStrom中配置phpunit
- Endnote中字体大小怎么改变?
- android 恢复出厂 自动恢复文件夹,基于Android系统快速恢复出厂设置方法的实现...
- 【 STM32实例 】 智能小车的红外循迹
- win7鼠标设置在哪_WIN7系统下ODIS和5054蓝牙配对教程
热门文章
- 如果你忘记了DotnetNuke站点的host和admin密码,解决方案
- DDL、DML、TCL
- VSCode编译Python环境搭建及发布Python应用
- Mysql 计划任务
- 在eclipse中引入mybatis和spring的约束文件
- sql server2008 如何获取上月、上周、昨天、今天、本周、本月的查询周期(通过存储过程)...
- ThinkPHP 3.1.2 模板中的变量
- [backbone] Getting Started with Backbone.js
- 堆栈小应用(一):括号匹配程序
- 什么是ibatis?(供初学ibatis的人阅读)