热电联产在综合能源系统中的选址定容研究(matlab代码)

目录

1 主要内容

目标函数

程序模型

2 部分代码

3 程序结果


主要内容

该程序参考《热电联产在区域综合能源系统中的定容选址研究》,主要针对电热综合能源系统进行优化,确定热电联产机组的位置和容量,程序以33节点电网和17节点热网为例(具体见程序模型),采用5个备选位置作为优化基础,热网采用牛拉法潮流,电网潮流采用matpower工具箱(【发消息】->【免费软件】提供免费下载及相应教程),优化算法采用遗传算法,程序采用matlab编写,注释清晰,方便学习!

  • 目标函数

该程序以网损为目标函数,通过遗传算法进行优化求解。
  • 程序模型

部分代码

clc;clear all; 
T=60;%仿真代数               遗传算法 
M=40;% 群体规模 
pm=0.01;pc=0.6;%交叉变异概率 
pcmax=0.9;pcmin=0.6;pmmax=0.1;pmmin=0.01;
xmax=[5 130];%选址位置、容量kw最大值
xmin=[1 10];%选址位置、容量kw最小值
Long=5;%单个参数字串长度,总编码长度3L 
bestv=-inf; 
bval=round(rand(M,2*Long));%初始种群 round 四舍五入取整函数  编码后的初始种群 
%%%%%%%%%%%%%bestv=-inf%最优适应度初值%%%%%%%%%%%%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
for ii=1:T
    f_ave=0;
%
解码,计算适应度    for a=1:M
        y=zeros(1,2); 
        for gn=1:2
        for j=1:1:Long 
           y(gn)=y(gn)+bval(a,gn*Long-j+1)*2^(j-1) ;  %%%解码  二进制转换为十进制 
        end 
        xd(gn)=round((xmax(gn)-xmin(gn))*y(gn)/(2^Long-1)+xmin(gn));%%%%%%%%解码换算为约束条件范围内的数 
        end
        xx(a,:)=xd;
        %
%%%
%%修正网络参数进行潮流计算%
%%%
%%%
%%%
obj(a)=usi_pf(xd); %目标函数 
end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%种群M%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
func=1./obj;%目标函数转换为适应度函数
fmax=max(func);
f_ave=func/M;
​
p=func./sum(func); 
q=cumsum(p);%累加     分布采样区间 以便进行选择 
[fmax,indmax]=max(func);%求当代最佳个体  indmax 当前最佳个体代数 
   if fmax>=bestv 
      bestv=fmax;%到目前为止最优适应度值 
      bvalxx=bval(indmax,:);%到目前为止最佳位串 
      optxx=xx(indmax,:);%到目前为止最优参数 
   end    
   Bfit1(ii)=bestv ;% 存储每代的最优适应度
%%%%遗传操作开始 
%轮盘赌选择 
 for i=1:(M-1) 
    r=rand; 
    tmp=find(r<=q);%%找到适应度大于随机r的个体 
    newbval(i,:)=bval(tmp(1),:); %
%保存第一个这样的个体因为r就落到第一个这样的数的区间内,然后继续选择  end  
    newbval(M,:)=bvalxx;%最优保留 
    bval=newbval; 
%两点交叉 
for i=1:2:(M-1) %隔一个交叉一对
funmax=max(func(i),func(i+1));
 if funmaxelse
    pc=pcmax-(pcmax-pcmin)*(func-f_ave)/(bestv-f_ave);
end
   cc=rand; 
   if cc%%pc交叉率

程序结果

你可能感兴趣的:(综合能源,电热系统,选址定容,潮流计算,热能)