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
热门推荐
心学问心理教育,梦想启航的舵手:家庭如何引导孩子勇敢追求梦想
4S店修车提供备用车吗?事故车维修期间能不能申请备用车?
科比·布莱恩特:NBA史上最伟大的球员之一
有机茶种植技术要点(建议收藏)
健康烹饪技巧,保留食物营养的科学方法
急性早幼粒细胞白血病药物治疗
无名指的寓意:探索戒指文化中无名指的特殊象征意义
3千瓦用电器所需电线规格全解析
Windows系统通过MSTSC上传文件到Windows云服务器
旺旺雪饼热量是多少?一天吃几个不会胖
年度煤炭报告:全球煤炭交易量创新高,中国继续主导世界趋势
公平竞赛还是作弊?兴奋剂问题大揭秘
理解边际替代率:经济学中的关键概念解析
东风日产探陆颗粒捕捉器堵塞该如何处理?
古蝉的“飞行竞赛”:中生代天空的进化奇迹
如何建立有效的渗透测试流程
RCO活性炭吸附脱附催化燃烧设备在废气处理中的重要作用
最新进展!合肥多个重点工程正在加速建设
羊急性脑炎症状及治疗
如何应对老年人的进食障碍
湘江边的芦苇荡为何没了?园林释疑:定期清理利于防火和保护环境
一次卖出分次卖出:股票交易手续费详解
有一种“痛不欲生”叫做三叉神经痛
以数字经济为动力培育新质生产力
法律大白话明民法:让复杂法律条文通俗易懂的实践与意义
下背下肢痛到不能走!医生建议:多方咨询、揪出根本原因
全球航天新动态:星舰试飞、月球探索与国际合作
手串配珠尺寸指南:如何选择合适的顶珠以达到更佳效果
你不了解的膳食纤维:藏在日常饮食中的健康秘密
重磅│重药控股加入通用技术集团