电子科技大学中山学院学生实验报告
院别:电子信息学院 课程名称:信号与系统实验
一、实验目的
1. 掌握离散系统的Simulink 建模方法;
2. 掌握离散系统时域响应、频域响应的Simulink 仿真方法。
二、实验原理
离散系统的Simulink 建模、仿真方法与连续系统相似,其系统模型主要有z 域模型(例18-1)、传输函数模型(例18-2)和状态空间模型(例18-3)等形式。
现采用图18-1的形式建立系统仿真模型,结合如下仿真的命令,可得到系统的状态空间变量、频率响应曲线、单位阶跃响应和单位冲激响应的波形。
图18-1 系统响应Simulink 仿真的综合模型
仿真命令:
[A,B,C,D]=dlinmod(‘模型文件名’) %求状态空间矩阵,注意:模型文件名不含扩展名 dimpulse(A,B,C,D) %求冲激响应
dimpulse(A,B,C,D ,1,N 1:N 2) %求k = N 1~ N 2区间(步长为1)的冲激响应
dimpulse(A,B,C,D ,1,N 1: △N:N 2) %求冲激响应在k = N 1~ N 2区间(步长为△N )的部分样值 dstep(A,B,C,D) %求阶跃响应 dstep(A,B,C,D ,1,N 1: △N:N 2)
dbode(A,B,C,D,T s ) %求频率响应(频率范围:πθπω~0,~0==即s T )。
T s 为取样周期,一般取Ts=1。
dbode(A,B,C,D,T s ,i u ,w 0:∆w:w 1) %求频率响应(频率范围:ω=w 0~w 1,即θ=(w 0~w 1)T s ,∆w 为频率步长);i u
为系统输入端口的编号,系统只有一个输入端口时取i u =1。
以上命令,可以逐条在MATLAB 命令窗口输入、执行,也可编写成M 文件并运行。
【例18-1】线性离散系统如图18-2所示。
图18-2
试用Simulink中的延时器、加法器、数乘器模块建立系统模型,求:
(1)冲激响应和阶跃响应波形;(2)频率响应曲线;(3)系统的状态空间矩阵。
解:建立如图18-3所示的系统模型,并以文件名example1801.mdl存盘。
图18-3 例18-1系统模型
在建模过程中为便于连线,可改变加法器的输入端、输出端所处位置。
双击中间的加法器,将“List of Sign”项由“|++”改为“-|+”;再右击并执行“Format”--“Flip block”。
对于右加法器,将“List of Sign”项由“|++”设置为“+|-”。
完成建模后,将系统模型以文件名“example1801.mdl”存盘。
编写如下M文件(“example1801m.m”):
syms z
[A,B,C,D]=dlinmod('example1801')
I=[1 0;0 1];
H=C*inv(z*I-A)*B+D
figure(1);
subplot(2,1,1);dimpulse(A,B,C,D);grid;
subplot(2,1,2);dstep(A,B,C,D);grid;
figure(2);grid
dbode(A,B,C,D,1,1,0:0.001:2*pi)
运行后,可得如下结果:
(1)系统的状态空间矩阵:
A =
0 0.1667
-1.0000 0.8333
B =
1.0000 0 C =
2.0000 -1.0000 D =
0 H =
2*(6*z-5)/(6*z^2-5*z+1)+6/(6*z^2-5*z+1)
则系统的状态方程和输出方程分别为:
[][])(01)()(8333.011667.00)()()1()1(212121k f k x k x f B k x k x A k x k x ⎥⎦⎤
⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥
⎦⎤⎢⎣⎡-=+⎥⎦
⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡++ [])()(2)](][0[)()(12)]([)()()(212121k x k x k f k x k x k f D k x k x C k y -=+⎥⎦
⎤
⎢⎣⎡-=+⎥⎦⎤⎢⎣⎡=
(2)系统函数表达式:H = 2*(6*z-5)/(6*z^2-5*z+1)+6/(6*z^2-5*z+1)
(3)系统的单位序列响应和阶跃响应波形、频率响应特性曲线分别如图18-4(a)、(b)所示。
(a) 冲激响应、阶跃响应波形 (b) 频率响应
图18-4 例18-1的仿真结果
【例18-2】离散系统如图18-5所示。
利用Simulink 建模并仿真,求其0~2π范围内的频率响应特性。
图18-5
解:本例以传输函数的形式建模,先求系统函数,由图18-5可得
2
.03.0)(2+
+=
z z z
z H
在Simulink 中建立如下传输函数模型。
建模过程中,双击传输函数模块,在对话框的Numerator 选项处输入[0,1,0],Denominator 选项处输入[1,0.3,0.2]。
完成建模后,并以文件名“example1802b.mdl ”存盘。
图18-6 例18-2的系统模型
在MATLAB 命令窗口中输入如下命令,得该系统的频率响应特性,如图18-7所示。
[A,B,C,D]=dlinmod('example1802'); dbode(A,B,C,D,1,1,0:0.01:2*pi)
图18-7 例18-2系统的频率特性
【例18-3】图18-2所示的离散系统中,以x 1(k)、x 2(k)作为状态变量,试以状态空间变量形式建立系统的Simulink 模型。
求:(1)冲激响应和阶跃响应波形;(2)频率响应曲线。
解:本例以状态空间形式建立系统模型。
经理论分析,系统的状态方程为
)(6
5
)()1(),()(6
1
)1(21221k x k x k x k f k x k x +
-=++=
+ 写成矩阵形式
)(01)()(6/516/10)1()1(2121k f k x k x k x k x ⎥⎦⎤
⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣
⎡-=⎥⎦⎤⎢⎣⎡++
系统的输出方程为
[][])(0)()(12)()(2)(2121k f k x k x k x k x k y +⎥⎦
⎤
⎢⎣⎡-=-=
即
[]]0[,
12,
01,6/516/10=-=⎥⎦
⎤⎢⎣⎡=⎥
⎦⎤⎢⎣⎡-=D C B A
状态空间形式的系统模型如图18-8所示。
双击状态空间模块,在弹出的对话框中A 、B 、C 、D 参数项处分别输入[0 1/6;-1 5/6]、[1 0]’ 、[2 -1]、[0]。
完成建模后,并以文件名“example1803.mdl ”存盘。
图18-8 例18-3的状态空间系统模型运行如下M文件(example1803m.m)后,可得与例18-1相同的仿真结果。
[A,B,C,D]=dlinmod('example1803')
figure(1);
subplot(2,1,1);dimpulse(A,B,C,D);grid;
subplot(2,1,2);dstep(A,B,C,D);grid;
figure(2);grid
dbode(A,B,C,D,1,1,0:0.001:2*pi)
三、实验内容
1.离散系统时域框图如图18-9所示。
建立Simulink模型,求其状态空间矩阵、系统函数表示式、
冲激响应、阶跃响应和频率特性。
图18-9 图18-10
syms z
[A,B,C,D]=dlinmod('example1809')
I=[1 0;0 1];
H=C*inv(z*I-A)*B+D
figure(1);
subplot(2,1,1);dimpulse(A,B,C,D);grid; subplot(2,1,2);dstep(A,B,C,D);grid; figure(2);grid
dbode(A,B,C,D,1,1,0:0.001:2*pi)
A =
-0.2500 0
0 0.3333
B =
1.0000
1.0000
C =
-0.2500 0.3333
D =
2
H =
-1/(4*z+1)+1/(3*z-1)+2
四、实验结果及分析
通过本次实验,我掌握了离散系统的Simulink建模方法,其实离散系统的Simulink建模、仿真方法与连续系统相似,其系统模型主要有z域模型、传输函数模型和状态空间模型等形式,同时掌握了离散系统时域响应、频域响应的Simulink仿真方法。