含电热联合系统的微电网运行优化附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

相关文章

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Java中Map.Entry()含义及方法使用代码

《Java中Map.Entry()含义及方法使用代码》:本文主要介绍Java中Map.Entry()含义及方法使用的相关资料,Map.Entry是Java中Map的静态内部接口,用于表示键值对,其... 目录前言 Map.Entry作用核心方法常见使用场景1. 遍历 Map 的所有键值对2. 直接修改 Ma

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

深入解析 Java Future 类及代码示例

《深入解析JavaFuture类及代码示例》JavaFuture是java.util.concurrent包中用于表示异步计算结果的核心接口,下面给大家介绍JavaFuture类及实例代码,感兴... 目录一、Future 类概述二、核心工作机制代码示例执行流程2. 状态机模型3. 核心方法解析行为总结:三

Java -jar命令如何运行外部依赖JAR包

《Java-jar命令如何运行外部依赖JAR包》在Java应用部署中,java-jar命令是启动可执行JAR包的标准方式,但当应用需要依赖外部JAR文件时,直接使用java-jar会面临类加载困... 目录引言:外部依赖JAR的必要性一、问题本质:类加载机制的限制1. Java -jar的默认行为2. 类加

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pandas实现数据concat拼接的示例代码

《pandas实现数据concat拼接的示例代码》pandas.concat用于合并DataFrame或Series,本文主要介绍了pandas实现数据concat拼接的示例代码,具有一定的参考价值,... 目录语法示例:使用pandas.concat合并数据默认的concat:参数axis=0,join=

java -jar命令运行 jar包时运行外部依赖jar包的场景分析

《java-jar命令运行jar包时运行外部依赖jar包的场景分析》:本文主要介绍java-jar命令运行jar包时运行外部依赖jar包的场景分析,本文给大家介绍的非常详细,对大家的学习或工作... 目录Java -jar命令运行 jar包时如何运行外部依赖jar包场景:解决:方法一、启动参数添加: -Xb

C#代码实现解析WTGPS和BD数据

《C#代码实现解析WTGPS和BD数据》在现代的导航与定位应用中,准确解析GPS和北斗(BD)等卫星定位数据至关重要,本文将使用C#语言实现解析WTGPS和BD数据,需要的可以了解下... 目录一、代码结构概览1. 核心解析方法2. 位置信息解析3. 经纬度转换方法4. 日期和时间戳解析5. 辅助方法二、L