二阶系统RLC电路图解

【信号与系统】一道题吃透二阶系统:RLC 电路 + ζ/ωn 标准式(附 MATLAB 风格配图)

本文从一个经典教材习题(二阶系统 H(s)=b1s+b0s2+a1s+a0H(s)=\dfrac{b_1s+b_0}{s^2+a_1s+a_0}H(s)=s2+a1s+a0b1s+b0)出发,用 RLC 串联电路作为物理载体,配合 s 平面极点图、冲激响应曲线、根轨迹,把"为什么二阶系统要用 ζ、ωn 表示"讲透。配图全部可复现,文末附 Python 脚本。


📌 写在前面

学二阶系统时,很多人卡在两个地方:

  1. 公式里的 a1,a0a_1,a_0a1,a0 到底代表什么物理意义?
  2. 教材为什么非要把它改写成 s2+2ζωns+ωn2s^2+2\zeta\omega_n s+\omega_n^2s2+2ζωns+ωn2,多此一举?

其实只要挂到一个真实的电路------RLC 串联电路上,这两个问题瞬间就通了。下面我们一步步来。


一、电路长什么样?

图1:RLC 串联电路。输入 x(t) 为电压源,输出 y(t)=v_C(t) 取电容两端电压。

这是一个再普通不过的串联电路:电压源 x(t)x(t)x(t) 驱动 R-L-C 串联回路,输出取电容电压 y(t)=vC(t)y(t)=v_C(t)y(t)=vC(t)。


二、从电路到微分方程(对应题 a)

设回路电流 i(t)i(t)i(t),电容上有 i=Cv˙Ci=C\dot v_Ci=Cv˙C。对整个回路列 KVL(基尔霍夫电压定律)

Li˙+R i+vC=x(t),i=Cv˙C L\dot i + R\,i + v_C = x(t),\qquad i = C\dot v_C Li˙+Ri+vC=x(t),i=Cv˙C

消去 iii,得到:

 LC y¨+RC y˙+y=x(t)  \boxed{\,LC\,\ddot y + RC\,\dot y + y = x(t)\,} LCy¨+RCy˙+y=x(t)

两边同除 LCLCLC,对照一般二阶系统的微分方程 y¨+a1y˙+a0y=b0x\ddot y + a_1\dot y + a_0 y = b_0 xy¨+a1y˙+a0y=b0x(这里 b1=0b_1=0b1=0),得到系数对应关系:

一般形式系数 在电路里的值
a0a_0a0 1LC\dfrac{1}{LC}LC1
a1a_1a1 RL\dfrac{R}{L}LR
b0b_0b0 1LC\dfrac{1}{LC}LC1

💡 小贴士 :同一个电路,从电阻 两端取输出 y=vRy=v_Ry=vR,会得到 b1≠0b_1\neq0b1=0(带通)形式;从电感 取则为高通。分子 b1,b0b_1,b_0b1,b0 由"从哪个元件取输出"决定,分母 a1,a0a_1,a_0a1,a0 只由回路本身决定。


三、ζ、ωn 与 R、L、C 的关系(对应题 c)

教材总喜欢把分母写成标准形式 s2+2ζωns+ωn2s^2+2\zeta\omega_n s+\omega_n^2s2+2ζωns+ωn2。比对系数即可:

 ωn=1LC,ζ=R2CL  \boxed{\,\omega_n=\frac{1}{\sqrt{LC}},\qquad \zeta=\frac{R}{2}\sqrt{\frac{C}{L}}\,} ωn=LC 1,ζ=2RLC

这俩式子是全文最关键的洞察,请记住:

  • LLL、CCC 决定 ωn\omega_nωn → 决定响应的快慢 / 振荡频率;
  • RRR 决定 ζ\zetaζ → RRR 是回路里唯一的耗能元件,它就是"阻尼"。

一句话:R 越大,ζ\zetaζ 越大,振荡越弱。


四、三种极点情况(对应题 b、c)

图2:s 平面上三种极点分布(取 ωn=1)。 左:过阻尼(两相异实极点);中:临界阻尼(实数重根);右:欠阻尼(共轭复数对)。

把电阻 RRR 从小调到大,ζ\zetaζ 从 0 增到 >1>1>1,极点会经历三个阶段:

阻尼类型 条件(标准式) 极点位置 物理含义
欠阻尼 0<ζ<10<\zeta<10<ζ<1 −ζωn±jωd-\zeta\omega_n\pm j\omega_d−ζωn±jωd(共轭复数) R 小,能量损耗慢,电流在 L↔C 间反复交换 → 振荡
临界阻尼 ζ=1\zeta=1ζ=1 −ωn-\omega_n−ωn(实数重根) R 刚好大到不振荡
过阻尼 ζ>1\zeta>1ζ>1 两个相异负实数 R 很大,能量被迅速消耗,不振荡但变慢

其中阻尼自然频率 ωd=ωn1−ζ2\omega_d=\omega_n\sqrt{1-\zeta^2}ωd=ωn1−ζ2 。

这三种情况对应同一个判别式 Δ=a12−4a0=4ωn2(ζ2−1)\Delta=a_1^2-4a_0=4\omega_n^2(\zeta^2-1)Δ=a12−4a0=4ωn2(ζ2−1) 的 <0, =0, >0<0,\,=0,\,>0<0,=0,>0。


五、冲激响应对比(对应题 d、e)

