适用平台:Matlab+Yalmip+Cplex
程序以风能、光伏、火电以及储能作为主要设备建立了综合能源优化调度模型,提出了多种群变异交叉概率自适应变化遗传算法对模型进行求解,该算法可以根据遗传算法的运行中的表现来调整交叉和变异概率,具有较好的全局搜索能力和较强的鲁棒性。程序算例丰富、注释清晰、干货满满,可扩展性和创新性很高!下面对文章和程序做简要介绍!
程序创新点:
叉概率自适应变化遗传算法可以同时处理多个目标函数的优化算法,避免陷入局部最优解,提高算法全局搜索能力,将该方法用于综合能源系统优化调度中,可有效求解系统最优成本,最大限度降低系统的碳排放量。
遗传算法简介
遗传算法(Genetic Algorithm,GA)是一种基于自然选择和遗传学原理的优化算法。其基本思想是通过模拟自然界中的进化过程,不断地进行群体的交叉、变异和选择,以期得到优化问题的全局最优解。遗传算法模型包括以下几个部分:
(1)编码方式:遗传算法处理的问题通常是复杂的实际问题,需要将问题转化为计算机可以处理的数据,这需要对问题进行编码。常用的编码方式有二进制编码、实数编码、排列编码等。
(2)初始群体:遗传算法需要一个初始的种群来进行进化。初始种群可以是随机生成的,也可以是通过问题的特性等方法生成的。
(3)适应度函数:适应度函数是用来衡量某个个体的优劣程度的函数。适应度函数通常由问题本身所决定,它可以是问题的目标函数,也可以是其他评价指标。适应度函数越好的个体在后面的进化中被选中的概率越大。
(4)选择算子:选择算子是用来选择适应度高的个体,并将它们作为下一代群体的父代进行遗传操作的算子。 常用的选择算子有轮盘赌选择、锦标赛选择等。
(5)交叉算子:交叉算子是用来将两个父代个体的染色体进行交叉操作,从而产生新的个体。常用的交叉算子有单点交叉、多点交叉、均匀交叉等。
(6)变异算子:变异算子是用来对个体的染色体进行变异操作,从而产生新的基因。变异操作有助于避免算法陷入局部最优解。常用的变异算子有位变异、随机重排、插入变异等。
(7)终止条件:终止条件是指遗传算法的运行过程中,满足某个条件时停止算法运行的条件。常用的终止条件有达到最大迭代次数、达到一定的适应度值、适应度值的变化率小于某个阈值等。遗传算法模型的具体实现需要根据问题的特点和要求进行调整和优化。
程序结果:
部分程序:
%% 目标函数
% 输入 x:二进制编码 lenchrom:各变量的二进制位数
% 输出 Y:目标值 X:十进制数
%X(1)为FC出力;X(2)为BS出力;X(3)为电网出力
%% 计算适应度-函数值
Load=load('典型日负荷.txt');%负荷pv=load('PV.txt');%光伏发电
wt=load('WT.txt');%风力发电prem=Load-(pv+wt);
price=load('电价.txt');%电价pgrid=zeros(1,24);%24小时电网交互功率
cgrid=zeros(1,24);%电网交互费用cde=zeros(1,24);%柴油机费用
Ebat=zeros(1,24);y1=zeros(1,24);
Ebatmax=551.8;Ebatmin=0.4*Ebatmax;
cde(i)=7.36*(0.08*120+X(i+24)*0.25)+0.088*X(i+24)+0.7621*X(i+24);%柴油机燃料+运维+环境
pgrid(i)=prem(i)-X(i)-X(i+24);
cgrid(i)=price(i)*pgrid(i);%电网交互成本
y1(i)=cde(i)+cgrid(i)+pv(i)*0.0096+wt(i)*0.0296+10000*abs(max(0,Ebat(i)-Ebatmax))+10000*abs(min(0,Ebat(i)-Ebatmin));
%if prem(t)+X(2)>0%加上蓄电池充电功率后满足负荷需求
%X(3)=-(X(2)+prem(t));%向电网卖电
%else%加上蓄电池放电不满足
%if avcfc(X(1))<=price(t)%fc发电成本小于电网电价,fc优先发电
%if prep(t)+X(2)+X(1)>0%加上fc后能够满足负荷
%if price(t)>0.85%峰时,优先考虑向电网卖电
%y1(t)=(2.05/9.7*X(1)/(-0.0023*X(1)+0.6735)+7.39*(0.246*X(2)+0.08415*30))+%发电燃料成本
% 0.0096*pv(t)+0.0296*wt(t)+0.0293+X(1)+0.088*X(2)
部分内容源自网络,侵权联系删除!
欢迎感兴趣的小伙伴关注并私信获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!