You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Lcapy计算并联RLC谐振回路的Iout/Iin传递函数

并联RLC谐振回路传递函数(Iout/Iin)的Lcapy正确实现

问题说明

尝试用Lcapy计算并联RLC谐振回路的传递函数H(s) = Iout/Iin,但原代码调用了Lcapy中不存在的current()和Iin()方法,导致无法运行。需要利用Lcapy提供的impedance()、节点电压或导纳相关方法来实现。

正确代码实现

import lcapy
from lcapy import s
from IPython.display import display, Math
import sympy as sp

# 定义并联RLC电路网表
netlist = """ 
Iin 1 0  
Cp 1 0 C
Rp 1 0 R  
Lp 1 0 L
"""

# 创建电路对象并生成s域模型
circuit = lcapy.Circuit(netlist)
s_model = circuit.s_model()

# 通过节点电压与阻抗推导传递函数
# 获取RLC并联总阻抗
Z_parallel = s_model.impedance(1, 0)
# 输出电流Iout为流过Rp的电流:Iout = V1/R = (Iin * Z_parallel)/R
# 传递函数H = Iout/Iin = Z_parallel / R
H = Z_parallel / lcapy.R

# 整理为标准二阶谐振系统形式
H_simplified = sp.simplify(H)
H_standard = sp.collect(sp.expand(H_simplified), s)

# 显示格式化后的结果
display(Math(sp.latex(H_standard)))

代码解释

  • 网表定义:清晰描述电流源Iin与电容Cp、电阻Rp、电感Lp的并联拓扑结构
  • 阻抗计算:调用impedance(1,0)直接获取节点1到地的并联总阻抗Z_parallel
  • 传递函数推导:根据欧姆定律,流过电阻的电流Iout = V1/R,而节点电压V1 = Iin * Z_parallel,因此传递函数简化为Z_parallel / R
  • 表达式整理:借助SymPy的simplify()和collect()方法,将结果整理为标准二阶系统形式,最终得到与预期一致的结果:
    $$
    H(s) = \frac{\frac{s}{RC}}{s^2 + \frac{s}{RC} + \frac{1}{LC}}
    $$

内容的提问来源于stack exchange,提问作者coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:40:09