系统阶跃响应 编写一个简单的 M 文件,计算二阶动态系统的阶跃响应,ζ 值从 0.1 到 1,且绘制出 一簇阶跃响应曲线。二阶动态系统的数学模型如下: 2 2 2 ( ) 2 n n n G s s s 分别设固有频率为 1、2。
时间: 2024-09-27 13:13:22 浏览: 56
系统阶跃响应是指当二阶动态系统受到单位阶跃输入时,其输出随时间变化的特性。对于给定的二阶系统,其传递函数通常表示为:
\[ G(s) = \frac{\omega_n^2}{s^2 + 2\zeta\omega_n s + \omega_n^2} \]
其中,\(\omega_n\) 是固有频率,\(\zeta\) 是阻尼比。在这个例子中,固有频率分别设为 \(1\) 和 \(2\)。
为了编写一个 MATLAB(M文件)来计算和绘制不同阻尼比 \(\zeta\) 下的阶跃响应曲线,你可以创建一个函数,如下面所示:
```matlab
function plot_step_response(wn_values, zeta_values)
% 初始化图形和变量
figure;
hold on;
for wn = wn_values
for zi = zeta_values
% 计算零点和极点
p = [-zi*wn - wn; wn];
z = [0; 0];
% 创建传递函数
sys = tf(p, z);
% 求解阶跃响应
step(sys);
title(sprintf('System Step Response at ωn=%g, ζ=%g', wn, zi));
xlabel('Time (s)');
ylabel('Amplitude');
legend('Step Response');
% 显示每个响应后清除当前图像,准备下一个
cla;
end
end
% 添加网格线和标题
grid on;
title('Bode Plot of Second Order System Response');
end
% 要计算的固有频率和阻尼比范围
wn_range = [1, 2];
zi_range = 0.1:0.1:1;
% 调用函数绘制响应
plot_step_response(wn_range, zi_range);
```
运行这个 M 文件会生成一系列的阶跃响应图,展示固有频率分别为 1 和 2 的二阶系统在不同阻尼比下的响应情况。每一条曲线代表一种 \(\zeta\) 值的变化。
阅读全文