频率响应描述系统对变化频率的正弦输入的稳态响应,借助频率响应,控制工程师可在频域中分析和设计控制系统。
我们以原声吉他为例,说明频域的重要性。如果我们将麦克风放在原声吉他的共鸣板附近,拨动一根琴弦(图 1 左),振动的琴弦将在吉他腔体中引起共振并产生声波,该声波被麦克风捕获。如果查看所捕获信号的时间轨迹(图 1 右),很难一下子理解刚才发生了什么。
如果我们使用频谱分析仪或对时域信号进行快速傅里叶变换 (fft),从而在频域中观察这个信号,就能看到在某个频率处有一个振幅峰值(图 2 左)。此峰值频率是构成我们刚才弹奏的音符的基础音调。当我们调整调音器旋钮或将琴弦压到吉他琴颈时,会改变这根琴弦的预紧量或有效长度。这将提高或降低琴弦共振的频率,从而产生不同音符(图 2 右)。通过这一简单的频域分析,我们可以看到吉他(系统)对弹拨(系统输入)的响应。
我们可以用类似的方法观察其他系统对输入或环境激励的响应。我们可以深入了解系统动态特性,例如闭环系统的谐振峰值频率、直流增益、带宽、相位延迟以及相位和增益裕度。
获取系统的频率响应
您可以使用 matlab® 和 simulink® 获取系统的频率响应,下图有助于您确定具体方法(如灰色框所示)。
- 如果系统具备传递函数或状态空间模型形式的线性表示,则可以使用以下三种图之一来绘制频率响应:、或。波特图将幅值和相位表示为激励信号频率的函数(图 4)。
例如,假设系统 \((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)\)
某些情况下,系统可能不具备线性表示。
- 此时,如果您可以访问物理系统的输入输出测试数据,则可以通过 system identification toolbox™ 使用数据驱动的建模方法来识别系统的传递函数、状态空间表示和频率响应模型。
- 如果您使用 simulink 对系统动态特性建模,则可以使用 simulink control design™ 中的模型线性化工具来线性化模型,以创建 simulink 模型的线性状态空间逼近,并绘制频率响应。
- 如果 simulink 模型因其不连续性而无法线性化,您可以使用频率响应估计来直接估计频率响应模型。
simulink control design 提供两种方法来估计系统的频率响应模型。
以指定频率的输入扰动信号激励系统,并在仿真期间记录模型输出端的响应(图 5)。在仿真后,对记录的输入和输出信号进行处理以计算模型的频率响应。
在实时运行期间使用 估计物理被控对象的频率响应。该模块在标称工作点上将正弦测试信号注入被控对象,频率响应随着输出信号数据的采集而不断完善。
您可以参考下表,对照您在估计的频率范围、准确度和速度方面的要求,选择要注入何种扰动信号。
输入信号类型 | 离线/在线估计适用性 | 频率范围(窄带/宽带) | 准确度 | 估计速度 | 适用情形 |
---|---|---|---|---|---|
1 至 5 星(由低到高) | |||||
正弦流 | 离线、在线 | 窄带 | ★★★★★ | ★ | 系统具有明显的非线性,或您需要高准确度的频率响应模型。 |
线性调频 | 离线 | 宽带 | ★★ | ★★★ | 系统在频率范围内近乎线性。也适用于要快速获得大量频率点的响应的情形。 |
prbs | 离线 | 宽带 | ★★ | ★★★ | 系统包含高频开关组件,如通信和电力电子系统。 |
阶跃 | 离线 | 宽带 | ★ | ★★★ | 以不超过奈奎斯特频率的各频率均匀激励系统 |
随机 | 离线 | 宽带 | ★★ | ★★★ | 您对所估计的系统了解不多。 |
总的来说,计算系统的频率响应对于控制分析和设计很重要。matlab 和 simulink 提供不同方法来帮助您获得系统的频率响应。要了解有关这些方法的详细信息,请参阅以下示例和参考。