如何用matlab绘制传递函数为H(s) = 20s^2/(s^2 + s )的系统的频率特性图
时间: 2024-02-05 14:12:20 浏览: 180
matlab开发-3传递函数图
可以按照以下步骤进行绘制:
1. 首先定义传递函数 H(s):
```
s = tf('s');
H = 20*s^2/(s^2+s);
```
2. 计算系统的频率响应:
```
w = logspace(-2, 2, 1000); % 定义频率范围
[mag, phase] = bode(H, w); % 计算幅频响应和相频响应
mag = 20*log10(mag); % 将幅度转换为 dB
```
3. 绘制幅频响应图:
```
subplot(2,1,1);
semilogx(w, mag);
grid on;
title('Bode Plot of H(s)');
ylabel('Magnitude (dB)');
% 添加峰值点标记
[max_mag, idx] = max(mag);
hold on;
plot(w(idx), max_mag, 'ro');
text(w(idx), max_mag, sprintf('(%0.2f, %0.2f dB)', w(idx), max_mag));
% 绘制水平参考线
ref_mag = max_mag - 3; % 设定参考线为峰值点下降3dB处
plot([w(1), w(end)], [ref_mag, ref_mag], '--');
% 设置纵坐标范围
ylim([min(mag)-5, max_mag+5]);
```
4. 绘制相频响应图:
```
subplot(2,1,2);
semilogx(w, phase);
grid on;
xlabel('Frequency (rad/s)');
ylabel('Phase (deg)');
% 添加水平参考线
ref_phase = -135; % 设定参考线为-135度
hold on;
plot([w(1), w(end)], [ref_phase, ref_phase], '--');
% 设置纵坐标范围
ylim([-180, 0]);
```
运行以上代码即可得到频率特性图。
阅读全文