使用 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)

代码解释

  1. 定义时间向量 t 和 K 值向量 k,以及单位阶跃信号 r_step 和单位脉冲信号 r_impulse
  2. 使用 for 循环遍历不同的 K 值,计算单位阶跃响应和单位脉冲响应,并使用 subplot 将它们分别绘制在同一个图形窗口中。
  3. 使用 roots 函数计算系统特征方程的根(即极点),并根据极点的实部判断系统稳定性。
  4. 创建一个表格,存储不同 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录