论文复现:风电、光伏与抽水蓄能电站互补调度运行(MATLAB-Yalmip全代码)

论文复现:风电、光伏与抽水蓄能电站互补调度运行(MATLAB-Yalmip全代码)

针对风电、光伏与抽水蓄能站互补运行的问题,已有大量通过启发式算法寻优的案例,但工程上更注重实用性和普适性。Yalmip工具箱则是一种基于MATLAB平台的优化软件工具箱,被广泛应用于工程界优化问题和控制理论问题求解,求解结果非常稳定。本文复现了论文中涉及的风-光-抽水蓄能经济运行代码,并提供模型说明(目标函数、约束条件)和能源套利调度策略。
参考论文:风-水电联合优化运行分析[J].太阳能学报,2008(01):80-84;风-光-水-火-抽蓄联合发电系统日前优化调度研究[J].太阳能学报,2020,41( 8) : 79-85.

订阅专栏可查看全代码。

1、风-光-抽水蓄能经济运行模型

1.1 目标函数

抽水蓄能电站作为能量型储能,在联合系统发电高峰期抽水,储存电能;在发电低谷期放水,发出电能。考虑弃电和缺电惩罚,利用分时电价的电价差,通过能源套利获利,实现互补调度系统收益最大化:
在这里插入图片描述

其中,C为分时电价,Pw/Ppv/Ph/Pp为风/光/抽水蓄能发电/抽水蓄能抽水功率,Fqd/Fqk为弃电惩罚和缺电惩罚。

1.2 约束条件

1.2.1 系统功率平衡

在这里插入图片描述
其中,PL为系统负荷。

1.2.2 发电功率限制约束

在这里插入图片描述

1.2.3 抽水功率限制约束

在这里插入图片描述

1.2.4 水库储能量约束

储能量不能超出范围
在这里插入图片描述

1.2.5 风/光出力限制约束

风光出力小于预测出力
在这里插入图片描述
在这里插入图片描述

1.2.6 工况限制约束

抽水-发电不可同时进行
在这里插入图片描述

2、实现步骤

2.1 环境准备:下载、安装Yalmip工具箱

参见本专栏文章:Yalmip工具箱下载及使用说明

2.2 主函数

clc
clear all
close all
%% 抽蓄-风-光优化模型参数设置
P_v=[196,218,243,237,243,187,191,172,193,243,295,321,341,286,293,273,281,303,229,240,213,216,221,202];
P_pv1=[0,0,0,0,0,0,0,0,44,93,143,161,174,191,193,176,125,51,36,0,0,0,0,0];
P_load=[498,460,461,429,435,442,467,480,494,543,569,583,572,582,590,592,580,628,596,576,618,619,578,543];

n = 24;                  % 一天时长
[C,C_p]=price(n);        % 确定分时电价,调用price函数
C=C';                    % 上网分时电价
C_p=C_p';                % 抽蓄抽水电价
T=1:n;
t=1;                     % 尺度1h
P_hmax=200;P_hmin=0;     % 抽蓄最大、最小 发电 功率  MW
P_pmax=200;P_pmin=0;     % 抽蓄最大、最小 抽水 功率  MW
P_pps_r=200;             % 抽蓄额定功率
E_max=600;E_min=0;       % 水库储能
E_0=100;                 % 水库初始储能量 赋值
SOC_0=0.5;               % SOC初始荷电状态 赋值

eta_p=0.87;              % 水泵抽水效率
eta_h=0.85;              % 水力发电效率

eta_c=0.9;               % 电池 充电效率
eta_d=0.9;               % 电池 放电效率
Emax_0=100;Emin=0;       % 电池 最大、最小容量MWh
 
P_cmax=50; P_cmin=0;     % 电池 充放电  最大/小功率
P_dmax=50;P_dmin=0;       
SOCmin=0.2;SOCmax=0.8;   % 电池 荷电状态 上下限
xgma=0.25/30/24;         % 电池每小时自放电率  20~30%/月
yibuxil_lack=100;        % 缺电惩罚系数  元/MWh
yibuxil_DL=30;           % 弃电惩罚系数  元/MWh
M_co2=0.877;             % 火电厂发单位电量产生的CO2量  tco2/MWh
k_ps_h=46;               % 抽蓄发电运行成本    元/MWh
k_ba_d=28.7;             % 电池发电运行成本    元/MWh

