热电联产在综合能源系统中的选址定容研究(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:Tf_ave=0;
%
解码,计算适应度    for a=1:My=zeros(1,2); for gn=1:2for 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));%%%%%%%%解码换算为约束条件范围内的数 endxx(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 funmaxelsepc=pcmax-(pcmax-pcmin)*(func-f_ave)/(bestv-f_ave);
endcc=rand; if cc%%pc交叉率

程序结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/43863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CI/CD入门(二)

CI/CD入门(二) 目录 CI/CD入门(二) 1、代码上线方案 1.1 早期手动部署代码1.2 合理化上线方案1.3 大型企业上线制度和流程1.4 php程序代码上线的具体方案1.5 Java程序代码上线的具体方案1.6 代码上线解决方案注意事项2、理解持续集成、持续交付、持续部署 2.1 持续集成2.2 持续…

小白到运维工程师自学之路 第七十五集 (Kubernetes 企业级高可用部署)2

8、添加master节点 在k8s-master2和k8s-master3节点创建文件夹 mkdir -p /etc/kubernetes/pki/etcd在k8s-master1节点执行 从k8s-master1复制密钥和相关文件到k8s-master2和k8s-master3 scp /etc/kubernetes/admin.conf root192.168.77.15:/etc/kubernetes scp /etc/kubernet…

UAF释放后重引用原理

原地址&#xff1a;https://blog.csdn.net/qq_31481187/article/details/73612451 原作者代码是基于linux系统的演示代码&#xff0c;因为windows和Linux 内存管理机制上略有不同&#xff0c;该程序在Windows需要稍微做些改动。 Windows上执行free释放malloc函数分配的内存后…

Docker碎碎念

docker和虚拟机的区别 虚拟机&#xff08;VM&#xff09;是通过在物理硬件上运行一个完整的操作系统来实现的。 每个虚拟机都有自己的内核、设备驱动程序和用户空间&#xff0c;它们是相互独立且完全隔离的。 虚拟机可以在不同的物理服务器之间迁移&#xff0c;因为它们是以整…

淘宝搜索店铺列表API:关键字搜索店铺信息 获取店铺主页 店铺所在地 服务评级

接口名称&#xff1a;item_search_seller 基本功能介绍 该API可以通过传入关键字&#xff0c;获取到淘宝商城的店铺列表&#xff0c;支持翻页显示。指定参数page获取到指定页的数据。返回的店铺信息包括&#xff1a;店铺名、店铺ID、店铺主页、宝贝图片、掌柜名字、店铺所在地…

idea2023 springboot2.7.5+mybatisplus3.5.2+jsp 初学单表增删改查

创建项目 修改pom.xml 为2.7.5 引入mybatisplus 2.1 修改pom.xml <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.2</version></dependency><!--mysq…

11. Vuepress2.x 关闭夜间模式

修改 docs/.vuepress/config.ts 配置文件 设置 themeConfig.darkMode属性详见 官网 module.exports {host: localhost, // ipport: 8099, //端口号title: 我的技术站, // 设置网站标题description: 描述&#xff1a;我的技术站,base: /, //默认路径head: [// 设置 favor.ico&a…

聊聊看React和Vue的区别

Vue 更适合小项目&#xff0c;React 更适合大公司大项目&#xff1b; Vue 的学习成本较低&#xff0c;很容易上手&#xff0c;但项目质量不能保证...... 真的是这样吗&#xff1f;借助本篇文章&#xff0c;我们来从一些方面的比较来客观的去看这个问题。 论文档的丰富性 从两个…

源于传承,擎领未来,新架构、新工艺下的“换心工程”——金融电子化访中电金信副总经理、研究院院长况文川

当前&#xff0c;商业银行的经营环境正在发生着深刻而复杂的变化&#xff0c;在深化改革主旋律的指引下&#xff0c;数字化转型已成为我国商业银行普遍认同、广泛采用的战略性举措。核心系统作为承载银行业务的关键支柱系统&#xff0c;一直是各银行在金融科技建设中重点关注和…

每日一题——接雨水(单调栈)

接雨水——单调栈 题目链接 单调递增的栈还是单调递减的栈 我们常说的**”积水成洼“**&#xff0c;指的就是说&#xff1a;当两边地势高于中间的地势时&#xff0c;中间的区域就成了洼地&#xff0c;也就可以积水了。 这一题就是如此&#xff0c;我们需要通过一个栈来记录数…

微服务最佳实践,零改造实现 Spring Cloud Apache Dubbo 互通

作者&#xff1a;孙彩荣 很遗憾&#xff0c;这不是一篇关于中间件理论或原理讲解的文章&#xff0c;没有高深晦涩的工作原理分析&#xff0c;文后也没有令人惊叹的工程数字统计。本文以实际项目和代码为示例&#xff0c;一步一步演示如何以最低成本实现 Apache Dubbo 体系与 S…

【支付宝小程序】分包优化教程

&#x1f996;我是Sam9029&#xff0c;一个前端 Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-JS学习,CSS学习,Vue-2领域博主 &#x1f431;‍&#x1f409;&#x1f431;‍&#x1f409;恭喜你&#xff0c;若此文你认为写的不错&#xff0c;不要吝啬你的赞扬&#xff0c;求收…

Maven 基础之依赖管理、范围、传递、冲突

文章目录 关于依赖管理坐标和 mvnrepository 网站pom.xml 中"引"包 依赖范围依赖传递依赖冲突 关于依赖管理 坐标和 mvnrepository 网站 在 maven 中通过『坐标』概念来确定一个唯一确定的 jar 包。坐标的组成部分有&#xff1a; 元素说明<groupId>定义当前…

【云原生】K8S控制详解

目录 一、Pod控制器1.1 Pod控制器及其功用1.2 pod控制器有多种类型1.3Pod与控制器之间的关系二、Deployment 三、SatefulSet3.1从上面的应用场景可以发现&#xff0c;StatefulSet由以下几个部分组成&#xff1a;3.2为什么要有headless&#xff1f;3.3为什么要有volumeClaimTemp…

python中的并发:多进程和多线程

目录 多进程多线程多线程示例锁机制 多进程 官方文档 多线程 python中的多线程主要通过thread模块实现 该模块提供了操作多个线程&#xff08;也被称为 轻量级进程 或 任务&#xff09;的底层原语 —— 多个控制线程共享全局数据空间。为了处理同步问题&#xff0c;也提供了…

ElementUI的MessageBox的按钮置灰且不可点击

// this.$confirmthis.$alert(这是一段内容, 标题名称, {confirmButtonText: 确定,confirmButtonCLass: confirmButton,beforeClose: (action,instance,done) > {if (action confirm) {return false} else {done()}});}.confirmButton {background: #ccc !important;cursor…

《游戏编程模式》学习笔记(七)状态模式 State Pattern

状态模式的定义 允许对象在当内部状态改变时改变其行为&#xff0c;就好像此对象改变了自己的类一样。 举个例子 在书的示例里要求你写一个人物控制器&#xff0c;实现跳跃功能 直觉上来说&#xff0c;我们代码会这么写&#xff1a; void Heroine::handleInput(Input input…

Python学习笔记_基础篇(十一)_socket编程

python 线程与进程简介 进程与线程的历史 我们都知道计算机是由硬件和软件组成的。硬件中的CPU是计算机的核心&#xff0c;它承担计算机的所有任务。 操作系统是运行在硬件之上的软件&#xff0c;是计算机的管理者&#xff0c;它负责资源的管理和分配、任务的调度。 程序是运行…

nginx如何获取真实的ip

我这里使用是springboot项目&#xff0c;使用nginx做代理&#xff0c;但header里面的参数没有将ip带过来&#xff0c;所有需要配置nginx将ip带过来。 nginx.conf文件 server {listen 80;listen 443 ssl;server_name xxx.xxx.com;ssl_certificate /web/project/ai…

图像处理常见的两种拉流方式

传统算法或者深度学习在进行图像处理之前&#xff0c;总是会首先进行图像的采集&#xff0c;也就是所谓的拉流。解决拉流的方式有两种&#xff0c;一个是直接使用opencv进行取流&#xff0c;另一个是使用ffmpeg进行取流&#xff0c;如下分别介绍这两种方式进行拉流处理。 1、o…