目录

MATLAB-控制系统设计与仿真-21

MATLAB 控制系统设计与仿真 - 21

频域分析的MATLAB函数

频域分析法是经典控制领域的一个重要分析与设计工具,是应用频率特性研究线性系统的一种实用方法。一般用开环系统Bode图,Nyquist图,Nichols图以及相应的稳定判据来分析系统的稳定性,动态性能,稳态性能。

Nyquist图

MATLAB提供了nyquist函数用于求连续系统的Nyquist图,函数的调用格式为:

nyquist(sys); % 计算并在当前窗口绘制线性系统sys的Nyquist图
              % 当系统为多输入/多输出时,产生一组Nyquist图,每个输入输出对应一个Nyquist图
nyquist(sys,w); % 显示定义绘制时的频率点w。
                % 若要定义频率范围,w必须有[wmin wmax]格式,
                % 如果定义频率点,则w必须是所需频率点组成的向量
[re im w]=nyquist(sys); % 返回系统的频率响应,re为实部,im为虚部,w为对应的频率点

例-1

连续系统的传递函数为:

https://latex.csdn.net/eq?G%28s%29%3D%5Cfrac%7Bs+8%7D%7Bs%28s%5E2+s+4%29%28s+1%29%28s+3%29%7D

绘制对应的Nyquist图:

MATLAB代码如下:

clear all;clc;
s=tf('s');
sys=(s+8)/(s*(s^2+s+4)*(s+1)*(s+3));
nyquist(sys);
ylim([-2 2]);

程序运行结果如下:

https://i-blog.csdnimg.cn/direct/986e6a4bfac84aa2adcfc8736ca462bb.jpeg

Bode图

MATLAB提供了bode函数用于求系统的Bode图,函数的调用格式为:

bode(sys); % 计算并在当前窗口绘制sys的Bode图
bode(sys,w); % 计算并在当前窗口绘制sys的Bode图,w为所需频率点的向量
[mag,phasew]=bode(sy,w); % 计算Bode图数据并存储在变量中,
                           % mag为幅值,phase为相位,w为对应的频率点

例-2

对例-1的传递函数绘制Bode图

MATLAB程序如下:

clear all;clc;
s=tf('s');
sys=(s+8)/(s*(s^2+s+4)*(s+1)*(s+3));
w=0:0.1:1000;
bode(sys,w);
grid on

程序运行结果如下:

https://i-blog.csdnimg.cn/direct/ab6a99af3fd1489d89d6ad88b8ca7163.jpeg

Nichols图

MATLAB提供了nichols函数求取连续系统的Nichols频率响应曲线,函数的调用格式为:

nichols(sys); % 计算并在当前窗口绘制sys的Nichols图
nichols(sys,w); % 计算频率范围w内的sys的Nichols图
[mag, phase, w]=nichols(sys,win); % 计算并返回sys的Nichols图数据,
                                  % mag为Nichols图幅值,phase为Nichols图相位 

例-3

对例-1的传递函数绘制Nichols图

MATLAB程序如下:

clear all;clc;
s=tf('s');
sys=(s+8)/(s*(s^2+s+4)*(s+1)*(s+3));
w=0:0.1:1000;
nichols(sys,w);
grid on

程序运行结果如下:

https://i-blog.csdnimg.cn/direct/88ec854d3c53441c9de29dc9fb3a41d0.jpeg

Nichols图可以很直观的看到闭环系统

https://latex.csdn.net/eq?%5Cfrac%7Bsys%7D%7B1+sys%7D 的gain margin 和phase margin,所以在控制系统设计中也是一个很好的工具。后面会用具体实例来说明Nichols的稳定性判据。

最后,欢迎大

家有问题给我留言。

另外欢迎小伙伴们点

赞转发加关注

谢大家!!