A·02

一阶线性 ODE:natural response + forced response

About 13 min

只含一个 capacitor 或一个 inductor 的电路,列出来都是 y′+a y=x(t)y' + a\,y = x(t) 这种方程(y′y' 是 dy/dtdy/dt)。这一节讲怎样解它:答案总是"一个衰减的指数"加"一个跟着输入走的部分",再用 initial condition 定出常数。

标准形式 y′(t)+a y(t)=x(t)(t>0)y'(t) + a\,y(t) = x(t)\quad (t \gt 0)
  • y(t)y(t):要求的量,比如 capacitor 电压、inductor 电流。
  • aa:常数。电路里 a>0a \gt 0:RC 电路 a=1/(RC)a = 1/(RC),RL 电路 a=R/La = R/L。
  • x(t)x(t):输入,由电源决定,是已知函数。
  • y(0)y(0):initial condition,已知。

读 aa 之前先把 y′y' 的系数化成 1。例如 RC v′+v=VsRC\,v' + v = V_s 要先除以 RCRC。

先说结论:解总是两部分相加。

complete response = forced response + natural response y(t)=yf(t)+A e−aty(t) = y_f(t) + A\,e^{-at}
  • forced response yfy_f:方程的任意一个解,不管初值。形状由输入决定:常数输入得常数,指数输入得同一个指数。
  • natural response A e−atA\,e^{-at}:把输入换成 0 以后方程的解。形状只由电路本身(aa)决定。
  • 常数 AA 最后用 initial condition 定。

为什么能这样拆。设 yfy_f 满足 yf′+a yf=xy_f' + a\,y_f = x,yy 是另一个解,两式相减:(y−yf)′+a (y−yf)=x−x=0(y - y_f)' + a\,(y - y_f) = x - x = 0。所以差 yn=y−yfy_n = y - y_f 满足"输入为 0"的方程 yn′+a yn=0y_n' + a\,y_n = 0。反过来,yfy_f 加上任何这样的 yny_n 也是解。于是问题拆成两个小问题:找一个 yfy_f,再找 yny_n 的一般形式。

① natural response 和 time constant

yn′=−a yny_n' = -a\,y_n:导数和函数本身成正比,指数函数正是这样。直接验证:(Ae−at)′=−a Ae−at(A e^{-at})' = -a\,A e^{-at} ✓,AA 取什么都成立。另一种找法到二阶还要用:猜 yn=esty_n = e^{st},代进去得 (s+a) est=0(s + a)\,e^{st} = 0;este^{st} 永远不是 0,所以 s+a=0s + a = 0,即 s=−as = -a。s+a=0s + a = 0 就是一阶的 characteristic equation,到二阶会变成一个二次方程。

time constant

τ=1a\tau = \dfrac{1}{a},natural response 写成 A e−t/τA\,e^{-t/\tau}。τ\tau 的单位是秒:RC 电路 τ=RC\tau = RC,RL 电路 τ=L/R\tau = L/R(复杂电路里 RR 换成从储能元件两端看进去的电阻,见 6·14)。

τ\tau 说的是 natural response 消失得多快。每过一个 τ\tau,e−t/τe^{-t/\tau} 就乘上 e−1≈0.368e^{-1} \approx 0.368:过 1 个 τ\tau 剩 37%,过 3 个剩 e−3≈5%e^{-3} \approx 5\%,过 5 个剩 e−5≈0.7%e^{-5} \approx 0.7\%。工程上过了 5 个 τ\tau 就当暂态结束了,只剩 forced response。

② forced response:常数输入

输入是常数 XX(比如 dc 电源)时,猜 yf=Ky_f = K 也是常数。代进方程:0+aK=X0 + aK = X,所以 K=X/aK = X/a。natural response 衰减完以后只剩它,所以它就是终值 y(∞)y(\infty),在电路里就是 dc steady state 的值(6·12)。

完整解是 y=X/a+A e−t/τy = X/a + A\,e^{-t/\tau}。令 t=0t = 0:y(0)=X/a+Ay(0) = X/a + A,所以 A=y(0)−X/aA = y(0) - X/a。代回去就得到下面框里的公式。下图是两种典型情况:充电(初值 0、终值 1)和放电(初值 1、终值 0),横轴以 τ\tau 为单位。

1 2 3 4 5 0.37 0.63 1 0 t / τ 1 − e−t/τ(充电) e−t/τ(放电)
横轴以 time constant τ=1/a\tau = 1/a 为单位:过 1 个 τ\tau 剩下的差距是 e−1≈37%e^{-1} \approx 37\%,过 3 个 τ\tau 剩 5%。
常数输入的一阶公式 y(t)=y(∞)+[ y(0)−y(∞) ] e−t/τy(t) = y(\infty) + \big[\,y(0) - y(\infty)\,\big]\,e^{-t/\tau}

其中 y(∞)=X/ay(\infty) = X/a,τ=1/a\tau = 1/a。读法:从初值出发,按指数走向终值,每过一个 τ\tau,离终值的差距乘 0.368。只要知道三个数:初值、终值、τ\tau。这就是 6·14 课上的"一阶电路万能公式",6·16 的 RC 阶跃响应也是它;这里从 ODE 推出了它为什么成立。

