完成文档中实验内容下的所有题目
时间: 2024-11-06 09:19:05 浏览: 19
要完成《实验4-连续系统时域求解》中的所有实验内容题目,需要按照以下步骤操作:
### 1. 验证性实验
#### 1.1 求零输入响应、零状态响应和完全响应,并求冲激响应和阶跃响应
**系统方程:**
\[ \frac{d^2 r}{dt^2} + 3 \frac{dr}{dt} + 2r = 2 \frac{de}{dt} + e \]
**输入:**
\[ e(t) = e^{-t} u(t) \]
**起始条件:**
\[ r(0) = 1, \frac{dr(0)}{dt} = 0 \]
**代码:**
```matlab
% 求零输入响应
syms t
ans = dsolve('D2r+3*Dr+2*r=0', 'r(0)=1', 'Dr(0)=0');
rzi = simplify(ans);
% 求零状态响应
ans = dsolve('D2r+3*Dr+2*r=2*De+e', 'e=exp(-t)*Heaviside(t)', 'r(-0.01)=0', 'Dr(-0.01)=0');
rzs = simplify(ans.r);
% 求完全响应
ans = dsolve('D2r+3*Dr+2*r=2*De+e', 'e=exp(-t)*Heaviside(t)', 'r(-0.001)=1', 'Dr(-0.001)=0');
r = simplify(ans.r);
% 求冲激响应
ans = dsolve('D2r+3*Dr+2*r=2*De+e', 'e=Dirac(t)', 'r(-0.01)=0', 'Dr(-0.01)=0');
h = simplify(ans.r);
% 求阶跃响应
ans = dsolve('D2r+3*Dr+2*r=2*De+e', 'e=Heaviside(t)', 'r(-0.01)=0', 'Dr(-0.01)=0');
g = simplify(ans.r);
```
#### 1.2 求系统的零输入响应、零状态响应和完全响应
**系统方程:**
\[ \frac{d^2 r}{dt^2} + 7 \frac{dr}{dt} + 10r = \frac{d^2 e}{dt^2} + 6 \frac{de}{dt} + 4e \]
**起始状态:**
\[ r(0) = -\frac{6}{5}, \frac{dr(0)}{dt} = 2 \]
**激励:**
\[ e(t) = 4u(t) \]
**代码:**
```matlab
% 求零输入响应
syms t
ans = dsolve('D2r+7*Dr+10*r=0', 'r(0)=-6/5', 'Dr(0)=2');
rzi = simplify(ans);
% 求零状态响应
ans = dsolve('D2r+7*Dr+10*r=D2e+6*De+4*e', 'e=4*Heaviside(t)', 'r(-0.01)=0', 'Dr(-0.01)=0');
rzs = simplify(ans.r);
% 求完全响应
ans = dsolve('D2r+7*Dr+10*r=D2e+6*De+4*e', 'e=2*Heaviside(-t)+4*Heaviside(t)', 'r(-0.001)=4/5', 'Dr(-0.001)=0');
r = simplify(ans.r);
```
#### 1.3 绘制系统的冲激响应、阶跃响应、零状态响应及时域波形
**系统方程:**
\[ \frac{d^2 r}{dt^2} + 3 \frac{dr}{dt} + 2r = \frac{de}{dt} + 3e \]
**激励信号:**
\[ e(t) = e^{-3t} \]
**代码:**
```matlab
a = [1, 3, 2];
b = [1, 3];
sys = tf(b, a);
t = 0:0.01:5;
e = exp(-3 * t);
h = impulse(sys, t); % 求冲激响应
g = step(sys, t); % 求阶跃响应
rzs = lsim(sys, e, t); % 求零状态响应
subplot(1, 2, 1)
plot(t, h, 'k-', t, g, 'b-.')
axis([0, 5, -0.1, 1.6])
grid on
legend('冲激响应', '阶跃响应')
subplot(1, 2, 2)
plot(t, e, 'k-.', t, rzs, 'b-')
axis([0, 5, -0.1, 1.2])
grid on
legend('输入信号', '零状态响应')
```
### 2. 程序设计实验
#### 2.1 计算系统在指数函数激励下的零状态响应
假设系统方程为:
\[ \frac{d^2 r}{dt^2} + 3 \frac{dr}{dt} + 2r = e(t) \]
**激励信号:**
\[ e(t) = e^{-2t} \]
**代码:**
```matlab
a = [1, 3, 2];
b = [1];
sys = tf(b, a);
t = 0:0.01:5;
e = exp(-2 * t);
rzs = lsim(sys, e, t); % 求零状态响应
figure
plot(t, e, 'k-.', t, rzs, 'b-')
axis([0, 5, -0.1, 1.2])
grid on
legend('输入信号', '零状态响应')
```
#### 2.2 计算系统在冲激、阶跃、斜坡和正弦激励下的零状态响应
假设系统方程为:
\[ \frac{d^2 r}{dt^2} + 3 \frac{dr}{dt} + 2r = e(t) \]
**代码:**
```matlab
a = [1, 3, 2];
b = [1];
sys = tf(b, a);
t = 0:0.01:5;
% 冲激响应
h = impulse(sys, t);
% 阶跃响应
g = step(sys, t);
% 斜坡响应
e_ramp = t;
rzs_ramp = lsim(sys, e_ramp, t);
% 正弦响应
f = 1; % 频率
e_sine = sin(2 * pi * f * t);
rzs_sine = lsim(sys, e_sine, t);
figure
subplot(2, 2, 1)
plot(t, h, 'k-')
axis([0, 5, -0.1, 1.6])
grid on
title('冲激响应')
subplot(2, 2, 2)
plot(t, g, 'b-')
axis([0, 5, -0.1, 1.6])
grid on
title('阶跃响应')
subplot(2, 2, 3)
plot(t, e_ramp, 'k-.', t, rzs_ramp, 'b-')
axis([0, 5, -0.1, 1.2])
grid on
title('斜坡响应')
legend('输入信号', '零状态响应')
subplot(2, 2, 4)
plot(t, e_sine, 'k-.', t, rzs_sine, 'b-')
axis([0, 5, -1.2, 1.2])
grid on
title('正弦响应')
legend('输入信号', '零状态响应')
```
### 实验要求
1. **在 MATLAB 中输入程序,验证实验结果。**
- 将上述代码复制到 MATLAB 的脚本文件中运行,观察并记录实验结果。
2. **对于程序设计实验,要求通过对验证性实验的练习,自行编制完整的实验程序,实现对信号的模拟,并得出实验结果。**
- 根据上述代码模板,编写相应的程序并验证结果。
3. **在实验报告中写出完整的自编程序,并给出实验结果。**
- 将实验过程中使用的完整代码和实验结果(包括图表)整理成实验报告。
通过以上步骤,可以完成《实验4-连续系统时域求解》的所有实验内容题目。
阅读全文