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。
- 图内不放标题,图题由本文件的二级/三级标题承担。
- 数据为贴近广东实际量级的仿真算例,随机种子固定,重跑结果一致。

浙公网安备 33010602011771号