第 15 讲用最简单的 RC 电路算了两个最重要的响应:输入是阶跃时的 step response,输入是 impulse 时的 impulse response。它们是 convolution 部分的原料:知道了 impulse response h(t),任何输入的输出都能算出来(C·02)。δ 的定义和单位见 6·01,电路里的 impulse 见 6·15。
① 电路和方程
电压源 vin 经 R 给 C 充电,输出是 C 上的电压 v(上 + 下 −)。i 是流过 R、流进 C 的电流。
读图。R 两端的电压是 vin−v,电流(向右)i=(vin−v)/R。这个电流全部从 + 端流进 C,按 passive sign convention,i=Cdv/dt。
写方程。两者相等:
Rvin−v=Cdtdv⟹τdtdv+v=vin,τ=RC
开关前的状态。阶跃源 V0u(t) 在 t≤0 时是 0 V,就是一根导线。如果电路这样放了很久,C 早已经经 R 放完电,v(0−)=0。下面两种输入都从这个 zero state 出发。如果 C 是开关前单独充过电再接进来的,初值就不是 0,要按 6·14 的方法另算。
② step response
输入 vin=V0u(t)。用 6·14 的万能公式,三样东西分开求:
- 初值。电流 (V0−v)/R 有限,没有 impulse,capacitor 电压不跳:v(0+)=v(0−)=0。
- 终值。dc steady state 时 C 是 open circuit,没有电流,R 上没有压降:v(∞)=V0。
- time constant。关掉电源(导线),C 看到 R:τ=RC。
v(t)=V0+(0−V0)e−t/τ=V0(1−e−t/τ)u(t)
最后乘上 u(t),是因为 t≤0 时确实是 0(zero state),这样一个式子就写全了所有时间。V0=1 时叫 unit step response,记作 s(t)=(1−e−t/τ)u(t)。
代回方程核对
t>0 时 dtdv=τV0e−t/τ,所以 τdtdv+v=V0e−t/τ+V0−V0e−t/τ=V0 ✓。
读曲线。过 τ 到终值的 63%,2τ 到 86%,3τ 到 95%,5τ 到 99.3%。起点的斜率是 V0/τ:如果一直按起点的速度走,正好在 t=τ 到达终值(图中从原点出发的虚线)。R 或 C 越大,τ 越大,充得越慢。
横轴以 τ 为单位。1 个 τ 到 63%,3 个 τ 到 95%。
例 12 kΩ、0.5 µF、10 V 阶跃
R=2 kΩ,C=0.5 μF,vin=10u(t) V,电路原来没电。求 v(1 ms)、v(3 ms),以及 v 什么时候到 9 V。
- τ=RC=2000×0.5×10−6=1×10−3 s = 1 ms。
- v(1 ms)=10(1−e−1)=6.32 V;v(3 ms)=10(1−e−3)=9.50 V。
- 到 9 V:10(1−e−t/τ)=9 ⇒ e−t/τ=0.1 ⇒ t=τln10=2.30 ms。
③ impulse response
输入 vin=Aδ(t),A 的单位是 V·s。impulse 只在 t=0 那一瞬间作用,那一瞬间 v 会跳;之后输入又是 0。分两步算。
第 1 步:跳了多少。把方程两边从 0− 积到 0+:
τ[v(0+)−v(0−)]+∫0−0+vdt=A∫0−0+δ(t)dt=A
v 最多跳一个有限的量,一个有限的函数在长度趋于 0 的区间上积分是 0,所以中间那一项是 0:
v(0+)−v(0−)=τA
物理上看:impulse 那一瞬间 v 还是有限的,R 上的电流约为 Aδ(t)/R,送进 C 的 charge 是 A/R,电压升高 CA/R=RCA,是同一个结果。电流里有 impulse,所以 capacitor 电压可以跳。
第 2 步:跳完以后。t>0 时输入是 0(电压源是导线),C 从 A/τ 经 R 放电,终值 0,time constant 还是 τ:
v(t)=τAe−t/τu(t)
RC 电路的 impulse response(A = 1 V·s)
h(t)=τ1e−t/τu(t)
它的面积 ∫0∞τ1e−t/τdt=1,等于 step response 的终值(输入 1 V 的阶跃,最后输出 1 V)。τ 越小,h 越高越窄,面积不变。只写 e−t/τu(t) 是错的:它的面积是 τ,少了 1/τ。
τ=0.5, 1, 2 的 h(t):起点高 1/τ,面积都是 1。
例 2同一个电路,输入 0.004 V·s 的 impulse
τ=1 ms(例 1 的电路),vin=0.004δ(t) V·s。用两种方法求 v(0+),再求 v(t) 和 v(2 ms)。
- 方法 1(积分方程)。跳变 A/τ=0.004/0.001=4 V,v(0−)=0,所以 v(0+)=4 V。
- 方法 2(charge)。送进 C 的 charge A/R=0.004/2000=2×10−6 C = 2 µC,电压 2 μC/0.5 μF=4 V ✓。
- 之后。v(t)=4e−t/1 msu(t) V,v(2 ms)=4e−2=0.541 V。
④ impulse response 是 step response 的导数
对 zero state 的 linear、time-invariant 电路,把输入求导,输出也跟着求导。δ=pu,所以 h=ps。用乘积法则验证(6·05 技巧 C):
p[(1−e−t/τ)u(t)]=τ1e−t/τu(t)+(1−e−t/τ)δ(t)
第二项用 sampling property:δ(t) 前面的函数取 t=0 的值,1−e0=0,整项为 0。剩下的正是 h(t) ✓。反过来 s=p1h:∫0tτ1e−λ/τdλ=1−e−t/τ,也对得上。所以 step response 和 impulse response 知道一个就知道另一个。
常见错误
- impulse 箭头旁边的数是面积(V·s),不是电压的峰值。
- 忘了乘 u(t):没有它,公式在 t<0 也"成立",但电路那时根本没有响应。
- 把 h 写成 e−t/τu(t),丢了 1/τ。
- 不看开关前的电路就用 v(0−)=0。
- 阶跃输入时 capacitor 电压不跳;impulse 输入时跳 A/τ。
练习:先设计 C,再反推 impulse 的面积
R=5 kΩ,电路原来没电。(a) 输入 6u(t) V。要让 v 在 30 ms 时达到终值的约 95%,C 应该取多大(用 ② 的"3τ 到 95%")?用这个 C 求 v(10 ms) 和 v 到 3 V 的时刻。(b) 同一个电路改加 impulse Aδ(t)。要让 v(0+)=3 V,A 要多大?之后 v(20 ms) 是多少?
提示
(a) 先由 3τ=30 ms 定 τ,再 C=τ/R。(b) 把 ③ 的跳变公式 v(0+)−v(0−)=A/τ 倒过来解 A。
(a) τ=10 ms,C=τ/R=0.01/5000=2 μF(精确地,1−e−3=95.0%)。v(10 ms)=6(1−e−1)=3.79 V;3 V 是终值的一半,e−t/τ=21,t=τln2=6.93 ms。
(b) A=τ×3 V=0.01×3=0.03 V·s。用 charge 核对:送进 C 的 charge A/R=6 μC,6 μC/2 μF=3 V ✓。之后 v=3e−t/10 ms V,v(20 ms)=3e−2=0.406 V。