借助matlab,已知闭环系统的频率,输入峰峰值和输出峰峰值,延迟时间,画出闭环系统的幅频,相频及对数频率特性
时间: 2023-12-11 18:04:35 浏览: 81
用MATLAB分析闭环系统的频率特性.doc
假设已知闭环系统的频率为freq,输入峰峰值为input_pp,输出峰峰值为output_pp,延迟时间为delay_time,可以按照以下步骤绘制闭环系统的幅频,相频及对数频率特性:
1. 定义频率向量freq_vec,从0到2倍freq,以freq/100的间隔递增:
```
freq_vec = 0:freq/100:2*freq;
```
2. 定义延迟时间delay,计算系统的相位角:
```
delay = delay_time * 2 * pi * freq;
phase = -atan(delay .* freq_vec);
```
3. 计算系统的幅频响应:
```
gain = output_pp / input_pp;
amplitude = gain ./ sqrt(1 + (freq_vec .* delay).^2);
```
4. 绘制幅频特性曲线:
```
subplot(2,1,1);
semilogx(freq_vec, 20*log10(amplitude));
grid on;
xlabel('Frequency (Hz)');
ylabel('Amplitude (dB)');
title('Bode Plot - Amplitude');
```
5. 绘制相频特性曲线:
```
subplot(2,1,2);
semilogx(freq_vec, phase .* 180 / pi);
grid on;
xlabel('Frequency (Hz)');
ylabel('Phase (deg)');
title('Bode Plot - Phase');
```
6. 绘制对数频率特性曲线:
```
figure;
semilogx(freq_vec, 20*log10(amplitude));
grid on;
xlabel('Log Frequency (Hz)');
ylabel('Amplitude (dB)');
title('Bode Plot - Logarithmic Amplitude');
```
其中,subplot函数用于绘制多个子图,semilogx函数用于绘制对数坐标系下的曲线。
阅读全文