微电网两阶段鲁棒优化经济调度方法
针对微电网内可再生能源和负荷的不确定性,建立了min-max-min 结构的两阶段鲁棒优化模型,可得到最恶劣场景下运行成本最低的调度方案。模型中考虑了储能、需求侧负荷及可控分布式电源等的运行约束和协调控制, 并引入了不确定性调节参数,可灵活调整调度方案的保守性。基于列约束生成算法和强对偶理论, 可将原问题分解为具有混合整数线性特征的主问题和子问题进行交替求解, 从而得到原问题的最优解。 最终通过仿真分析验证了所建模型和求解算法的有效性, 同时给出了分时电价机制下微电网对储能进行调度的边界条件, 可为微电网投资商规划储能及配电网运营商设计激励机制提供参考。
function [x, LB, y] = MP2_v2()
%% 设参
pm_max=1500;%联络线功率上限
% 储能约束
eta=0.95; %储能充放电效率
ps_max=500; %储能允许最大充放电给功率
ES_max=1800; %蓄电池调度过程中允许的最大剩余容量
ES_min=400; %蓄电池调度过程中允许的最小剩余容量
ES0=1000; %调度过程中初始容量
% 分布式能源约束
p_g_max=800; %燃气轮机最大功率限制
p_g_min=80; %燃气轮机最小功率限制
%需求响应负荷参数设置
DDR=2940; %需求响应总用电需求
DR_max=200;
DR_min=50;
% 价格参数
a=0.67; % 燃料的价格
b=0;
KS=0.38; % 储能系统 折算后的单位充放电成本
KDR=0.32; % 我觉得应该是转移负荷的补偿价格
price = [0.48;0.48;0.48;0.48;0.48;0.48;0.48;0.9;1.35;1.35;1.35;0.9;0.9;0.9;0.9;0.9;0.9;0.9;1.35;1.35;1.35;1.35;1.35;0.48];
%这是个列向量
% 可能最开始分布式能源是像用风电和光伏的,但是后来实际上就用了风电
% PW_=[0.6564 0.6399 0.6079 0.5594 0.5869 0.5794 0.6138 0.6192 0.6811 0.6400 0.7855 0.7615 0.6861 0.8780 0.6715 0.7023 0.6464 0.6321 0.6819 0.6943 0.7405 0.6727 0.6822 0.6878];
p_pv=1500*[ 0 0 0 0 0 0.0465 0.1466 0.3135 0.4756 0.5213 0.6563 1.0000 0.7422 0.6817 0.4972 0.4629 0.2808 0.0948 0.0109 0 0 0 0 0];
PL=1500*[ 0.4658 0.4601 0.5574 0.5325 0.5744 0.6061 0.6106 0.6636 0.7410 0.7080 0.7598 0.8766 0.7646 0.7511 0.6721 0.5869 0.6159 0.6378 0.6142 0.6752 0.6397 0.5974 0.5432 0.4803];
%这三个是横向量
P_DR=1*[110 100 90 80 100 100 130 100 120 160 175 200 140 100 100 120 140 150 190 200 200 190 80 60]; % 这个是可转移负荷的参数 需求响应负荷在调度周期内的总 用电需求
%这是个行向量
%%设决策变量
p_ch=sdpvar(1,24,'full');%储能充电
p_dis=sdpvar(1,24,'full');%储能放电
us=binvar(1,24,'full');%充放电标识
p_buy=sdpvar(1,24,'full');%配网购电
p_sell=sdpvar(1,24,'full');%配网售电
um=binvar(1,24,'full');%购售电标识
%p_pv=sdpvar(1,24,'full');%光伏发电
%pL=sdpvar(1,24,'full');%固定日负荷
p_g=sdpvar(1,24,'full');%分布式电源
PDR=sdpvar(1,24,'full');%可转移负荷
PDR1=sdpvar(1,24,'full');%可转移负荷辅助变量
PDR2=sdpvar(1,24,'full');%可转移负荷辅助变量
afa=sdpvar(1,1,'full');
%% 构建矩阵
x=[us,um]';%第一阶段变量 储能的充放电状态、微电网的购售电状态
u=[p_pv,PL]';%不确定量。这里为确定量为最恶劣场景(子问题的解)
y=[p_g,p_ch,p_dis,PDR,PDR1,PDR2,p_buy,p_sell]';%第二阶段变量
Q01=[eye(24),zeros(24,24)];%us
Q02=[zeros(24,24),eye(24)];%um
Q1=[eye(24),zeros(24,168)];
Q2=[zeros(1,24),eta.*ones(1,24),-1/eta.*ones(1,24),zeros(1,120)];
Q31=[zeros(24,24),eye(24),zeros(24,144)];%p_ch9c
Q32=[zeros(24,48),eye(24),zeros(24,120)];%p_dis
Q4=[zeros(24,24),eta.*tril(ones(24,24),0),-1/eta.*tril(ones(24,24),0),zeros(24,120)];
Q51=[zeros(24,144),eye(24),zeros(24,24)];%p_buy
Q52=[zeros(24,168),eye(24)];%p_sell
Q6=[eye(24),-eye(24),eye(24),-eye(24),zeros(24,24),zeros(24,24),eye(24),-eye(24)];
%Q7=[zeros(24,72),eye(24),-eye(24)];