③ forced response:指数输入

输入是 Xe−btX e^{-bt}(b≠ab \ne a)时,猜 yf=Ke−bty_f = K e^{-bt}。理由:指数的导数还是同一个指数,左边每一项都正比于 e−bte^{-bt},才可能和右边相等。代进去:

−bKe−bt+aKe−bt=Xe−bt-bK e^{-bt} + aK e^{-bt} = X e^{-bt}

两边约掉 e−bte^{-bt},得

K=Xa−bK = \frac{X}{a - b}

Davis 把这叫 exponential forced response。b=ab = a 时分母是 0,这个猜法失效(输入的指数和 natural response 一样),要改猜 yf=K t e−aty_f = K\,t\,e^{-at};代进去 Ke−at−aKt e−at+aKt e−at=Xe−atK e^{-at} - aKt\,e^{-at} + aKt\,e^{-at} = X e^{-at},得 K=XK = X。

④ 解题步骤

  1. 化成标准形式 y′+a y=x(t)y' + a\,y = x(t),读出 aa 和 τ=1/a\tau = 1/a。
  2. 按输入的形状猜 forced response,代进方程定系数。
  3. 写出 complete response y=yf+A e−aty = y_f + A\,e^{-at}。
  4. 令 t=0t = 0,用 y(0)y(0) 求 AA。注意是代进完整的 yy。
  5. 检查:代回方程;再看 t=0t = 0 和 t→∞t \to \infty 两头对不对。

⑤ 例题

例题

例 1 RC 充电

上一节的 RC 电路,R=1R = 1 kΩ,C=1C = 1 µF,Vs=5V_s = 5 V,capacitor 原来没电:v(0)=0v(0) = 0。求 v(t)v(t),以及 v(1 ms)v(1\text{ ms})、v(3 ms)v(3\text{ ms})。

  1. 标准形式。方程是 v′+1RCv=VsRCv' + \frac{1}{RC}v = \frac{V_s}{RC}。RC=103×10−6=10−3RC = 10^3 \times 10^{-6} = 10^{-3} s,所以 a=1000 s−1a = 1000\ \text{s}^{-1},τ=1\tau = 1 ms。
  2. forced response。右边是常数 Vs/RCV_s/RC,K=Vs/RC1/RC=Vs=5K = \dfrac{V_s/RC}{1/RC} = V_s = 5 V。物理意义:充满以后电流为 0,电阻上没有压降,capacitor 电压等于电源电压。
  3. complete response:v=5+A e−t/τv = 5 + A\,e^{-t/\tau}。
  4. 初值:v(0)=5+A=0v(0) = 5 + A = 0,所以 A=−5A = -5:
v(t)=5(1−e−t/τ) V(t>0)v(t) = 5\big(1 - e^{-t/\tau}\big)\ \text{V}\quad (t \gt 0)

v(1 ms)=5(1−e−1)=3.16v(1\text{ ms}) = 5(1 - e^{-1}) = 3.16 V,v(3 ms)=5(1−e−3)=4.75v(3\text{ ms}) = 5(1 - e^{-3}) = 4.75 V。

检查。v′=5000 e−1000tv' = 5000\,e^{-1000t},v′+1000 v=5000 e−1000t+5000−5000 e−1000t=5000=Vs/RCv' + 1000\,v = 5000\,e^{-1000t} + 5000 - 5000\,e^{-1000t} = 5000 = V_s/RC ✓。v(0)=0v(0) = 0 ✓,v(∞)=5v(\infty) = 5 V ✓。

例题 · 先自己做

例 2 初值不是 0:capacitor 放电到一个新电压

capacitor 原来充到 8 V。t=0t = 0 时把它经过电阻接到一个 2 V 的电源上,RC=0.5RC = 0.5 s。求 v(t)v(t),以及过一个 τ\tau 时的电压。

看解答
  1. 标准形式。和例 1 同一个电路,Vs=2V_s = 2 V:v′+10.5v=20.5v' + \frac{1}{0.5}v = \frac{2}{0.5},即 v′+2v=4v' + 2v = 4。a=2a = 2,τ=0.5\tau = 0.5 s。
  2. 终值:v(∞)=X/a=4/2=2v(\infty) = X/a = 4/2 = 2 V(等于新电源的电压)。
  3. 代公式:v=2+(8−2) e−2t=2+6 e−2tv = 2 + (8 - 2)\,e^{-2t} = 2 + 6\,e^{-2t} V。
  4. t=τ=0.5t = \tau = 0.5 s:v=2+6e−1=4.21v = 2 + 6e^{-1} = 4.21 V,离终值的差距从 6 V 缩到 2.21 V(乘 0.368)。

检查。v′=−12 e−2tv' = -12\,e^{-2t},v′+2v=−12 e−2t+4+12 e−2t=4v' + 2v = -12\,e^{-2t} + 4 + 12\,e^{-2t} = 4 ✓,v(0)=8v(0) = 8 ✓。这次是从高往低走,公式一样适用。

例题

例 3 输入是衰减的指数

