阶梯图(`stairs`)
阶梯图(stairs)
01_二维线图 5 张 MATLAB R2023b 100 mm 宽 @ 300 dpi
这个方法适合什么
表达分段常量,值在区间内不变、在边界跳变。适合:分时电价、变压器分接头档位、电容器投切组数、需求响应档位。
电气场景
1 分时电价阶梯

2 变压器分接头档位

3 电容器投切组数

4 储能充放电功率指令

5 需求响应削减档位

代码
脚本 p1_line_plots.m 中对应 stairs 的一段,SEL 用于选择只跑某几个方法。
if any(SEL==5)
% ---- 5.1 分时电价 ----
hh = 0:23;
p1 = 0.32*ones(size(hh));
p1(hh>=8 & hh<11) = 0.68;
p1(hh>=11 & hh<18) = 0.95;
p1(hh>=18 & hh<21) = 1.20;
p1(hh>=21) = 0.68;
p2 = 0.28*ones(size(hh));
p2(hh>=8 & hh<11) = 0.55;
p2(hh>=11 & hh<18) = 0.82;
p2(hh>=18 & hh<21) = 1.05;
p2(hh>=21) = 0.55;
hh = [hh 24]; p1 = [p1 p1(end)]; p2 = [p2 p2(end)];
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.190 0.770 0.755]);
h1 = stairs(ax,hh,p1,'Color',C(1,:),'LineWidth',1.2); hold(ax,'on');
h2 = stairs(ax,hh,p2,'Color',C(2,:),'LineWidth',1.2);
xlabel(ml_tx('时刻 <i>t</i> / h'));
ylabel(ml_tx('电价 / (元/kWh)'));
xlim(ax,[0 24]); ylim(ax,[0 1.62]);
lg = legend(ax,[h1 h2],ml_tx({'一般工商业','大工业两部制'}),'Location','northwest');
ml_style_legend(lg,PP);
save_png(f,FIGD,'分时电价阶梯');
% ---- 5.2 变压器分接头档位 ----
hh = 0:23;
tap1 = zeros(size(hh));
tap1(hh>=8 & hh<14) = 2;
tap1(hh>=14 & hh<19) = 1;
tap1(hh>=19) = -1;
tap2 = zeros(size(hh));
tap2(hh>=9 & hh<13) = 1;
tap2(hh>=13 & hh<18) = 0;
tap2(hh>=18 & hh<22) = -2;
tap2(hh>=22) = -1;
hh = [hh 24]; tap1 = [tap1 tap1(end)]; tap2 = [tap2 tap2(end)];
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.190 0.770 0.755]);
h1 = stairs(ax,hh,tap1,'Color',C(1,:),'LineWidth',1.3); hold(ax,'on');
h2 = stairs(ax,hh,tap2,'Color',C(2,:),'LineWidth',1.3);
xlabel(ml_tx('时刻 <i>t</i> / h'));
ylabel(ml_tx('分接头档位 <i>n</i>'));
xlim(ax,[0 24]); ylim(ax,[-3.6 3.4]);
set(ax,'YTick',-3:1:2);
lg = legend(ax,[h1 h2],ml_tx({'1 号主变','2 号主变'}),'Location','southwest');
ml_style_legend(lg,PP);
save_png(f,FIGD,'变压器分接头档位');
% ---- 5.3 电容器组投切组数 ----
hh = 0:23;
n1 = zeros(size(hh));
n1(hh>=9 & hh<12) = 1;
n1(hh>=14 & hh<17) = 2;
n1(hh>=19 & hh<21) = 3;
n2 = zeros(size(hh));
n2(hh>=10 & hh<12) = 1;
n2(hh>=15 & hh<17) = 1;
n2(hh>=19 & hh<22) = 2;
hh = [hh 24]; n1 = [n1 n1(end)]; n2 = [n2 n2(end)];
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.190 0.770 0.755]);
h1 = stairs(ax,hh,n1,'Color',C(1,:),'LineWidth',1.4); hold(ax,'on');
h2 = stairs(ax,hh,n2,'Color',C(5,:),'LineWidth',1.4);
xlabel(ml_tx('时刻 <i>t</i> / h'));
ylabel(ml_tx('投入组数 <i>n</i>'));
xlim(ax,[0 24]); ylim(ax,[0 4.2]);
set(ax,'YTick',0:1:4);
lg = legend(ax,[h1 h2],ml_tx({'10 kV I 段','10 kV II 段'}),'Location','northwest');
ml_style_legend(lg,PP);
save_png(f,FIGD,'电容器投切组数');
% ---- 5.4 储能充放电功率指令 ----
hh = 0:23;
p1 = zeros(size(hh));
p1(hh<6) = -3.0;
p1(hh>=8 & hh<11) = 2.0;
p1(hh>=13 & hh<16) = 4.5;
p1(hh>=18 & hh<21) = 4.0;
p2 = p1*0.9;
p2(hh>=17 & hh<22) = 3.2;
hh = [hh 24]; p1 = [p1 p1(end)]; p2 = [p2 p2(end)];
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.190 0.770 0.755]);
h1 = stairs(ax,hh,p1,'Color',C(1,:),'LineWidth',1.3); hold(ax,'on');
h2 = stairs(ax,hh,p2,'Color',C(2,:),'LineWidth',1.3,'LineStyle','--');
h0 = plot(ax,[0 24],[0 0],'Color',[0.5 0.5 0.5],'LineWidth',0.6);
xlabel(ml_tx('时刻 <i>t</i> / h'));
ylabel(ml_tx('功率指令 <i>P</i> / MW'));
xlim(ax,[0 24]); ylim(ax,[-4.6 8.2]);
lg = legend(ax,[h1 h2],ml_tx({'调度计划','实际执行'}),'Location','northeast');
ml_style_legend(lg,PP);
save_png(f,FIGD,'储能充放电功率指令');
% ---- 5.5 需求响应负荷档位 ----
hh = 0:23;
d1 = zeros(size(hh));
d1(hh>=10 & hh<12) = 1;
d1(hh>=18 & hh<21) = 3;
d2 = zeros(size(hh));
d2(hh>=9 & hh<12) = 1;
d2(hh>=14 & hh<17) = 2;
d2(hh>=19 & hh<21) = 2;
hh = [hh 24]; d1 = [d1 d1(end)]; d2 = [d2 d2(end)];
f = ml_fig(PP,100,80);
ax = axes('Parent',f,'Position',[0.175 0.190 0.770 0.755]);
h1 = stairs(ax,hh,d1,'Color',C(4,:),'LineWidth',1.4); hold(ax,'on');
h2 = stairs(ax,hh,d2,'Color',C(3,:),'LineWidth',1.4);
xlabel(ml_tx('时刻 <i>t</i> / h'));
ylabel(ml_tx('削减档位 <i>n</i>'));
xlim(ax,[0 24]); ylim(ax,[0 4.2]);
set(ax,'YTick',0:1:4);
lg = legend(ax,[h1 h2],ml_tx({'工业用户','商业用户'}),'Location','northwest');
ml_style_legend(lg,PP);
save_png(f,FIGD,'需求响应削减档位');
end

浙公网安备 33010602011771号