💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文内容如下:🎁🎁🎁
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
复现文献:
随着高比例可再生能源接入电网,电力系统灵活性不足的问题日益凸显。可再生能源与可控分布式资源可通过虚拟电厂进行聚合管理,在一定程度上缓解对灵活性的需求。尽管新建储能系统可弥补灵活性缺口,但其初始投资成本高昂。为此,本文提出一种基于碳配额与价格联动的燃煤机组租赁机制,向虚拟电厂出让燃煤机组使用权。随后,利用不同需求响应策略调控多类用户的可控负荷,为虚拟电厂提供可控资源。此外,为保证虚拟电厂运营商实现最优决策,采用能够精确刻画储能系统容量衰减状态的成本模型。进而实施虚拟电厂多时间尺度调度策略,充分利用不同时间尺度的可控资源,有效应对多重不确定性导致的功率失衡。结果表明,利用燃煤机组租赁机制并采用多用户需求响应策略,可为虚拟电厂提供灵活性;运营商所用容量衰减模型的精度对调度方案的最优性具有显著影响。
能源短缺、污染与气候变化已成全球“紧箍咒”。要同时满足高效、低碳、安全、可靠四大目标,传统“烧化石”模式必须退场,风光等可再生能源被寄予厚望。但风光“看天吃饭”,大规模并网后,电网随时面临“过山车”式波动;新建储能可平抑波动,却贵得惊人,再加上电价、负荷双重不确定,系统运行犹如“蒙眼走钢丝”。虚拟电厂(VPP)应运而生——它把分散在角落的光伏、储能、可控负荷、电动车“串珠成链”,以“云电厂”身份参与市场。然而,要让这条“链”坚韧耐摔,还得解开三道紧箍:随机性怎么量化?储能老化如何精准画像?用户弹性怎样按需激活?
学界已把VPP调度“翻过来研究”,但三大痛点仍像“暗礁”:
-
不确定处理:场景法一多就“算不动”,一少就“失真”;鲁棒优化太“保守”,钱包先喊疼;概率期望看似优雅,真实分布却常“打脸”;AI预测短时准、长时飘,计划永远“慢半拍”。
-
需求响应:工业、商业、居民用电习性“天壤之别”,过去“一刀切”的电价或补贴,往往“大棒打棉花”,弹性白白流失。
-
储能老化:循环一次老一次,DOD、SOC 把寿命“往死里卷”。若调度漠视老化,计划与实物“两张皮”,投运三年就“力不从心”。
本文把“暗礁”一一敲掉,给出四维“工具包”:
工具一:煤电租赁+碳信用——“借锅做饭”
不再重资产新建储能,而是短期租赁煤电机组调节能力,租金用“碳信用”结算:多排多付、少排少付。煤电获得“第二春”,VPP 手握“灵活外挂”,零土建、零长贷,就能给可再生能源“加缓冲垫”。
工具二:ISBDR 精准响应——“一户一策”
把用户切成工业、商业、居民三条“弹性曲线”:工业连续生产,给“中断高价”;商业时段集中,推“错峰折扣”;居民弹性最大,玩“游戏化补贴”。让每一度可削减负荷都“长在”用户舒适区,DR 参与率与资源利用率双升。
工具三:DOD-SOC 老化模型——“寿命仪表盘”
把循环深度、荷电状态嵌进调度目标函数,实时反馈“剩余循环次数”。调度员一眼看出“多充一次=少活三天”,计划从“盲开”变“精驾”,储能寿命延长,全生命周期成本直降。
工具四:多时间尺度滚动——“导航实时纠偏”
日前计划画“大路线”,小时内预测当“高德实时路况”,滚动修正。既防“长预测跑偏”,又避“短预测碎尸”,四重不确定(风光、负荷、电价)被层层稀释,调度鲁棒性肉眼可见地提升。
算例结果显示:组合拳打下去,VPP 运行成本下降、储能利用率提高、市场收益增加,煤电也在碳价倒逼下“越灵活越赚钱”。这套“租赁-响应-老化-滚动”四维方案,把“高比例可再生能源”最头疼的灵活性缺口,拆成四段可落地路径,对运营商、科研人员、政策制定者都是“拿来即用”的工具箱。能源转型进入深水区,VPP 要真正挑大梁,这篇论文值得学习收藏。
结论与展望
本研究提出了一种基于燃煤机组(CFU)使用权租赁机制与多用户需求响应(DR)策略的虚拟电厂(VPP)多时间尺度经济调度策略。为保护储能系统(ESS)利益并确保VPP运营商制定最优调度方案,本文采用同时考虑放电深度(DOD)与荷电状态(SOC)的ESS容量衰减模型。策略分为日前(DA)与日内两个时间尺度。数值分析得出以下主要结论:
1. 基于电价与碳配额联动的CFU使用权租赁机制,可为电力系统提供一定灵活性,并延缓CFU退役,避免资源浪费;该机制适用于短期内可控资源不足的场景。
2. 与经典衰减模型相比,新容量衰减模型使各ESS利用率分别下降30.58%、26.69%与8.19%;若运营商改用两种典型旧模型,VPP运行成本将分别上升7.09%与1.87%。可见,衰减模型能否准确描述ESS退化状态,不仅关乎VPP调度决策的最优性,也影响内部成员后续收益分配。
3. VPP运营商对商业与居民用户采用阶梯型激励DR(SIBDR)策略,对工业用户采用激励型DR(IBDR)与价格型DR(PBDR)策略,不仅使VPP在电力市场(EM)中的互动成本降低27.2%,还令其总成本下降3.8%。此外,依据不同用户负荷特性定制DR策略,可提升各方参与积极性。
4. VPP多时间尺度协调调度策略能充分利用不同时段的可控资源,有效应对风电、光伏、负荷及电价四类不确定性导致的功率失衡。
然而,本文仍存在不足:ESS模型需借助更多实验数据进一步细化;用户DR的可调度潜力尚需基于用能特征与数据加以量化。这些问题将在未来工作中继续深入研究。
📚2 运行结果
部分代码:
function PlotDegradationFigures()
% 生成储能退化图表
fprintf(' 正在生成退化模型图表...\n');
PlotFig2_DegradationParameters(); % 退化参数柱状图
PlotFig3_DegradationSurface(); % 3D退化曲面
PlotFig4_CumulativeDegradation(); % 累积退化曲线
fprintf(' 退化模型图表生成完成!\n');
end
%% 图2: 退化参数柱状图
function PlotFig2_DegradationParameters()
fig = figure('Position', [100, 100, 700, 500]);
set(fig, 'Color', 'w');
soc_percent = [5 10 20 30 40 50 60 70 80 90]; % SOC百分比
degradation = [3.8794 0.7832 2.8473 0 0.7771 1.8031 5.8672 10.8626 5.6901 4.7008]; % 退化参数(μAh/DOD)
% 绘制柱状图
bar(soc_percent, degradation, 'FaceColor', [0.3 0.7 0.9], 'EdgeColor', 'k', 'LineWidth', 1);
hold on;
% 在每个柱子上方添加数值
for i = 1:length(degradation)
if degradation(i) > 0
text(soc_percent(i), degradation(i) + 0.3, sprintf('%.4f', degradation(i)), ...
'HorizontalAlignment', 'center', 'FontSize', 9, 'FontWeight', 'bold');
end
end
xlabel('SOC(t)(%)', 'FontSize', 12, 'FontWeight', 'bold');
ylabel('Degradation(\muAh/DOD)', 'FontSize', 12, 'FontWeight', 'bold');
xlim([0 100]); ylim([0 12]);
grid on; box on;
set(gca, 'FontSize', 11, 'LineWidth', 1);
saveas(fig, 'Figures/Fig2_Degradation_Parameters.png');
end
%% 图3: 3D退化曲面
function PlotFig3_DegradationSurface()
fig = figure('Position', [100, 100, 750, 600]);
set(fig, 'Color', 'w');
[SOC_t, SOC_t1] = meshgrid(0:2:100, 0:2:100); % SOC网格(2%间隔)
soc_points = [0 10 20 30 40 50 60 70 80 90 100]; % 累积退化函数SOC采样点
cumulative_deg = [0 38 42 45 58 70 100 155 268 305 370]; % 累积退化值(μAh)
Degradation = zeros(size(SOC_t));
scale_factor = 1000; % μAh到Ah的缩放因子
% 计算每个网格点的退化值
for i = 1:size(SOC_t, 1)
for j = 1:size(SOC_t, 2)
soc_t = SOC_t(i,j);
soc_t1 = SOC_t1(i,j);
% 三次样条插值计算累积退化
delta_t = interp1(soc_points, cumulative_deg, soc_t, 'pchip');
delta_t1 = interp1(soc_points, cumulative_deg, soc_t1, 'pchip');
% 退化量=累积退化变化量的绝对值
deg_value = abs(delta_t1 - delta_t);
Degradation(i,j) = deg_value * scale_factor / 1000; % 转换为Ah
end
end
surf(SOC_t, SOC_t1, Degradation, 'EdgeColor', 'k', 'LineWidth', 0.1, 'FaceAlpha', 0.9);
colormap(jet);
h = colorbar;
h.Label.String = 'Degradation (Ah)';
h.Label.FontSize = 10;
h.Label.FontWeight = 'bold';
xlabel('SOC(t)(%)', 'FontSize', 11, 'FontWeight', 'bold');
ylabel('SOC(t+1)(%)', 'FontSize', 11, 'FontWeight', 'bold');
zlabel('Degradation(Ah)', 'FontSize', 11, 'FontWeight', 'bold');
xlim([0 100]); ylim([0 100]); zlim([0 400]);
view(-37.5, 30);
grid on; box on;
set(gca, 'FontSize', 10, 'LineWidth', 1);
lighting gouraud; % 光照效果
camlight('headlight');
material shiny;
saveas(fig, 'Figures/Fig3_Degradation_Surface.png');
end
%% 图4: 累积退化曲线
function PlotFig4_CumulativeDegradation()
fig = figure('Position', [100, 100, 700, 500]);
set(fig, 'Color', 'w');
soc = 0:10:100; % SOC百分比
cumulative_deg = [0 38 42 45 58 70 100 155 268 305 370]; % 累积退化(μAh)
plot(soc, cumulative_deg, '--o', 'Color', [0 0.4 0.8], 'LineWidth', 2.5, ...
'MarkerSize', 7, 'MarkerFaceColor', [0 0.4 0.8]);
hold on;
% 在80%处添加m和l标注示例
idx_80 = 9;
% m标注(垂直线段)
x_arrow = [soc(idx_80+1), soc(idx_80+1)];
y_arrow = [cumulative_deg(idx_80), cumulative_deg(idx_80+1)];
plot(x_arrow, y_arrow, 'r-', 'LineWidth', 2);
text(92, (cumulative_deg(idx_80) + cumulative_deg(idx_80+1))/2, 'm', ...
'Color', 'r', 'FontSize', 14, 'FontWeight', 'bold');
% l标注(水平线段)
x_arrow2 = [soc(idx_80), soc(idx_80+1)];
y_arrow2 = [cumulative_deg(idx_80), cumulative_deg(idx_80)];
plot(x_arrow2, y_arrow2, 'r-', 'LineWidth', 2);
text((soc(idx_80) + soc(idx_80+1))/2, cumulative_deg(idx_80) - 15, 'l', ...
'Color', 'r', 'FontSize', 14, 'FontWeight', 'bold');
xlabel('SOC(t)(%)', 'FontSize', 12, 'FontWeight', 'bold');
ylabel('Cumulative degradation(\muAh)', 'FontSize', 12, 'FontWeight', 'bold');
xlim([0 100]); ylim([0 400]);
grid on; box on;
set(gca, 'FontSize', 11, 'LineWidth', 1);
saveas(fig, 'Figures/Fig4_Cumulative_Degradation.png');
end
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
🌈4 Matlab代码、数据、文章
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取