15 互相关 xcorr

15 互相关 xcorr

用途

两信号的时延估计,行波定位、双端测距的核心工具。

示例(5 张)

15-1 故障行波到达两端的时间延迟估计

故障行波到达两端的时间延迟估计

15-2 两个测点电压信号的互相关

两个测点电压信号的互相关

15-3 风速与风电出力的互相关

风速与风电出力的互相关

15-4 系统输入与输出的互相关

系统输入与输出的互相关

15-5 气温与负荷的滞后互相关

气温与负荷的滞后互相关

代码

以下 5 个函数取自 code/第二批_信号分析261107.py,直接调用即可出图。样式(宋体 + Times、10 磅、刻度朝内四边、留白自检)由 code/公共配置261107.py 的 setup_cn_style() 和 save() 统一提供,本节不再重复。

# 摘自 code/第二批_信号分析261107.py

def xc_01():
    """故障行波到达两端的时间延迟估计。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(1501)
    fs = 1e6
    t = np.arange(0, 500e-6, 1 / fs)
    x = rng.normal(0, 0.02, t.size)
    x += 1.0 * np.exp(-((t - 120e-6) / 3e-6) ** 2)
    y = rng.normal(0, 0.02, t.size)
    y += 0.8 * np.exp(-((t - 168e-6) / 3e-6) ** 2)
    ax.xcorr(x, y, maxlags=300, color=C1, lw=0.9)
    ax.grid(False)
    ax.set_xlabel("滞后 " + IT["tau"] + " / μs")
    ax.set_ylabel("互相关系数")
    save(fig, "15_互相关", "15_互相关_行波时延估计")

def xc_02():
    """两个测点电压信号的互相关。"""
    fig, ax = new_fig()
    t, u1 = _sig(seed=1502, dur=1.0)
    rng = np.random.default_rng(15021)
    shift = 18
    u2 = np.roll(u1, shift) * 0.9 + rng.normal(0, 0.05, u1.size)
    ax.xcorr(u1, u2, maxlags=60, color=C5, lw=0.9)
    ax.grid(False)
    ax.set_xlabel("滞后 " + IT["tau"] + " / 采样点")
    ax.set_ylabel("互相关系数")
    save(fig, "15_互相关", "15_互相关_双测点互相关")

def xc_03():
    """风速与风电出力的互相关。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(1503)
    fs = 1.0
    t = np.arange(0, 1024, 1 / fs)
    v = 8.5 + 1.5 * np.sin(2 * np.pi * t / 96) + rng.normal(0, 0.6, t.size)
    p = np.roll(0.45 * v ** 3, 3) + rng.normal(0, 150, t.size)
    ax.xcorr(v, p, maxlags=48, color=C3, lw=0.9)
    ax.grid(False)
    ax.set_xlabel("滞后 " + IT["tau"] + " / h")
    ax.set_ylabel("互相关系数")
    save(fig, "15_互相关", "15_互相关_风速功率互相关")

def xc_04():
    """系统输入与输出的互相关。"""
    fig, ax = new_fig()
    t, u = _sig(seed=1504, dur=1.0)
    rng = np.random.default_rng(15041)
    i = np.roll(u, 12) * 0.85 + rng.normal(0, 0.08, u.size)
    ax.xcorr(u, i, maxlags=60, color=C1, lw=0.9)
    ax.grid(False)
    ax.set_xlabel("滞后 " + IT["tau"] + " / 采样点")
    ax.set_ylabel("互相关系数")
    save(fig, "15_互相关", "15_互相关_输入输出互相关")

def xc_05():
    """气温与负荷的滞后互相关。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(1505)
    fs = 24.0
    t = np.arange(0, 480, 1 / fs)
    temp = 28 + 6 * np.sin(2 * np.pi * t / 24) + rng.normal(0, 1.0, t.size)
    load = np.roll(temp, 48) * 8.2 + 420 + rng.normal(0, 22, t.size)
    ax.xcorr(temp, load, maxlags=120, color=C3, lw=0.9)
    ax.grid(False)
    ax.set_xlabel("滞后 " + IT["tau"] + " / h")
    ax.set_ylabel("互相关系数")
    save(fig, "15_互相关", "15_互相关_气温负荷滞后相关")

说明

  • 图片尺寸 1181×944 px(100 mm × 80 mm @ 300 dpi),三维图为 1181×1122 px。
  • 图内不放标题,图题由本文件的二级/三级标题承担。
  • 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。
posted @ 2026-11-07 08:35  小青蛙电气  阅读(3)  评论(0)    收藏  举报