4. 已知描述系统的微分方程和激励信号f(t)如下,y’’(t)+ 4y’(t)+4y(t)=f’(t)+3f(t) . (1) 试用MATLAB求系统在0~10秒范围内冲激响应和阶跃响应的数值解,并用绘出系统冲激响应和阶跃响应的时域波形. (2)若f(t)= exp(-t) ,试用解析法求系统的零状态响应y(t),并用MATLAB绘出系统零状态响应的时域仿真波形,验证结果是否相同.
时间: 2023-08-04 10:07:15 浏览: 1603
为了求解该系统的冲激响应和阶跃响应,我们可以使用MATLAB中的dsolve函数。首先,我们需要定义微分方程和激励信号,并使用initials函数定义初始条件。
代码如下:
```
syms y(t)
eqn = diff(y,t,2) + 4*diff(y,t) + 4*y == diff(exp(-t),t) + 3*exp(-t);
ySol(t) = dsolve(eqn, y(0)==0, Dy(0)==0);
```
这里,我们使用了符号工具包中的syms函数定义了未知函数y(t),并使用diff函数对y(t)进行微分操作。然后,我们将微分方程和初始条件传递给dsolve函数,并将返回的解赋值给ySol(t)。
接下来,我们可以使用ezplot函数绘制系统的冲激响应和阶跃响应的时域波形。代码如下:
```
figure;
subplot(2,1,1);
impulse(ySol, [0, 10]);
title('Impulse response');
subplot(2,1,2);
step(ySol, [0, 10]);
title('Step response');
```
这里,我们使用subplot函数将两个图形显示在同一张图中,分别绘制系统的冲激响应和阶跃响应的时域波形。
下面,我们尝试使用解析法求解系统的零状态响应y(t)。由于激励信号为指数信号,我们可以猜测y(t)的形式为y(t) = Ae^(-t)。将其代入微分方程,可以得到:
Ae^(-t) + 4Ae^(-t) + 4Ae^(-t) = -e^(-t) + 3e^(-t)
化简后,可得到A = -1。因此,系统的零状态响应为y(t) = -e^(-t)。
最后,我们可以使用MATLAB绘制系统的零状态响应的时域仿真波形,代码如下:
```
t = linspace(0, 10, 1000);
yZS = -exp(-t);
figure;
plot(t, yZS);
title('Zero-state response');
```
这里,我们使用linspace函数生成时间序列t,并使用-yZS表示系统的零状态响应。然后,我们使用plot函数绘制系统的零状态响应的时域仿真波形。
阅读全文