三线性时不变系统的时域分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
应用实例 1. 连续时间 LTI 系统的单位冲激响应和单位阶跃响应 单位冲激响应 h(t) 是描述连续时间 LTI 系统的重要函数,为此 MATLAB 的
35
3.2 实验原理
实验三 线性时不变系统的时域分析
control system 工具箱专门提供了impulse函数。只要提供描述系统的微分方 程的系数 ak 和 bk,或者说,系统传递函数 H(s) 或频率响应 H( jω),
解 本例题的单位冲激响应的解析解为 h(t) = e−t (cos 2t + 2 sin 2t) u (t)。在 MATLAB 中运行以下的脚本
a=[1 2 5]; % Denominators. 2 b=[1 5]; % Numerators.
sys=tf(b,a); % Define a transfer function object. 4 t=0:0.01:10;
a=[1 0.4 -0.12]; % Denominators. 2 b=[1 2]; % Numerators.
N=15; %Number of samples.
36
实验三 线性时不变系统的时域分析
3.2 实验原理
Amplitude
1.5 1
0.5 0
−0.5 0
1.5 1
0.5 0 0
Impulse Response
相关 MATLAB 函数
MATLAB 的 control system 和 signal processing 等工具箱中提供了一系列的函 数可用来计算 LTI 系统的各种响应。一般来说只需提供微分方程(或差分方程)的 系数(即系统函数),即可得出系统的冲激响应和阶跃响应。如果再提供初始条件 和输入信号,则可得到系统的零输入响应、零状态响应和全响应。这里仅简单列举 相关函数及其功能,更详细的信息请参见 MATLAB 的在线帮助文档。
系统响应的时域解析解法的过程是先求出微分方程(或差分方程)的齐次解, 再根据输入信号的形式确定方程的特解,然后根据初始条件确定解的系数,最后得 到系统的响应。零输入响应和零状态响应需要根据输入信号和初始条件的不同,分 别求解得到。这种计算可能相当繁琐,而且不一定存在解析解,需要通过数值方法 来求解。
1. tf函数:给定 ak 和 bk,构造一个系统函数(或称为传递函数)为
∑n bk sk
H
(s)
=
k=0
∑m ak sk
k=0
的模型;
2. ss函数,给定 A、B、C 和 D,构造一个由
d ω (t) = Aω (t) + Bx (t) dt
y (t) = Cω (t) + Dx (t)
描述的状态空间(state-space)系统模型;
k=0
− k]
(3.5)
根据系统的初始条件和输入信号即可递推地算出 y[n]。这种方法简单直观,且适合 计算机求解,但通常只能求出系统输出序列的值,不能像解析解那样得到系统输出 的数学表达式。
对于3.1式描述的连续时间系统,数值求解的原理是先将微分方程离散化,近 似为相应的差分方程(将 dt 近似为 ∆t),再求解差分方程,因此其数值求解方法方 法与上述的离散系统的求解方法是类似的。
∑N bk sk
H
(s)
=
k=0
∑M ak sk
k=0
即可求出指定时间范围内 h(t) 的数值解并画出其时域波形。类似的函数还 有step函数,可用来计算和绘制单位阶跃响应 s(t)。例如
例 1 描述连续时间系统的微分方程为 y′′ (t) + 2y′ (t) + 5y (t) = x′ (t) + 5x (t), 计算系统的单位冲激响应和单位阶跃响应。
2
4
6
Time (seconds)
Step Response
8
10
2
4
6
Time (seconds)
8
10
Amplitude
图 3.2 单位冲激响应和单位阶跃响应
4 subplot(2,1,1); impz(b,a,N); subplot(2,1,2); stepz(b,a,N);
即可求得响应的波形,结果如图3.3所示。 也可根据 y[n] 的表达式,通过递推来得出各个 n 对应的响应。这将留作本实 验的实验内容之一。
数值求解的基本原理
3.2式所描述的离散时间因果 LTI 系统(通常也称为数字滤波器)可分为两个 部分:一部分是自递归(AR, autoregressive)的 IIR 滤波器:
∑n akω [n − k] = x [n] ,
k=0
(3.3)
32
实验三 线性时不变系统的时域分析
3.2 实验原理
AR 滤波器的当前的输出与之前的输出有关,可递归地求得输出;另一部分是滑动 平均(MA, moving average)的 FIR 滤波器:
31
3.2 实验原理 LTI 系统的时域分析
实验三 线性时不变系统的时域分析
很多信号和系统问题可归结为求解微分方程和差分方程的问题。如连续时间 LTI 系统的输入信号 x(t) 和响应 y(t) 用线性常系数微分方程来描述:
∑n dky (t) ak dtk
Baidu Nhomakorabea
=
∑m dk x (t) bk dtk
,
subplot(2,1,1); impulse(sys,t); 6 subplot(2,1,2); step(sys,t);
即可画出如图3.2所示的单位冲激响应和单位阶跃响应的波形。 如果运行命令
ht=impulse(sys,t); 2 st=step(sys,t);
则可得到单位冲激响应和单位阶跃响应的数值解。
很多线性 LTI 系统的数学模型可以归纳为 n 阶线性常系数微分方程(对于连续 时间系统)和差分方程(对于离散时间系统),或者表示为一阶常微分(差分)方 程组(常称为状态空间模型)。如果已知系统的输入信号和初始状态,我们或许可 以通过解析的方法求解系统的响应。但对于一般的问题,往往不一定存在解析解, 而且即使有解析解,对于高阶系统,求解过程也可能相当繁琐。因此本实验我们将 学习用 MATLAB 对 LTI 系统的时域响应进行数值求解和仿真的方法。
2. 离散时间 LTI 系统的单位脉冲响应和单位阶跃响应 MATLAB 的 signal processing 工具箱中提供了求解离散时间系统(通常称为 数字滤波器)单位脉冲响应的函数impz的和单位阶跃响应的函数stepz。 例 2 已知描述离散时间系统的差分方程为 y [n] + 0.4y [n − 1] − 0.12y [n − 2] = x [n] + 2x [n − 1],计算系统的单位冲激响应和单位阶跃响应。 解 运行以下的脚本
图 3.1 Simulink 的 Library Browser 窗口
在“Simulink Library Brower”窗口中,选择新建模型(New model)打开一个 空白模型窗口。用鼠标将所需要的模块拖动到模型窗口中,用连接线将各模块连接 起来,再给定系统的初始状态和输入信号,即可仿真系统执行的过程,得到输出结 果。
3. 用lsim函数求解系统的全响应 control system 工具箱提供的lsim函数可以仿真连续时间和离散时间 LTI 系统 任意输入信号时的时域响应。其调用格式参见 MATLAB 的帮助文档。这里仅 举两例说明其用法。 例 3 已知系统的微分方程为 y′′ (t) + 5y′ (t) + 6y (t) = x′ (t) + 5x (t),输入信号 为 x (t) = 5 sin t,系统的初始条件为 y(0−) = 27, y′(0−) = −30,求系统的零输 入相应、零状态响应和全响应。 解 由于lsim函数关于初始条件的输入参量是系统状态变量(即直接 II 型结构 框图各个积分器的输出值)的初始值,所以需要将微分方程转换为如3.7所示 的状态空间模型,即一阶常微分方程组的形式(其中系数矩阵 A、B、C 和 D
4. impz函数:给定系统函数,计算离散时间 LTI 系统的单位脉冲响应;
5. stepz函数:给定系统函数,计算连续时间 LTI 系统的单位阶跃响应;
6. filter函数:给定系统函数、初始状态和输入信号,计算离散时间 LTI 系统的 响应。
以下的函数可用于构造系统模型,或者不同系统模型之间的转换:
3. ss2tf和tf2ss函数:提供两种系统模型之间的转换。
(3.6) (3.7)
3.2.1 Simulink 建模和仿真
Simulink 是 MathWorks 公司基于 MATLAB 开发的用于多领域建模和仿真的 软件包,常集成于 MATLAB 中与之配合使用。它提供了一个交互式的图形化环境 和可自定义的模块库,可对各种系统,例如通信、控制、信号处理以及图像处理 等系统进行设计、仿真、执行和测试。Simulink 的建模和仿真功能非常强大,在 MathWorks 的网站可找到Simulink 的入门和功能介绍。
1. impulse函数:给定系统函数,计算连续时间 LTI 系统的单位冲激响应;
2. step函数:给定系统函数,计算连续时间 LTI 系统的单位阶跃响应;
33
3.2 实验原理
实验三 线性时不变系统的时域分析
3. lsim函数:给定系统函数、初始状态和输入信号,计算连续时间和离散时间 LTI 系统的响应;
3.2 实验原理
线性时不变系统(LTI)对输入信号的响应等于系统的单位冲激响应与输入信 号的卷积。通过卷积可求得 LTI 系统对任意输入信号的响应。如果我们从某一初 始时刻(如 t = 0)开始分析某 LTI 系统,则通过卷积可以求得系统的零状态响应。 因此卷积是 LTI 系统时域分析的基本方法之一。在上一个实验中我们已学习了在 MATLAB 中实现卷积的方法。
k=0
k=0
(3.1)
如果已知输入信号 x(t) 及系统的初始条件 y (0−), y′ (0−), y′′ (0−), · · · , y(n−1) (0−),可 求出系统的响应。对于离散时间 LTI 系统,其输入信号 x[t] 和系统响应 y[t] 用线性 常系数差分方程表示:
∑n
∑m
aky [n − k] = bk x [n − k]
34
实验三 线性时不变系统的时域分析
3.2 实验原理
在 MATLAB 中的工具栏点击 Simulink 图标,或在命令行中输入“simulink”, 即可启动 Simulink,显示如3.1所示的“Simulink Library Browser”窗口。从中可 以看到 Simulink 预定义的基本模块库及其子库,如 Continuous, Discrete, ..., Sinks, Sources 等等。其中 Continuous 和 Discrete 分别存放的是对连续和离散信号及系 统进行操作的运算符,如 Derivative(求导)、Integrator(积分器)、Transfer Fcn (传递函数)、State-Space(状态空间)、Difference(差分)、Discrete Filter(离散 滤波器)、Discrete State-Space(离散状态空间)等等;在 Sources 中存放了各种 信号源,如 Clock(时间 t)、Constant(常数)、Sine Wave(正弦波), Step(阶梯 波)、Signal Generator(信号发生器)等等;在 Sinks 存放的是对信号进行显示和 存储终端,如 Scope(示波器)、XY Graph(显示两变量的函数关系)、To File(存 储到文件)等等。
k=0
k=0
(3.2)
如果已知 x[n] 和 y[k − 1], y[k − 2], · · · , y[k − N],也可求出 n ≥ k 时 y[n] 的值。
通常我们从某一时刻(t = 0)时刻开始分析某 LTI 系统,系统的响应可表示为零 输入响应和零状态响应两部分之和。零输入响应是指系统初始时刻之后的输入为 零、仅由系统的初始状态引起的系统的输出,零状态响应是指系统的初始状态为 零、仅由系统初始时刻之后的输入引起的系统的输出。
实验三 线性时不变系统的时域分析
3.1 实验目的
1. 学会使用 MATLAB 对线性时不变系统的时域特性进行仿真分析; 2. 熟悉 LTI 系统在典型激励下的响应及特征; 3. 掌握用 MATLAB 函数数值求解系统零输入响应和零状态响应的方法; 4. 学习使用 Simulink 进行系统建模和仿真。
MATLAB 的工具箱已有求解上述问题的函数,因此只需简单的函数调用即可数 值求解系统的各种响应,如冲激响应、阶跃响应、零输入响应和零状态响应等,可 大大简化复杂系统的设计和分析过程。另外 MathWorks 还提供了用于系统建模和 仿真的 Simulink 软件包,配合 MATLAB 使用可省去许多代码的重复编写工作,提 高求解的效率。
∑m y [n] = bkω [n − k] ,
k=0
(3.4)
MA 滤波器的输出是非递归的,只和输入有关,可通过卷积计算。因此3.2式给出的
IIR 滤波器也称为 ARMA 滤波器。一般来说,总是可以将3.2式写为递推的形式:
y [n]
=
1 a0
− ∑n aky [n
k=1

k] +
∑m bk x [n
相关文档
最新文档