11 幅值谱 magnitude_spectrum

11 幅值谱 magnitude_spectrum

用途

单信号的频谱幅值,谐波分析最直接的画法。

示例(5 张)

11-1 母线电压的幅值谱

母线电压的幅值谱

11-2 变频器输出电流的幅值谱

变频器输出电流的幅值谱

11-3 电机轴承振动加速度幅值谱

电机轴承振动加速度幅值谱

11-4 变电站环境噪声幅值谱

变电站环境噪声幅值谱

11-5 风电功率波动的幅值谱

风电功率波动的幅值谱

代码

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

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

def mag_01():
    """母线电压的幅值谱。"""
    fig, ax = new_fig()
    t, u = _sig(seed=1101)
    ax.magnitude_spectrum(u, Fs=2000, color=C1, lw=0.9)
    ax.grid(False)
    ax.set_xlim(0, 800)
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("幅值 / V")
    save(fig, "11_幅值谱", "11_幅值谱_母线电压幅值谱")

def mag_02():
    """变频器输出电流的幅值谱。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(1102)
    fs = 5000
    t = np.arange(0, 1.0, 1 / fs)
    i = (12 * np.sin(2 * np.pi * 50 * t) + 4.5 * np.sin(2 * np.pi * 250 * t)
         + 3.2 * np.sin(2 * np.pi * 350 * t) + 1.8 * np.sin(2 * np.pi * 550 * t)
         + rng.normal(0, 0.4, t.size))
    ax.magnitude_spectrum(i, Fs=fs, color=C3, lw=0.9)
    ax.grid(False)
    ax.set_xlim(0, 1200)
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("幅值 " + IT["I"] + SUB["h"] + " / A")
    save(fig, "11_幅值谱", "11_幅值谱_变频器电流幅值谱")

def mag_03():
    """电机轴承振动加速度幅值谱。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(1103)
    fs = 5000
    t = np.arange(0, 2.0, 1 / fs)
    x = (1.6 * np.sin(2 * np.pi * 24.7 * t) + 0.8 * np.sin(2 * np.pi * 49.4 * t)
         + 0.45 * np.sin(2 * np.pi * 148 * t) + rng.normal(0, 0.15, t.size))
    ax.magnitude_spectrum(x, Fs=fs, color=C1, lw=0.9)
    ax.grid(False)
    ax.set_xlim(0, 600)
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("加速度 / (m/s²)")
    save(fig, "11_幅值谱", "11_幅值谱_轴承振动幅值谱")

def mag_04():
    """变电站环境噪声幅值谱。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(1104)
    fs = 8000
    t = np.arange(0, 2.0, 1 / fs)
    x = (0.9 * np.sin(2 * np.pi * 100 * t) + 0.5 * np.sin(2 * np.pi * 200 * t)
         + 0.35 * np.sin(2 * np.pi * 400 * t) + rng.normal(0, 0.25, t.size))
    ax.magnitude_spectrum(x, Fs=fs, color=C5, lw=0.9)
    ax.grid(False)
    ax.set_xlim(0, 1200)
    ax.set_xlabel("频率 " + IT["f"] + " / Hz")
    ax.set_ylabel("声压 / Pa")
    save(fig, "11_幅值谱", "11_幅值谱_环境噪声幅值谱")

def mag_05():
    """风电功率波动的幅值谱。"""
    fig, ax = new_fig()
    rng = np.random.default_rng(1105)
    fs = 1.0
    t = np.arange(0, 1024, 1 / fs)
    x = (2.4 * np.sin(2 * np.pi * t / 144) + 1.3 * np.sin(2 * np.pi * t / 24)
         + 0.7 * np.sin(2 * np.pi * t / 6) + rng.normal(0, 0.4, t.size))
    ax.magnitude_spectrum(x, Fs=fs, color=C3, lw=0.9)
    ax.grid(False)
    ax.set_xlim(0, 0.25)
    ax.set_xlabel("频率 " + IT["f"] + " / (1/h)")
    ax.set_ylabel("幅值 " + IT["P"] + " / MW")
    save(fig, "11_幅值谱", "11_幅值谱_风电功率幅值谱")

说明

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