考虑源荷随机特征的热电联供微网优化(含matlab程序)

目录

一、前言

二、含可再生能源的CHP型微网系统

三、CCP理论

四、具体模型

五、不含随机变量分析的matlab程序设计

1.粒子群寻优功能代码段

2.目标函数子程序

3.其他代码段

六、基于CCP的粒子群优化程序

1.含随机变量的约束条件处理

2.随机变量生成

 3.置信水平检验部分

七、程序结果

1.不含随机变量的程序结果

2.含随机变量处理的程序结果

八、程序下载链接 


一、前言

在常规的电热微网优化中,可以得到蓄电池、外网交互、燃料电池、余热锅炉等设备的功率,但是常规模型已经比较基础了,在发文章或者做毕业论文的时候用太初级,工作量和深度难以满足要求,因此可以考虑不确定变量的鲁棒性、考虑机会约束等,本文用王锐的《含可再生能源的热电联供型微网经济运行优化》为例,分析机会约束规划理论建立模型和编程方法,同时给出常规粒子群PSO和基于CCP理论的粒子群算法上面的区别。

二、含可再生能源的CHP型微网系统

三、CCP理论

四、具体模型

具体模型不在此赘述了,可以详见文献资料。

五、不含随机变量分析的matlab程序设计

1.粒子群寻优功能代码段

function [ bestPosition, fitValue ] = ...
PSOFUN( CostFun,nVar,VarMin,VarMax,MaxIt,nPop )
%% PSO Parameters 
CostFunction=@(x) CostFun(x);        % Cost Function
w=1;            % Inertia Weight
wdamp=0.99;     % Inertia Weight Damping Ratio
c1=1.5;         % Personal Learning Coefficient
c2=2.0;         % Global Learning Coefficient
VarSize=[1 nVar];   % Size of Decision Variables Matrix
% Velocity Limits
VelMax=0.1*(VarMax-VarMin);
VelMin=-VelMax;%% Initializationempty_particle.Position=[];
empty_particle.Cost=[];
empty_particle.Velocity=[];
empty_particle.Best.Position=[];
empty_particle.Best.Cost=[];particle=repmat(empty_particle,nPop,1);GlobalBest.Cost=inf;for i=1:nPop% Initialize Positionparticle(i).Position=unifrnd(VarMin,VarMax,VarSize);%随机初始化变量% Initialize Velocityparticle(i).Velocity=zeros(VarSize);%速度% Evaluationparticle(i).Cost=CostFunction(particle(i).Position);%目标% Update Personal Bestparticle(i).Best.Position=particle(i).Position;%更新个体最优particle(i).Best.Cost=particle(i).Cost;% Update Global Best%更新全局最优if particle(i).Best.CostendendBestCost=zeros(MaxIt,1);%% PSO Main Loopfor it=1:MaxItfor i=1:nPop% Update Velocity更新速度particle(i).Velocity = w*particle(i).Velocity ...+c1*rand(VarSize).*(particle(i).Best.Position-particle(i).Position) ...+c2*rand(VarSize).*(GlobalBest.Position-particle(i).Position);% Apply Velocity Limits速度约束particle(i).Velocity = max(particle(i).Velocity,VelMin);particle(i).Velocity = min(particle(i).Velocity,VelMax);% Update Position更新位置particle(i).Position = particle(i).Position + particle(i).Velocity;% Velocity Mirror Effect变量越限镜像处理IsOutside=(particle(i).Position| particle(i).Position>VarMax);particle(i).Velocity(IsOutside)=-particle(i).Velocity(IsOutside);% Apply Position Limits%变量越限处理particle(i).Position = max(particle(i).Position,VarMin);particle(i).Position = min(particle(i).Position,VarMax);% Evaluation新目标particle(i).Cost = CostFunction(particle(i).Position);% Update Personal Bestif particle(i).Costif particle(i).Best.CostendendendBestCost(it)=GlobalBest.Cost;disp(['Iteration ' num2str(it) ': Best Cost = ' num2str(BestCost(it))]);w=w*wdamp;endbestPosition = GlobalBest.Position;%记录最优位置
fitValue = GlobalBest.Cost;%记录最优目标结果end

 粒子群代码部分主要是实现初始粒子设置和迭代寻优功能,采用结构型变量实现简约、利于理解的代码功能,且注释比较清晰,方便学习!

