10 填充带 fill_between

用途

区间与置信带,如预测区间、电压允许范围、储能 SOC 运行上下限。

示例(5 张)

10-1 光伏出力预测区间(P10~P90 带 + 预测中值)

光伏出力预测区间(P10~P90 带 + 预测中值)

10-2 母线负荷预测置信带

母线负荷预测置信带

10-3 节点电压运行范围与实测曲线(GB/T 12325 允许偏差带)

节点电压运行范围与实测曲线(GB/T 12325 允许偏差带)

10-4 储能荷电状态运行区间与上下限

储能荷电状态运行区间与上下限

10-5 系统频率偏差与一次调频死区

系统频率偏差与一次调频死区

代码

以下 5 个函数取自 code/第三批_面积与场261106.py,直接调用即可出图。版式(宋体 + Times、10 磅、刻度朝内四边、图内无标题、留白自检)由 code/公共配置261106.py 的 setup_cn_style() 与 save() 统一提供。

# 摘自 code/第三批_面积与场261106.py

def fill_01():
    """光伏出力预测区间(P10~P90 带 + 预测中值)。"""
    fig, ax = new_fig()
    t = np.arange(5, 20.01, 0.5)
    mid = 820 * np.sin((t - 5) / 15 * np.pi) ** 1.3
    lo = mid * 0.72
    hi = np.minimum(mid * 1.18, 980)
    ax.fill_between(t, lo, hi, color=C5, alpha=0.55, linewidth=0,
                    label="P10~P90 区间")
    ax.plot(t, mid, color=C1, lw=1.0, label="预测中值")
    ax.plot(t, lo, color=C4, lw=0.6, ls="--", label="P10")
    ax.plot(t, hi, color=C4, lw=0.6, ls=":", label="P90")
    ax.set_xlabel("时间 " + IT["t"] + " / h")
    ax.set_ylabel("有功出力 " + IT["P"] + " / kW")
    ax.set_xlim(5, 20)
    ax.set_ylim(-40, 1480)
    legend(ax, "upper center", ncol=2)
    save(fig, "10_填充带", "10_填充带_光伏出力预测区间")

def fill_02():
    """母线负荷预测置信带。"""
    fig, ax = new_fig()
    t = np.arange(0, 24.01, 1.0)
    base = 480 + 170 * np.exp(-((t - 10) / 3.4) ** 2) + 210 * np.exp(-((t - 16) / 3.0) ** 2)
    sd = 18 + 26 * (1 - np.exp(-((t - 12) / 8) ** 2))
    ax.fill_between(t, base - 1.96 * sd, base + 1.96 * sd, color=C5, alpha=0.5,
                    linewidth=0, label="95% 置信带")
    ax.plot(t, base, color=C1, lw=1.0, marker="o", markevery=3, ms=3, label="预测值")
    ax.set_xlabel("时间 " + IT["t"] + " / h")
    ax.set_ylabel("有功负荷 " + IT["P"] + " / kW")
    ax.set_xlim(0, 24)
    ax.set_ylim(380, 880)
    legend(ax, "upper center", ncol=2)
    save(fig, "10_填充带", "10_填充带_负荷预测置信带")

def fill_03():
    """节点电压运行范围与实测曲线(GB/T 12325 允许偏差带)。"""
    fig, ax = new_fig()
    t = np.arange(0, 24.01, 0.5)
    u = 10.0 + 0.22 * np.sin((t - 8) / 24 * 2 * np.pi) + 0.05 * np.sin(t * 1.7)
    ax.axhspan(9.3, 10.7, color=C5, alpha=0.35, linewidth=0, label="±7% 允许范围")
    ax.plot(t, u, color=C1, lw=1.0, label="实测电压")
    ax.axhline(10.7, color=C2, lw=0.6, ls="--")
    ax.axhline(9.3, color=C2, lw=0.6, ls="--")
    ax.set_xlabel("时间 " + IT["t"] + " / h")
    ax.set_ylabel("母线电压 " + IT["U"] + " / kV")
    ax.set_xlim(0, 24)
    ax.set_ylim(9.0, 11.0)
    legend(ax, "upper center", ncol=2)
    save(fig, "10_填充带", "10_填充带_节点电压允许范围")

def fill_04():
    """储能荷电状态运行区间与上下限。"""
    fig, ax = new_fig()
    t = np.arange(0, 24.01, 0.5)
    soc = 58 + 26 * np.sin((t - 4) / 24 * 2 * np.pi)
    ax.fill_between(t, 10, 90, color=C5, alpha=0.30, linewidth=0, label="允许运行区间")
    ax.fill_between(t, soc, 58, where=soc >= 58, color=C3, alpha=0.45,
                    linewidth=0, label="放电段")
    ax.fill_between(t, soc, 58, where=soc < 58, color=C1, alpha=0.30,
                    linewidth=0, label="充电段")
    ax.plot(t, soc, color=C1, lw=1.0, label="SOC 轨迹")
    ax.axhline(90, color=C2, lw=0.6, ls="--")
    ax.axhline(10, color=C2, lw=0.6, ls="--")
    ax.set_xlabel("时间 " + IT["t"] + " / h")
    ax.set_ylabel("荷电状态 SOC / %")
    ax.set_xlim(0, 24)
    ax.set_ylim(0, 108)
    legend(ax, "upper center", ncol=3)
    save(fig, "10_填充带", "10_填充带_储能SOC运行区间")

def fill_05():
    """系统频率偏差与一次调频死区。"""
    fig, ax = new_fig()
    t = np.linspace(0, 60, 400)
    df = 0.16 * np.exp(-((t - 22) / 5.0) ** 2) - 0.11 * np.exp(-((t - 45) / 6.0) ** 2)
    ax.axhspan(-0.05, 0.05, color=C5, alpha=0.45, linewidth=0, label="调频死区 ±0.05 Hz")
    ax.plot(t, df, color=C1, lw=1.0, label="频率偏差")
    ax.axhline(0.2, color=C2, lw=0.6, ls="--", label="允许上限 +0.2 Hz")
    ax.axhline(-0.2, color=C2, lw=0.6, ls=":", label="允许下限 -0.2 Hz")
    ax.set_xlabel("时间 " + IT["t"] + " / s")
    ax.set_ylabel("频率偏差 Δ" + IT["f"] + " / Hz")
    ax.set_xlim(0, 60)
    ax.set_ylim(-0.27, 0.32)
    legend(ax, "lower left", ncol=2)
    save(fig, "10_填充带", "10_填充带_系统频率偏差")

说明

  • 图片 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
  • 图内不放标题,图题由本文件的标题承担。
  • 数据为 10 kV 配网、380 V 低压、50 Hz 量级的仿真算例,随机种子固定,重跑结果一致。
posted on 2026-11-07 01:03  小青蛙电气  阅读(2)  评论(0)    收藏  举报