Laplace 变换:把初值和输入一起带进代数方程
上一章用变参数法把外力造成的运动写成了积分:一小段时间里的输入先产生一点响应,过去每一段输入留下的影响再累积起来。这个想法很贴近真实系统。弹簧现在处在什么位置,既取决于一开始怎样拉开、怎样松手,也取决于后来怎样推它。
不过,真正计算时,我们仍然得围着时间函数 y ( t ) y(t) y ( t ) 转:求导、找特解、积分,再安排初始条件。现在想换一个问法:能不能先把整条输入曲线和整条响应曲线各自换成另一种表达,使“求导”变成比较容易处理的代数运算?
Laplace 变换,也叫拉普拉斯变换,就是沿着这个想法设计的工具。它会把一个时间函数变成一个关于新变量 s s s 的函数。我们在新表达里解出答案,再回到时间里看物体究竟怎么运动。本章先把这条路走通;至于几秒后才打开的电源、短促的一次敲击,下一章再接进来。
为什么要把一条曲线变成另一条曲线
想象一个带阻尼的弹簧装置。我们从平衡位置量位移 y ( t ) y(t) y ( t ) ,外力为 g ( t ) g(t) g ( t ) ,在质量、阻尼和弹簧刚度保持不变的模型里,运动满足
m y ′ ′ + c y ′ + k y = g ( t ) , y ( 0 ) = y 0 , y ′ ( 0 ) = v 0 . my''+cy'+ky=g(t),\qquad y(0)=y_0,\qquad y'(0)=v_0. m y ′′ + c y ′ + k y = g ( t ) , y ( 0 ) = y 0 ,
这里 m > 0 m>0 m > 0 ,c ≥ 0 c\ge0 c ≥ 0 ,k > 0 k>0 k > 0 ;位移足够小,使弹簧力近似与位移成正比,阻尼力近似与速度成正比。左边每一项都是力,右边也是力,方程说的是受力与运动之间的关系。
如果外力始终是正弦波,我们已经会解。可同一个装置可能先不受力,过一会儿受到恒力,再过一会儿又撤去。方程的左边没有变,输入却换了好几种写法。我们希望保留系统不变的部分,把变化多端的输入交给统一的运算来处理。
先不要急着看变换公式。可以把目标理解成:给每条曲线做一组“带权累积记录”。记录时,每个时刻的函数值都参与,但离起点越远,通常给越小的权重。换一套权重,再记一次;把所有这些记录放在一起,就得到新的函数。
这里的“所有”很关键。只记录一个总面积,当然分不清两条不同曲线;Laplace 变换会让权重随着参数 s s s 连续变化,保留的是整个 F ( s ) F(s) F ( s ) ,而不是一个数。满足适当条件时,这组记录足够让我们恢复原来的连续函数。
指数权重怎样累积一条曲线
从 t = 0 t=0 t = 0 开始观察一个函数 f ( t ) f(t) f ( t ) 。本章采用单边 Laplace 变换:
F ( s ) = L { f ( t ) } ( s ) = ∫ 0 ∞ e − s t f ( t ) d t . F(s)=\mathcal L\{f(t)\}(s)=\int_0^\infty e^{-st}f(t)\,dt. F ( s ) = L { f ( t )} ( s ) = ∫ 0 ∞ e
积分变量是 t t t ,s s s 在每一次积分里固定不动。比如选定 s = 2 s=2 s = 2 ,就把整条曲线乘上 e − 2 t e^{-2t} e − 2 t 再积分,得到一个数 F ( 2 ) F(2) F ( 2 ) ;另选 ,得到另一个数 。让 变化,这些数才排成新函数 。
当 s > 0 s>0 s > 0 时,e − s t e^{-st} e − s t 会衰减。较大的 s s s 更强调开始附近的变化;较小的正 s s s 让较晚的变化保留更多分量。如果 f f f 有正有负,积分记录的是带符号的累积量,正负贡献可能抵消,不能一概把它叫作几何面积。
权重先与函数相乘,再对整条时间半轴积分。一个 s s s 对应一次累积记录。
这也解释了单位。若 t t t 用秒计,指数 s t st s t 必须没有单位,因此 s s s 的单位是每秒。若 f f f 表示牛顿,那么 F F F 的单位是牛顿·秒。F ( s ) F(s) F ( s ) 并不是某一时刻的力,s s s 也不是重新命名的时间。它衡量我们用多快的指数权重来观察整段过程。
无穷上限不是直接代入无穷大
定义里的积分是一个极限:
F ( s ) = lim R → ∞ ∫ 0 R e − s t f ( t ) d t . F(s)=\lim_{R\to\infty}\int_0^R e^{-st}f(t)\,dt. F ( s ) = R → ∞ lim ∫ 0 R e
先累积到有限时刻 R R R ,再问 R R R 不断增大时结果能否趋于有限值。若能,变换在这个 s s s 上存在;若不能,就不能把计算出来的代数式当成该处的变换值。
先用最简单的恒定信号 f ( t ) = 1 f(t)=1 f ( t ) = 1 试试看。对 s ≠ 0 s\ne0 s = 0 ,
∫ 0 R e − s t d t = 1 − e − s R s . \int_0^R e^{-st}\,dt=\frac{1-e^{-sR}}{s}. ∫ 0 R e − s t d t = s
当 s > 0 s>0 s > 0 ,e − s R → 0 e^{-sR}\to0 e − s R → 0 ,所以
L { 1 } ( s ) = 1 s , s > 0. \mathcal L\{1\}(s)=\frac1s,\qquad s>0. L { 1 } ( s ) = s 1 , s > 0.
当 s = 0 s=0 s = 0 ,累积量等于 R R R ,会无限增加;当 s < 0 s<0 s < 0 ,权重反而指数增长,积分也发散。于是 1 / s 1/s 1/ s 虽然在 s = − 1 s=-1 s = − 1 处能算出 − ,这个 却不是原积分的值。
什么样的函数能被权重压住
我们常用的一组充分条件是:f f f 在每个有限区间上分段连续,并且存在常数 M > 0 M>0 M > 0 、a a a 、T ≥ 0 T\ge0 T ≥ 0 ,使得
∣ f ( t ) ∣ ≤ M e a t , t ≥ T . |f(t)|\le Me^{at},\qquad t\ge T. ∣ f ( t ) ∣ ≤ M e a t , t ≥ T .
分段连续允许有限时间内有有限次有限跳跃,只要跳跃两侧的极限存在;它保证有限时间里的积分可以处理。后一个条件称为指数阶条件,保证遥远未来的增长有一个指数上界。
为什么 s > a s>a s > a 就够了?在 t ≥ T t\ge T t ≥ T 的部分,
∣ e − s t f ( t ) ∣ ≤ M e − ( s − a ) t , |e^{-st}f(t)|\le Me^{-(s-a)t}, ∣ e − s t f ( t ) ∣ ≤ M e − ( s − a ) t ,
所以
∫ T ∞ ∣ e − s t f ( t ) ∣ d t ≤ M e − ( s − a ) T s − a < ∞ . \int_T^\infty |e^{-st}f(t)|\,dt
\le\frac{M e^{-(s-a)T}}{s-a}<\infty. ∫ T ∞ ∣ e − s t f ( t ) ∣ d t ≤
前面有限的一段已经可积,后面的尾巴也压住了,整个积分便绝对收敛。这个推理只保证 s > a s>a s > a ,边界 s = a s=a s = a 要另算。而且指数上界未必取得最紧:一个实际上在 s > − 2 s>-2 s > − 2 就收敛的函数,也可能被我们用较粗的估计只证明在 s > 1 s>1 s > 1 收敛。
我们还可以把尾积分的估计当成计算误差的估计。如果只积分到较大的时刻 R ≥ T R\ge T R ≥ T ,那么忽略后面时间造成的误差至多是 M e − ( s − a ) R / ( s − a ) M e^{-(s-a)R}/(s-a) M e − ( s − a ) R / ( s − a ) 。这说明交互图中截取有限时间并不等于真正的无穷积分;只有尾部估计足够小,有限窗口才近似可靠。当 s s s 很接近收敛边界时,净衰减速度 很小,需要观察更长时间,图上暂时“看起来平稳”不能代替收敛证明。
多项式、指数函数、正弦余弦及它们的有限和与有限乘积,都能找到这样的上界。多项式 t n t^n t n 虽然不有界,但增长比任意固定的正指数 e ε t e^{\varepsilon t} e εt 慢。反过来,e t 2 e^{t^2} e t 2 增长太快:对任意实数 s s ,指数 在充分大的 上至少是 ,所以它的 Laplace 积分发散。
还要留意起点。如果 f ( t ) = 1 / t f(t)=1/t f ( t ) = 1/ t ,即使远处增长很慢,原点附近的积分也发散。判断是否存在,不能只盯着无穷远。上述条件是方便检查的充分条件,不是所有可变换函数必须满足的条件。
本章计算以实数 s s s 为主。若进一步允许 s s s 为复数,指数权重的大小由 Re s \operatorname{Re}s Re s 决定,常见收敛范围就成为 Re s > a \operatorname{Re}s>a Re s > a 这样的右半平面。后面用复数根描述振荡时会借用这幅几何图景,但求变换的基本积分不需要先学复变函数。
基本变换从哪里来
我们需要一小组能亲手推出来的变换,再用它们组合复杂输入。这样逆变换时也知道是在认什么形状,而不是对着分母猜答案。
指数信号:增长速度移动了收敛边界
若输入随时间按 e a t e^{at} e a t 变化,那么
L { e a t } ( s ) = ∫ 0 ∞ e − ( s − a ) t d t = 1 s − a , s > a . \mathcal L\{e^{at}\}(s)
=\int_0^\infty e^{-(s-a)t}\,dt
=\frac1{s-a},\qquad s>a. L { e a t } ( s ) = ∫ 0 ∞ e
这个结果几乎就是刚算过的常数变换,只不过原来的衰减速度 s s s 被输入自身的增长抵消了一部分,净衰减速度变成 s − a s-a s − a 。例如衰减信号 e − 3 t e^{-3t} e − 3 t 的变换是 1 / ( s + 3 ) 1/(s+3) 1/ ( s + 3 ) ,收敛范围为 s ; 在这里可以取负,只要乘起来的总效果仍然衰减。
逐渐增加的信号:每多一个 t,多一次分部积分
假设一项输入从零开始匀速增加,其数学形状是 t t t 。当 s > 0 s>0 s > 0 ,分部积分给出
∫ 0 ∞ t e − s t d t = [ − t e − s t s ] 0 ∞ + 1 s ∫ 0 ∞ e − s t d t = 1 s 2 . \int_0^\infty t e^{-st}\,dt
=\left[-\frac{t e^{-st}}s\right]_0^\infty
+\frac1s\int_0^\infty e^{-st}\,dt
=\frac1{s^2}. ∫ 0 ∞ t e − s t d t =
边界项消失的原因是 t e − s t → 0 t e^{-st}\to0 t e − s t → 0 ,指数衰减最终压过线性增长。对非负整数 n n n 记 I n = L { t n } I_n=\mathcal L\{t^n\} I n = L { ,同样计算可得
I n = n s I n − 1 ( n ≥ 1 ) , I 0 = 1 s . I_n=\frac ns I_{n-1}\quad(n\ge1),\qquad I_0=\frac1s. I n = s n I n − 1
沿着递推式往回走,便得到
L { t n } ( s ) = n ! s n + 1 , s > 0. \mathcal L\{t^n\}(s)=\frac{n!}{s^{n+1}},\qquad s>0. L { t n } ( s ) = s n + 1 n ! ,
例如 t 2 t^2 t 2 对应 2 / s 3 2/s^3 2/ s 3 ,而不是 1 / s 3 1/s^3 1/ s 3 ;那个阶乘记录着每次求导掉下来的系数。以后看到三重一次因子的分母,会从这里认出二次多项式的时间因子。
周期信号:两个积分互相帮忙
一台装置周期性地受到推拉,输入里就可能有 sin ( ω t ) \sin(\omega t) sin ( ω t ) 或 cos ( ω t ) \cos(\omega t) cos ( ω t ) 。取 ω > 0 \omega>0 ω > 0 ,分别记它们的变换为 S ( s ) S(s) S ( s ) 、C ( s ) C(s) C 。在 时,分部积分得到
S ( s ) = ω s C ( s ) , C ( s ) = 1 s − ω s S ( s ) . S(s)=\frac\omega s C(s),\qquad
C(s)=\frac1s-\frac\omega s S(s). S ( s ) = s ω C ( s ) , C ( s ) =
第一个式子里正弦在 t = 0 t=0 t = 0 为零,所以没有起点贡献;第二个式子里余弦在 t = 0 t=0 t = 0 为一,留下了 1 / s 1/s 1/ s 。把两个式子当成关于 S , C S,C S , C 的联立代数方程解,就有
L { sin ( ω t ) } ( s ) = ω s 2 + ω 2 , L { cos ( ω t ) } ( s ) = s s 2 + ω 2 , s > 0. \mathcal L\{\sin(\omega t)\}(s)=\frac\omega{s^2+\omega^2},
\qquad
\mathcal L\{\cos(\omega t)\}(s)=\frac s{s^2+\omega^2},
\qquad s>0. L { sin ( ω t )} ( s ) = s 2 + ω
两种周期函数的分母相同,分子却不同。正弦前面是频率 ω \omega ω ,余弦前面是变换变量 s s s 。逆变换时丢掉正弦的频率系数,是很容易发生的一处错误。
这张表的每一行都能回到刚才的积分推导。先掌握这几块积木,常系数初值问题里相当多的答案就能认出来。
三角函数还有一个值得停下来辨认的边界:它们本身始终有界,可是在 s = 0 s=0 s = 0 时,积分未必收敛。以余弦为例,积分到 R R R 得到 sin ( ω R ) / ω \sin(\omega R)/\omega sin ( ω R ) / ω ,它随着 R R R 振荡,没有固定极限。“原函数不会变得无限大”与“从零到无穷的累积量会趋于一个数”并不等价。指数权重的作用,正是让越来越远处的振荡贡献逐渐变小。
把基本形状组合起来
线性性保留了输入叠加
如果一个外力是两种信号之和,我们希望分别处理再相加。积分恰好允许这样做:在两个积分共同收敛的范围内,
L { α f + β g } = α L { f } + β L { g } = α F ( s ) + β G ( s ) . \mathcal L\{\alpha f+\beta g\}
=\alpha\mathcal L\{f\}+\beta\mathcal L\{g\}
=\alpha F(s)+\beta G(s). L { α f + β g } = α L { f } + β L { g } = α F ( s )
其中 α , β \alpha,\beta α , β 是常数。它们可以移出积分,但依赖时间的函数不能随意移出去。比如 L { t f ( t ) } \mathcal L\{t f(t)\} L { t f ( t )} 一般不等于 t F ( s ) tF(s) tF ( s ) ,也不等于 L { t } F ( s ) \mathcal L\{t\}F(s) L { t } F ( s ) 。线性性处理加法和常数倍,并不自动处理乘法。
例如,逐渐增强的输入叠加一项周期扰动,写成 f ( t ) = 2 t 2 − 3 cos ( 4 t ) f(t)=2t^2-3\cos(4t) f ( t ) = 2 t 2 − 3 cos ( 4 t ) 。逐项变换可得
F ( s ) = 4 s 3 − 3 s s 2 + 16 , s > 0. F(s)=\frac4{s^3}-\frac{3s}{s^2+16},\qquad s>0. F ( s ) = s 3 4 − s
两项都在 s > 0 s>0 s > 0 收敛,因而相加合法。若组合的是 e 2 t e^{2t} e 2 t 与 e − 3 t e^{-3t} e − 3 t ,则安全的共同范围是 s > 2 s>2 s > 。函数相减后偶尔会发生抵消,让实际范围扩大,但不能因为希望抵消,就先把两个各自发散的积分硬拆开。
分段输入也能从定义开始
一台加料设备开始两分钟保持单位速率,随后停止。先不引入新的开关符号,我们直接把输入描述为 0 ≤ t < 2 0\le t<2 0 ≤ t < 2 时 f ( t ) = 1 f(t)=1 f ( t ) = 1 ,t ≥ 2 t\ge2 t ≥ 2 时 f ( t ) = 0 f(t)=0 f ( t 。定义积分会自动按时间段拆开:
F ( s ) = ∫ 0 2 e − s t d t + ∫ 2 ∞ e − s t ⋅ 0 d t = 1 − e − 2 s s , s ≠ 0. F(s)=\int_0^2 e^{-st}\,dt+\int_2^\infty e^{-st}\cdot0\,dt
=\frac{1-e^{-2s}}s,\qquad s\ne0. F ( s ) = ∫ 0 2 e − s t
这里没有无穷远的尾巴,因为两分钟后输入为零,所以任何实数 s s s 都允许。s = 0 s=0 s = 0 要回到有限积分计算,得到 F ( 0 ) = 2 F(0)=2 F ( 0 ) = 2 。有理与指数混合的表达式在零点看起来是 0 / 0 0/0 0/0 ,其实只是可去的缺口,其极限也等于 2 2 2 。这与常数信号 1 1 的变换 在零点真正发散形成了一个具体区别。
这个例子同时提醒我们:在分段连续的假设下,有有限跳跃不会妨碍变换;一个只持续有限时间的有界输入,甚至不需要正的 s s s 来压住远处增长。下一章会把“开始”和“停止”组织成更简洁的函数写法,届时不用每次重新分段积分。
乘上指数,相当于整体移动 s
阻尼振动的形状是周期函数乘上衰减指数。我们无需重新算一遍三角积分,因为
L { e a t f ( t ) } ( s ) = ∫ 0 ∞ e − ( s − a ) t f ( t ) d t = F ( s − a ) . \mathcal L\{e^{at}f(t)\}(s)
=\int_0^\infty e^{-(s-a)t}f(t)\,dt
=F(s-a). L { e a t f ( t )} ( s ) = ∫ 0 ∞
若原来的变换在 s > σ 0 s>\sigma_0 s > σ 0 收敛,新变换便在 s > σ 0 + a s>\sigma_0+a s > σ 0 + a 收敛。这里的动作是把 F F 表达式中每一个 都换成 。
例如一个振幅按 e − 2 t e^{-2t} e − 2 t 缩小的周期输入 f ( t ) = e − 2 t cos ( 3 t ) f(t)=e^{-2t}\cos(3t) f ( t ) = e − 2 t cos ( 3 t ) ,从余弦变换出发,把 s s s 换成 ,得到
L { e − 2 t cos ( 3 t ) } ( s ) = s + 2 ( s + 2 ) 2 + 9 , s > − 2. \mathcal L\{e^{-2t}\cos(3t)\}(s)
=\frac{s+2}{(s+2)^2+9},\qquad s>-2. L { e − 2 t cos ( 3 t )} ( s ) = ( s + 2 )
分子也要一起移动。如果分母用了 ( s + 2 ) 2 + 9 (s+2)^2+9 ( s + 2 ) 2 + 9 ,分子却留着 s s s ,那已经是另一个函数的变换了。这条规则处理的是时间函数乘上指数;“过两秒才开始”是时间延迟,下一章会单独推导,不能混用。
逆变换:把代数式整理成认得的形状
给出 F ( s ) F(s) F ( s ) ,找回满足 L { f } = F \mathcal L\{f\}=F L { f } = F 的时间函数,这个动作记作
f ( t ) = L − 1 { F ( s ) } ( t ) . f(t)=\mathcal L^{-1}\{F(s)\}(t). f ( t ) = L − 1 { F ( s )} ( t ) .
它不是通常的反函数,不能把 F ( s ) F(s) F ( s ) 与 t t t 交换后解 s s s 。我们找的是一整条经过积分变换会产生 F F F 的曲线。
这里有一个细节:积分看不见孤立点上取值的修改。因此对分段连续函数,逆变换通常确定其连续点处的值;如果限制在连续、指数阶函数这一类中,就能谈逐点的唯一性。下一章讨论跳跃输入时,某个跳跃时刻究竟取左值还是右值,不会改变它的变换。
分母能拆开时,用部分分式拆开运动
先求
F ( s ) = 4 s + 7 ( s + 1 ) ( s + 3 ) F(s)=\frac{4s+7}{(s+1)(s+3)} F ( s ) = ( s + 1 ) ( s + 3 ) 4 s + 7
的逆变换。分母里有两个不同的一次因子,猜测所需的结构为
4 s + 7 ( s + 1 ) ( s + 3 ) = A s + 1 + B s + 3 . \frac{4s+7}{(s+1)(s+3)}
=\frac A{s+1}+\frac B{s+3}. ( s + 1 ) ( s + 3 ) 4 s + 7 = s +
通分后比较分子,得到对所有 s s s 成立的多项式恒等式
4 s + 7 = A ( s + 3 ) + B ( s + 1 ) . 4s+7=A(s+3)+B(s+1). 4 s + 7 = A ( s + 3 ) + B ( s + 1 ) .
令 s = − 1 s=-1 s = − 1 ,右边只剩 2 A 2A 2 A ,所以 A = 3 / 2 A=3/2 A = 3/2 ;令 s = − 3 s=-3 s = − 3 ,得到 − 5 = − 2 B -5=-2B − 5 ,所以 。于是
f ( t ) = 3 2 e − t + 5 2 e − 3 t . f(t)=\frac32e^{-t}+\frac52e^{-3t}. f ( t ) = 2 3 e − t + 2
这里代入 s = − 1 , − 3 s=-1,-3 s = − 1 , − 3 是求多项式恒等式里的系数,并不是声称原 Laplace 积分在这些点存在。变换与代数恒等式的使用范围要分清。
重复因子不能只留最高次一项
如果分母含有 ( s + 2 ) 2 (s+2)^2 ( s + 2 ) 2 ,一般需要同时考虑 1 / ( s + 2 ) 1/(s+2) 1/ ( s + 2 ) 和 1 / ( s + 2 ) 2 1/(s+2)^2 1/ ( s + 2 ) 。例如
F ( s ) = 2 s + 7 ( s + 2 ) 2 = 2 ( s + 2 ) + 3 ( s + 2 ) 2 = 2 s + 2 + 3 ( s + 2 ) 2 . F(s)=\frac{2s+7}{(s+2)^2}
=\frac{2(s+2)+3}{(s+2)^2}
=\frac2{s+2}+\frac3{(s+2)^2}. F ( s ) = ( s + 2 ) 2 2 s
结合 L { t } = 1 / s 2 \mathcal L\{t\}=1/s^2 L { t } = 1/ s 2 与指数位移,得到
f ( t ) = 2 e − 2 t + 3 t e − 2 t . f(t)=2e^{-2t}+3te^{-2t}. f ( t ) = 2 e − 2 t + 3 t e − 2 t .
二重因子带出了 t e − 2 t t e^{-2t} t e − 2 t ,这与我们解特征方程重根时看到的形状吻合。更一般地,
L − 1 { 1 ( s − a ) j } = t j − 1 ( j − 1 ) ! e a t , j = 1 , 2 , … . \mathcal L^{-1}\left\{\frac1{(s-a)^j}\right\}
=\frac{t^{j-1}}{(j-1)!}e^{at},\qquad j=1,2,\ldots. L − 1 { ( s − a ) j
若一个分母含有三重一次因子,部分分式中要给一、二、三次幂各留一个位置;相应系数可能算成零,但不能提前假定它们都为零。
不可约二次因子先配方,分子跟着重排
现在看
F ( s ) = 2 s + 9 s 2 + 6 s + 13 . F(s)=\frac{2s+9}{s^2+6s+13}. F ( s ) = s 2 + 6 s + 13 2 s + 9 .
分母配方为 ( s + 3 ) 2 + 4 (s+3)^2+4 ( s + 3 ) 2 + 4 ,暗示时间里有 e − 3 t e^{-3t} e − 3 t 和频率 2 2 2 。为了识别余弦项,要把分子也写成 s + 3 s+3 的形式:
2 s + 9 = 2 ( s + 3 ) + 3. 2s+9=2(s+3)+3. 2 s + 9 = 2 ( s + 3 ) + 3.
于是
F ( s ) = 2 s + 3 ( s + 3 ) 2 + 2 2 + 3 2 2 ( s + 3 ) 2 + 2 2 , F(s)=2\frac{s+3}{(s+3)^2+2^2}
+\frac32\frac2{(s+3)^2+2^2}, F ( s ) = 2 ( s + 3 ) 2 + 2 2
因此
f ( t ) = e − 3 t ( 2 cos ( 2 t ) + 3 2 sin ( 2 t ) ) . f(t)=e^{-3t}\left(2\cos(2t)+\frac32\sin(2t)\right). f ( t ) = e − 3 t ( 2 cos ( 2 t ) + 2 3
频率系数在这里明确地补回来了:分子为 3 3 3 ,而表中正弦对应分子 2 2 2 ,所以振幅系数是 3 / 2 3/2 3/2 。
更一般地,对不可约二次因子的部分分式,分子需要保留一次多项式 B s + C Bs+C B s + C 。如果只写常数,就会把可能的余弦分量漏掉。本章常见的 Y ( s ) Y(s) Y ( s ) 都是真分式,也就是约去公共因子后分子次数小于分母次数。如果算出了不衰减的多项式部分,应先检查导数公式和代数运算;普通连续、指数阶函数的变换在实数 s → + ∞ s\to+\infty s → + ∞ 时趋于零,不能把多项式部分随意当成普通时间函数。
求导为什么会变成乘 s,又为什么留下初值
现在工具已经够用了,真正让微分方程变成代数方程的那一步还没出现。我们直接从积分里把它算出来。
设 y y y 在 [ 0 , ∞ ) [0,\infty) [ 0 , ∞ ) 上连续,y ′ y' y ′ 分段连续,且 y y y 为指数阶函数。先在有限区间上分部积分:
∫ 0 R e − s t y ′ ( t ) d t = [ e − s t y ( t ) ] 0 R + s ∫ 0 R e − s t y ( t ) d t . \int_0^R e^{-st}y'(t)\,dt
=\left[e^{-st}y(t)\right]_0^R
+s\int_0^R e^{-st}y(t)\,dt. ∫ 0 R e − s t y
如果 y ′ y' y ′ 只有有限次跳跃,就分段计算再相加。因为 y y y 连续,相邻区间的内部边界项会抵消,最后仍只剩起点和终点。
把边界项展开,是
e − s R y ( R ) − y ( 0 ) . e^{-sR}y(R)-y(0). e − s R y ( R ) − y ( 0 ) .
取足够大的实数 s s s ,指数阶条件保证第一项趋于零。若记 Y ( s ) = L { y ( t ) } ( s ) Y(s)=\mathcal L\{y(t)\}(s) Y ( s ) = L { y ( t )} ( s ) ,令 R → ∞ R\to\infty R → ∞ 就得到
L { y ′ } ( s ) = s Y ( s ) − y ( 0 ) . \mathcal L\{y'\}(s)=sY(s)-y(0). L { y ′ } ( s ) = s Y ( s ) − y ( 0 ) .
原来初值项并不是人为附加的规则。它就是分部积分下端留下的边界项。我们从 0 0 0 开始记录运动,变换自然就记住了系统在起点的位置。
若进一步假设 y , y ′ y,y' y , y ′ 都连续且为指数阶函数,y ′ ′ y'' y ′′ 分段连续,就可以再把同一条公式用在 y ′ y' y ′ 身上:
L { y ′ ′ } = s L { y ′ } − y ′ ( 0 ) = s ( s Y − y ( 0 ) ) − y ′ ( 0 ) . \mathcal L\{y''\}
=s\mathcal L\{y'\}-y'(0)
=s\bigl(sY-y(0)\bigr)-y'(0). L { y ′′ } = s L { y ′ } −
因此
L { y ′ ′ } = s 2 Y − s y ( 0 ) − y ′ ( 0 ) . \mathcal L\{y''\}=s^2Y-sy(0)-y'(0). L { y ′′ } = s 2 Y − sy ( 0 ) − y
这次既记住初始位置,也记住初始速度。还可以通过单位检查两个边界项:若 y y y 是长度,Y Y Y 是长度乘时间,那么 s 2 Y s^2Y s 2 Y 、s y ( 0 ) sy(0) sy ( 0 ) 与 y ′ ( 0 ) y'(0) y 都是长度除以时间,正好与加速度的变换单位一致。写错 的次数,有时还没做到逆变换,就能被这种检查发现。
更高阶导数在相应的连续性与增长条件下依次得到
L { y ( n ) } = s n Y − s n − 1 y ( 0 ) − s n − 2 y ′ ( 0 ) − ⋯ − y ( n − 1 ) ( 0 ) . \mathcal L\{y^{(n)}\}
=s^nY-s^{n-1}y(0)-s^{n-2}y'(0)-\cdots-y^{(n-1)}(0). L { y ( n ) } = s n Y − s
不要只背“求导等于乘 s s s ”。只有相关初值全为零,边界项才全部消失。比如 y ( t ) = 1 y(t)=1 y ( t ) = 1 的导数是零,而公式给出 s ( 1 / s ) − 1 = 0 s(1/s)-1=0 s ( 1/ s ) − 1 = 0 ,正好相符;若漏掉 − 1 -1 − 1 ,连常数的导数都会算错。
本章的普通导数公式要求被求导的函数连续。若函数本身发生跳跃,分段积分时内部边界项不再完全抵消,不能原封不动地套用。跳跃与理想冲击的关系将在下一章处理。初值若给在 t = t 0 t=t_0 t = t 0 ,可以先令 τ = t − t 0 \tau=t-t_0 τ = t − t ,把观察起点移到 ,再连同输入一起改写。
从变换到解:把一次完整计算走完
一阶响应:恒定流入与按比例流出
设一个简化的存量系统持续以 6 6 6 单位/分钟流入,流出速度是当前存量的 3 3 3 倍/分钟,初始存量为 1 1 1 单位。用 y y y 表示存量,t t t 用分钟计,模型是
y ′ + 3 y = 6 , y ( 0 ) = 1. y'+3y=6,\qquad y(0)=1. y ′ + 3 y = 6 , y ( 0 ) = 1.
它讲的是“存量的变化等于流入减流出”。系数 3 3 3 的单位是每分钟,不能把存量与流出速度直接当成同一量。
令 Y = L { y } Y=\mathcal L\{y\} Y = L { y } ,变换后有
s Y − 1 + 3 Y = 6 s . sY-1+3Y=\frac6s. s Y − 1 + 3 Y = s 6 .
此时未知的是 Y Y Y ,整个方程已没有对未知函数的求导。把它解出来:
Y = s + 6 s ( s + 3 ) = 2 s − 1 s + 3 . Y=\frac{s+6}{s(s+3)}
=\frac2s-\frac1{s+3}. Y = s ( s + 3 ) s + 6 = s
逐项逆变换,得到
y ( t ) = 2 − e − 3 t , t ≥ 0. y(t)=2-e^{-3t},\qquad t\ge0. y ( t ) = 2 − e − 3 t , t ≥ 0.
检验时既要看起点,也要看全过程。y ( 0 ) = 1 y(0)=1 y ( 0 ) = 1 ;y ′ = 3 e − 3 t y'=3e^{-3t} y ′ = 3 e − 3 t ,所以 y ′ + 3 y = 3 e − 3 t + 6 − 3 。长期存量趋于 ,恰好是流出速度 与流入速度 平衡的位置。
用积分因子解这道题也很短。选择它,是为了让我们看清新方法的每一步:初值在第一次变换时进入,求出 Y Y Y 后就直接回到满足该初值的那条曲线。
这也说明方法有自己的适用范围。本章重点是线性常系数方程,因为常数可以直接移到积分之外,导数项才能整齐地合并成一个关于 s s s 的多项式。如果方程里有 t y t y t y 或 y 2 y^2 y 2 ,它们的变换不会直接变成 s Y sY s Y 或 Y 2 Y^2 Y 2 ,原来的代数化流程就需要新的规则。遇到变系数或非线性问题,先前的分离变量、积分因子、变参数和数值方法仍然各有用途。选方法时先观察方程结构,不必因为刚学了新工具,就要求所有问题都绕同一条路。
二阶响应:恒力推着有阻尼的弹簧
现在看一个更完整的例子。取质量 m = 1 k g m=1\,\mathrm{kg} m = 1 kg 、阻尼系数 c = 4 N ⋅ s / m c=4\,\mathrm{N\cdot s/m} c = 4 N ⋅ s/m 、弹簧刚度 k = 5 N / m k=5\,\mathrm{N/m} k = 5 N/m ,从 起施加 恒力。位移从无外力时的平衡点算起,初始位移为 ,初始速度为零。采用秒和米作为单位,方程的数值形式为
y ′ ′ + 4 y ′ + 5 y = 10 , y ( 0 ) = 1 , y ′ ( 0 ) = 0. y''+4y'+5y=10,\qquad y(0)=1,\qquad y'(0)=0. y ′′ + 4 y ′ + 5 y = 10 , y ( 0 )
恒力把新的静止平衡位置移到 y = 10 / 5 = 2 y=10/5=2 y = 10/5 = 2 。由于物体从 1 1 1 处静止出发,我们预计它会向 2 2 2 移动;阻尼会逐渐消耗运动能量。先保留这个物理预期,再看计算是否吻合。
把两条导数公式完整写进去:
( s 2 Y − s ) + 4 ( s Y − 1 ) + 5 Y = 10 s . (s^2Y-s)+4(sY-1)+5Y=\frac{10}s. ( s 2 Y − s ) + 4 ( s Y − 1 ) + 5 Y = s
收集 Y Y Y ,其余项移到右边:
( s 2 + 4 s + 5 ) Y = s + 4 + 10 s . (s^2+4s+5)Y=s+4+\frac{10}s. ( s 2 + 4 s + 5 ) Y = s + 4 + s 10
因此
Y ( s ) = s 2 + 4 s + 10 s ( s 2 + 4 s + 5 ) . Y(s)=\frac{s^2+4s+10}{s(s^2+4s+5)}. Y ( s ) = s ( s 2 + 4 s + 5 ) s 2
分母含有一个一次因子和一个不可约二次因子。直接设
Y = A s + B s + C s 2 + 4 s + 5 . Y=\frac A s+\frac{Bs+C}{s^2+4s+5}. Y = s A + s 2 + 4 s + 5
通分比较分子:
s 2 + 4 s + 10 = A ( s 2 + 4 s + 5 ) + s ( B s + C ) . s^2+4s+10=A(s^2+4s+5)+s(Bs+C). s 2 + 4 s + 10 = A ( s 2 + 4 s + 5 )
常数项给出 5 A = 10 5A=10 5 A = 10 ,所以 A = 2 A=2 A = 2 ;二次项给出 A + B = 1 A+B=1 A + B = 1 ,所以 B = − 1 B=-1 B = − 1 ;一次项给出 ,所以 。于是
Y = 2 s − s + 4 ( s + 2 ) 2 + 1 = 2 s − s + 2 ( s + 2 ) 2 + 1 − 2 ( s + 2 ) 2 + 1 . Y=\frac2s-\frac{s+4}{(s+2)^2+1}
=\frac2s-\frac{s+2}{(s+2)^2+1}-\frac2{(s+2)^2+1}. Y = s 2 − ( s +
逆变换得到
y ( t ) = 2 − e − 2 t cos t − 2 e − 2 t sin t . y(t)=2-e^{-2t}\cos t-2e^{-2t}\sin t. y ( t ) = 2 − e − 2 t cos t − 2 e − 2 t sin t
这个答案已经显出预期的形状:围绕新平衡位置 2 2 2 做振幅衰减的振动。但符合直觉还不够,我们把两条初值和原方程全查一遍。
先代入 t = 0 t=0 t = 0 ,得到 y ( 0 ) = 2 − 1 = 1 y(0)=2-1=1 y ( 0 ) = 2 − 1 = 1 。再求导,乘积法则中的两个余弦项抵消,留下
y ′ ( t ) = 5 e − 2 t sin t , y'(t)=5e^{-2t}\sin t, y ′ ( t ) = 5 e − 2 t sin t ,
所以 y ′ ( 0 ) = 0 y'(0)=0 y ′ ( 0 ) = 0 。继续求导:
y ′ ′ ( t ) = 5 e − 2 t cos t − 10 e − 2 t sin t . y''(t)=5e^{-2t}\cos t-10e^{-2t}\sin t. y ′′ ( t ) = 5 e − 2 t cos t − 10 e −
代回方程左边,余弦项的系数是 5 − 5 = 0 5-5=0 5 − 5 = 0 ,正弦项的系数是 − 10 + 20 − 10 = 0 -10+20-10=0 − 10 + 20 − 10 = 0 ,最后只剩 5 × 2 = 10 5\times2=10 5 × 2 = 10 。原方程成立,两个初值也成立。
还可以再检查起点加速度:y ′ ′ ( 0 ) = 5 y''(0)=5 y ′′ ( 0 ) = 5 。这与受力计算相符,初始弹簧恢复力是 5 N 5\,\mathrm N 5 N ,阻尼力为零,合力是 10 − 5 = 5 N 10-5=5\,\mathrm N 10 − 5 = 5 N ,除以质量得到 。代数计算、初值和模型含义在这里对上了。
重根输入:为什么时间里会多出 t
考虑一个从零状态开始、受到衰减输入的系统:
y ′ ′ + 4 y ′ + 4 y = 4 e − 2 t , y ( 0 ) = 0 , y ′ ( 0 ) = 0. y''+4y'+4y=4e^{-2t},\qquad y(0)=0,\qquad y'(0)=0. y ′′ + 4 y ′ + 4 y = 4 e
左边的自由运动含有 e − 2 t e^{-2t} e − 2 t ,右边恰好也是这个衰减速率。过去用待定系数法,需要判断试探解该乘多少次 t t t 。现在直接变换:
( s + 2 ) 2 Y = 4 s + 2 , Y = 4 ( s + 2 ) 3 . (s+2)^2Y=\frac4{s+2},\qquad
Y=\frac4{(s+2)^3}. ( s + 2 ) 2 Y = s + 2 4 , Y
三重因子立即告诉我们
y ( t ) = 2 t 2 e − 2 t . y(t)=2t^2e^{-2t}. y ( t ) = 2 t 2 e − 2 t .
用 y = e − 2 t v y=e^{-2t}v y = e − 2 t v 复核尤其方便,因为 ( D + 2 ) 2 y = e − 2 t v ′ ′ (D+2)^2y=e^{-2t}v'' ( D + 2 ) 2 y = e 。这里 , ,所以左边确实是 。又有 、 。重复因子的次数,把“输入与自由运动发生重复”这件事直接记录在了分母里。
初值在变换导数时进入代数方程。求出 Y(s) 后反变换回 y(t),仍要同时核对初值与原微分方程。
同一个分母怎样连接系统与长期行为
回到一般的弹簧阻尼模型,设 G ( s ) = L { g } ( s ) G(s)=\mathcal L\{g\}(s) G ( s ) = L { g } ( s ) 。把初始位置和初始速度都保留,变换后的方程是
( m s 2 + c s + k ) Y = G ( s ) + ( m s + c ) y 0 + m v 0 . (ms^2+cs+k)Y
=G(s)+(ms+c)y_0+mv_0. ( m s 2 + cs + k ) Y = G ( s ) + ( m s + c )
解出 Y Y Y ,可以把两种来源看得很清楚:
Y ( s ) = ( m s + c ) y 0 + m v 0 m s 2 + c s + k + G ( s ) m s 2 + c s + k . Y(s)=\frac{(ms+c)y_0+mv_0}{ms^2+cs+k}
+\frac{G(s)}{ms^2+cs+k}. Y ( s ) = m s 2 + cs + k ( m s
这个式子适合在算出答案后复查结构,却不必成为新的死记公式。只要记住 y ′ ↔ s Y − y 0 y'\leftrightarrow sY-y_0 y ′ ↔ s Y − y 0 与 y ′ ′ ↔ s 2 Y − s y 0 − v 0 y''\leftrightarrow s^2Y-sy_0-v_0 y ,就能随时重新推出来。尤其在质量 不为一时,初始速度项前面也要乘 ,初始位置则同时从惯性项和阻尼项留下贡献。
第一项描述系统没有后续外力时,由起始状态带来的运动,称为零输入响应;第二项描述从零初值开始,由输入带来的运动,称为零状态响应。线性性允许两部分相加。输入为零与初值为零是不同的条件,计算时别把它们混为一谈。
在初值全为零时,记
H ( s ) = 1 m s 2 + c s + k , Y ( s ) = H ( s ) G ( s ) . H(s)=\frac1{ms^2+cs+k},\qquad Y(s)=H(s)G(s). H ( s ) = m s 2 + cs + k 1 , Y
H H H 常称为这个输入到输出关系的传递函数。改变输入,G G G 会变;只要装置参数不变,H H H 就保持不变。这正是我们开头想要的分工。
但不能把 Y = H G Y=HG Y = H G 直接逆变换成 y ( t ) = h ( t ) g ( t ) y(t)=h(t)g(t) y ( t ) = h ( t ) g ( t ) 。变换不把时间里的普通乘积变成这里的乘积。它对应的是怎样的时间累积,下一章会用卷积给出明确答案,与上一章累积响应的积分接起来。
极点是哪些时间形状的记号
对本章出现的有理函数,把分子分母的公共因子约去之后,分母的根叫作极点。部分分式告诉我们,一个实极点 a a a 会带来 e a t e^{at} e a t ;若它重复,会再乘上 t t t 的多项式。复共轭极点 α ± i β \alpha\pm i\beta α ± i β 则对应 e α t e^{\alpha t} e 乘正弦、余弦。
因此,对一个严格真有理的 Y ( s ) Y(s) Y ( s ) ,若所有极点实部都为负,其对应的有限个指数多项式项都会趋于零,响应也就趋于零。若只有一个位于零点的单极点,其余极点实部都为负,响应会趋于某个常数。上面的恒力例题正是这样:Y Y Y 有极点 0 0 0 和 − 2 ± i -2\pm i − 2 ± i ,得到常数 2 2 2 加衰减振动。
纯虚数极点不能一律叫“会稳定下来”。1 / ( s 2 + 1 ) 1/(s^2+1) 1/ ( s 2 + 1 ) 对应 sin t \sin t sin t ,它有界,却没有长期极限;1 / s 2 1/s^2 1/ s 2 对应 t t t ,零点的重极点会产生无界增长。负实部意味着相应自然模式衰减,零实部还必须看重复次数和具体分量。
我们还要分清系统的 H H H 与某次响应的 Y Y Y 。即使系统自然模式全部衰减,输入本身仍可能不断增大。例如一阶系统 y ′ + y = e t y'+y=e^t y ′ + y = e t 从零初值出发,有
Y ( s ) = 1 ( s + 1 ) ( s − 1 ) , y ( t ) = 1 2 ( e t − e − t ) . Y(s)=\frac1{(s+1)(s-1)},\qquad
y(t)=\frac12(e^t-e^{-t}). Y ( s ) = ( s + 1 ) ( s − 1 ) 1 , y ( t
系统因子只有 s + 1 s+1 s + 1 ,但输入带来 s − 1 s-1 s − 1 ,所以这次响应增长。反过来,某次输入或初值恰好使一个不稳定模式的系数为零,也不能据此认定系统在任意初值下都会稳定。
对弹簧模型本身,m > 0 , c > 0 , k > 0 m>0,c>0,k>0 m > 0 , c > 0 , k > 0 时,特征根确实具有负实部。如果两根是复数,实部是 − c / ( 2 m ) -c/(2m) − c / ( 2 m ) ;如果两根为实数,它们的和为 − c / m < 0 -c/m<0 − c / m < ,积为 ,所以两根都负。这与阻尼耗散能量的理解一致。若取 ,根变成纯虚数,自由振动就不会自动衰减。外力停止以后能否回到平衡,取决于这些自然模式,而不是取决于我们选了哪一种求解方法。
本章从部分分式就足够判断这些有限组合的长期行为,不需要提前套用终值公式。尤其对 sin t \sin t sin t ,虽然形式上 lim s → 0 s / ( s 2 + 1 ) = 0 \lim_{s\to0}s/(s^2+1)=0 lim s → 0 s / ( s 2 + 1 ) = 0 ,它却没有时间终值。任何把 s 的极限换成 的极限的公式,都需要额外条件。
练习:从积分条件一路核对到运动
练习一:收敛范围能从代数式直接看出吗
用定义计算 f ( t ) = 3 e − 4 t f(t)=3e^{-4t} f ( t ) = 3 e − 4 t 的 Laplace 变换,并判断能否把结果中的 s s s 取为 − 5 -5 − 5 。
显示答案 把两个指数合并:
F ( s ) = 3 ∫ 0 ∞ e − ( s + 4 ) t d t = 3 s + 4 , s > − 4. F(s)=3\int_0^\infty e^{-(s+4)t}\,dt
=\frac3{s+4},\qquad s>-4. F ( s ) = 3 ∫ 0 ∞ e − ( s + 4 ) t
练习二:组合输入与指数位移
求 f ( t ) = e − t ( 3 t 2 + 2 sin ( 2 t ) ) f(t)=e^{-t}\bigl(3t^2+2\sin(2t)\bigr) f ( t ) = e − t ( 3 t 2 + 2 sin ( 2 t ) ) 的变换,给出一个共同收敛范围。
显示答案 先不看外面的指数。由线性性,
L { 3 t 2 + 2 sin ( 2 t ) } = 6 s 3 + 4 s 2 + 4 , s > 0. \mathcal L\{3t^2+2\sin(2t)\}
=\frac6{s^3}+\frac4{s^2+4},\qquad s>0. L { 3 t 2 + 2 sin ( 2 t )} = s 3
练习三:一个重根和一项振荡
求下式的逆变换:
F ( s ) = s + 5 ( s + 2 ) 2 + 3 s + 8 s 2 + 4 s + 8 . F(s)=\frac{s+5}{(s+2)^2}+\frac{3s+8}{s^2+4s+8}. F ( s ) = ( s + 2 ) 2 s + 5 +
显示答案 第一项把分子写成 ( s + 2 ) + 3 (s+2)+3 ( s + 2 ) + 3 ,得到 1 / ( s + 2 ) + 3 / ( s + 2 ) 2 1/(s+2)+3/(s+2)^2 1/ ( s + 2 ) + 3/ ( s + 2 ) 2 ,所以对应 。
练习四:初值给在两秒处
用时间平移和 Laplace 变换求解 y ′ + 2 y = 4 y'+2y=4 y ′ + 2 y = 4 ,条件为 y ( 2 ) = 3 y(2)=3 y ( 2 ) = 3 ,只求 t ≥ 2 t\ge2 t ≥ 2 的过程。
显示答案 令 τ = t − 2 \tau=t-2 τ = t − 2 ,z ( τ ) = y ( τ + 2 ) z(\tau)=y(\tau+2) z ( τ ) = y ( τ + 2 ) 。那么 τ ≥ 0 \tau\ge0 τ ≥ 0 ,且
练习五:独立完成一个受迫二阶初值问题
求解
y ′ ′ + 3 y ′ + 2 y = 4 e − 3 t , y ( 0 ) = 1 , y ′ ( 0 ) = 0. y''+3y'+2y=4e^{-3t},\qquad y(0)=1,\qquad y'(0)=0. y ′′ + 3 y ′ + 2 y = 4 e
求出答案后,检查原方程和两个初值。
显示答案 对方程变换,注意 y ′ ′ y'' y ′′ 和 3 y ′ 3y' 3 y ′ 都会带来初值项:
( s 2 Y − s ) + 3 ( s Y − 1 ) + 2 Y = 4 s + 3 . (s^2Y-s)+3(sY-1)+2Y=\frac4{s+3}. ( s
练习六:看到极点后,还需要区分什么
分别判断下列变换所对应函数的长期行为,并解释为什么“极点实部都不为正,所以函数一定趋于一个常数”是错的:
F 1 ( s ) = 1 ( s + 1 ) 2 , F 2 ( s ) = 1 s 2 + 4 , F 3 ( s ) = 1 s 2 . F_1(s)=\frac1{(s+1)^2},\qquad
F_2(s)=\frac1{s^2+4},\qquad
F_3(s)=\frac1{s^2}. F 1 ( s ) = ( s + 1 )
显示答案 第一项对应 t e − t t e^{-t} t e − t ,虽然有因子 t t t ,负指数最终占上风,所以趋于零。第二项对应 1 2 sin ( 2 t ) \frac12\sin(2t) 2 1 sin ( 2 t ) ,始终有界却一直振荡,没有极限。第三项对应 ,随时间无界增长。
把变换积分、初值边界项和逆变换连接起来之后,我们已经能从一条输入曲线求出系统的整段响应。接下来让输入更接近一个具体操作:装置先静止两秒,再打开外力,五秒后关掉。时间轴上的“打开”和“关闭”怎样写进 G ( s ) G(s) G ( s ) ?这正是下一章阶跃函数要解决的问题。