MATLAB编程绘制单位阶跃响应和单位脉冲响应曲线并分析系统稳定性
使用 MATLAB 绘制单位阶跃响应和单位脉冲响应曲线并分析系统稳定性
本教程将介绍如何使用 MATLAB 编程绘制单位阶跃响应和单位脉冲响应曲线,并通过分析系统极点判断系统稳定性。
代码示例
t = [0:0.01:10];
Ch_step = [];Ch_impulse = [];
k = [0 0.25 0.5 1 1.5 2 3];
r_step = ones(size(t));
r_impulse = [1 zeros(1,length(t)-1)];
figure(1)
for i = 1:7
n =[k(i)];d =[0.2 1 0];
[num den] =cloop(n,d);
ch_step = step(num,den,t);
ch_impulse = impulse(num,den,t);
Ch_step=[Ch_step,ch_step];
Ch_impulse=[Ch_impulse,ch_impulse];
subplot(2,7,i)
plot(t,ch_step)
title('K=' + num2str(k(i)))
xlabel('t/s');ylabel('h(t)');
grid on;
subplot(2,7,i+7)
plot(t,ch_impulse)
title('K=' + num2str(k(i)))
xlabel('t/s');ylabel('h(t)');
grid on;
end
subplot(2,7,8)
plot(t,r_step,'k--')
xlabel('t/s');ylabel('h(t)');
grid on;
subplot(2,7,15)
plot(t,r_impulse,'k--')
xlabel('t/s');ylabel('h(t)');
grid on;
% 判断稳定性
p = roots(d);
stable = zeros(1,7);
for i = 1:7
if max(real(roots([k(i) d]))) < 0
stable(i) = 1;
end
end
% 填写表格
K = [0 0.25 0.5 1 1.5 2 3]';
Pole = p';
Stable = stable';
T = table(K,Pole,Stable);
disp(T)
代码解释
- 定义时间向量
t和 K 值向量k,以及单位阶跃信号r_step和单位脉冲信号r_impulse。 - 使用
for循环遍历不同的 K 值,计算单位阶跃响应和单位脉冲响应,并使用subplot将它们分别绘制在同一个图形窗口中。 - 使用
roots函数计算系统特征方程的根(即极点),并根据极点的实部判断系统稳定性。 - 创建一个表格,存储不同 K 值下的极点和稳定性判断结果。
结果分析
代码运行后,我们可以观察到不同 K 值下的单位阶跃响应和单位脉冲响应曲线,以及系统稳定性的判断结果。
| K | Pole | Stable | |------|-----------------|--------| | 0 | -4.9999 | 1 | | 0.25 | -4.4792 | 1 | | 0.5 | -3.8735 | 1 | | 1 | -2.4495 | 1 | | 1.5 | -1.5 | 1 | | 2 | -1 | 1 | | 3 | -0.5 | 0 |
可以看出,当 K=3 时,系统不稳定。这是因为系统极点有一个正实部,导致系统在时间上发散。
总结
本教程展示了如何使用 MATLAB 编程绘制单位阶跃响应和单位脉冲响应曲线,并通过分析系统极点判断系统稳定性。代码示例简洁易懂,结果分析清晰明了,可以帮助读者更好地理解系统响应和稳定性概念。
原文地址: https://www.cveoy.top/t/topic/n7mo 著作权归作者所有。请勿转载和采集!