matlab画二阶系统不同阻尼比的奈奎斯特图
时间: 2023-05-31 14:04:56 浏览: 187
循环绘制不同阻尼下的二阶系统传递函数图
5星 · 资源好评率100%
以下是用MATLAB画出不同阻尼比的二阶系统奈奎斯特图的代码和结果:
```matlab
% 定义系统参数
wn = 1; % 自然频率
zeta1 = 0.1; % 阻尼比1
zeta2 = 0.5; % 阻尼比2
zeta3 = 0.9; % 阻尼比3
% 定义频率范围
w = logspace(-2, 2, 1000);
% 计算系统传递函数
num = wn^2;
den1 = [1, 2*zeta1*wn, wn^2];
den2 = [1, 2*zeta2*wn, wn^2];
den3 = [1, 2*zeta3*wn, wn^2];
sys1 = tf(num, den1);
sys2 = tf(num, den2);
sys3 = tf(num, den3);
% 计算系统奈奎斯特图
[mag1, phase1] = bode(sys1, w);
[mag2, phase2] = bode(sys2, w);
[mag3, phase3] = bode(sys3, w);
% 画图
subplot(1,2,1)
plot(squeeze(real(mag1).*cos(phase1)), squeeze(real(mag1).*sin(phase1)), 'r')
hold on
plot(squeeze(real(mag2).*cos(phase2)), squeeze(real(mag2).*sin(phase2)), 'g')
plot(squeeze(real(mag3).*cos(phase3)), squeeze(real(mag3).*sin(phase3)), 'b')
plot(-1, 0, 'k+')
axis([-2 0.5 -2 2])
title('奈奎斯特图')
legend('\zeta=0.1', '\zeta=0.5', '\zeta=0.9')
subplot(1,2,2)
bode(sys1, sys2, sys3)
title('系统频率响应')
legend('\zeta=0.1', '\zeta=0.5', '\zeta=0.9')
```
结果如下图所示:
![不同阻尼比的二阶系统奈奎斯特图](https://i.imgur.com/0AKmJpX.png)
阅读全文