阶梯图(`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
posted @ 2026-11-09 00:03  小青蛙电气  阅读(2)  评论(0)    收藏  举报