1. 这一章为什么是分水岭:连续系统时域分析的整体设计思路
连续系统的时域分析,说白了就是一句话:不借助任何变换工具,直接盯着时间轴,看一个连续系统对输入到底做了什么。信号与系统的整门课,本质上就两条腿,一条是时域,一条是变换域。第1章把信号本身拆开揉碎了讲,讲的是"原料";到了第2章,主角换成了"系统",讲的是原料怎么被加工。很多人学到这里会突然卡住,不是因为公式难,而是因为前面的思路还没切换过来——第一章你在分析一个函数,第二章你要分析一个"映射"。
这一章要建立的核心能力有三块:第一,能把一个实际的电路、机械结构或者任何物理过程,翻译成一个带初始条件的线性常系数微分方程;第二,能从这个方程里把"系统本身的固有属性"和"外部激励带来的响应"分开算清楚;第三,能用冲激响应 h(t)和卷积积分这套组合拳,直接算出任意激励下系统的零状态响应。这三块能力是后面拉普拉斯变换、傅里叶分析的底座,底座没打牢,后面的部分基本就是背公式。
这篇内容适合三类人:正在跟着教材啃第2章的学生、准备考研需要把这一章彻底吃透的人、还有工作里偶尔要处理动态系统建模的工程人员。我不会按教材目录照抄一遍,而是按我自己踩过坑之后的思路顺序来讲——先讲清楚为什么这么设计,再讲具体怎么算,最后把常见错法和考场节奏摊开来说。
1.1 时域分析到底在解决什么问题
先给一个最朴素的问题:给你一个系统,再给你一个输入,你怎么知道输出长什么样?时域分析的答案非常直接——把系统的微分方程写出来,解它。听起来很笨,但正因为笨,它把所有细节都摊在明面上,每一个跳变、每一个冲激、每一段积分限你都看得见,这也是为什么考研大题特别偏爱这一章:它没法像变换域那样靠"背表"蒙过去。
时域分析的另一个价值在于,它给出了"系统的身份证"这个概念。一个线性时不变系统,它的全部外部特性,都可以被一个函数 h(t) 完整描述。你只要拿到了 h(t),任意输入下的零状态响应都是 h(t) 和输入的卷积。这个结论是整个信号与系统课程里最漂亮的结果之一,也是后面"系统函数 H(s) 与 h(t) 是一对拉氏变换"的伏笔。
所以,这一章不是让你学会解微分方程——解微分方程是大一高数的事。它真正想让你理解的是:系统的固有响应长什么样、外部激励怎么改造它、这两者怎么叠加成最终的输出。想清楚这个层次,很多题目的解法就自然出来了。
1.2 三条解题路线的取舍:经典法、零输入零状态法、卷积法
同一个微分方程,教材上一共给了三条路,很多人学完就乱了,不知道该用哪条。我按自己的使用习惯说一下取舍逻辑。
第一条是经典法,也就是"齐次解 + 特解 + 待定系数"。它的优点是通用,任何线性常系数方程都能用;缺点是待定系数必须用 0+ 时刻的初始条件,而题目通常给的是 0- 时刻的初始状态,中间差一个跳变,这一步最容易翻车。
第二条是零输入响应 + 零状态响应分解法。这条路的好处是把问题劈成两半:一半只看初始储能,用齐次解形式加上 0- 条件就能定;另一半只看输入,用卷积算。两条路各自内部不打架,不会出现"初始条件到底用 0- 还是 0+"的纠结。
第三条是卷积法,专门劈给零状态响应。它的物理意义最清楚,也最适合处理分段函数、方波、指数衰减这类输入。
我的建议是:用第二条做主框架,第一条只用来处理强迫响应这一小部分,第三条专门负责零状态响应。三条路线不是并列关系,是分工关系。真到了考场上,一道大题往往需要三条路配合着用,而不是死抱着一条。
1.3 学习顺序建议与刷题节奏
顺序上我强烈建议倒过来学:先学冲激响应和卷积,再回头学经典法。原因很简单,冲激响应 h(t) 的形式本身就是齐次解的形状,你先搞懂 h(t) 怎么来的,再回头看齐次解、特征根、待定系数,会有一种"原来你早就在这儿等着我"的感觉。反过来先啃经典法的待定系数,很容易陷入机械计算而不能理解意义。
刷题节奏上,这一章我建议按"三遍法"来:第一遍只做方程到 h(t) 的转换,不做卷积;第二遍专攻卷积积分限的确定,拿方波、三角波、指数函数互相卷;第三遍再上综合大题,把零输入、零状态、全响应、自由响应、强迫响应五个量一次性算全。第三遍做完,这一章基本就稳了。大理大学这类学校的考研真题里,这一章通常是一道 15 到 20 分的大题,分值占比不低,值得花这个时间。
2. 第一步:把物理系统翻译成微分方程
时域分析的所有计算,都建立在"先把方程写对"这个前提上。方程写错了,后面解得再漂亮也是零分。我见过太多人卷积算得很溜,结果 KVL 列错一个符号,整道题白做。所以这一节单独拎出来讲建模,不是为了凑篇幅,是因为它真的值得。
2.1 电路系统建模的固定套路
电路建模的套路非常固定,只有三步:第一步,对每个独立节点列 KCL,对每个独立回路列 KVL;第二步,把电容、电感的伏安关系代进去——电容是 i = C·du/dt,电感是 u = L·di/dt;第三步,消去中间变量,只留下你关心的那个响应量和一个激励量,整理成标准形式。
标准形式长这样:
a_n · d^n y/dt^n + ... + a_1 · dy/dt + a_0 · y = b_m · d^m f/dt^m + ... + b_1 · df/dt + b_0 · f左边是响应及其各阶导数,右边是激励及其各阶导数,系数都是常数(对线性时不变系统而言)。这里有个经验:整理完以后,先把最高阶的系数归一化,也就是两边同除以 a_n,让最高阶导数前面的系数变成 1。这么做有两个好处,一是后面求特征根时形式统一,二是右边激励的系数会直接变成 h(t) 里的系数,省得来回倒。
举个典型的 RC 电路:电压源 f(t) 通过电阻 R 给电容 C 充电,取电容电压 u_C 为响应。由 KVL 有 R·i + u_C = f,再由 i = C·du_C/dt 代入,得到 RC·du_C/dt + u_C = f。归一化后是 du_C/dt + (1/RC)·u_C = (1/RC)·f,时间常数 τ = RC。这个例子非常小,但它的结果会反复出现在后面所有的一阶分析里。
2.2 机械系统与其他领域的建模与类比
机械系统的建模逻辑和电路一模一样,只是换了一套物理量。弹簧的胡克定律 F = k·x,阻尼器的粘滞摩擦 F = c·dx/dt,质量的牛顿第二定律 F = m·d²x/dt²。把它们按受力分析拼起来,得到的就是一个二阶微分方程,形式和 RLC 电路完全同构。
这种同构不是巧合,而是线性系统理论的普适性体现。下面这张表是我自己整理时常用的对应关系,理解了它,你就明白为什么教材讲电路就够了——本质上是同一套数学:
| 电路量 | 机械平移量 | 数学角色 |
|---|---|---|
| 电压 u | 力 F | 势变量(跨变量) |
| 电流 i | 速度 v | 流变量(通变量) |
| 电阻 R | 阻尼 c | 耗能元件 |
| 电容 C | 弹簧柔度 1/k | 储能元件(势) |
| 电感 L | 质量 m | 储能元件(流) |
| 并联 | 并联(同势) | 节点分析 |
| 串联 | 串联(同流) | 回路分析 |
这张表的价值在于,你只要会一种建模,剩下的靠类比就能平移过去。实际工作中遇到热传导、流体、甚至某些经济系统的一阶惯性过程,绝大多数都能塞进这个框架。
2.3 建模阶段的三个高频陷阱
第一个陷阱是响应量选错。电路题有时候问的是电流而不是电压,这时候如果你一开始就按电压列方程,最后还得再求一次导,多一步就多一个出错点。我的习惯是:题目问什么,我就让什么当 y,中间变量全部用 y 和激励表示,最后一起消。
第二个陷阱是符号方向。KVL 里到底是 "+u_C" 还是 "-u_C",取决于你规定的参考方向。很多人列方程时符号乱,本质是参考方向没先标好。我的做法是,动笔前先在草稿纸上把每个元件的电压电流参考方向画出来,画完了再列方程,这一步花三十秒,能省十分钟的复查时间。
第三个陷阱是把非线性元件当线性。二极管、饱和电感、变容二极管这些都不是线性的,一旦出现,微分方程就不再是常系数线性形式,本章的所有方法全部失效。考试里如果真出现了,要么是题目给了小信号线性化条件,要么就是你理解错了题意。
提示:方程列完以后,先别急着解。拿 t → ∞ 的稳态情况代进去验一遍,看看量纲和数量级对不对。这一步能拦住大部分低级错误。
3. 经典法求解微分方程:齐次解、特解与待定系数
经典法是这一章的基本功,虽然实际解题中我更愿意用分解法,但齐次解的形式、特解的猜法、待定系数的确定,这三件事你必须清清楚楚,否则冲激响应那一节你根本看不懂它是怎么来的。
3.1 齐次解的形式由特征根决定
把方程右边置零,得到齐次方程。设解的形式为 e^{λt},代进去就能得到特征方程,解出特征根 λ。齐次解的形式完全由特征根的类型决定,一共三种情况,我整理成一张表:
| 特征根类型 | 齐次解对应项 |
|---|---|
| 单实根 λ | C·e^{λt} |
| r 重实根 λ | (C_1 + C_2·t + ... + C_r·t^{r-1})·e^{λt} |
| 共轭复根 α ± jβ | e^{αt}·(C_1·cos βt + C_2·sin βt) |
这里要说清楚一件事:齐次解里出现的这些系数,还没定。它们要靠初始条件来确定,而初始条件到底是 0- 还是 0+,是这一章最大的争议点,我在 3.3 节专门处理。
关于重根,我必须强调一下:很多人看到二重根就只写一项 C·e^{λt},忘了乘以 t。判断方法很简单——特征方程是 n 阶的,齐次解里就必须有 n 个独立的待定系数,少一个就说明你漏了重根的多项式因子。这个自查方法非常有效,我每次做完齐次解都会数一遍系数个数。
3.2 特解怎么猜:激励与特解形式对照表
特解的形式由方程右边的激励函数形状决定,这就是所谓的"待定系数法"。规则的核心是:特解的形式和激励的形状一致,除非这个形状和齐次解撞车,撞车了就乘以 t 升阶,直到不撞为止。
| 激励 f(t) 的形式 | 特解 y_p(t) 的设法 | 备注 |
|---|---|---|
| 常数 A | P(常数) | 0 不是特征根时可直接用 |
| 多项式 t^m | P_m t^m + ... + P_1 t + P_0 | 0 是 k 重根时整体乘 t^k |
| e^{at} | P·e^{at} | a 是 k 重特征根时乘 t^k |
| cos ωt 或 sin ωt | P_1·cos ωt + P_2·sin ωt | ±jω 是特征根时整体乘 t |
| e^{at}·cos ωt | e^{at}(P_1 cos ωt + P_2 sin ωt) | 同理,撞车就乘 t |
以 f(t) = e^{-t} 为例,如果 -1 不是特征根,特解直接设 P·e^{-t};如果 -1 是单重特征根,就要设 P·t·e^{-t};如果是二重根,设 P·t²·e^{-t}。这个"乘以 t 的幂次"的动作,就是所谓的"共振"在微分方程里的体现,和物理上讲的外力频率等于固有频率时振幅线性增长是同一件事。
注意:特解里的系数是在代入原方程之后比较同类项定出来的,不能拿初始条件去定。初始条件只管齐次解那部分的系数,两个系数的确定渠道完全不同,混用必错。
3.3 从 0- 到 0+:初始条件跳变的处理
这是整章最容易失分的地方,我单独用一小节讲透。
0- 时刻的初始状态 y(0-)、y'(0-) 是电路或系统在激励接入之前就已经存在的储能状态,比如电容上已经有的电压、电感里已经有的电流。这些量是"物理事实",题目一般直接给。
0+ 时刻的起始条件 y(0+)、y'(0+) 才是经典法待定系数时真正要用的东西。问题在于,这两个量有时候不相等——当激励在 t = 0 时刻含有冲激或者冲激的导数时,系统在 0 点会发生瞬间跳变,0+ 的值会偏离 0- 的值。
判断要不要跳变,看方程右边激励的最高阶导数次数 m 和左边响应的阶数 n:
| 情况 | 0+ 与 0- 的关系 | 处理方式 |
|---|---|---|
| 右侧不含 δ 及其导数(m ≤ 0 且激励有界) | 一般相等 | 直接令 0+ = 0- |
| 右侧含 δ(t) | 低阶导数可能跳变 | 用匹配法求跳变量 |
| 右侧含 δ'(t) 或更高阶 | 更多阶导数跳变 | 用匹配法逐阶求 |
| 右侧含 ε(t)(阶跃) | 一般不跳变 | 阶跃本身有界,积分后连续 |
一个实用的判断口诀:方程两边同时对 t 在 [0-, 0+] 上做积分,右边积分不出来的项,就对应左边的跳变项。这个口诀在处理冲激响应时尤其好用。
3.4 冲激函数匹配法实操
匹配法的具体操作是:假设响应及其各阶导数在 0 附近含有冲激项,设出形式,代入方程,比较 δ 及其各阶导数的系数,把跳变量解出来。
我拿一道典型题走一遍。设系统的微分方程为
y''(t) + 3y'(t) + 2y(t) = f'(t) + 2f(t)求冲激响应 h(t)。
第一步,令 f(t) = δ(t),则 h(t) 满足
h''(t) + 3h'(t) + 2h(t) = δ'(t) + 2δ(t)第二步,判断 h(t) 里含不含 δ。因为右边最高阶导数是 1 阶,左边阶数是 2 阶,m < n,所以 h(t) 本身不含 δ 项,但 h(t) 和 h'(t) 在 0 点可能有跳变。
第三步,设 h''(t) 中含 a·δ'(t) + b·δ(t) 两项。往回推:
- h'(t) 中含 a·δ(t) + b·ε(t)
- h(t) 中含 a·ε(t)
把这些代回方程左边:
a·δ'(t) + b·δ(t) + 3a·δ(t) + 3b·ε(t) + 2a·ε(t)比较系数:δ'(t) 的系数给出 a = 1;δ(t) 的系数给出 b + 3a = 2,代入 a = 1 得 b = -1。
第四步,把跳变量翻译成起始条件。a·ε(t) 意味着 h(t) 在 0 处跳变 a = 1,即 h(0+) - h(0-) = 1,而 h(0-) = 0,所以 h(0+) = 1。同理 b·ε(t) 意味着 h'(0+) - h'(0-) = b = -1,所以 h'(0+) = -1。
第五步,h(t) 在 t > 0 时满足齐次方程,特征根是 -1 和 -2,所以
h(t) = (C_1·e^{-t} + C_2·e^{-2t})·ε(t)代入起始条件:C_1 + C_2 = 1,-C_1 - 2C_2 = -1。解得 C_2 = 0,C_1 = 1。
所以
h(t) = e^{-t}·ε(t)第六步,验算。把 h = e^{-t}ε、h' = -e^{-t}ε + δ、h'' = e^{-t}ε - δ + δ' 代回左边,得 δ' + 2δ,与右边一致,结果正确。
我在第一次做这道题时,把 h(0+) 直接当成了 0,算出来 h(t) = 0,当场蒙了。后来才明白,右边那个 f'(t) 就是罪魁祸首,正是它逼着 h'(0+) 从 0 跳到了 -1。记住一个反直觉的结论:冲激响应的起始条件往往不为零,而零输入响应的起始条件就取 0- 的值,两者不能混。
顺便提一个验证技巧:用算子法算一遍。把方程写成算子形式 H(p) = (p + 2)/(p² + 3p + 2),因式分解后是 (p + 2)/[(p + 1)(p + 2)] = 1/(p + 1),对应 h(t) = e^{-t}ε(t)。两种方法对上,心里就有底了。
4. 零输入响应与零状态响应:把两块拼图分开算
如果只让我教一种解法,我会教这一种。零输入零状态分解法的最大好处是,它把"系统自身"和"外部激励"这两个独立的因果源彻底分开了,各自有各自的确定系数的渠道,不会互相污染。
4.1 零输入响应:只跟初始储能有关
零输入响应 y_zi(t) 的定义是:激励为零,仅由 0- 时刻的初始状态引起的响应。它的形式一定是齐次解的形式,因为方程右边是零。
计算步骤只有三步:写出齐次解的通式,代入 0- 时刻的初始状态,解线性方程组定系数。注意这里用的是0- 而不是 0+,因为激励为零,系统在 0 点不会发生跳变,0+ 等于 0-。
举一个例子。系统方程 y'' + 3y' + 2y = f(t),初始状态 y(0-) = 1,y'(0-) = 2。特征根是 -1 和 -2,零输入响应形式为
y_zi(t) = (C_1·e^{-t} + C_2·e^{-2t})·ε(t)代入初始状态:C_1 + C_2 = 1,-C_1 - 2C_2 = 2。解得 C_1 = 4,C_2 = -3,所以
y_zi(t) = (4e^{-t} - 3e^{-2t})·ε(t)这里补一个物理直觉:零输入响应的每一条指数项都是衰减的(对稳定系统而言),衰减快慢由特征根的实部决定,振荡与否由虚部决定。这跟系统的"固有频率"、"时间常数"、"阻尼比"是同一回事。
4.2 零状态响应:只跟激励有关
零状态响应 y_zs(t) 的定义是:初始状态为零,仅由激励引起的响应。它的标准算法有两种,一种是先用经典法求出全响应再减去零输入响应,另一种是直接做卷积 y_zs = f(t) * h(t)。我强烈推荐第二种,因为 h(t) 一旦求出来,后面所有输入都是机械操作。
零状态响应里有一个坑值得提:虽然初始状态是零,但零状态响应在 0+ 时刻的起始条件一般不为零,原因和 3.4 节讲的一样——激励在 0 点的冲激成分会强制产生跳变。所以算零状态响应时,千万不要拿"0- 为零"去定系数,那是零输入响应的定法。
4.3 两种分解方式的关系
教材上还给了一种分解:全响应 = 自由响应 + 强迫响应。这两种分解容易混淆,我用一张表把它们的关系说清楚:
| 分解方式 | 分法依据 | 分出来的两块 | 系数由谁定 |
|---|---|---|---|
| 零输入 + 零状态 | 激励是否为零 | y_zi、y_zs | 分别由 0- 状态、激励定 |
| 自由 + 强迫 | 是否为齐次解形式 | 自由响应、强迫响应(特解) | 自由响应的系数由整体初始条件定 |
关键结论是:
自由响应 = 零输入响应 + 零状态响应中的齐次解部分也就是说,零状态响应里也含有齐次解形式的成分,它和零输入响应形状一样,只是系数不同。很多题目要求"分别指出自由响应和强迫响应",这时候你先算全响应,再把非齐次形式的那部分挑出来当强迫响应,剩下的就是自由响应。别硬拆,硬拆很容易漏项。
提示:题目如果只要求"求全响应",用零输入加零状态最快;如果明确问"自由响应和强迫响应",就先算出全响应再按形式归类。看清题目是哪一种,能省不少无谓的计算。
5. 冲激响应与阶跃响应:拿到系统的身份证
到了这一节,这一章的重心开始从"解方程"转向"认系统"。冲激响应 h(t) 是线性时不变系统最核心的概念,没有之一。
5.1 冲激响应的定义与求法
定义很直接:系统初始状态为零时,单位冲激函数 δ(t) 作为输入所产生的响应,记作 h(t)。它的物理意义是"系统对瞬间猛烈一击的自然反应"——这一击之后输入就消失了,所以剩下的完全是系统自己的固有振动。
求法上,我总结成两条路径:
路径一是解方程法。令方程右边只剩 δ(t)(如果原方程右边还有 f 的各阶导数,那就换成 δ 的各阶导数),用 3.4 节的匹配法求出 h(0+)、h'(0+)、h''(0+) 等起始条件,然后套齐次解形式定系数。这条路通用,缺点是匹配那一步容易出错。
路径二是算子法(部分分式展开)。把微分方程写成算子形式,得到传输算子 H(p) = N(p)/D(p),对它做部分分式展开,每一项查表反变换回时域。以下是常用对照:
1/(p - λ) → e^{λt}·ε(t) 1/(p - λ)^k → t^{k-1}/(k-1)! · e^{λt}·ε(t) 1/(p + α)² + β² → (1/β)·e^{-αt}·sin(βt)·ε(t) (p + α)/[(p+α)²+β²] → e^{-αt}·cos(βt)·ε(t)用 3.4 节那道题验证一下:H(p) = (p + 2)/(p² + 3p + 2) = 1/(p + 1),查表得 h(t) = e^{-t}ε(t),和解方程法的结果完全一致。实际做题我一般先用算子法快速出结果,再用解方程法验算一遍,两道防线,基本不会错。
还有一个结论要记牢:h(t) 里一定带 ε(t)(对因果系统而言),因为 t < 0 时系统还没被激发,响应必须为零。如果你算出来的 h(t) 里没带 ε(t),八成是漏了。
5.2 阶跃响应与冲激响应的互推关系
阶跃响应 g(t) 的定义是:初始状态为零时,单位阶跃 ε(t) 作为输入产生的响应。它和 h(t) 之间有两条互推关系,非常好用:
g(t) = ∫_{-∞}^{t} h(τ) dτ h(t) = dg(t)/dt这两条关系的直观解释是:δ(t) 是 ε(t) 的导数,而线性时不变系统对输入求导,输出也求导;对输入积分,输出也积分。据此还能推出一个非常有用的技巧:如果求 h(t) 的匹配法太麻烦,可以先求 g(t)(对阶跃输入的响应通常更容易处理),再求导得到 h(t)。
阶跃响应本身也有物理意义:它描述的是系统对"突然接到一个恒定输入"的过渡过程,工程上讲的上升时间、超调量、调节时间,全都是从 g(t) 的曲线上读出来的。这也是为什么控制系统里更喜欢用阶跃响应来做性能指标。
5.3 常见系统的 h(t) 清单
下面这张表是我整理的常考结果,建议直接背下来,考场上能省一半时间:
| 系统方程 | 特征根 | h(t) |
|---|---|---|
| y' + a·y = f | -a | e^{-at}·ε(t) |
| y' + a·y = f' | -a | δ(t) - a·e^{-at}·ε(t) |
| y'' + 2y' + y = f | -1(二重) | t·e^{-t}·ε(t) |
| y'' + 2y' + 5y = f | -1 ± 2j | (1/2)·e^{-t}·sin(2t)·ε(t) |
| y'' + 3y' + 2y = f | -1, -2 | (e^{-t} - e^{-2t})·ε(t) |
| y'' + 2y' + y = f' | -1(二重) | (1 - t)·e^{-t}·ε(t) |
最后一行值得单独说:右边出现 f' 时,h(t) 的结构会发生明显变化,可能出现 δ(t) 项。一般规律是:如果方程右边的最高阶导数阶数 m 大于等于左边阶数 n,h(t) 里就会出现 δ(t) 及其各阶导数。这条规律是判断 h(t) 结构是否合理的快速方法。
6. 卷积积分:时域方法的心脏
如果这一章只能留一个知识点,我会留卷积。因为它是把 h(t) 从"一个函数"变成"一把万能钥匙"的那一步。
6.1 卷积的物理意义与定义
卷积的定义式是
y(t) = f(t) * h(t) = ∫_{-∞}^{+∞} f(τ)·h(t - τ) dτ它的物理意义可以用一句话概括:把输入信号看成无数个在不同时刻出现的、强度不同的冲激的叠加,每个冲激在系统里激起一个按 h(t) 形状演化的响应,把所有时刻的响应在观察时刻 t 上叠加起来,就是输出 y(t)。这个思路就是"分解—叠加"的时域版本。
理解了这个意义,很多性质就变成显而易见的了。比如交换律 f * h = h * f,意味着"把输入拆成冲激"和"把系统拆成冲激"两条路等价;比如 f(t) * δ(t) = f(t),意味着单位冲激是卷积的单位元;比如 f(t) * δ(t - t_0) = f(t - t_0),意味着延迟的冲激只是把响应整体平移。
6.2 图解法的标准四步与积分限确定
图解法是考试里最常用的手算方式,标准流程四步:
- 换元:把 f 和 h 的自变量都换成 τ,画出两者的波形。
- 翻转:把 h(τ) 关于纵轴翻成 h(-τ)。
- 平移:把 h(-τ) 沿 τ 轴平移 t,得到 h(t - τ)。
- 相乘积分:计算两个波形重叠区域内 f(τ)·h(t - τ) 的积分,作为 t 时刻的输出。
这里面唯一有技术含量的就是第四步的重叠区间判断。我拿一道典型题完整走一遍。
已知 f(t) = ε(t) - ε(t - 2)(宽度为 2 的矩形脉冲),h(t) = e^{-t}·ε(t),求 y(t) = f(t) * h(t)。
直接按定义写:
y(t) = ∫_{-∞}^{+∞} f(τ)·h(t-τ) dτ = ∫_{-∞}^{+∞} f(τ)·e^{-(t-τ)}·ε(t-τ) dτ两个约束条件:f(τ) 非零要求 0 ≤ τ ≤ 2;ε(t - τ) 非零要求 τ ≤ t。两个区间的交集决定了积分上下限,按 t 的位置分三段讨论。
第一段,t < 0。此时 τ ≤ t 与 0 ≤ τ ≤ 2 没有交集,积分为零,所以 y(t) = 0。
第二段,0 ≤ t < 2。交集是 0 ≤ τ ≤ t,于是
y(t) = ∫_0^t e^{-(t-τ)} dτ = e^{-t}·(e^t - 1) = 1 - e^{-t}第三段,t ≥ 2。此时 τ ≤ t 的约束在 [0, 2] 内自动满足,交集就是整个 0 ≤ τ ≤ 2,于是
y(t) = ∫_0^2 e^{-(t-τ)} dτ = e^{-t}·(e^2 - 1) = e^{-(t-2)} - e^{-t}在 t = 2 处验算一下:第二段给出 1 - e^{-2},第三段给出 e^{0} - e^{-2} = 1 - e^{-2},两边一致,说明分段点接得上,结果可信。
这道题里我踩过一次坑:把第三段的积分上限定成了 t,忘了 f(τ) 在 τ > 2 之后是零。积分限的确定,永远是"两个非零区间的交集",谁窄听谁的。如果你只盯着 h(t - τ) 的约束,忽略了 f 本身的有限支撑,结果就会在 t > 2 之后继续增长,明显与物理直觉不符——输入早就结束了,输出不可能一直涨。
再补一个更短的例子练手感:f(t) = e^{-t}ε(t),h(t) = e^{-t}ε(t)。两个函数的非零区间在 τ ≥ 0 和 τ ≤ t 上取交集,t < 0 时为零,t > 0 时为
y(t) = ∫_0^t e^{-τ}·e^{-(t-τ)} dτ = e^{-t}·∫_0^t dτ = t·e^{-t}所以 y(t) = t·e^{-t}·ε(t)。这个结果和拉氏变换里 1/(s+1)² 反变换的结果一致,可以互相印证。
6.3 卷积的运算性质与常用卷积表
卷积的性质很多,但真正高频使用的就那么几条,我挑出来列成表:
| 性质 | 表达式 | 使用场景 |
|---|---|---|
| 交换律 | f * h = h * f | 哪个好翻转就翻哪个 |
| 分配律 | f * (h_1 + h_2) = fh_1 + fh_2 | 输入可分解时拆开算 |
| 结合律 | (f * h_1) * h_2 = f * (h_1 * h_2) | 多级系统级联 |
| 与冲激 | f(t) * δ(t) = f(t) | 单位元 |
| 时移 | f(t - t_1) * h(t - t_2) = y(t - t_1 - t_2) | 延迟输入直接平移结果 |
| 微分 | f * h' = f' * h = y'(t) | 避开发散积分 |
| 积分 | f * ε(t) = ∫_{-∞}^{t} f(τ) dτ | 阶跃卷积就是前置积分 |
| 尺度变换 | f(at) * h(at) = (1/|a|)·y(at) | 波形压缩后结果要乘系数 |
尺度变换这条最容易被忽略。很多人卷完发现结果和答案差一个系数,十有八九是忘了这个 1/|a|。它背后的道理是:自变量压缩会把积分区间也压缩,区间长度变成原来的 1/|a|,所以积分值要相应补偿。
常用的一小张卷积表,考前扫一眼就够:
ε(t) * ε(t) = t·ε(t) t·ε(t) * ε(t) = (t²/2)·ε(t) e^{-at}ε(t) * ε(t) = (1/a)(1 - e^{-at})·ε(t) e^{-at}ε(t) * e^{-bt}ε(t) = [1/(b-a)]·(e^{-at} - e^{-bt})·ε(t),a ≠ b e^{-at}ε(t) * e^{-at}ε(t) = t·e^{-at}·ε(t)使用时注意一点:前四条都是针对因果信号(带 ε(t))的,如果信号是非因果的,比如 e^{-at}ε(-t),必须老老实实从定义式出发算,不能套这些表。
6.4 零状态响应 = 激励卷积冲激响应
把前面几节串起来,这一章的完整闭环就出来了:
第一步:由微分方程求冲激响应 h(t) 第二步:零输入响应 y_zi 由 0- 初始状态定 第三步:零状态响应 y_zs = f(t) * h(t) 第四步:全响应 y(t) = y_zi(t) + y_zs(t)这条链路是这一章的骨架,任何一道大题都跑不出这四步。我在做综合题时习惯先把这条链路写在草稿纸最上面,每算完一步打个勾,最后一步之前严格复查 h(t) 和卷积限,基本就不会丢分。
顺便说一句,h(t) 的因果性和稳定性也和这条链路强相关:h(t) = 0 对 t < 0 成立,系统是因果的;∫|h(t)|dt 收敛,系统是稳定(有界输入有界输出)的。这两条判断在选择题里出现的频率极高,而且是纯送分题,前提是你 h(t) 求对了。
7. 常见问题排查与踩坑实录
前面六节讲的是"应该怎么做",这一节讲的是"实际做的时候会在哪儿翻车"。这一节的内容大部分不是教材上写的,是我做题和带人做题时反复看到的实录。
7.1 高频错误速查表
| 现象 | 常见原因 | 正确做法 |
|---|---|---|
| 零输入响应系数算出来是复数 | 特征根共轭,硬用实系数方程解 | 直接设 e^{αt}(C_1 cos βt + C_2 sin βt),保持实数形式 |
| 全响应比答案多一项 | 零状态响应里忘了带 ε(t) | 检查所有指数项后面是否有 ε(t) |
| 卷积在 t 大于某个值后还在涨 | 积分上限用了 t,忽略了 f 的有限支撑 | 取两个非零区间的交集,谁窄用谁 |
| h(t) 里出现 δ(t) 但答案没有 | 没判断 m 与 n 的大小关系 | m < n 时 h(t) 不含 δ,m ≥ n 时含 |
| 特解代入后同类项消不掉 | 特解形式和激励撞车,没乘 t | 检查激励指数是否为特征根,是则升阶 |
| 结果和拉氏变换法对不上 | 卷积尺度变换漏了 1/|a| | 做尺度变换时主动补系数 |
| 起始条件用了 0- 导致跳变丢失 | 混淆了 0- 状态与 0+ 条件 | 经典法待定系数一律用 0+ |
最后一行我单独强调:0- 是物理事实,0+ 是数学入口。题目给的永远是 0-,你解的永远是 0+,中间那个跳变量需要你自己通过匹配法算出来。这个区分看着啰嗦,但它是一大半错误的根源。
7.2 计算细节上的几个死磕点
第一个死磕点是积分限的分段点。分段点的位置来自两个约束的临界值,比如 t = 0 和 t = 2,这两个点必须单独验算,确认左右两段的结果接得上。接不上就是分段错了,别硬着头皮往下写。
第二个死磕点是冲激函数的运算。三条常用规则:抽样性质 ∫f(t)δ(t - t_0)dt = f(t_0);乘积性质 f(t)δ(t) = f(0)δ(t);尺度性质 δ(at) = (1/|a|)δ(t)。这三条在简化卷积时经常用到,尤其是当输入里含 δ 时,直接用抽样性质比老老实实积分快得多。
第三个死磕点是 ε(t) 与常数的关系。有界信号乘不乘 ε(t),在 t > 0 时看不出差别,但卷积结果里差一个整体平移,考试会扣分。我的检查习惯是:拿到任何时域结果,先看 t < 0 的部分是不是零(因果系统),不是零就说明漏了 ε(t)。
第四个死磕点是初值定理式的自检。算完 h(t) 以后,可以用 h(0+) 反推右端最高阶项的系数,两者应该对得上。这一步花二十秒,能拦住大部分匹配法算错的情况。
7.3 大题模板与时间分配
最后说一下考场节奏。这一章的大题通常 15 到 20 分,我建议按下面的模板来写:
- 抄下微分方程,标注阶数 n 和右端最高阶 m(30 秒)
- 写特征方程,求特征根,标注类型(1 分钟)
- 求 h(t):算子法或匹配法,写出并验算(4 分钟)
- 求零输入响应:套齐次解形式,用 0- 条件定系数(3 分钟)
- 求零状态响应:写卷积式,分段讨论积分限(5 到 6 分钟)
- 相加得全响应,必要时拆自由与强迫分量(2 分钟)
- 检查:ε(t) 是否齐全、t < 0 是否为零、分段点是否连续(1 分钟)
整个过程 15 分钟上下,留 5 分钟复查。如果某一步卡住了,先把后面能写的写上,分步给分的情况下,把 h(t) 求对往往就能拿到一半的分。
还有一个小经验:草稿纸上一定要画波形图。哪怕题目不要求作图,把 f(τ) 和 h(t - τ) 的示意图画出来,积分限一眼就能看出来,比纯靠代数推快得多,也不容易错。我见过太多人嫌画图麻烦,结果在积分限上纠结了十分钟,得不偿失。
8. 一些不太写在教材上的体会
零输入响应和零状态响应的分解,本质上是在回答"锅里的味道到底来自食材还是来自火候"。这个类比可能不太严谨,但它帮我记住了一件事:一个系统的输出从来不只由输入决定,初始储能也是一份实实在在的贡献,只是它不声不响地待在那儿。
我在带学生的过程中发现,这一章真正的门槛不在计算量,而在肯不肯把每一个符号的含义想清楚。0- 和 0+ 差的那个跳变、卷积里翻转平移的物理意义、h(t) 为什么是系统的身份证,这些东西想通了,题目只是它的练习题;想不通,做一百道也只是在练手速。所以如果你现在正卡在这一章,别急着刷题,先把 3.4 节的匹配法和 6.2 节的积分限确定各自独立地推三遍,推到闭着眼睛都不会错为止。
最后一个可扩展的方向:这一章所有"解方程"的活儿,到第 4 章之后基本都可以被拉普拉斯变换替代。零输入响应变成初始条件对应的自由项,零状态响应变成 H(s)·F(s) 的反变换,卷积变成乘法。那时候你回头看这一章,会发现它不是被淘汰了,而是被抽象了——卷积的那套分解叠加思想,才是整门课真正的内核。所以这一章多花点时间是值得的,后面几章会反复收它的利息。