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

news2024/11/24 0:43:08

目录

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.coloradmin.cn/o/882951.html

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

相关文章

Windows11 wsl2安装Ubuntu-20.04

Ubuntu系统开机报错(无法开机启动) Linux启动报错或无法启动的解决方法 Windows11 64bit系统 1.Windows11系统上&#xff0c;启用虚拟机平台 2.Windows11系统上&#xff0c;先启用"适用于Linux的Windows子系统"&#xff0c;然后在Windows11上安装Ubuntu-20.04系统 3…

软考:中级软件设计师:数据库模式、ER模型

软考&#xff1a;中级软件设计师:数据库模式、ER模型 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准…

杨氏矩阵!!!!

杨氏矩阵&#x1f438; &#x1f4d5;题目要求&#xff1a; 杨氏矩阵 题目内容&#x1f4da;&#xff1a; 有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 &#x1f9e0;题…

Linux编程——进程间通信(信号灯集、消息队列)

目录 一、信号灯集1.1 概念1.2 信号灯集创建步骤⭐⭐⭐1.3 信号灯集对应函数 二、消息队列 一、信号灯集 1.1 概念 信号灯(semaphore)&#xff0c;也叫信号量。它是不同进程间或一个给定进程内部不同线程间同步的机制&#xff1b;System V的信号灯是一个或者多个信号灯的一个…

三星电子首席技术官:BSPDN技术开发计划曝光,背部供电技术创新

在ETNews的报道之后&#xff0c;三星电子的代工部门首席技术官Jung Ki-tae Jung透露了该公司在BSPDN技术开发方面的计划。 BSPDN技术是一项创新技术&#xff0c;旨在更好地利用半导体晶圆背面空间的潜力。虽然该技术尚未在全球范围内实施&#xff0c;但三星电子成为首家公开披…

ApiPost设置全局令牌

为了避免请求接口每次都要请求登录&#xff0c;获取令牌鉴权&#xff0c;我们可以设置全局令牌&#xff08;token&#xff09;&#xff0c;避免处处单独使用令牌&#xff0c;造成环境混乱&#xff0c;使用如下&#xff1a; 接口设置 我们先配置好请求接口和请求参数&#xff0…

QTreeWidget基本属性操作

文章目录 一、背景设置1、添加背景颜色之前与之后的对比1.2背景设置的两种方式 2、边框设置2.1、演示以上参数的实际效果2.1.1、无边框、虚线、实线边框演示2.1.2、边框的3D效果 一、背景设置 1、添加背景颜色之前与之后的对比 1.2背景设置的两种方式 通过QT设计界面中的改变…

基于eBPF技术构建一种应用层网络管控解决方案

引言 随着网络应用的不断发展&#xff0c;在linux系统中对应用层网络管控的需求也日益增加&#xff0c;而传统的iptables、firewalld等工具难以针对应用层进行网络管控。因此需要一种创新的解决方案来提升网络应用的可管理性。 本文将探讨如何使用eBPF技术构建一种应用层网络…

观察者模式 Observer Pattern 《游戏编程模式》学习笔记

定义 观察者模式定义了对象间的一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 这是定义&#xff0c;看不懂就看不懂吧&#xff0c;我接下来举个例子慢慢说 为什么我们需要观察者模式 我们看一个很简…

软件确认测试报告的作用,第三方测试机构进行确认测试的好处

近年来&#xff0c;随着软件产品的不断发展和普及&#xff0c;软件确认测试作为一项重要的质量保障手段也越来越受到关注&#xff0c;主要是为了检测软件产品是否符合需求规格和预期功能&#xff0c;以及是否存在缺陷和问题。对于软件产品开发商来说&#xff0c;进行确认测试是…

未济卦-物不可穷

前言&#xff1a;学无止境&#xff0c;人生没有终点&#xff0c;虽说是六十四卦的最后一卦&#xff0c;仍是“未济”&#xff0c;今天学习未济卦的卦辞和爻辞。 卦辞 亨&#xff1b;小狐汔济&#xff0c;濡其尾&#xff0c;无攸利。 序卦&#xff1a;无不可穷也&#xff0c;故…

计蒜客T1122——最长最短单词

又是一道水题&#xff0c;基本思路是从目标串中根据空格分离出来每一个单词&#xff0c;然后分别找出最大值与最小值&#xff0c;输出即可~ #include <iostream> #include <string> #include <vector> using namespace std;int main(int argc, char** argv)…

车辆维修保养记录接口:数据对接,价格明细表精准展示

随着人们生活水平的提高&#xff0c;私家车越来越多&#xff0c;对车辆的维修保养需求也越来越高。车辆维修保养记录是车主和维修人员都需要关注的重要信息。然而&#xff0c;由于维修保养记录的复杂性和数据量大&#xff0c;人工管理难以胜任&#xff0c;这就需要开发一种接口…

Python源码05:使用Pyecharts画词云图图

**Pyecharts是一个用于生成 Echarts 图表的 Python 库。Echarts 是一个基于 JavaScript 的数据可视化库&#xff0c;提供了丰富的图表类型和交互功能。**通过 Pyecharts&#xff0c;你可以使用 Python 代码生成各种类型的 Echarts 图表&#xff0c;例如折线图、柱状图、饼图、散…

jstat -gcutil 命令使用

jstat -gcutil命令用于监视Java应用程序的垃圾回收情况。它提供了有关堆内存使用情况、垃圾回收器的活动以及垃圾回收的效率的信息。 目录 一、基本语法 二、执行结果 一、基本语法 jstat -gcutil <pid> <interval> <count> 参数解释&#xff1a; <p…

C++11实用技术(四)for循环该怎么写

普通用法 在C遍历stl容器的方法通常是&#xff1a; #include <iostream> #include <vector>int main() {std::vector<int> arr {1, 2, 3};for (auto it arr.begin(); it ! arr.end(); it){std::cout << *it << std::endl;}return 0; }上述代…

科东软件受邀参加第五届国产嵌入式操作系统技术与产业发展论坛

8月12日&#xff0c;第五届国产嵌入式操作系统技术与产业发展论坛暨嵌入式系统联谊会主题讨论会&#xff08;总第29次&#xff09;在杭州成功举行。这次论坛的主题是“面向异构多核智能芯片的混合关键系统研究与应用”&#xff0c;上午是“嵌入式异构多核智能芯片产业发展”的主…

kubernetes企业级高可用部署

目录 1、Kubernetes高可用项目介绍 2、项目架构设计 2.1、项目主机信息 2.2、项目架构图 1、Kubernetes高可用项目介绍 2、项目架构设计 2.1、项目主机信息 2.2、项目架构图 2.3、项目实施思路 3、项目实施过程 3.1、系统初始化 3.2、配置部署keepalived服务 3.3、…

【Redis基础篇】浅谈分布式系统(一)

一、浅谈分布式系统 1. 单机架构&#xff1a;只有一台服务器&#xff0c;这个服务器负责所有的工作。 如果遇到了服务器不够的场景怎么处理? 开源&#xff1a;增加更多的硬件资源节流&#xff1a;软件上的优化&#xff0c;优化代码等…一台服务器资源使用有限&#xff0c;就…

使用Mix-in类组合功能

为什么需要Mix-in? 在学习面向对象时我们知道&#xff0c;类可以通过继承类获得属性和方法&#xff0c;通过继承可以减少重复代码、提高复用率。Python支持多继承&#xff0c;一个类可以通过继承多个类来得到它们的功能。但多继承会带来一些问题&#xff0c;比如属性冲突。那…