MATLAB如何实现连续时间系统的时域分析?

2025-11-23 07:03:13

1、教学内容

1. 研究对象

2. 连续时间系统的数学描述

3. MATLAB实现连续时间系统的时域分析

4. 典型的二阶连续时间系统

5. LCR 电路的响应分析

5.1 dsolve 解微分方程求系统的响应

5.2 利用传递函数求解系统的零状态响应

5.3 利用卷积积分求解系统的零状态响应

6. 总结与展望

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

2、研究对象

本课程研究在确定性输入信号(激励信号) 的作用下,连续时间线性时不变系统(Linear Time‐Invariant System, 缩写为LTI System)对输入信号的响应(系统的输出)。线性时不变系统具有以下的基本特性:

1. 叠加性与均匀性

2. 时不变特性

3. 微分特性

4. 因果性

MATLAB如何实现连续时间系统的时域分析?

3、连续时间系统的数学描述:微分方程

1. 对于连续时间LTI 系统,激励信号 (excitation) e(t) 与系统响应 (response) r(t) 之间的关系,可用线性常系数常微分方程表示

2. 零输入响应 (zero‐input response, zir)

2.1 激励信号 e(t) = 0 (零输入激励)

2.2 完全由起始状态r(k)(0) 所产生的响应

3. 零状态响应 (zero‐state response, zsr)

3.1 系统的起始状态为零:r (k)(0) = 0

3.2 只由激励信号e(t) 所产生的响应

MATLAB如何实现连续时间系统的时域分析?

4、连续时间系统的数学描述:拉氏变换

1. 如前所述,连续时间 LTI 系统的微分方程为

2. 根据拉氏变换的性质,当初始条件为零时,则有

3. 在零初始条件下 (r (k)(0) = 0 ,r(t) 为系统的零状态响应),对系统的微分方

程两边取拉氏变换,则有

MATLAB如何实现连续时间系统的时域分析?

5、连续时间系统的数学描述:传递函数和时域卷积

1. 连续时间 LTI 系统的传递函数 H(s) 由系统微分方程的系数所确定

2. 根据系统的时域分析,并借助卷积定理,系统的激励 e(t),零状态响应 r(t)

和冲激响应 h(t),以及它们的拉氏变换 E(s) R(s) H(s) 满足以下关系

3. 根据系统传递函数的定义,可知:冲激响应h(t) 与传递函数H(s) 构成一个

拉氏变换对,即

MATLAB如何实现连续时间系统的时域分析?

6、MATLAB 实现连续时间系统的时域分析

1. dsolve 函数求解系统的微分方程,得到系统的零输入/零状态/全响应

2. 基于系统的传递函数 H(s),使用函数 lsim,得到系统的零状态响应

3. 基于系统的冲激响应 h(t),借助卷积函数 conv,得到系统的零状态响应

MATLAB如何实现连续时间系统的时域分析?

7、典型的二阶连续时间系统:机械位移系统 & LCR 电路系统

1. 根据牛顿第二定律F = ma,可得振动系统的位移微分方程

2. 基于 KCL 和 KVL 原理,可得二阶电路系统的电容两端电压微分方程

3. 机械位移系统与LCR 电路虽然是不同性质的系统,但是对比两者的系统微分方程,它们具有完全一致的数学描述。因此,以上两个系统的分析方法,完全一致。

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

8、LCR 电路的响应分析

1. 已知LCR 电路的基本参数

2. 初始条件

3. 激励电压

4. 求解电容两端电压

4.1 零输入响应

4.2 零状态响应

4.3 全响应

MATLAB如何实现连续时间系统的时域分析?

9、LCR 电路的响应分析:dsolve 求解微分方程

1. 求解系统的微分方程,即可求得电容两端电压

2. 将电路的参数代入系统的微分方程

3. 在 MATLAB 信号分析中,习惯上将输出响应用 y(t) 表示,激励用 u(t) 表示

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

10、dsolve 求解微分方程的局限性

1. 零状态响应:令初始条件为 0,激励

2. 返回的yzs_s 异常复杂,并且含有隐格式的积分项,无法使用时间t 对其赋值,求解宣告失败

3. 针对dsolve 求解失败的系统微分方程

3.1 求微分方程的数值解:ode45, ode23 等专用函数

3.2 使用lsim 求解系统的响应

MATLAB如何实现连续时间系统的时域分析?

11、利用传递函数求解零状态响应

1. 从系统微分方程到系统的传递函数

2. MATLAB 生成系统的传递函数

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

12、利用传递函数求解 LCR 电路的零状态响应

1. 根据系统的微分方程,使用 MATLAB 里的 tf 函数得到系统的传递函数

2. 调用 MATLAB 里的 lsim 求解系统的零状态响应

2.1 传递函数是基于系统的零状态响应推导而来,因此,基于传递函数求得的系统响应,为系统的零状态响应

y = lsim(sys,u,t)

sys: 系统的模型(传递函数)

u: 激励信号u(t)

t: 采样时间点

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

13、利用卷积积分求解零状态响应

1. 系统的冲激响应 h(t) 与激励信号 e(t) 的卷积结果为系统的零状态响应

2. MATLAB 求解步骤

2.1 定义系统的传递函数:sys = tf(num, den)

2.2 计算系统的冲激响应 h(t):h = impulse(sys,t)

2.3 计算卷积积分

MATLAB如何实现连续时间系统的时域分析?

14、MATLAB 连续信号卷积积分的计算

1. MATLAB 里的conv 函数是针对于离散序列的卷积和,求解连续信号的卷积积分,可以借助于conv 函数,但是需要做一些相应的变换。设连续函数f1(t) 和f2(t) 的采样时间间隔均为ΔT,则有

2. 卷积结果f(t) 对应的采样时间向量

f1(t) 的采样时间向量:t1

f2(t) 的采样时间向量:t2

f(t) 的采样时间向量:tt = t1(1) + t2(1) : ΔT : t1(end) + t2(end)

卷积积分f 的采样值:f = conv(f1 , f2) x ΔT

MATLAB如何实现连续时间系统的时域分析?

MATLAB如何实现连续时间系统的时域分析?

15、总结与展望

1. 基于 dsolve 求解系统微分方程

1.1 直观,可以一次性求解出系统的全响应

1.2 对于复杂的激励信号,无法求解,此时可采用数值方法求解(ode45, ode23)

2. 基于传递函数 H(s) 的 lsim 求解

2.1 求解简单,操作方便,但只能求解零状态响应

2.2 lsim 本身功能非常强大,可以基于系统的状态空间模型(state‐space model),求解系统的在任意输入下的响应

3. 基于卷积积分的求解

3.1 求解简单,操作方便,物理意义明确,但只能求解零状态响应

3.2 当系统传递函数未知时,只要知道系统的冲激响应h(t),即可求系统在激励信号下的零状态响应

MATLAB如何实现连续时间系统的时域分析?

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