频率响应

什么是频率响应

频率响应描述系统对变化频率的正弦输入的稳态响应,借助频率响应,控制工程师可在频域中分析和设计控制系统。

我们以原声吉他为例,来理解频域的重要性。如果我们将麦克风放在原声吉他的共鸣板附近,拨动一根琴弦(图 1 左),振动的琴弦将在吉他腔体中引起共振并产生声波,该声波被麦克风捕获。如果查看所捕获信号的时间轨迹(图 1 右),很难一下子理解刚才发生了什么。

振动在吉他腔体中引起共振并产生声波。

图 1:振动在吉他腔体中引起共振并产生声波(左)。信号在时域中的时间轨迹(右)。

如果我们使用频谱分析仪或对时域信号进行快速傅里叶变换 (FFT),从而在频域中观察这个信号,就能看到在某个频率处有一个振幅峰值(图 2 左)。此峰值频率是构成我们刚才弹奏的音符的基础音调。当我们调整调音器旋钮或将琴弦压到吉他琴颈时,会改变这根琴弦的预紧量或有效长度。这将提高或降低琴弦共振的频率,从而产生不同音符(图 2 右)。通过这一简单的频域分析,我们可以看到吉他(系统)对弹拨(系统输入)的响应。

图 2:同一信号在频域中的显示。

图 2:同一信号在频域中的显示(左)。通过预紧琴弦更改其共振频率(右)。

我们可以用类似的方法观察其他系统对输入或环境激励的响应。我们可以深入了解系统的动态特性,例如谐振峰值频率、直流增益、带宽、相位延迟,以及闭环系统的相位裕度和增益裕度。

获取系统的频率响应

您可以使用 MATLAB® 和 Simulink® 获取系统的频率响应,下图有助于您确定具体方法(如灰色框所示)。

图 3:使用 MATLAB 和 Simulink 获得系统的频率响应。

图 3:使用 MATLAB 和 Simulink 获得系统的频率响应。

  1. 如果系统具有传递函数或状态空间模型形式的线性表示,则可以使用以下三种图之一来绘制频率响应:波特图奈奎斯特图尼柯尔斯图。波特图将幅值和相位表示为激励信号频率的函数(图 4)。
  2. 例如,假设系统 \((H)\) 有如下传递函数表示:

    $$H(s) = {s^2+ 0.1s + 7.5\over s^4+0.12s^3+9s^2}.$$

    您可以使用以下命令在 MATLAB 中绘制其频率响应:

    \(H = {tf([1 \quad 0.1\quad 7.5], [1 \quad 0.12 \quad 9 \quad 0 \quad 0]});\)

    \(bode(H)\)

图 4:波特图。

图 4:波特图。

某些情况下,系统可能不具备线性表示。

  1. 此时,如果您可以访问物理系统的输入输出测试数据,则可以通过 System Identification Toolbox™ 使用数据驱动的建模方法来识别系统的传递函数、状态空间表示和频率响应模型。
  2. 如果您使用 Simulink 对系统动态特性建模,则可以使用 Simulink Control Design™ 中的模型线性化工具来线性化模型,以创建 Simulink 模型的线性状态空间逼近,并绘制频率响应。
  3. 如果 Simulink 模型因其不连续性而无法线性化,您可以使用频率响应估计来直接估计频率响应模型。对于因周期激励或自激振荡而产生不连续性的系统(例如电力电子模型),您可以使用 Simulink Control Design 计算周期性稳态工作点。随后,可以围绕这一稳态周期工作点执行频率响应估计,从而尽量缩短所需的仿真时间。
图 5:Simulink 中的频率响应估计。

图 5:Simulink 中的频率响应估计。

Simulink Control Design 提供两种方法来估计系统的频率响应模型。

离线频率响应估计
模型线性化工具在指定频率下通过输入扰动信号激励系统,并在仿真期间记录模型输出端的响应(图 5)。仿真结束后,对记录的输入和输出信号进行处理,以计算模型的频率响应。

在线频率响应估计
在实时运行期间,使用 Frequency Response Estimator 模块估计物理被控对象的频率响应。该模块在标称工作点向被控对象注入正弦测试信号,并随着输出信号数据的采集持续优化频率响应。

您可以参考下表,对照您在估计的频率范围、准确度和速度方面的要求,选择要注入何种扰动信号。

输入信号类型 离线/在线估计适用性 频率范围(窄带/宽带) 准确度 估计速度 适用情形
      1 至 5 星(由低到高)  
正弦流 离线、在线 窄带 ★★★★★ 系统具有明显的非线性,或您需要高准确度的频率响应模型。
叠加 在线 窄带 ★★★ ★★ 您希望同时激励多个频率以缩短实验时间,从而实现更快的在线或实时频率响应估计。
线性调频 离线 宽带 ★★ ★★★ 系统在频率范围内近乎线性。也适用于要快速获得大量频率点的响应的情形。
PRBS 离线、在线 宽带 ★★ ★★★ 系统包含高频开关组件,如通信和电力电子系统。
阶跃 离线 宽带 ★★★ 在直至奈奎斯特频率的所有频率上均匀激励系统。
随机 离线 宽带 ★★ ★★★ 您对所估计的系统了解不多。

总的来说,计算系统的频率响应对于控制分析和设计很重要。MATLAB 和 Simulink 提供不同方法来帮助您获得系统的频率响应。要了解有关这些方法的详细信息,请参阅以下示例和参考。


频率响应常见问题解答

频率响应描述系统对变化频率的正弦输入的稳态响应,借助频率响应,控制工程师可在频域中分析和设计控制系统。

频域让我们能够更轻松地提取有关系统行为的有用信息,例如谐振峰值、直流增益、带宽和相位延迟,而这些信息在时域信号中很难快速识别。

波特图是一种图形表示,将系统频率响应的幅值和相位显示为激励信号频率的函数。

您可以使用 System Identification Toolbox 中数据驱动的建模方法,根据输入输出测试数据识别频率响应模型。如果您使用 Simulink 对系统动态特性建模,则可以使用 Simulink Control Design 执行频率响应估计。

离线估计在仿真期间使用扰动信号激励系统,并在仿真结束后处理记录的数据;而在线估计则使用 Frequency Response Estimator 模块注入正弦信号,并在实时运行期间优化频率响应。

正弦流信号通常能为频率响应估计提供最高的准确度,在系统具有明显的非线性或需要高准确度模型时尤其有用。

当 Simulink 模型因不连续性而无法线性化,或需要在实时运行期间估计物理被控对象的响应时,应使用频率响应估计。

不是。频率响应虽然是控制工程的核心,但它也应用于信号处理、振动分析、声学、电力电子等许多工程领域,在这些领域中,理解系统如何对不同频率作出反应至关重要。


另请参阅: 控制系统