2.目标函数子程序

function fun = fun_objective(x)
%% 准备工作 
parameter; %输入所有的数据 
% 各个决策变量的含义 
Pfl = x(1:24);      % 燃料电池出力 
Pbt = x(25:48);  % 蓄电池出力 
Pex = x(49:72); % 交互功率
Pgb = x(73:96); % 锅炉出力
fun =0; 
%% 书写目标函数
for t=1:24fun = fun + 1/2*(Cph+Cse)*Pex(t) + 1/2*(Cph-Cse)*abs( Pex(t) ) ...+ Cgas*(Pfl(t)/eta_fl+ Pgb(t)/eta_gb ) + Pfl(t)*Cfl_om + ...Pfl(t)*r_fl*eta_hrbl*Cbl_om + abs(Pbt(t))*Cbt_om+ ...Pgb(t)*Cgb_om + Pwt(t)*Cwt_om + Ppv(t)*Cpv_om;
end
%% 书写约束
% ******************* 等式约束****************************
h=[];
for t=1:24 % (1) 电能平衡约束if Pbt(t)<=0h = [h, Pex(t)+Pfl(t)+Pwt(t)+Ppv(t)+Pbt(t)/eta_ch-Pel(t) ]; %=0elseh = [h, Pex(t)+Pfl(t)+Pwt(t)+Ppv(t)+Pbt(t)*eta_dis-Pel(t) ]; %=0end
end
for t=1:24 % (2) 热能平衡约束h = [h, Pgb(t)+Pfl(t)*r_fl*eta_hrbl-Pth(t) ]; %=0
end% (3) 电池储能初始和最终状态相等约束h = [h, sum(Pbt) ]; %=0
% ******************* 不等式约束 ***************************
g=[];
for t=2:24 % (1) 燃料电池爬坡约束g=[g, Pfl(t)-Pfl(t-1)-deltaP_up] ; % <=0    g=[g, -( Pfl(t)-Pfl(t-1)-deltaP_down ) ] ; % <=0    
end
for t=1:24 % (2) 余热锅炉约束g=[g, Pfl(t)*r_fl*eta_hrbl-Pbl_max ] ; % <=0    g=[g, - ( Pfl(t)*r_fl*eta_hrbl-Pbl_min ) ] ; % <=0    
end
for t=1:24 % (3) 蓄电池约束g=[g, Wbt_init-sum(Pbt(1:t))-Wbt_max  ] ; % <=0    g=[g, -( Wbt_init-sum(Pbt(1:t))-Wbt_min )  ] ; % <=0    
end
%**********************罚函数处理*************************
Big=100000;
small=0.01;
N=length(g);
M=length(h);
G=0;
for n=1:NG=G+max(0, g(n))^2;
end
H=0;
for m=1:MH=H+max(  0, abs(h(m))-small  )^2;
end
%*******************加入罚函数后的目标函数******************
fun=fun+Big*(H+G);
end

目标函数代码完美复刻了文献中的目标函数和约束条件,约束部分采用清晰简明的等式和不等式部分,方便理解,采用罚函数的形式形成最终目标函数值。

3.其他代码段

其他主要就是主函数调用和参数定义代码段,由于功能性单一,在此不再列出,可以通过评论区链接进行购买下载。

六、基于CCP的粒子群优化程序

1.含随机变量的约束条件处理

%等式约束随机变量处理
Pex = Pel - Pfl - max(Pbt,0)*eta_dis - min(Pbt,0)/eta_ch - Pwt - Ppv;
Pgb = Pth - Pfl*r_fl*eta_hrbl

2.随机变量生成

考虑源荷的随机特征,具体参数如下:

for i=1:24%风电、光伏服从预测值为均值,0.1为方差的均匀分布Pwtmax(i)=Pwt(i)+1.2^0.5/2;Pwtmin(i)=Pwt(i)-1.2^0.5/2;Ppvmax(i)=Ppv(i)+1.2^0.5/2;Ppvmin(i)=Ppv(i)-1.2^0.5/2;%热电负荷服从预测值偏差+-10%的均匀分布Pelmax(i)=1.1*Pel(i);Pelmin(i)=0.9*Pel(i);Pthmax(i)=1.1*Pth(i);Pthmin(i)=0.9*Pth(i);%形成新的随机变量Pwt1(i)=Pwtmin(i)+(Pwtmax(i)-Pwtmin(i))*rand;Ppv1(i)=Ppvmin(i)+(Ppvmax(i)-Ppvmin(i))*rand;Pel1(i)=Pelmin(i)+(Pelmax(i)-Pelmin(i))*rand;Pth1(i)=Pthmin(i)+(Pthmax(i)-Pthmin(i))*rand;
end

 3.置信水平检验部分

该部分程序可详见评论区程序链接。

七、程序结果

1.不含随机变量的程序结果

2.含随机变量处理的程序结果

通过结果能够看出,该方法实现了所有约束,优化效果均较好。 

八、程序下载链接 

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

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

相关文章

知识点回顾梳理之Linux常用指令

文章目录 &#x1f412;个人主页&#xff1a;信计2102罗铠威&#x1f3c5;JavaEE系列专栏&#x1f4d6;前言&#xff1a; &#x1f380;点击这里&#xff1a;Linux命令大全入口&#x1f380;Linux的目录结构&#x1f415;文件作用&#x1fa80;Linux常用命令&#x1f380;关机 …

在IDE中配置tomcat服务器

目录 一、新建一个java项目二、添加web框架三、配置tomcat服务器四、运行访问发布的项目 前言&#xff1a;在 IntelliJ IDEA 中配置 Tomcat 服务器是 Java Web 开发的基础步骤&#xff0c;以下是如何在 IDEA 中设置 Tomcat 并部署 Web 项目的简要指南。 一、新建一个java项目 新…

[蓝桥杯]-最大的通过数-CPP-二分查找、前缀和

目录 一、题目描述&#xff1a; 二、整体思路&#xff1a; 三、代码&#xff1a; 一、题目描述&#xff1a; 二、整体思路&#xff1a; 首先要知道不是他们同时选择序号一样的关卡通关&#xff0c;而是两人同时进行两个入口闯关。就是说两条通道存在相同关卡编号的的关卡被通…

大一专科,物联网专业,变态成长偏方!

最近看到一个大一&#xff0c;物联网专业的学生提问&#xff1a; 印象中&#xff0c;物联网专业2011年才有的&#xff0c;正好是我毕业那年。 我大概看过物联网专业要学的内容&#xff0c;总结下来就是&#xff0c;比软件不如计算机&#xff0c;比硬件知识不如电子。 不知道老师…

3.15作业

什么是IP地址&#xff1a;IP地址的作用是在网络中唯一标识和定位设备 IP地址和MAC地址的区别&#xff1a;IP地址是逻辑地址&#xff0c;网络层标识设备&#xff0c;可以更改&#xff0c;是全球互联网的唯 一 标识 MAC地址是物…

已解决:android SDK安装时点击SDK Manager出现闪退

1、首先确保电脑里边安装了JDK&#xff0c;并且要把安装路径配置在环境变量里边&#xff0c;避免使用绝对路径 推荐%JAVA_HOME%\bin 2、在C:\Users\huanhuan\Desktop\android-sdk-windows\tools路径下找到android.bat文件打开&#xff0c;把set java_exe后改为jdk中java.exe的路…

Day40-45 网络高级(modbus)

文章目录 Modbus起源1.起源&#xff1a;2.分类&#xff1a;3.优势&#xff1a;4.应用场景&#xff1a;5.ModbusTCP特点&#xff1a; Modbus TCP协议格式1.报文头2.寄存器3.功能码 工具软件使用.Modbus Slave&Poll2.网络调试助手.Wireshark的使用 Modbus RTU1、与Modbus TCP…

Google Play上架:谷歌支付政策变更