图3:三类二阶系统的冲激响应 h(t)(取 ωn=1, b0=ωn²)。 蓝色过阻尼、绿色临界阻尼、红色欠阻尼(虚线为包络)。

这张图直接对应题 (d) 的三条公式:

  • 🔵 过阻尼(ζ=2\zeta=2ζ=2)

    h(t)=b02ωnζ2−1(es1t−es2t)u(t) h(t)=\frac{b_0}{2\omega_n\sqrt{\zeta^2-1}}\left(e^{s_1 t}-e^{s_2 t}\right)u(t) h(t)=2ωnζ2−1 b0(es1t−es2t)u(t)

    单调爬升再衰减,不穿零,但被慢极点拖累,响应迟缓。

  • 🟢 临界阻尼(ζ=1\zeta=1ζ=1)

    h(t)=b0 t e−ωntu(t) h(t)=b_0\,t\,e^{-\omega_n t}u(t) h(t)=b0te−ωntu(t)

    不振荡里最快回到平衡的那一条曲线。

  • 🔴 欠阻尼(ζ=0.4\zeta=0.4ζ=0.4)

    h(t)=b0ωde−ζωntsin⁡(ωdt) u(t) h(t)=\frac{b_0}{\omega_d}e^{-\zeta\omega_n t}\sin(\omega_d t)\,u(t) h(t)=ωdb0e−ζωntsin(ωdt)u(t)

    包络 e−ζωnte^{-\zeta\omega_n t}e−ζωnt 衰减下的衰减振荡,反复穿零。

👉 命名由来(对应题 e)

"阻尼" = 电阻 R 的耗能。相对于"刚好不振荡"的那个临界值:

  • 耗能过多(过阻尼)→ 牺牲速度,换来单调不超调;
  • 刚好(临界)→ 单调里最快的那条;
  • 不足(欠阻尼)→ 压不住,能量在 L↔C 间来回弹,于是振荡。

曲线形态一目了然,名字也就好理解了。


六、为什么偏爱 ζ、ωn 标准式?(对应题 c-v)

图4:随 ζ 变化的极点轨迹(ωn=1)。 欠阻尼区极点始终落在半径为 ωn 的圆上(灰色虚线),ζ 只决定极点在圆上的角度。

这张根轨迹图给出了 (c-v) 最有力的答案:

  • 在欠阻尼区(红/橙曲线),无论 ζ\zetaζ 怎么变,极点始终落在半径为 ωn\omega_nωn 的圆上
  • ζ\zetaζ 只决定极点在圆上的角度 θ=cos⁡−1ζ\theta=\cos^{-1}\zetaθ=cos−1ζ:ζ=0\zeta=0ζ=0 在虚轴(纯振荡),ζ=1\zeta=1ζ=1 落到负实轴。

于是两个参数的分工极其干净:

ωn\omega_nωn(由 L、C 决定)设圆的半径 = 响应速度;ζ\zetaζ(由 R 决定)设极点在圆上的角度 = 阻尼性质。

相比之下,原始系数 a1,a0a_1,a_0a1,a0 把"速度"和"阻尼"搅在一起(ωn=a0\omega_n=\sqrt{a_0}ωn=a0 ,ζ=a1/2a0\zeta=a_1/2\sqrt{a_0}ζ=a1/2a0 ),既看不出物理量,也看不出与超调量、建立时间等时域指标的直接关系。

这就是工程界统一采用 ζ,ωn\zeta,\omega_nζ,ωn 标准形式的根本原因。


七、总结:一表映射全题

题目部分 电路 / 图形对应
(a) 微分方程 RLC 回路 KVL → LCy¨+RCy˙+y=xLC\ddot y+RC\dot y+y=xLCy¨+RCy˙+y=x
(b) 用 a1,a0a_1,a_0a1,a0 判极点 a1=R/La_1=R/La1=R/L,a0=1/LCa_0=1/LCa0=1/LC
© ζ,ωn\zeta,\omega_nζ,ωn 形式 ωn=1/LC\omega_n=1/\sqrt{LC}ωn=1/LC ,ζ=R2C/L\zeta=\dfrac{R}{2}\sqrt{C/L}ζ=2RC/L
(d) 冲激响应 图3 三色波形
(e) 命名由来 R 的耗能强弱 ↔ 三种曲线形态
(c-v) 为何偏爱此形式 图4 根轨迹:ωn 设圆半径,ζ 设角度

🎯 一句话总结

二阶系统 = RLC 电路。L、C 决定快慢(ωn),R 决定阻尼(ζ) ;ζ 大到刚好不振荡就是"临界",再大就"过阻尼"(变慢),小了就"欠阻尼"(振荡)。标准式 ζ,ωn\zeta,\omega_nζ,ωn 把"速度"和"阻尼"干净解耦,这就是它被偏爱一生的原因。


核心片段(欠阻尼冲激响应):

python 复制代码
import numpy as np

wn, zu, b0 = 1.0, 0.4, 1.0
wd = wn * np.sqrt(1 - zu**2)
t = np.linspace(0, 16, 2000)
h_under = b0 / wd * np.exp(-zu*wn*t) * np.sin(wd*t)

如果觉得有帮助,欢迎点赞👍收藏⭐! 有问题欢迎评论区交流,比如想看阶跃响应对比、或者把图换成中文标注,都可以提~ 😊