解 y′+3y=4e−ty' + 3y = 4e^{-t},y(0)=0y(0) = 0。

  1. 标准形式已经是了:a=3a = 3,τ=1/3\tau = 1/3。输入 4e−t4e^{-t}:X=4X = 4,b=1≠ab = 1 \ne a。
  2. forced response:猜 yf=Ke−ty_f = K e^{-t},代进去 −Ke−t+3Ke−t=4e−t-K e^{-t} + 3K e^{-t} = 4e^{-t},2K=42K = 4,K=2K = 2(就是 X/(a−b)=4/2X/(a - b) = 4/2)。
  3. complete response:y=2e−t+A e−3ty = 2e^{-t} + A\,e^{-3t}。
  4. 初值:y(0)=2+A=0y(0) = 2 + A = 0,A=−2A = -2:
y(t)=2(e−t−e−3t)(t>0)y(t) = 2\big(e^{-t} - e^{-3t}\big)\quad (t \gt 0)

检查。y′=−2e−t+6e−3ty' = -2e^{-t} + 6e^{-3t},y′+3y=(−2+6)e−t+(6−6)e−3t=4e−ty' + 3y = (-2 + 6)e^{-t} + (6 - 6)e^{-3t} = 4e^{-t} ✓,y(0)=0y(0) = 0 ✓。

形状。两项都衰减,所以 yy 从 0 升起、到顶以后回到 0。顶点在 y′=0y' = 0:e2t=3e^{2t} = 3,t=12ln⁡3≈0.549t = \tfrac12\ln 3 \approx 0.549,y≈0.770y \approx 0.770。时间长了衰减慢的 e−te^{-t} 占主导。

另一种写法:积分因子,以及和 convolution 的关系

标准形式两边乘 eate^{at},左边正好是一个导数:(eaty)′=eatx\big(e^{at}y\big)' = e^{at}x。从 0 积到 tt:eaty(t)−y(0)=∫0teaλx(λ) dλe^{at}y(t) - y(0) = \int_0^t e^{a\lambda}x(\lambda)\,d\lambda。整理得

y(t)=y(0) e−at+∫0te−a(t−λ) x(λ) dλy(t) = y(0)\,e^{-at} + \int_0^t e^{-a(t-\lambda)}\,x(\lambda)\,d\lambda

第一项只由初值决定(zero input response),第二项只由输入决定(zero state response),这就是 6·14 课上讲的第一种拆法。新的一点是:第二项正是 xx 和 h(t)=e−atu(t)h(t) = e^{-at}u(t) 的 convolution,所以一阶电路的 impulse response 是一个指数。拿例 3 试:y(0)=0y(0) = 0,第二项是 4e−tu∗e−3tu=4⋅e−t−e−3t3−1=2(e−t−e−3t)4e^{-t}u * e^{-3t}u = 4\cdot\dfrac{e^{-t} - e^{-3t}}{3 - 1} = 2(e^{-t} - e^{-3t}),和上面一样(两个指数的 convolution 公式见 C·08)。

常见错误
  • 用初值定 AA 时要代进完整的 y=yf+A e−aty = y_f + A\,e^{-at},不能直接令 A=y(0)A = y(0)。例 1 里 A=−5A = -5,不是 0。
  • 先把 y′y' 的系数化成 1 再读 aa:RC v′+v=VsRC\,v' + v = V_s 里 a=1/(RC)a = 1/(RC),不是 RCRC。
  • τ\tau 的单位是秒。kΩ × µF = ms,kΩ × nF = µs。
  • 输入的指数和 natural response 相同(b=ab = a)时,Ke−atK e^{-at} 猜不出来,要用 K t e−atK\,t\,e^{-at}。
练习 1 常数输入,初值为负

解 y′+5y=10y' + 5y = 10,y(0)=−1y(0) = -1。

提示

y(∞)=10/5y(\infty) = 10/5,τ=1/5\tau = 1/5。

y(∞)=2y(\infty) = 2,τ=0.2\tau = 0.2,代公式:y=2+(−1−2) e−5t=2−3e−5ty = 2 + (-1 - 2)\,e^{-5t} = 2 - 3e^{-5t}。检查:y′=15e−5ty' = 15e^{-5t},y′+5y=15e−5t+10−15e−5t=10y' + 5y = 15e^{-5t} + 10 - 15e^{-5t} = 10 ✓,y(0)=−1y(0) = -1 ✓。

练习 2 指数输入

解 y′+y=3e−2ty' + y = 3e^{-2t},y(0)=1y(0) = 1。

提示

猜 yf=Ke−2ty_f = K e^{-2t}。

代进去:−2K+K=3-2K + K = 3,K=−3K = -3。y=−3e−2t+A e−ty = -3e^{-2t} + A\,e^{-t},y(0)=−3+A=1y(0) = -3 + A = 1,A=4A = 4。所以 y=4e−t−3e−2ty = 4e^{-t} - 3e^{-2t}。检查:y′=−4e−t+6e−2ty' = -4e^{-t} + 6e^{-2t},y′+y=3e−2ty' + y = 3e^{-2t} ✓,y(0)=1y(0) = 1 ✓。