欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制

程序员文章站 2022-05-22 12:38:09
...

背景

在复平面上表示传递函数的幅值相位角随频率的改变而改变的图就是nyquist图(奈奎斯特图,奈氏图),表示控制系统的幅相频率特性,横坐标U(real number)纵坐标jV(imaginary number);伯德图(bode)利用对数表示系统的幅频、相频特性,它分为两个图,一个是对数幅频图、一个是相频图,横坐标均为w,纵坐标一个为L(w),一个为fi(w),MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制,fi为相位角;而对数幅相图(nichols plot)则是将幅频和相频在一张图上表示出来了,横坐标是相位角fi(w)、纵坐标是增益K、然后图里面有不同的幅值线(幅值单位dB),具体参见这里

这里的传递函数以惯性环节为例,也即MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制,T取0.01。

奈氏图

分子分母的系数分别存入两个1维矩阵,这里我利用了sys=tf()构造了系统sys。tf转换效果就是构造一些系统,比如你输入两个一维矩阵,那么就会构造一个分式。具体见这里。nyquist(sys)直接把一个传递函数输入,然后绘出奈氏图[re,im,w]=nyquist(sys)则是根据需要返回传递函数将s替换成jw后的实部、虚部,还有相应的频率。

num=[1];
den=[0.01 1];

figure();
sys=tf(num,den);
nyquist(sys);
[re,im,w]=nyquist(sys);
grid on

效果图,图例看到不清楚,惯性环节的奈氏图是一个圆过(0,0)和(1,0):

MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制

伯德图

和奈氏图的解释大同小异,函数是bode()。

num=[1];
den=[0.01 1];

figure();
bode(sys);
[reb,imb,wb]=bode(sys);
grid on

效果图:

MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制

对数幅相图

解释同奈氏图,函数是nichols()。

num=[1];
den=[0.01 1];

figure();
nichols(sys);
[reni,imni,wni]=nichols(sys);
grid on

效果图:

MATLAB频域分析,奈氏图、伯德图、对数幅相图绘制