目录
【实验目的】
【实验原理】
【实验设备】
【实验内容】
1. 至少用两种方法求以下系统的单位阶跃响应并绘图表示出来。
2. 编程实现教材p106, 2-15(3),并绘图表示出来。
【实验感悟】
【实验目的】
(1)学会运用MATLAB求解连续与离散系统的冲激响应和阶跃响应。
(2)学会运用MATLAB求解LTI系统的零输人响应和零状态响应。
【实验原理】
1.连续时间系统的冲激响应和阶跃响应求解
在连续时间LTI系统中,冲激响应和阶跃响应是系统特性的描述﹐对它们的分析是线性系统中极为重要的问题。输入为单位冲激函数àt)所引起的零状态响应称为单位冲激响应,简称冲激响应﹐用h(t)表示;输人为单位阶跃函数u(t)所引起的零状态响应称为单位阶跃响应,简称为阶跃响应﹐用g(t)表示。
在MATLAB中,对于连续LTI系统的冲激响应和阶跃响应的数值解,可分别用控制系统工具箱提供的函数impulse和 step来求解。其语句格式分别为:
y =impulse(syt ,t)
y =step(sys,t)
其中,t表示计算系统响应的时间抽样点向量,sys表示LTI系统模型。
2.连续时间系统的响应求解
LTI连续系统可用线性常系数微分方程来描述,即:
该微分方程的全解(又名全响应)分为两个组成部分:一是与该方程相应的齐次方程的齐次解,记作 yh(t),另一个是满足非齐次方程的特解,记作yp(t)。系统的全响应也可以分解为零输人响应和零状态响应两部分。零输人响应是指外加激励为零时,只由初始状态作用于系统所产生的响应﹐通常用yzi(t)表示;零状态响应是指初始状态为零时,由外加激励作用于系统所产生的响应,通常用yzs(t)表示。
MATLAB符号工具箱提供了dsolve函数,可实现常系数微分方程的符号求解,其调用格式为
其中,参数eql,eq2,…表示各微分方程,它与MATIAB符号表达式的输入基本相同,微分或导数的输人是用Dy,D2y,D3y,…来表示y的一阶导数、二阶导数、三阶导数等;参数condl,cond2,…表示各初始条件或起始条件;参数v表示自变量,默认为是变量t。
【实验设备】
(1)计算机。
(2)MATLAB软件。
【实验内容】
1. 至少用两种方法求以下系统的单位阶跃响应并绘图表示出来。
方法一:
代码语言:javascript复制t=0:0.001:6;%设置起点、步长和终点
sys=tf([1,3,7],[1,4,6,4,1]);%应用传递函数
g=step(sys,t);%用函数命令step求解阶跃响应的数值解
plot(t,g),grid on;%绘图命令
xlabel('Time(sec)'),ylabel('g(t)')%设置横纵轴标签
title('阶跃响应')%设置图像名称
方法二:
代码语言:javascript复制a=[1 4 6 4 1];
b=[1,3,7];
t=0:0.01:6;%设置起点、步长和终点
f=heaviside(t);%f是以t为变量的阶跃函数
lsim(b,a,f,t);%用lsim命令画出LTI系统对f和t所描述的信号对应出的时间响应
xlabel('Time'),ylabel('g(t)')%设置横纵轴标签
title('阶跃响应')%设置图像名称
2. 编程实现教材p106, 2-15(3),并绘图表示出来。
代码语言:javascript复制a=[1 2 1];
b=[1 1 1];
t=0:0.001:6;% 设置起点、步长和终点
f=cos(t).*heaviside(t);%设置表达式
lsim(b,a,f,t);%lsim命令画出LTI系统对f和t所描述的信号对应出的时间响应
3. 求其零状态解,并绘图表示出来
代码语言:javascript复制n=(-10:10);
a=[1,-0.5];
b=1;
x=sin(n*pi/4).*heaviside(n);%设置激励的表达式
y=filter(b,a,x);%用filter函数求解在x激励时所产生的响应序列的数值解
stem(n,y);%绘图命令
title('输出序列')%设置图像名称
【实验感悟】
通过本次实验,我学会了MATLAB中对于连续LTI系统的冲激响应和阶跃响应的数值解的求解方法,掌握了控制系统工具箱提供的函数lsim和step命令,尤其是对于一个系统的响应的不同求解方法,step(sys,t)命令是使用时间矢量t来模拟。在系统时间单位中,表达式t在sys的时间单位属性中是指定的。而lsim函数是针对线性时不变模型,给定任意输入,得到任意输出。lsim函数表示任意输入函数的响应,连续系统对任意输入函数的响应可以利用lsim函数求取。
通过此次实验,我也掌握了filter函数的使用,同时我也通过官方文献了解到表达式Y = filter(b,a,X) 滤除向量X中的数据,其中b是分子系数向量,a是分母系数向量。输入X为滤波前序列,Y为滤波结果序列,整个滤波过程是通过差分方程实现的。此次实验我也复习了前面已经学习过的命令,例如heaviside命令等等。