(2)系统开环传递函数为G(s)=k/(s*(1+0.1*s)*(1+0.5*s)) 要求:绘制当K=5、30时系统的开环频率特性Bode图,并判断系统的稳定性。 根据上述写一段matlab代码
时间: 2024-11-30 22:15:26 浏览: 9
用MATLAB实现线性系统的频域分析报告.pdf
开环传递函数G(s)是一个典型的3rd-Order Low Pass Filter (三阶低通滤波器)形式,其零点位于s = -1 和 s = -0.5,极点位于s = 0。在MATLAB中,我们可以使用`bode`函数绘制Bode图,同时通过计算幅值裕度和相位裕度来判断系统的稳定性。
首先,我们需要将传递函数转换成极点-零点形式(p-z form),然后用`pzmap`生成对应的极点和零点。接下来是绘制Bode图的代码示例:
```matlab
% 定义系统的开环增益和传递函数
k_values = [5, 30]; % 可调整的增益值
numerator = [k];
denominator = [1, 0.1, 0.5];
% 创建一个结构数组存储不同增益下的极点和零点
sys_array = cellfun(@(k) tf(numerator, denominator * k), k_values);
% 绘制Bode图
figure;
for i = 1:length(sys_array)
subplot(2, 1, i)
bode(sys_array{i})
title(sprintf('System with gain K = %g', k_values(i)));
end
% 判断稳定性:需要计算幅值裕度(Absolute Stability Margin)和相位裕度(Phase Margin)
for sys_i = 1:length(sys_array)
[mag, phase] = bode(sys_array{sys_i});
abs_margin = mag(end);
phase_margin_degrees = phase(end);
fprintf('For K = %d:\n', k_values(sys_i));
fprintf('Magnitude Margin: %.2f dB\n', 20*log10(abs_margin));
fprintf('Phase Margin: %.2f degrees\n', phase_margin_degrees);
% 系统稳定性的判断:通常相位裕度大于 -180 度,幅值裕度>0
if phase_margin_degrees > -180 && abs_margin > 0
fprintf('The system is stable.\n');
else
fprintf('The system may be unstable.\n');
end
end
阅读全文