已知描述系统的微分方程和激励信号f(t)如下,y”(t)+ 4y'(t)+4y(t)=f'(t)+3f(t). (1)试用MATLAB求系统在0~10秒范围内冲激响应和阶跃响应的数值解,并用绘出系统冲 激响应和阶跃响应的时域波形代码
时间: 2023-08-02 22:09:38 浏览: 961
DMU信号与系统实验二
5星 · 资源好评率100%
下面是MATLAB求解系统冲激响应和阶跃响应的代码:
```matlab
% 定义微分方程的参数
a = 1;
b = 4;
c = 4;
% 定义激励信号
t = 0:0.01:10;
f = exp(-t);
% 求解系统的零状态响应
syms y(t)
ode = diff(y,t,2) + b*diff(y,t) + c*y == 0;
cond = [y(0)==0, diff(y)(0)==0];
y_zs = dsolve(ode,cond);
y_zs = simplify(y_zs);
% 求解系统的完全响应
syms f(t)
ode = diff(y,t,2) + b*diff(y,t) + c*y == diff(f,t) + a*f;
cond = [y(0)==0, diff(y)(0)==0];
y_c = dsolve(ode,cond);
y_c = simplify(y_c);
% 求解系统的冲激响应
syms t
h = diff(y_zs,t);
t = 0:0.01:10;
h = subs(h);
% 求解系统的阶跃响应
s = 1/c;
u = s * y_c;
u = subs(u);
% 绘制系统的时域波形
subplot(2,1,1);
plot(t,h);
title('系统的冲激响应');
xlabel('时间(s)');
ylabel('幅值');
grid on;
subplot(2,1,2);
plot(t,u);
title('系统的阶跃响应');
xlabel('时间(s)');
ylabel('幅值');
grid on;
```
运行上述代码后,即可得到系统在0~10秒范围内冲激响应和阶跃响应的时域波形。
阅读全文