目录 政策发布时间概括内容付款政策变动内容归纳google付款用户政策政策发布时间 2024 年 3 月 6 日 概括内容 为遵守《数字市场法案》(DMA) 的规定,从 2024 年 3 月 6 日起,我们将更新付款政策,允许开发者将欧洲经济区 (EEA) 的用户引导至其应用之外的平台(包括推广应用…

YUNBE云贝-PostgreSQL Vacuum详解:深入理解与实践

引言 PostgreSQL作为一款功能强大、开源的关系型数据库管理系统&#xff0c;其性能优化机制中&#xff0c;“VACUUM”命令扮演着至关重要的角色。本文将对PostgreSQL的VACUUM操作进行全面解析&#xff0c;探讨其工作原理、类型以及如何在实际环境中合理应用。 一、VACUUM基础概…

视频监控汇聚管理系统EasyCVR平台RTMP推流异常是什么原因?

AI视频智能分析/视频监控管理平台EasyCVR能在复杂的网络环境中&#xff08;专网、内网、局域网、广域网、公网等&#xff09;&#xff0c;支持设备通过4G、5G、WIFI、有线等方式接入&#xff0c;并将设备进行统一集中接入与视频汇聚管理&#xff0c;经平台接入的视频流能实现多…

无人机自动返航算法部署与飞行控制实践

一、环境准备 无人机硬件&#xff1a;确保你有一台支持自定义飞行控制的无人机&#xff0c;通常配备有Pixhawk或其他类似的飞行控制器。 地面站软件&#xff1a;安装如Mission Planner或QGroundControl等地面站软件&#xff0c;用于配置无人机参数和上传飞行控制代码。 编程环…

基于Python flask 的豆瓣电影排行榜,豆瓣电影评分可视化,豆瓣电影评分预测系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、Python技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&…

1+x中级题目练习复盘(四)

顺序存储较链式存储节省空间、查找性能高、插入和删除性能低。 <ALL表示小于最小 大于ANY表示大于最小值 LEFT OUTER JOIN 等同于LEFT JOIN INNER 和OUTER 不能同时出现 Before注解的方法在每个测试方法执行之前都要执行一次 一个Lambda表达式由以下三部分组…

什么软件可以剪辑录音?录音剪辑推荐3款工具

随着数字技术的发展&#xff0c;录音已经成为我们日常生活和工作中不可或缺的一部分。无论是会议记录、课堂笔记&#xff0c;还是音乐创作、语音聊天&#xff0c;我们都需要用到录音功能。然而&#xff0c;单纯的录音往往不能满足我们的需求&#xff0c;我们还需要对录音进行剪…

cesium-可视化区域分析

全部代码 <template><div id="cesiumContainer" style="height: 100vh;"></div><div id="toolbar" style="position: fixed;top:20px;left:220px;"><el-breadcrumb :separator-icon="ArrowRight&quo…

外卖小程序-购物车模块表结构设计和后端代码

表结构设计 添加购物车代码 Service public class ShoppingCartServiceImpl implements ShoppingCartService {Autowiredprivate ShoppingCartMapper shoppingCartMapper;Autowiredprivate DishMapper dishMapper;Autowiredprivate SetmealMapper setmealMapper;/*** 添加购物…

【C#】KeyDown事件不被触发的问题。

在c#的winform工程中&#xff0c;可能会遇到创建了一个对话框&#xff0c;该对话框内包含了控件作为这个对话框的一部分。软件运行时&#xff0c;键盘输入按键&#xff0c;却没有办法触发对话框的KeyDown事件。是不是很奇怪呢&#xff1f; 首先要明白&#xff1a;主对话…

MySQL--执行一条 select 语句,期间发生了什么?

执行一条 SQL 查询语句&#xff0c;期间发生了什么&#xff1f; 连接器&#xff1a;建立连接&#xff0c;管理连接、校验用户身份&#xff1b;查询缓存&#xff1a;查询语句如果命中查询缓存则直接返回&#xff0c;否则继续往下执行。MySQL 8.0 已删除该模块&#xff1b;解析 …

Vue.js+SpringBoot开发APK检测管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 开放平台模块2.3 软件档案模块2.4 软件检测模块2.5 软件举报模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 开放平台表3.2.2 软件档案表3.2.3 软件检测表3.2.4 软件举报表 四、系统展示五、核心代…