%% 开始优化  抽蓄
% 申明变量
% 生成连续型变量空间
Chrom=sdpvar(1,8*n);
% 顺序 P_w   P_p  P_h    E   P_DL  P_pv   P_lack
% 顺序  风   抽水 发电 储能量 弃电    光     缺电
P_w=Chrom(1,1:n);
P_p=Chrom(1,(n+1:2*n));
P_h=Chrom(1,(2*n+1:3*n));
E=Chrom(1,(3*n+1:4*n));
P_DL=Chrom(1,(4*n+1:5*n));
P_pv=Chrom(1,(5*n+1:6*n));
P_lack=Chrom(1,(6*n+1:7*n));
% 目标函数  经济效益最大  考虑分时电价、弃电惩罚、缺额惩罚成本
f=sum(C.*Chrom(1,1:n)+C.*Chrom(1,(2*n+1:3*n))+C.*Chrom(1,(5*n+1:6*n))-C_p.*Chrom(1,(n+1:2*n))-yibuxil_lack*Chrom(1,(7*n+1:8*n))-yibuxil_DL*Chrom(1,(4*n+1:5*n))-k_ps_h*Chrom(1,(2*n+1:3*n)));
% 约束条件
F=[];
for in=1:n
    F=[F P_w(1,in)+P_h(1,in)+P_pv(1,in)+P_lack(1,in)==P_load(in)];  % 抽蓄+风电+光伏+水电上网,功率平衡限制约束
    F=[F P_p(1,in)*P_h(1,in)==0];                           % 抽蓄抽水-发电不同时发生约束
    
    F=[F 0<=P_pv(1,in)<=P_pv1(1,in)];                       % 光伏上网限制约束
    F=[F 0<=P_w(1,in)<=P_v(1,in)];                          % 风电上网限制约束
    
    F=[F E_0<=E(1)<=E_0];                                   % 赋值 - 水库  初始储能E_0
    E(in+1)=E(in)+t*(eta_p*P_p(1,in)-P_h(1,in)/eta_h);      % 水库 储能变化
    F=[F 0<=E(in+1)<=E_max];                                % 水库 储能量限制约束
    
    F=[F P_pmin<=P_p(1,in)<=P_pmax];                        % 抽蓄 抽水约束
    F=[F P_hmin<=P_h(1,in)<=min(P_hmax,E(in)*eta_h/t)];     % 抽蓄 发电约束
      
    F=[F P_w(1,in)+P_pv(1,in)+P_p(1,in)+P_DL(1,in)==P_v(1,in)+P_pv1(1,in)];    %能量守恒约束  
    F=[F 0<=P_DL(1,in)];                                    % 功率舍弃量 约束
    F=[F 0<=P_lack(1,in)];                                  % 功率缺额量 约束
end
% 运算求解
output=solvesdp(F,-f);
z=double(f);
P_w=double(P_w);
P_p=double(P_p);
P_h=double(P_h);
P_DL=double(P_DL);
P_pv=double(P_pv);
E=double(E);
P_lack=double(P_lack);
P_i=P_w+P_h+P_pv;
%% 结果可视化
figure(3)
grid on;
hold on;
plot(P_load,'k-+','linewidth',1);   
plot(P_w,'g-','linewidth',2);
plot(P_pv,'c-','linewidth',2);
plot(-P_p,'b-s','linewidth',2);
plot(P_h,'b-d','linewidth',2);
plot(P_i,'r-+','linewidth',1);
plot(-P_DL,'m-p','linewidth',1);
plot(P_lack,'m-h','linewidth',1);
legend('负荷','风电','光伏','抽蓄抽水','抽蓄发电','联合发电','弃电值','缺电值');
set(gca,'xtick',[1 6 12 18 24],'xticklabel',{'01:00' ,'06:00' ,'12:00' ,'18:00', '24:00'  });
xlabel('时刻')
ylabel('功率/MW')
axis([1,24,-inf,inf]);

2.3 电价函数

分时电价源于山东省分时电价:

function [C,C_p]=price(n)
% CNY/MW
C=zeros(n,1);%先生成存储空间
C_p=zeros(n,1);
for i=1:7
    C(i)=324.9;
end

for i=8:9
   C(i)=622.6;
end

for i=10:15
   C(i)=920.3;
end

for i=16:20
   C(i)=622.6;
end

for i=21:22
   C(i)=1039.4;
end

for i=23
   C(i)=622.6;
end

for i=24
    C(i)=324.9;
end
C_p=0.25*C; % 抽蓄 抽水 电费

2.4 输出结果

在这里插入图片描述

  • 3
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WW、forever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值