08 互谱密度 csd

用途

两个信号的互功率谱,反映它们在各个频率上的共同成分。

示例(5 张)

08-1 输入电压与输出电流的互谱密度

输入电压与输出电流的互谱密度

08-2 负荷功率与电价的互谱密度

负荷功率与电价的互谱密度

08-3 风电出力与风速的互谱密度

风电出力与风速的互谱密度

08-4 同一母线两个测点的电压互谱

同一母线两个测点的电压互谱

08-5 振动与噪声信号的互谱密度

振动与噪声信号的互谱密度

代码

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

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

def csd_01():
    """输入电压与输出电流的互谱密度。"""
    fig, ax = new_fig()
    t, u = _sig(seed=801)
    i = 0.8 * np.sin(2 * np.pi * 50 * t - 0.4) + 0.3 * u + 0.15 * np.sin(2 * np.pi * 150 * t)
    ax.csd(u, i, NFFT=1024, Fs=2000, color=C1, lw=0.9)
    ax.grid(False)
    ax.set_xscale("log")
    ax.set_xlim(20, 1000)
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("互谱密度 / (V·A/Hz)")
    save(fig, "08_互谱密度", "08_互谱密度_电压电流互谱")

def csd_02():
    """负荷功率与电价的互谱密度。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(802)
    fs = 24.0
    t = np.arange(0, 120, 1 / fs)
    load = 500 + 160 * np.sin(2 * np.pi * t / 24) + rng.normal(0, 18, t.size)
    price = 0.6 + 0.22 * np.sign(np.sin(2 * np.pi * t / 24)) + rng.normal(0, 0.02, t.size)
    ax.csd(load, price, NFFT=256, Fs=fs, color=C3, lw=0.9)
    ax.grid(False)
    ax.set_xscale("log")
    ax.set_xlabel("频率 " + IT["f"] + " / (1/h)")
    ax.set_ylabel("互谱密度")
    save(fig, "08_互谱密度", "08_互谱密度_负荷电价互谱")

def csd_03():
    """风电出力与风速的互谱密度。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(803)
    fs = 1.0
    t = np.arange(0, 2048, 1 / fs)
    v = 8.5 + 1.6 * np.sin(2 * np.pi * t / 180) + rng.normal(0, 0.5, t.size)
    p = 0.42 * v ** 3 + rng.normal(0, 120, t.size)
    ax.csd(v, p, NFFT=512, Fs=fs, color=C1, lw=0.9)
    ax.grid(False)
    ax.set_xscale("log")
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("互谱密度")
    save(fig, "08_互谱密度", "08_互谱密度_风电出力风速互谱")

def csd_04():
    """同一母线两个测点的电压互谱。"""
    fig, ax = new_fig()
    t, u1 = _sig(seed=804)
    rng = np.random.default_rng(8041)
    u2 = 0.96 * u1 + rng.normal(0, 0.05, u1.size)
    ax.csd(u1, u2, NFFT=1024, Fs=2000, color=C5, lw=0.9)
    ax.grid(False)
    ax.set_xscale("log")
    ax.set_xlim(20, 1000)
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("互谱密度 / (V²/Hz)")
    save(fig, "08_互谱密度", "08_互谱密度_双测点电压互谱")

def csd_05():
    """振动与噪声信号的互谱密度。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(805)
    fs = 4000
    t = np.arange(0, 2, 1 / fs)
    vib = (1.2 * np.sin(2 * np.pi * 49 * t) + 0.5 * np.sin(2 * np.pi * 98 * t)
           + rng.normal(0, 0.2, t.size))
    noise = (0.6 * vib + 0.5 * np.sin(2 * np.pi * 300 * t)
             + rng.normal(0, 0.3, t.size))
    ax.csd(vib, noise, NFFT=2048, Fs=fs, color=C3, lw=0.9)
    ax.grid(False)
    ax.set_xscale("log")
    ax.set_xlim(10, 1800)
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("互谱密度")
    save(fig, "08_互谱密度", "08_互谱密度_振动噪声互谱")

说明

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