求以下系统的冲激响应与阶跃响应,y"(t)+4y'(t)+4(t)=f'(t)+f(t),用matlab代码表示
时间: 2023-08-06 18:05:05 浏览: 112
好的,以下是 Matlab 代码表示:
```matlab
% 定义系统的参数
a = 1;
b = 4;
c = 4;
% 定义输入信号和初始条件
f = @(t) t; % 输入信号为 t
y0 = 0;
y1 = 0;
% 求解传递函数和冲激响应
s = tf('s');
H = 1 / (s^2 + b*s + c);
h = ilaplace(H);
% 绘制冲激响应曲线
figure(1);
t = linspace(0, 5, 1000);
ht = subs(h, t);
plot(t, ht);
xlabel('Time');
ylabel('Amplitude');
title('Impulse Response');
% 求解阶跃响应
Y0 = y0;
Y1 = y1 + diff(f,t);
Y = Y1 / (s^2 + b*s + c) + Y0 / (s + b/2 + sqrt(c));
y = ilaplace(Y);
% 绘制阶跃响应曲线
figure(2);
ty = subs(y, t);
plot(t, ty);
xlabel('Time');
ylabel('Amplitude');
title('Step Response');
```
其中,`a`, `b`, `c` 分别是二阶微分方程的系数,`f` 是输入信号函数,`y0` 和 `y1` 分别是系统的初始条件。通过定义传递函数 $H(s)$,可以使用 `ilaplace` 求解出冲激响应和阶跃响应的解析式,然后用 `subs` 函数代入时间变量 `t`,绘制出响应曲线。
阅读全文