已知描述某连续系统的微分方程为: 2y"( t )+ y '( t )+8y( t )= f ( t ), 试用 MATLAB : 用留数法求解脉冲响应和阶跃响应,并画出响应的波形
时间: 2023-08-09 10:10:49 浏览: 301
好的,这是一个关于连续系统的微分方程,我们可以通过留数法求解该系统的脉冲响应和阶跃响应。以下是MATLAB代码实现:
```matlab
% 定义微分方程
num = 1;
den = [2 1 8];
sys = tf(num,den);
% 计算系统的极点和零点
[z,p,k] = tf2zp(num,den);
% 定义脉冲信号和阶跃信号
t = 0:0.01:30;
delta = zeros(size(t));
delta(1) = 1;
u = ones(size(t));
% 计算系统的脉冲响应
residues = residue(num,den,p);
h_impulse = zeros(size(t));
for i = 1:length(residues)
h_impulse = h_impulse + real(residues(i)*exp(p(i)*t));
end
% 计算系统的阶跃响应
h_step = zeros(size(t));
for i = 1:length(residues)
h_step = h_step + real(residues(i)/(p(i))*exp(p(i)*t));
end
% 绘制脉冲响应和阶跃响应的波形
figure();
subplot(2,1,1);
plot(t,h_impulse.*delta);
grid on;
title('Impulse Response');
subplot(2,1,2);
plot(t,h_step.*u);
grid on;
title('Step Response');
```
上述代码中,我们首先通过给出微分方程的分子和分母系数来定义系统。然后,我们使用`tf2zp`函数计算系统的极点和零点。接着,我们定义了脉冲信号和阶跃信号,并使用留数法计算系统的脉冲响应和阶跃响应。最后,我们绘制了脉冲响应和阶跃响应的波形。最终的结果如下图所示:
![impulse and step response](https://img-blog.csdnimg.cn/20220107133905901.png)
可以看到,我们成功地使用留数法求解了该系统的脉冲响应和阶跃响应,并画出了响应的波形。
阅读全文