热电联产在综合能源系统中的选址定容研究(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交叉率

程序结果


http://www.niftyadmin.cn/n/4942674.html

相关文章

【Linux】【驱动】杂项设备驱动

【Linux】【驱动】杂项设备驱动 Linux三大设备驱动1. 我们这节课要讲的杂项设备驱动是属于我们这三大设备驱动里面的哪个呢?2.杂项设备除了比字符设备代码简单&#xff0c;还有别的区别吗?3.主设备号和次设备号是什么? 挂载驱动 杂项设备驱动是字符设备驱动的一种&#xff0…

Java课题笔记~ SpringMVC注解式开发

2.1 Controller 传统的配置式开发中的控制器Controller类必须实现Controller接口&#xff0c;并实现接口中的HandleRequest()方法&#xff0c;还需要再配置文件中配置处理器映射&#xff0c;且一个处理器&#xff08;控制器&#xff09;只能有一个方法&#xff0c;为了实现程序…

mysql面试

基础篇 通用语法及分类 DDL: 数据定义语言&#xff0c;用来定义数据库对象&#xff08;数据库、表、字段&#xff09;DML: 数据操作语言&#xff0c;用来对数据库表中的数据进行增删改DQL: 数据查询语言&#xff0c;用来查询数据库中表的记录DCL: 数据控制语言&#xff0c;用…

Windows server 2016如何安装OpenSSH

在 Windows Server 2016 上安装 OpenSSH 需要通过“添加功能和角色”向导来完成。以下是安装 OpenSSH 的步骤&#xff1a; 1.打开 Windows Server 2016 控制面板。 2.点击 "程序"&#xff0c;然后选择 "程序和功能"。 3.在左侧菜单中&#xff0c;点击 &…

SQL语言之数据库增删改查

SQL语言之数据库增删改查 简单查询数据库表 select * from 表名 创建表 create table 表名( ​ 字段名 类型 约束, ​ 字段名 类型 约束, ) 例如:创建学生表&#xff0c;字段要求如下 姓名(长度为10) create table student( ​ name varchar(10) , ​ age int unsi…

完全备份、增量备份、差异备份、binlog日志

Top NSD DBA DAY06 案例1&#xff1a;完全备份与恢复案例2&#xff1a;增量备份与恢复案例3&#xff1a;差异备份与恢复案例4&#xff1a;binlog日志 1 案例1&#xff1a;完全备份与恢复 1.1 问题 练习物理备份与恢复练习mysqldump备份与恢复 1.2 方案 在数据库服务器192…

Centos8安装docker-ce

一、安装步骤 1、安装yum-utils yum install -y yum-utils2、配置阿里源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3、删除自带容器 yum erase podman buildah4、安装docker-ce yum install -y libseccomp-devel y…

自适应AI chatgpt智能聊天创作官网html源码

我们致力于开发先进的自适应AI智能聊天技术&#xff0c;旨在为用户提供前所未有的聊天体验。通过融合自然语言处理、机器学习和深度学习等领域的顶尖技术&#xff0c;我们的智能聊天系统能够准确理解用户的需求并给出相应的回应。 我们的自适应AI智能聊天系统具备以下核心特点…