目录

一、前言

二、含可再生能源的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.Cost<GlobalBest.CostGlobalBest=particle(i).Best;endendBestCost=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<VarMin | 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).Cost<particle(i).Best.Costparticle(i).Best.Position=particle(i).Position;particle(i).Best.Cost=particle(i).Cost;% Update Global Best更新全局最优if particle(i).Best.Cost<GlobalBest.CostGlobalBest=particle(i).Best;endendendBestCost(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
endfor 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
endfor 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
endfor 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.含随机变量处理的程序结果

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

八、程序链接

程序包括两部分,分别是不含随机变量和包含随机变量处理两个程序代码,可以详细分析两种方法的对比结果,需要的可私信,下面是程序讲解视频!

考虑源荷不确定性的微网经济运行优化matlab

考虑源荷不确定性的微网优化(含matlab程序)相关推荐

  1. 11基于主从博弈理论的共享储能与综合能源微网优化运行研究(MATLAB程序)

    资源地址: 11基于主从博弈理论的共享储能与综合能源微网优化运行研究MATLAB复现程序_冷热电联供系统cplex-电子商务文档类资源-CSDN文库 参考文献: 基于主从博弈理论的共享储能与综合能源微 ...

  2. 电力系统机组调度 考虑了源荷不确定性 考虑源荷两侧不确定性的含风电的低碳调度,引入模糊机会约束,程序包括储能、风光、火电机组及水电机组

    电力系统机组调度 考虑了源荷不确定性 求解:matlab+yalmip+gurobi作为求解器) 内容:考虑源荷两侧不确定性的含风电的低碳调度,引入模糊机会约束,程序包括储能.风光.火电机组及水电机组 ...

  3. Matlab代码 多时间尺度优化调度 MATLAB程序含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度

    Matlab代码 多时间尺度优化调度 MATLAB程序,论文复现<含冰蓄冷空调的冷热电联供型微网多时间尺度优化调度> 是一篇多时间尺度的优化运行程序 有需要的可以先知网阅读一下文章 ID: ...

  4. 综合能源系统优化调度(冷热电联产)的程序matlab、微网优化调度基础学习 综合能源系统

    综合能源系统优化调度(冷热电联产)的程序matlab.微网优化调度基础学习 综合能源系统 采用多目标粒子群算法,求解优化调度模型. 适合刚入门综合能源研究方向(冷热电联供)并想在前人的基础上进行创新的 ...

  5. 基于改进A3C算法的微网优化调度与需求响应管理

    编程语言:python平台 主题:基于改进A3C算法的微网优化调度与需求响应管理 内容简介: 代码主要做的是基于深度强化学习的微网/虚拟电厂优化调度策略研究,微网的聚合单元包括风电机组,储能单元,温控 ...

  6. 程序基于MATLAB yalmip 开发,做了一个简单的微网优化调度模型,模型中含有蓄电池储能、风电、光伏等发电单元,程序运行结果良好

    微网 优化调度 机组组合 YALMIP cplex 编程语言:MATLAB平台 主题:基于YALMIP 的微网优化调度模型 内容简介:程序基于MATLAB yalmip 开发,做了一个简单的微网优化调 ...

  7. 主题:基于主从博弈理论的共享储能与综合能源微网优化运行研究

    关键词:主从博弈:共享储能:优化运行:电热综合需求响应:电网技术复现: 主题:基于主从博弈理论的共享储能与综合能源微网优化运行研究. 提出共享储能背景下微网运营商与用户聚合商间的主从博弈模型,并证明S ...

  8. MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究

    MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究 关键词:主从博弈 共享储能 综合能源微网 优化调度 仿真平台:MATLAB yalmip+cplex 主要内容:代码主要做的是基 ...

  9. 16.基于主从博弈理论的共享储能与综合能源微网优化运行研究

    说明书 MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究 关键词:主从博弈 共享储能 综合能源微网 优化调度 参考文档:<基于主从博弈理论的共享储能与综合能源微网优化运行研 ...

最新文章

  1. Python编程基础:第四十五节 方法链Method Chaining
  2. Java功底之Reference
  3. 【译】Why Decentralized AI Matters Part I: Economics and Enablers
  4. 快速幂算法相关题目(Leetcode题解-Python语言)
  5. Android BroadcastReceiver,广播与进程通讯,APK安装广播,获取已安装列表
  6. nemesis什么车_nemesis是什么意思_nemesis的翻译_音标_读音_用法_例句_爱词霸在线词典...
  7. 贪心法田忌赛马问题Java代码,hdoj 1052 Tian Ji - The Horse Racing【田忌赛马】 【贪心】...
  8. host切换工具、修改HOST不用重启IE
  9. Java流程控制02 选择结构 if结构 switch结构
  10. java线程并发库之--线程阻塞队列ArrayBlockingQueue
  11. Word 统一修改 Mathtype尺寸
  12. Android下最简单的Audio Player
  13. Picsee 1.3.0 (48) 中文版 (可能是最好的图片管理查看工具)
  14. 零件测绘与计算机作图理论试题,浅谈《零部件测绘与cad成图技术》技能竞赛对中职机械制图和cad制图课程整合的影响...
  15. 有关CATIA软件的几个使用技巧
  16. taobao滑动验证码解决方法
  17. 如何保存Win10壁纸
  18. C#练习题答案: 卡塔劳尔【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
  19. 最新版gg服务器框架安装器,GG服务框架安装器
  20. Python自动化生成 word 文档

热门文章

  1. Javaweb安全框架之Shiro基础知识
  2. 集中抄表系统前景分析
  3. Phoenix 数据导入与导出
  4. Filecoin中文白皮书
  5. 还在用 Xshell ?试试这款炫酷的 SSH 终端工具吧,功能很强大!
  6. webservice的WSDL文档详解
  7. 织梦仿产品展示页产品图集调用方法
  8. jsp学习(十一,el表达式)
  9. Android 录屏时的帧率控制
  10. SAP中供应商订单邮件跟踪检查处理实例