Matlab|用于平抑可再生能源功率波动的储能电站建模及评价

目录

主要内容

模型研究

1.目标函数

2.约束条件

部分代码

结果一览

1.储能平抑风电功率

2.储能平抑风电和光伏功率

下载链接


主要内容

程序参考文献《用于平抑可再生能源功率波动的储能电站建模及评价》,针对风电和光伏分布式能源出力波动的问题,提出采用储能平抑功率波动模型,通过储能电站充放电控制来优化整体功率波动,以相邻时段功率差的平方和作为目标函数,通过动态规划实现功率的平稳波动目标。除此之外,程序附带光伏和风电场景生成和缩减代码,利用蒙特卡洛生成多种场景,通过基于概率距离的快速前代消除技术进行场景削减。程序采用matlab+yalmip编写,注释非常清楚,方便研究学习!

模型研究

1.目标函数

程序以相邻时刻功率差值的平方和作为目标函数,显而易见,在储能的参与下,相邻功率差距越小,整体的目标函数就越小,​功率的平稳性就体现出来了。

2.约束条件

储能电站既要考虑功率上下限约束,还要考虑soc约束,​具体约束可以参考如下公式:

部分代码

复制代码
%% 输入数据
wtpv=xlsread('pvwt.xlsx');
wt=2*wtpv(:,2);
pv=2*wtpv(:,3);
%% 定义储能参数
gescmax=2;%充电功率上限
gesdmax=2;%放电功率上限
sessmax=10;%蓄电量上限
sessmin=0;%蓄电量最小值
uesc=0.95;%充电效率
uesd=0.95;%放电效率
​
%% 定义变量
gesc=sdpvar(1,120);%储能充电功率
gesd=sdpvar(1,120);%储能放电功率
sess=sdpvar(1,120);%蓄电池蓄电量
pdyn=sdpvar(1,120);%功率波动
pplan=sdpvar(1,120);%计划功率
pobj1=sdpvar(1,120);%第一种平抑方法目标函数
pobj2=sdpvar(1,120);%第二种平抑方法目标函数
%% 约束
%% 约束条件
C=[];%初始化约束
%% 储能约束
for t=1:120
    C=[C,
        0<=gesc(t)<=gescmax,%充电功率约束
        0<=gesd(t)<=gesdmax,%放电功率约束
        0<=sess(t)<=sessmax,%蓄电量约束
        gesc(t)*gesd(t)<=0,%该约束保证充放电不同同时进行,论文里可能没考虑这个,如果不考虑则不符合实际
        ];
end
​
C=[C,sess(1)==0.2*gesc(1)*uesc-0.2*gesd(1)/uesd];%初始蓄电量约束
​
for t=2:120
    C=[C,
       sess(t)==sess(t-1)+gesc(t)*uesc*0.2-0.2*gesd(t)/uesd,%蓄电量等式约束
       ];
end

结果一览

1.储能平抑风电功率

2.储能平抑风电和光伏功率

下载链接

相关推荐
汉克老师28 分钟前
GESP6级C++考试语法知识(五十三、动态规划----背包问题(六、分组背包)
c++·动态规划·背包问题·gesp6级·gesp六级·分组背
8Qi82 小时前
LeetCode 337:打家劫舍 III(House Robber III)—— 题解 ✅
算法·leetcode·二叉树·动态规划
8Qi82 小时前
LeetCode 121 & 122:股票买卖问题(DP 对比题解)✅
算法·leetcode·职场和发展·动态规划
菜菜的顾清寒3 小时前
力扣HOT(100)54多维动态规划-最长公共子序列
算法·leetcode·动态规划
珊瑚里的鱼4 小时前
【动态规划】按摩师
算法·动态规划
落羽的落羽5 小时前
【项目】JsonRpc框架——开发实现2(业务层)
linux·数据结构·c++·人工智能·算法·json·动态规划
8Qi85 小时前
LeetCode 198:打家劫舍(House Robber)—— 题解 ✅
算法·leetcode·动态规划
8Qi816 小时前
LeetCode 494:目标和(Target Sum)—— 题解 ✅
算法·leetcode·职场和发展·动态规划·01背包
珊瑚里的鱼17 小时前
【动态规划】打家劫舍Ⅱ
算法·动态规划
随意起个昵称20 小时前
线性dp-LIS题目2(导弹拦截III)
算法·动态规划·图论