含电热联合系统的微电网运行优化附Matlab代码

2024-02-11 09:59

本文主要是介绍含电热联合系统的微电网运行优化附Matlab代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

在当前能源互联网迅速发展及电热联系日渐紧密的环境下,提出基于电热联合调度的区域并网型微电网运行优化模型.综合网内储能特性,分时电价,电热负荷与分布式电源的时序特征,以包含风机,光伏电池,热电联产系统,电锅炉,燃料电池和储能系统的并网型微电网为例,采用Cplex优化软件求得调度周期内各微电源最佳出力及总运行成本,并与两种常见电热调度方式进行比较.仿真算例表明:联合调度模型能实现电热统一协调调度并降低微电网运行成本.该模型可为电热之间能源互联及规划运营提供参考.

⛄ 部分代码

function f = initialize_variables(N, M, V, min_range, max_range, time, Zall, ComC0)

min = min_range;

max = max_range;

% K is the total number of array elements. For ease of computation decision

% variables and objective functions are concatenated to form a single

% array. For crossover and mutation only the decision variables are used

% while for selection, only the objective variable are utilized.

number_of_decision_variables.c =  V(1,1);

number_of_decision_variables.t =  V(2,1);

K = M + 2 * V(1,1) + 2 * V(2,1);

StepComC = 1; %变量的离散化

StepT1 = 0.025;

StepT2 = 0.025;

%% Initialize each chromosome

% For each chromosome perform the following (N is the population size)

