动画 1 · FRA 基本原理:正弦扫频如何画出 Bode 图 ← 返回目录

FPGA 向马达注入正弦(蓝色 sin_in),马达输出同频正弦但幅值变化、相位移动(橙色 sin_out)。 每个频率测一组「增益 = 20·log10(幅值比)、相位 = 相位差」,点到右侧 Bode 图上;扫完整个频段,系统特性一目了然。 被控对象用 VCM 典型的二阶谐振模型 P(s)=K·ωn²/(s²+2ζωn·s+ωn²)。

时域:输入 / 输出正弦(稳态)

sin_in(FPGA 注入激励) sin_out(马达位置反馈 code_fb)
增益 相位 幅值比

频域:Bode 图(逐点生成)

增益 dB 相位 ° ◉ 当前频率
观察要点: ① 频率远低于 fn 时,输出几乎跟随输入(增益≈K,相位≈0°); ② 频率接近 fn(谐振)时,输出被放大(增益出现尖峰,ζ 越小峰越高),相位快速滑向 -90°; ③ 频率远高于 fn 后,马达"跟不动了",增益按 -40dB/dec 跌落,相位趋于 -180° —— 这正是闭环稳定性问题的根源。 对应代码:每个点的增益/相位由 FPGA 用相关法(单频 DFT)算出,即 fra_calc.c: atan2(Σy·cos, Σy·sin) 与 20·log10(|Y|/|X|); MCU 侧 fra_fpga_ctrl.c: fra_fpga_scan() 按 logspace 频点表逐点驱动 FPGA 完成整条曲线。