LLC电路的传递函数和频响曲线(增益与伯德图)推导
创作时间:
作者:
@小白创作中心
LLC电路的传递函数和频响曲线(增益与伯德图)推导
引用
CSDN
1.
https://blog.csdn.net/twicave/article/details/143909458
LLC(Inductor-Inductor-Capacitor)电路是一种常用的谐振变换器电路,广泛应用于开关电源、逆变器等电力电子设备中。本文将从理论推导和仿真分析两个方面,详细介绍LLC电路的传递函数和频响特性。
1.实验 - 高通滤波电路频响特性
先尝试一下高通滤波的传递函数和伯德图,测试一下推导和Python伯德图绘制是否正常。
1.1 推导传递函数
高通滤波是RC串联,输出电压取R两端电压,所以:
1.2 伯德图绘图
源码参见附录B,确认无误。幅频特性,-3db位置和曲线整体特征正常。
2 LLC电路频响特性
2.1 推导开环传递函数
2.1.1 电路参数 - 谐振前级回路等效电路
- LLC阻抗分别为:Lr,Lm,Cr
- 负载电阻为Rout
- LLC回路,负载等效阻抗为N*Rout,记作Rac
2.1.2 推导开环传递函数
下面的推导中出现的一些临时变量:
- H是传递函数。
- Zm是LLC电路的复阻抗
- Lr,Cr串联联,所以,输入电压Vin减去Lr,Cr的分压,就是输出电压Vout
- 绘图时要求把传递函数写为基于s的多项式形式(分子/分母)所以有下面的化简过程。
2.2 系统频响
2.2.1 线性增益图及伯德图
为了验证正确性,我把系统增益也画出来了,在上方,这次是对的,下方左侧是伯德图幅度谱,下方右侧是相位角随频率变化。注意伯德图的x轴是弧度,比频率大2*pi,那个值会大6倍多。
2.3 相位裕度
添加相位裕度指示后,开环相位调整裕度足够。
附录A:LLC谐振电路- python频响曲线源码
# -*- coding: gb2312 -*-
from re import S
from token import RBRACE
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
llc_params = {
"Lr":35e-6,
"Cr":40e-9,
"N":26/2,
"Pr":1.5e3,
"Vo":27.5,
"K":5,
"Vin":27.5*26/2}
# 设置支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
param = llc_params
# 定义滤波器参数
Lr = param["Lr"]
Lm = param["Lr"]*param["K"]
Cr = param["Cr"]
Rac = param["N"]*param["Pr"]/np.power(param["Vin"],2)
# 定义滤波器参数
Lr = param["Lr"]
Lm = param["Lr"]*param["K"]
Cr = param["Cr"]
Rac = param["N"]*np.power(param["Vo"],2)/param["Pr"]
Freq_r = 1/(2 * np.pi * np.sqrt(Lr*Cr))
Freq_min = 1/(2 * np.pi * np.sqrt((Lr+Lm)*Cr))
# 传递函数分子和分母
num = [Lm*Rac*Cr, 0, 0]
den = [Lr*Cr*Lm, (Lr*Cr*Rac + Lm*Rac*Cr), Lm, Rac] # 分母系数
# 创建传递函数对象
sys = signal.TransferFunction(num, den)
# 计算伯德图
w, mag, phase = signal.bode(sys, np.arange(10e0*(2*np.pi), 300e3*(2*np.pi), 50))
freq_in_hz = [rad/(2*np.pi) for rad in w]
gain = [np.power(10, mag/20) for mag in mag]
plt.figure(figsize=(12, 8))
plt.subplot(2, 1, 1)
plt.plot(freq_in_hz, gain)
plt.title(f'Gain of LLC DC-DC at Power_out={param["Pr"]/1e3:.2f}kW')
plt.ylabel('Frequency [Hz]')
plt.ylabel('Gain [percent vo/vi]')
plt.axvline(x=Freq_r, color='g', linestyle='--', label=f'谐振频率 频率{Freq_r/1e3:.2e}kHz = {Freq_r*2*np.pi:.2e}rad')
plt.axvline(x=Freq_min, color='r', linestyle='--', label=f'低频 频率{Freq_min/1e3:.2e}kHz = {Freq_min*2*np.pi:.2e}rad')
#plt.axhline(y=-3, color='g', linestyle='--', label='-3dB 增益 -3=20log(Vout/Vin) Vout/Vin=0.707')
plt.legend()
plt.grid(True, which="both")
# 绘制伯德图
plt.subplot(2, 2, 3)
plt.title(f'Bode Plot [Gain Figure] of LLC DC-DC')
plt.semilogx(w, mag) # 绘制增益曲线semilogx
plt.ylabel('Magnitude [dB]')
plt.axvline(x=Freq_r*2*np.pi, color='g', linestyle='--', label=f'谐振频率 频率{Freq_r/1e3:.2e}kHz = {Freq_r*2*np.pi:.2e}rad')
plt.axvline(x=Freq_min*2*np.pi, color='r', linestyle='--', label=f'低频 频率{Freq_min/1e3:.2e}kHz = {Freq_min*2*np.pi:.2e}rad')
#plt.axhline(y=-3, color='g', linestyle='--', label='-3dB 增益 -3=20log(Vout/Vin) Vout/Vin=0.707')
#plt.legend()
plt.grid(True, which="both")
plt.subplot(2, 2, 4)
plt.title(f'Bode Plot [Phase Figure] of LLC DC-DC')
plt.semilogx(w, phase) # 绘制相位曲线
# 绘制竖线
y_min, y_max = plt.ylim() # 获取当前 y 轴的范围
plt.xlabel('Frequency [rad/s]')
plt.ylabel('Phase [degrees]')
plt.axvline(x=Freq_r*2*np.pi, color='g', linestyle='--', label=f'谐振频率 频率{Freq_r/1e3:.2e}kHz = {Freq_r*2*np.pi:.2e}rad')
plt.axvline(x=Freq_min*2*np.pi, color='r', linestyle='--', label=f'低频 频率{Freq_min/1e3:.2e}kHz = {Freq_min*2*np.pi:.2e}rad')
#plt.legend()
plt.grid(True, which="both")
plt.tight_layout()
plt.show()
附录B:RC一阶高通滤波伯德图源码
# -*- coding: gb2312 -*-
import numpy as np
import matplotlib.pyplot as plt
from scipy import signal
# 设置支持中文的字体
plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号
# 定义滤波器参数
R = 1000 # 电阻值,单位:欧姆
C = 1e-6 # 电容值,单位:法拉
# 计算截止频率
fc = 1 / (2 * np.pi * R * C)
print(f"截止频率: {fc:.2f} Hz")
# 定义传递函数
num = [R*C, 0] # 分子系数
den = [R * C, 1] # 分母系数
# 创建传递函数对象
sys = signal.TransferFunction(num, den)
# 生成频率范围
w, mag, phase = signal.bode(sys)
# 绘制伯德图
plt.figure()
# 绘制幅频响应
plt.subplot(2, 1, 1)
plt.semilogx(w, mag) # 使用对数坐标
plt.grid(True, which="both")
plt.title('伯德图 - 幅频响应')
plt.xlabel('频率 (rad/s)')
plt.ylabel('增益 (dB)')
# 标出-3dB位置
plt.axvline(x=2 * np.pi * fc, color='r', linestyle='--', label=f'-3dB 频率{fc}Hz = {fc*2*np.pi}rad')
plt.axhline(y=-3, color='g', linestyle='--', label='-3dB 增益 -3=20log(Vout/Vin) Vout/Vin=0.707')
plt.legend()
# 绘制相频响应
plt.subplot(2, 1, 2)
plt.semilogx(w, phase) # 使用对数坐标
plt.grid(True, which="both")
plt.title('伯德图 - 相频响应')
plt.xlabel('频率 (rad/s)')
plt.ylabel('相位 (度)')
plt.tight_layout()
plt.show()
附录C: 显示相位裕度不稳定区域的代码片段
#绘制相位余量 - 红色半透明带状区域
y_min = np.full(len(w), -180 + 45)
y_max = np.full(len(w), -180 - 45)
plt.fill_between(w, y_min, y_max, where=(y_min>=y_max), color='red', alpha=0.5, label=f'相位裕度unstable Zone: [-180±45] degree')
本文原文来自CSDN
热门推荐
优化KDJ指标参数设置,精准捕捉股市买卖点
冬季母猪饲料调配攻略:科学配方助力养殖效益提升
术后康复分四阶,肩袖损伤恢复指南
春赏花夏玩水秋观叶冬赏灯,广东四季旅游全攻略
冬季种植火龙果:关键要点与注意事项
肩袖术后康复三阶段,循序渐进恢复功能
肩袖术后康复指南:4阶段训练方案与注意事项
揭秘火龙果“防护衣”:科学家发现蜡质代谢抗病新机制
云台山摄影打卡指南:红石峡、茱萸峰、悬空寺
云台山:山水清凉,文化养心的避暑胜地
云台山四季美景,打卡网红景点
云台山限时优惠,两日游攻略大揭秘!
看身体5部位知寿命长短?医生解构长寿特征
指甲出现这 10 种变化,可能是身体发射的「疾病信号」
蒋勤勤获亚洲电影大奖,国内首部反传销电影引关注
盐洲岛赶海记:从抓螃蟹到吃海鲜,海岛度假的完美打开方式
盐洲岛黑排角摄影攻略:捕捉广东小霞浦的最美瞬间
盐洲岛:广东版“天空之境”打卡攻略
冬日盐洲岛:赶海、美食、摄影的完美组合
登南宁青秀山,赏龙象塔,游友谊长廊:景区游玩全攻略
沙棘蝶变“摇钱树”
洋参枸杞茶:养生界的网红组合,这样喝才科学
从偶然发现到拯救生命的神药:青霉素的传奇故事
新晋影后蒋勤勤:传统文化与现代教育的平衡艺术
传统与科学双管齐下,蒋勤勤陈建斌培养全能子女
深圳公园数量达1290个,智能健身设施广受欢迎
2024年上海建成30个智慧健身中心,AI赋能全民健身升级
盐洲岛未来一周晴朗,适合打卡原生态海滨风光
盐洲岛灯塔:百年守望,见证海岛最美日出
盐洲岛黑排角:绝美海岸线上的徒步与摄影天堂