本程序参考一区SCI期刊《Using Battery Storage for Peak Shaving and Frequency Regulation: Joint Optimization for Superlinear Gains》,程序注释清晰,干货满满,算例丰富,下面对文章和程序做简要介绍。
通过联合优化框架同时使用电池储能进行调峰和频率调节,该模型捕捉电池退化、操作限制以及客户负载和调节信号中的不确定性。该模型使用真实数据,我们显示用户的电费可以减少12%。此外,算例表明,当电池单独应用时,联合优化的效益大于最佳节省的总和。提出了一种简单的阈值实时算法,并实现了这种超线性增益。与之前将电池储能用于单一应用相比,研究结果表明,如果电池联合提供多种服务,它们可以获得比以前想象的更大的经济效益。
论文创新点:储能同时用于调峰和调频,可以获得两份收益;关注储能使用次数与老化程度,最大程度保证储能运行寿命。
负荷预测方法:多元线性回归模型,预测精度很高;使用场景缩减最佳场景,数量设置为10。电池SOC状态实时跟踪,实现最优的调峰-调频性能,同时保证电池寿命。
数据来源:使用微软数据中心的半年功耗数据和华盛顿大学EE&CSE大楼的一年数据进行了案例研究。频率调节信号来自PJM快速频率调节市场。
文章结果:
部分程序结果:
部分程序:
%% 定义
battery.n = 5000; % Charge and discharge cycles
battery.cell = 0.3;% Cell price, $/Wh
battery.power = 1; % MW, battery power
battery.energy = battery.power*(3/60); % MWh, battery energy, up for 3min
%% 价格
lambda.elec = 47; %Electricity price, $/MWh
lambda.peak = 12*1000/30/24; %Peak demand charge, 12,000$/MW
(2*battery.n*(battery.socmax-battery.socmin)); %Battery cost, $/MWh
%% 信号
load('PJM_Reg_Signal_2013_06-201405.mat');%PJM frequency regulation signal 2013-2014
r_tem = rr(1:2:end,:); %use old frequency regulation signal, change resolution to 4s
%r_tem = sig2018(1:2:end, :); %use new frequency regulation signal, change resolution to 4s
%% 参数
hour = 1;
ts = 4/3600;
T = hour*1/ts;
tt = 4:4:3600*hour;
% Reference electricity bill: Not using battery
%[bill1.total, bill1.elec, bill1.peak, bill1.battery, bill1.reg...
% Electricity bill doing frequency regulation only
%[bill2.total, bill2.elec, bill2.peak, bll2.ibattery, bill2.reg...
% bill2.regc, bill2.regp] = reg_only(lambda, battery, T, ts, tt, s, r);
[bill2.total, ~] = reg_only(fig_flag, lambda, battery, T, ts, tt, s, r);
% Electricity bill doing peak shaving only
%[bill3.total, bill3.elec, bill3.peak, bill3.battery, bill3.reg...
% bill3.regc, bill3.regp] = ps_only(lambda, battery, T, ts, tt, s);
[bill3.total,~] = ps_only(fig_flag, lambda, battery, T, ts, tt, s);
% Electricity bill doing joint optimization (both peak shaving & frequency regulation)
%[bill4.total, bill4.elec, bill4.peak, bill4.battery, bill4.reg...
% bill4.regc, bill4.regp] = both(lambda, battery, T, ts, tt, s, r);
[bill4.total,~] = both(fig_flag, lambda, battery, T, ts, tt, s, r);
bill(i,:) = [bill1.total, bill2.total, bill3.total, bill4.total];
%saving = ((bill1.total-bill4.total)-(2*bill1.total-bill2.total-bill3.total));
部分内容源自网络,侵权联系删除!
欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!
更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!