1.谐振电路的Q值定义
LLC电路的Q值定义:
它表述的是整个电路的能量存储与耗散的关系。损耗越小,Q值越大,损耗越大,Q值越小。
Q的另一种写法是:
这个公式来由,因为谐振频率:
所以:
所以:
所以:
所以:
2. 谐振电路Q值的物理意义
Q值实际表征了LC电路的频率选择范围,如果定义带宽 Δf 是指电流值下降到谐振频率处电流值的 时所对应的频率范围。Q值越高,带宽越窄:
一般我们看到的特定Q值随频率变化的曲线,其实就是整个电路的总体阻抗随频率的衰减情况,如果接入恒压源,那就是系统整个电流的电流随频率的变化。
3. LLC电路Q(LrCr)谐振参数的变化为什么是反的?
下图是LLC系统整体增益V_lm/Vin
如上图所示,Q值越大,系统的整体增益反而越小,这是怎么回事?这里不同的Q值的变化,其实是由负载电阻的变化,也就是连接不同的负载造成的。另外,这里的增益实际是Lm两端的电压与输入电压相比的比例。随着负载越来越重,LRC谐振电路中的Rac越来越小,谐振电路的Q值在增大。谐振电路的Q值相应增大。
4 电路模拟及粗略解释
下图中,我把谐振电容和谐振电感的增益曲线画出了。
最直观的解释就是在系统越过第一个谐振点(Lr, Cr),到达第二个谐振点前(Lr+Lm,Cr)前,系统的增益因为第二个低频谐振峰的存在,仍然在上升。因为Lm比Lr大得多,LLC能够在谐振频点,能够近乎稳住系统整体增益。
附录A 相关的LLC电路整体增益曲线 - Python源码
from matplotlib.lines import lineStyles
import numpy as np
import matplotlib.pyplot as pltdef GetLRC_Gain(frequencies, L, R, C, V_in):omega = 2 * np.pi * frequencies # 角频率# 计算阻抗Z_L = 1j * omega * L*2 # 电感的阻抗Z_C = 1 / (1j * omega * C/2) # 电容的阻抗Z_total = R + Z_L + Z_C # 总阻抗# 计算电流Gain = R/np.abs(Z_total)*GetLRC_Q(L,R,C)return Gain# 计算增益
def GetLLC_TotalGain(frequencies, L_r, R_ac, C_r, V_in):gains = []L_m = 10*L_rfor f in frequencies:omega = 2 * np.pi * f# 计算等效阻抗Z_Lm = 1j * omega * L_mZ_Lr = 1j * omega * L_rZ_C = -1j / (omega * C_r)Z_parallel = (Z_Lm * R_ac) / (Z_Lm + R_ac)Z_eq = (Z_Lr + Z_C) + Z_parallel# 计算增益V_out = V_in * np.abs(Z_parallel) / np.abs(Z_eq)gain = V_out / V_ingains.append(gain)# 转换为numpy数组gains = np.array(gains)return gains;def GetLRC_Q(L, R, C):Q = 1/R*np.sqrt(L/C)return Qdef GetLC_Fr(L, C):Fr = 1/(2*np.pi*np.sqrt(L*C))return Fr# 参数设置
L = 35e-6 # 电感 (H)
R = 12 # 电阻 (Ω)
C = 6.3e-9*10 # 电容 (F)
V_in = 660 # 输入电压 (V)# 频率范围
frequencies = np.linspace(20e3, 200e3, 1000) # 频率从100Hz到10000Hz# 绘图
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.set_xlabel('Frequency (Hz)')
ax1.set_ylabel('LLC Total Gain')
ax2.set_ylabel('LC Gain')
lines1 = []
lines2 = []
labels = []
for i in range(1, 8, 2):R_now = R*iGain_LC = GetLRC_Gain(frequencies, L, R_now, C, V_in)TotalGain = GetLLC_TotalGain(frequencies, L, R_now, C, V_in)Fr = GetLC_Fr(L,C) Q = GetLRC_Q(L, R_now, C)line1, = ax1.plot(frequencies, np.abs(TotalGain), label=f'LLC Total_Gain Q={Q:.2f} R={R_now:.2f}ohm ')line2, = ax2.plot(frequencies, np.abs(Gain_LC), label=f'LC-Gain Q={Q:.2f} R={R_now:.2f}ohm', linestyle='dashed')lines1.append(line1)lines2.append(line2)labels = [line.get_label() for line in lines2]plt.axvline(x=Fr, color='black', linestyle='dotted')
# 手动添加图例项
line_handler, = plt.plot([], [], color='black', linestyle='dotted', label=f"Freq_r = {Fr/1e3:.2f}kHz")lines = lines1 + lines2 + [line_handler]
labels = [line.get_label() for line in lines]
plt.title('LLC Gain & LC Gain with different load.')
plt.grid(True)
plt.legend(lines, labels)
plt.show()