Engee 文档
Notebook

分析 RLC 电路的响应

本例演示如何使用 ControlSystems.jl 函数分析 RLC 电路的时间和频率响应与其物理参数的函数关系。

开始之前,请连接软件包ControlSystems.jl

In [ ]:
import Pkg
Pkg.add("ControlSystems")
In [ ]:
using ControlSystems
s = tf('s')

RLC 带宽网络

下图显示了带状 RLC 电路的并联形式。

image.png

从输入电压到输出电压的传递函数等于

$$ G(s) = { s / (RC) \over s^2 + s/(RC) + 1/(LC) } $$

$LC$ 控制带宽,$RC$ 控制带宽缩小的程度。要创建一个调谐为 1 rad/s 的带通滤波器,请设置$L=C=1$ ,然后使用$R$ 调整滤波器带宽。

分析系统的频率响应

Bode 图是研究 RLC 网络带宽特性的便捷工具。使用tf ,指定电路在$R=L=C=1$ 值下的传递函数。

In [ ]:
R = 1; L = 1; C = 1;
G = tf([1/(R*C), 0],[1, 1/(R*C), 1/(L*C)])
Out[0]:
TransferFunction{Continuous, ControlSystemsBase.SisoRational{Float64}}
       1.0s
-------------------
1.0s^2 + 1.0s + 1.0

Continuous-time transfer function model
In [ ]:
bodeplot(G)
Out[0]:

不出所料,RLC 滤波器在 1 rad/s 时具有最大增益。然而,在此频率下半衰期的衰减仅为 -10 dB。要想获得更窄的带宽,可尝试按如下方法增大$R$ 的值。

In [ ]:
R1 = 5;
G1 = tf([1/(R1*C), 0],[1, 1/(R1*C), 1/(L*C)]);
R2 = 20;
G2 = tf([1/(R2*C), 0],[1, 1/(R2*C), 1/(L*C)]);

bodeplot([G, G1, G2], lab = ["R = 1" "R = 5" "R = 20"])
Out[0]:

R=20 的电阻值可在 1 rad/s 的目标频率附近提供较窄的滤波器调谐。

分析电路的时间响应

我们可以通过模拟该滤波器如何转换 0.9、1 和 1.1 弧度/秒的正弦波,来确认 G2 电路 ($R=20$) 的衰减特性。

In [ ]:
t = 0:0.05:250;

lp1 = lsim(G2,sin.(t)',t)
lp2 = lsim(G2,sin.(0.9*t)',t)
lp3 = lsim(G2,sin.(1.1*t)',t)
plot(
    plot(lp1, title = "w = 1"),
    plot(lp2, title = "w = 0.9"),
    plot(lp3, title = "w = 1.1"),
    layout = (3,1)
)
Out[0]:

0.9 和 1.1 拉德/秒的波明显衰减。1 拉德/秒的波在瞬态衰减后保持不变。瞬态时间较长的原因是滤波器极点阻尼较差,不幸的是,这对于窄带宽来说是必要的。

In [ ]:
dampreport(G2)
|        Pole        |   Damping     |   Frequency   |   Frequency   | Time Constant |
|                    |    Ratio      |   (rad/sec)   |     (Hz)      |     (sec)     |
+--------------------+---------------+---------------+---------------+---------------+
| -0.025  ±      1im |  0.025        |  1            |  0.159        |  40           |

结论

至此,我们已经了解了哪些函数可用于分析 RLC 电路的时间和频率特性。