《用MATLAB进行控制系统频域分析》
MATLAB是一款强大的数学计算软件,尤其在控制系统分析领域,它提供了丰富的工具和函数,使得工程师和研究人员能够高效地进行频域分析。本章将详细介绍如何利用MATLAB进行线性系统的频域分析,包括频率特性函数的计算、奈魁斯特图的绘制以及伯德图的生成。
1. **频率特性函数G(jω)**
频率特性函数G(jω)是控制理论中分析系统动态特性的关键。对于传递函数为G(s)的线性系统,可以通过将s替换为jω来获取其在复频域的表现。MATLAB通过以下语句计算G(jω):
```matlab
i = sqrt(-1); % 定义虚数单位
GW = polyval(num, i*w) ./ polyval(den, i*w);
```
这里的`num`和`den`分别是传递函数的分子和分母多项式,`w`是频率点的向量。这个过程虽然简单,但在系统极点附近可能精度不高,且结果可能包含复数。
2. **绘制奈魁斯特图**
MATLAB的`nyquist()`函数用于绘制奈魁斯特图,它是评估系统稳定性的重要工具。调用格式如下:
```matlab
nyquist(num, den)
nyquist(num, den, w)
nyquist(G)
nyquist(G, w)
```
函数会根据给定的传递函数模型或直接绘制开环系统的奈氏曲线。如果指定了频率向量`w`,则在这些频率点上计算响应;否则,MATLAB会自动选择合适的频率范围。
3. **绘制伯德图**
伯德图是分析系统幅频特性和相频特性的常见方法。MATLAB的`bode()`函数用于生成伯德图,其调用格式如下:
```matlab
[mag, phase, w] = bode(num, den, w)
[mag, phase, w] = bode(G)
[mag, phase, w] = bode(G, w)
```
函数返回的`mag`和`phase`分别代表幅值和相位,`w`是频率点。默认情况下,幅值以增益表示,相位以度为单位。要将其转换为分贝和角度,可以使用`magdb=20*log10(mag)`。此外,可以使用`logspace()`函数来生成对数频率向量,如`w=logspace(d1, d2)`或`w=logspace(d1, d2, n)`,用于控制频率范围和等分数。
在实际绘制伯德图时,需结合`semilogx()`或`semilogy()`等函数进行半对数坐标绘图,并使用`subplot()`来创建子图,以便在同一窗口内显示幅频和相频图。
总结,MATLAB的这些功能使控制系统的频域分析变得直观且高效,无论是在教学还是工程实践中,都是不可或缺的工具。通过对频率特性函数的计算、奈魁斯特图和伯德图的绘制,我们可以深入理解系统的动态行为,进而优化设计和调试控制系统。