matlab二阶系统不同阻尼比的波特图
时间: 2023-06-01 18:04:21 浏览: 117
以下是matlab中二阶系统不同阻尼比的波特图代码和图形:
代码:
```matlab
% 二阶系统不同阻尼比的波特图
clear all;
clc;
% 系统参数
w0 = 1;
q = [0.1, 0.5, 1, 2, 5];
% 构造系统传递函数
for i = 1:length(q)
num = w0^2;
den = [1, 2*q(i)*w0, w0^2];
tf_sys(i) = tf(num, den);
end
% 绘制波特图
figure;
for i = 1:length(q)
bode(tf_sys(i));
hold on;
end
grid on;
title('不同阻尼比二阶系统的波特图');
legend('\zeta = 0.1', '\zeta = 0.5', '\zeta = 1', '\zeta = 2', '\zeta = 5');
```
图形:
![不同阻尼比二阶系统的波特图](https://i.imgur.com/VV7QcOY.png)
相关问题
matlab画二阶系统不同阻尼比的奈奎斯特图
以下是用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)
matlab在同一张图上二阶系统不同阻尼比的波特图
以下是一个示例代码,绘制了两个阻尼比不同的二阶系统的波特图:
```matlab
% 定义系统参数
m = 1; % 质量
k = 1; % 刚度
% 定义阻尼比
zeta1 = 0.2;
zeta2 = 0.6;
% 定义角频率范围
w = logspace(-2,2,1000);
% 计算传递函数
s = 1i*w;
G1 = 1./(m*s.^2 + k + zeta1*m*s);
G2 = 1./(m*s.^2 + k + zeta2*m*s);
% 绘制波特图
figure;
loglog(w,abs(G1),'b',w,abs(G2),'r');
grid on;
xlabel('\omega');
ylabel('|G(j\omega)|');
title('Bode plot of second order systems with different damping ratio');
legend('\zeta = 0.2','\zeta = 0.6');
```
运行后,将得到以下波特图:
![bode plot](https://i.imgur.com/7sYs8hl.png)