MATLAB如何实现连续时间系统的时域分析?
1、教学内容
1. 研究对象
2. 连续时间系统的数学描述
3. MATLAB实现连续时间系统的时域分析
4. 典型的二阶连续时间系统
5. LCR 电路的响应分析
5.1 dsolve 解微分方程求系统的响应
5.2 利用传递函数求解系统的零状态响应
5.3 利用卷积积分求解系统的零状态响应
6. 总结与展望


2、研究对象
本课程研究在确定性输入信号(激励信号) 的作用下,连续时间线性时不变系统(Linear Time‐Invariant System, 缩写为LTI System)对输入信号的响应(系统的输出)。线性时不变系统具有以下的基本特性:
1. 叠加性与均匀性
2. 时不变特性
3. 微分特性
4. 因果性

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) 所产生的响应

4、连续时间系统的数学描述:拉氏变换
1. 如前所述,连续时间 LTI 系统的微分方程为
2. 根据拉氏变换的性质,当初始条件为零时,则有
3. 在零初始条件下 (r (k)(0) = 0 ,r(t) 为系统的零状态响应),对系统的微分方
程两边取拉氏变换,则有

5、连续时间系统的数学描述:传递函数和时域卷积
1. 连续时间 LTI 系统的传递函数 H(s) 由系统微分方程的系数所确定
2. 根据系统的时域分析,并借助卷积定理,系统的激励 e(t),零状态响应 r(t)
和冲激响应 h(t),以及它们的拉氏变换 E(s) R(s) H(s) 满足以下关系
3. 根据系统传递函数的定义,可知:冲激响应h(t) 与传递函数H(s) 构成一个
拉氏变换对,即

6、MATLAB 实现连续时间系统的时域分析
1. dsolve 函数求解系统的微分方程,得到系统的零输入/零状态/全响应
2. 基于系统的传递函数 H(s),使用函数 lsim,得到系统的零状态响应
3. 基于系统的冲激响应 h(t),借助卷积函数 conv,得到系统的零状态响应

7、典型的二阶连续时间系统:机械位移系统 & LCR 电路系统
1. 根据牛顿第二定律F = ma,可得振动系统的位移微分方程
2. 基于 KCL 和 KVL 原理,可得二阶电路系统的电容两端电压微分方程
3. 机械位移系统与LCR 电路虽然是不同性质的系统,但是对比两者的系统微分方程,它们具有完全一致的数学描述。因此,以上两个系统的分析方法,完全一致。



8、LCR 电路的响应分析
1. 已知LCR 电路的基本参数
2. 初始条件
3. 激励电压
4. 求解电容两端电压
4.1 零输入响应
4.2 零状态响应
4.3 全响应

9、LCR 电路的响应分析:dsolve 求解微分方程
1. 求解系统的微分方程,即可求得电容两端电压
2. 将电路的参数代入系统的微分方程
3. 在 MATLAB 信号分析中,习惯上将输出响应用 y(t) 表示,激励用 u(t) 表示




10、dsolve 求解微分方程的局限性
1. 零状态响应:令初始条件为 0,激励
2. 返回的yzs_s 异常复杂,并且含有隐格式的积分项,无法使用时间t 对其赋值,求解宣告失败
3. 针对dsolve 求解失败的系统微分方程
3.1 求微分方程的数值解:ode45, ode23 等专用函数
3.2 使用lsim 求解系统的响应

11、利用传递函数求解零状态响应
1. 从系统微分方程到系统的传递函数
2. MATLAB 生成系统的传递函数


12、利用传递函数求解 LCR 电路的零状态响应
1. 根据系统的微分方程,使用 MATLAB 里的 tf 函数得到系统的传递函数
2. 调用 MATLAB 里的 lsim 求解系统的零状态响应
2.1 传递函数是基于系统的零状态响应推导而来,因此,基于传递函数求得的系统响应,为系统的零状态响应
y = lsim(sys,u,t)
sys: 系统的模型(传递函数)
u: 激励信号u(t)
t: 采样时间点


13、利用卷积积分求解零状态响应
1. 系统的冲激响应 h(t) 与激励信号 e(t) 的卷积结果为系统的零状态响应
2. MATLAB 求解步骤
2.1 定义系统的传递函数:sys = tf(num, den)
2.2 计算系统的冲激响应 h(t):h = impulse(sys,t)
2.3 计算卷积积分

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


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),即可求系统在激励信号下的零状态响应
