Matlab 期末考试
班级:2007 级电科一班 姓名:吴涛 学号:20074053053
已知微分方程:
( )
d y t
2
2
dt
7
( )
dy t
dt
10 ( )
y t
2
( )
d e t
2
dx
6
( )
de t
dt
4 ( )
e t
1. 用 M 语言编程,求冲击响应,阶跃响应,并绘制图形,注上对应的连续解
2. 使用 simulink 工具箱,求其在幅值为 1,周期为 1s,5s,10s 的方波作用下的
响应,在同一张图形中绘制激励与响应图形
一、用 M 语言编程求下面微分方程的冲击响应和阶跃响应
( )
de t
dt
2
( )
d e t
2
dx
( )
d y t
2
( )
dy t
dt
10 ( )
y t
2
dt
6
7
4 ( )
e t
1. 建模:
线性常微分方程的解一般可以用拉普拉斯算子 s 表示
Y(s)=B(s)/A(s)
其中 B(s)和 A(s)都是 s 的多项式,分母多项式的次数 n 通常高于分子多项
式的次数 m。在时间域的解 y(t)是 Y(s)的拉普拉斯的反变换。求反变换的
重要方法之一就是部分分式法,即将上述多项式分解为多个 s 的一次分
式之和。留数函数 residue 可以完成这一任务。
步骤:
(1)用[r,p,k]=residue(b,a),求出 Y(s)的极点数组 p 和留数数组(设分母比分
子的阶数高,故 k=0)因而 Y(s)可以表示为
(1)
s
r
( )
Y s
(1)
p
(2)求它的反变换,得
y(t)=r(1)*exp(p(1)*t)+
r(4)*exp(p(4)*t)+.........
r
(2)
p
(2)
s
r
(3)
p
(3)
s
.......
r(2)*exp(p(2)*t)+
r(3)*exp(p(3)*t)+
2. 求阶跃响应的程序
clear;close all
t=0:0.2:10
a=[1,7,10,0];b=[1,6,4];[r,p,k]=residue(b,a)
yi=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)
plot(t,yi)
title('阶跃响应')
xlabel('t')
ylabel('y')
图1. 阶跃响应图
3. 冲激响应的程序
clear;close all
t=0:0.2:10;
a=[1,7,10];b=[1,6,4];[r,p,k]=residue(b,a);
yi=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)
plot(t,yi);
title('冲激响应');
xlabel('t');
ylabel('y');
图2. 冲激响应图
二、用 simulink 工具箱求下面系统在周期为 1S,5S,10S 的方波的激励下的响应,
并且在同一张图纸绘制激励与响应图形
( )
d y t
2
2
dt
7
( )
dy t
dt
10 ( )
y t
2
( )
d e t
2
dx
6
( )
de t
dt
4 ( )
e t
1、分析建模
与上面用 M 语言编程的方法一样,用 simulink 建模的思想也是通过拉
普拉斯变换,然后用相应的 BLOCK 进行模型搭建,在此系统中用到的
BLOCK 有 Transfer fcn、Pulse Generator、mux、Scope,搭建好模型好,
通过修改参数可以达到系统的要求:
2、各个 BLOCK 的参数设置
2.1、Transfer fcn 分子系数的行向量。具有多个行矩阵可以指定生成
多 个输出默认值是[1],根据系统的要求要改成[1 6 4] Transfer fcn
分母系数的行向量。 默认为[1 1],根据系统要求改成[1 7 10]
图 1. Transfer Fcn 的参数设置
2.2、Pulse Generator 是一个方波发生 BLOCK,主要设置的参数是幅值,
周期,和仿真时间根据要求 Amplitude 为 1,period 根据要求仿真
的时候分别设置成 1,5,10,仿真时间可以均设置为 50
图 2. Pulse Generator 的参数设置
2.3、Mux 是一个能够让多个波形在同一个坐标中显示不需要去新设置颜
色的 BLOCK,按照要求需要有两个输入,所以设置 inputs=2
图 3.mux 的参数设置
2.4、3 个不同周期作为激励和相应的响应仿真图