for i = 1 : N

     for j= 1 : number_of_decision_variables.c

              f(i,j) = min.c(j,1) + (max.c(j,1) - min.c(j,1))*rand(1);

              f(i,j + number_of_decision_variables.c) = min.c(j,2) + (max.c(j,2) - min.c(j,2))*rand(1);

           %f(i,j)离散化

              ComCC(j)= f(i,j);

                ComCC1(j) = abs(ComCC(j)) / StepComC;

                %Tap1 = Tap ./ StepTap;

                ComCC2(j) = fix(ComCC1(j)); %商

                ComCC3(j) = abs(ComCC(j)) - ComCC2(j) * StepComC;%余

                ComCC2(j) =  ComCC2(j) *  StepComC;

                %Tap = Tap1 - fix(Tap1);

                if ComCC3(j) > (StepComC / 2)

                  ComCC3(j) = StepComC - ComCC3(j);

                  ComCC2(j) = ComCC2(j) + StepComC;

                end

               if f(i,j)>0

                f(i,j) = ComCC2(j);

               else

                f(i,j) = - ComCC2(j); 

               end

           %检验f(i,j)中无重复    

               pf(1,:) = f(i,1:number_of_decision_variables.c);

               for w = 1 : number_of_decision_variables.c

                   for ww =  (w + 1) : number_of_decision_variables.c

                       while f(i,w) == pf(1,ww)

                             f(i,w) = min.c(j,1) + (max.c(j,1) - min.c(j,1))*rand(1);

                             ComCC(j)= f(i,w);

                             ComCC1(j) = abs(ComCC(j)) / StepComC;

                            %Tap1 = Tap ./ StepTap;

                            ComCC2(j) = fix(ComCC1(j)); %商

                            ComCC3(j) = abs(ComCC(j)) - ComCC2(j) * StepComC;%余

                            ComCC2(j) =  ComCC2(j) *  StepComC;

                            %Tap = Tap1 - fix(Tap1);

                        if ComCC3(j) > (StepComC / 2)

                            ComCC3(j) = StepComC - ComCC3(j);

                            ComCC2(j) = ComCC2(j) + StepComC;

                        end

                         if f(i,w)>0

                          f(i,w) = ComCC2(j);

                         else

                          f(i,w) = - ComCC2(j); 

                         end

                       end

                    end

               end             

               %f(i,j + number_of_decision_variables)离散化

                 ComCC(j)= f(i,j + number_of_decision_variables.c);

                ComCC1(j) = abs(ComCC(j)) / StepComC;

                %Tap1 = Tap ./ StepTap;

                ComCC2(j) = fix(ComCC1(j)); %商

                ComCC3(j) = abs(ComCC(j)) - ComCC2(j) * StepComC;%余

                ComCC2(j) =  ComCC2(j) *  StepComC;

                %Tap = Tap1 - fix(Tap1);

                if ComCC3(j) > (StepComC / 2)

                  ComCC3(j) = StepComC - ComCC3(j);

                  ComCC2(j) = ComCC2(j) + StepComC;

                end

               if f(i,j + number_of_decision_variables.c)>0

                f(i,j + number_of_decision_variables.c) = ComCC2(j);

               else

                f(i,j + number_of_decision_variables.c) = - ComCC2(j); 

               end

     end 

     

    for j= 1 : number_of_decision_variables.t

              f(i,j + 2 * V(1,1)) = min.t(j,1) + (max.t(j,1) - min.t(j,1))*rand(1);

              f(i,j + 2 * V(1,1) + number_of_decision_variables.t) = min.t(j,2) + (max.t(j,2) - min.t(j,2))*rand(1);

           %f(i,j)离散化

              ComCC(j)= f(i,j + 2 * V(1,1));

                ComCC1(j) = abs(ComCC(j)) / StepT1;

                %Tap1 = Tap ./ StepTap;

                ComCC2(j) = fix(ComCC1(j)); %商

                ComCC3(j) = abs(ComCC(j)) - ComCC2(j) * StepT1;%余

                ComCC2(j) =  ComCC2(j) *  StepT1;

                %Tap = Tap1 - fix(Tap1);

                if ComCC3(j) > (StepT1 / 2)

                  ComCC3(j) = StepT1 - ComCC3(j);

                  ComCC2(j) = ComCC2(j) + StepT1;

                end

               if f(i,j)>0

                f(i,j + 2 * V(1,1)) = ComCC2(j);

               else

                f(i,j + 2 * V(1,1)) = - ComCC2(j); 

               end                 

               %f(i,j + 2 * V(1,1) + number_of_decision_variables)离散化

                 ComCC(j)= f(i,j + 2 * V(1,1) + number_of_decision_variables.t);

                ComCC1(j) = abs(ComCC(j)) / StepT2;

                %Tap1 = Tap ./ StepTap;

                ComCC2(j) = fix(ComCC1(j)); %商

                ComCC3(j) = abs(ComCC(j)) - ComCC2(j) * StepT2;%余

                ComCC2(j) =  ComCC2(j) *  StepT2;

                %Tap = Tap1 - fix(Tap1);

                if ComCC3(j) > (StepT2 / 2)

                  ComCC3(j) = StepT2 - ComCC3(j);

                  ComCC2(j) = ComCC2(j) + StepT2;

                end

               if f(i,j + 2 * V(1,1) + number_of_decision_variables.t)>0

                f(i,j + 2 * V(1,1) + number_of_decision_variables.t) = ComCC2(j);

               else

                f(i,j + 2 * V(1,1) + number_of_decision_variables.t) = - ComCC2(j); 

               end              

    end    

         f(i, 2 * V(1,1) + 2 * V(2,1) + 1 : K) = evaluate_objective(f(i,:),M ,V ,time, Zall, ComC0);

end

⛄ 运行结果

⛄ 参考文献

[1]李正茂, 张峰, 梁军,等. 含电热联合系统的微电网运行优化[J]. 中国电机工程学报, 2015, 35(14):3569-3576.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

这篇关于含电热联合系统的微电网运行优化附Matlab代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/699502

相关文章

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

MySQL多实例管理如何在一台主机上运行多个mysql

《MySQL多实例管理如何在一台主机上运行多个mysql》文章详解了在Linux主机上通过二进制方式安装MySQL多实例的步骤,涵盖端口配置、数据目录准备、初始化与启动流程,以及排错方法,适用于构建读... 目录一、什么是mysql多实例二、二进制方式安装MySQL1.获取二进制代码包2.安装基础依赖3.清

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

在IntelliJ IDEA中高效运行与调试Spring Boot项目的实战步骤

《在IntelliJIDEA中高效运行与调试SpringBoot项目的实战步骤》本章详解SpringBoot项目导入IntelliJIDEA的流程,教授运行与调试技巧,包括断点设置与变量查看,奠定... 目录引言:为良驹配上好鞍一、为何选择IntelliJ IDEA?二、实战:导入并运行你的第一个项目步骤1

Python实现MQTT通信的示例代码

《Python实现MQTT通信的示例代码》本文主要介绍了Python实现MQTT通信的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 安装paho-mqtt库‌2. 搭建MQTT代理服务器(Broker)‌‌3. pytho

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并