高创新!EI论文复现:计及源荷随机特性的综合能源系统/热电联供型微网优化运行程序代码!

本文介绍了使用Matlab、Yalmip和Cplex开发的程序,针对具有随机性的热电联供系统构建机会约束规划优化模型,并采用粒子群优化算法求解。创新点在于处理随机变量的不等式约束和引入随机模拟。程序提供了多种运行方式,旨在实现微源动态经济调度并降低成本。
摘要由CSDN通过智能技术生成

适用平台:Matlab+Yalmip+Cplex

程序针对由风光机组、燃料/光伏电池、余热锅炉、燃气锅炉、蓄电池以及电/热负荷构成的热电联供型微网/综合能源系统,考虑风电、光伏功率以及热、电负荷的随机性,应用机会约束规划理论建立经济运行优化模型,并提出一种基于随机模拟技术的粒子群优化算法求解模型。程序中算例丰富、注释清晰、干货满满,可扩展性和创新性很高!下面对文章和程序做简要介绍!

程序创新点:

1对含有随机变量的不等式约束,以概率的形式进行描述,使其能够在一定的置信水平下成立,根据系统实际的运行要求设置置信水平;

2)在粒子群优化方法中引入随机模拟,即Monte Carlo模拟,从而为系统决策提供依据或对系统决策进行检验;

主要工作:

热电联供系统具有节能、环保、经济等特点,有着良好的发展前景和应用价值。文中针对由风电机组、光伏电池,燃料电池,余热锅炉,燃气锅炉,蓄电池以及热电负荷构成的热电联供型微网系统,考虑风电、光伏功率以及热电负荷的随机性,应用机会约束规划理论建立经济运行优化模型,并提出一种基于随机模拟技术的粒子群优化算法求解模型,根据不同的微源配置,对系统的运行方案进行优化。实例分析结果表明,所提出的方法可以提供微源优化配置建议,实现微源动态经济调度,有效降低系统运行费用。

(1)机会约束规划(CCP)理论

CCP主要针对约束条件中含有随机变量,且必须在观测到随机变量的实现之前作出决策的情况。考虑到所作决策在不利的情况发生时可能不满足约束条件而采取一种原则:允许所作决策在一定程度上不满足约束条件,但是该决策应该使约束条件成立的概率不小于某一置信水平。

(2)含随机变量的约束条件出力方法

与传统的优化方法不同,由于风电,光伏功率以及热电负荷具有随机性,某些约束条件不再具有确定性。本文根据CCP理论建立模型,对含有随机变量的不等式约束,以概率的形式进行描述,使其能够在一定的置信水平下成立。

文中共有4中运行方式,在目标函数中将该设备成本函数增减即可!复现时考虑了确定性模型和考虑随机约束模型,分析利用机会约束规划理论建立模型的方法,给出常规粒子群和含CCP理论的粒子群算法区别,对比明显!

程序结果:

线性模型结果:

含随机变量结果:

部分程序:

%% 粒子参数​
CostFunction=@(x) CostFun(x); ​ % 成本函数
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
% 容量限制​
VelMax=0.1*(VarMax-VarMin);​VelMin=-VelMax;
%% 初始种群​
empty_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
​% 初始位置
​particle(i).Position=unifrnd(VarMin,VarMax,VarSize);%随机初始化变量
​% 初始容量
​particle(i).Velocity=zeros(VarSize);%速度
​% 计算
​ particle(i).Cost=CostFunction(particle(i).Position);%目标
 ​% 更新最优位置
 ​particle(i).Best.Position=particle(i).Position;%更新个体最优
 particle(i).Best.Cost=particle(i).Cost;​
 ​%更新全局最优
 ​if particle(i).Best.Cost<GlobalBest.Cost        
 GlobalBest=particle(i).Best;  ​BestCost=zeros(MaxIt,1);
%% 粒子群主循环​
​for it=1:MaxIt 
for i=1:nPop​       
​% 更新速度
​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);        
​% 速度约束
​particle(i).Velocity = max(particle(i).Velocity,VelMin);
particle(i).Velocity = min(particle(i).Velocity,VelMax);​ 
​% 更新位置
particle(i).Position = particle(i).Position + particle(i).Velocity;​
​% 变量越限镜像处理
​IsOutside=(particle(i).Position<VarMin | particle(i).Position>VarMax);
particle(i).Velocity(IsOutside)=-particle(i).Velocity(IsOutside);​
​% 变量越限处理
​particle(i).Position = max(particle(i).Position,VarMin);
particle(i).Position = min(particle(i).Position,VarMax);​
​% 新目标
​particle(i).Cost = CostFunction(particle(i).Position);

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴点击关注获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值