news 2026/9/17 19:05:07

15kW充电桩电源模块拆解:PFC+LLC设计全流程解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
15kW充电桩电源模块拆解:PFC+LLC设计全流程解析

简介:面向电力电子与新能源充电设施研发人员,这份资料围绕台达电源15kW充电桩三相电源模块展开,涵盖主电路拓扑、控制逻辑与工程实现。压缩包共190个文件,约6.32MB,以C语言源文件(.c/.h)、原理图(.sch)、PCB设计文件(.pcb)及工程配置为主,另有PFC控制、PWM调制、故障保护等代码模块,便于对照学习三相整流、功率变换与数字控制策略。资源包还包含计算书与设计文档,可追溯变压器容量、滤波器参数等关键计算过程。目前已有1259人学习下载,适合具备一定电力电子基础的工程师深入理解三相充电桩电源从原理图到PCB布局、从底层驱动到系统保护的全链路设计思路,也可为相关项目开发提供直接参考。

1. 从一张15kW板子看懂充电桩电源模块的设计闭环

15kW的充电桩电源模块,拆开外壳就是一块典型的“PFC+LLC”两级结构:前级把三相或单相交流电抬成稳定的高压直流母线,后级做隔离降压,输出给车载电池充电。台达这类模块的电路图、PCB和源代码之所以在工程师圈子里被反复检索,是因为它完整呈现了功率变换从拓扑选型到环路整定的全过程,比任何教材都更接近量产工程的真实取舍。

能搜到这个标题的人,多半不是要抄板,而是手里正拿着一个模块无从下手:不知道先看电路图的哪一部分,不知道PCB上那些开槽和走线为什么这么画,也不知道固件里那些看门狗和状态机到底在干什么。这篇文章就按“电路图→PCB→源代码→验证”的顺序,把一块15kW模块的设计意图拆开讲,不绕概念,直接落参数和建议。

2. 电路图怎么拆:从PFC到LLC再到同步整流的信号流

2.1 先定位三级功率结构,再谈细节

拿到一张台达15kW电源模块的原理图,如果从头到尾逐节点看,很快就会迷失在几十页的分页图纸里。正确做法是先按功率流向划成三段:输入整流与PFC、隔离DC-DC(LLC)、同步整流与输出。这三段在原理图上通常用不同的图纸页或标注明显区分,台达的图纸习惯还会在每页右下角标注该页的功率等级和功能块。

第一段PFC电路负责把交流电整流成大约380~400V的直流母线。之所以选PFC,是因为充电桩是并网设备,对输入电流谐波有强制限值;15kW这个功率等级如果没有PFC,5次和7次谐波会大到电网侧直接告警。台达的15kW模块多数采用交错并联Boost结构,用两相或三相交错来减小输入电流纹波,原理图上能看到两组并联的Boost电感、开关管和二极管,以及共用的电压环和电流环控制器。

第二段LLC电路承担隔离和电压变换。LLC在充电桩电源里几乎是标准选择,因为它能在宽输入电压和宽输出电压范围内实现零电压开关,效率可以做到97%以上。原理图上,LLC这一级有两个关键特征:一是有一个较大的谐振电感(有时与变压器集成,名叫“集成式LLC”),二是有一组谐振电容串联在变压器原边。全桥LLC通常用四个开关管,半桥则用两个,15kW模块基本都采用全桥结构以分摊电流应力。

第三段是副边同步整流。次级绕组输出的是高频方波,经过整流和滤波变成稳定的直流。同步整流用MOSFET替代二极管,是提升满载效率的必选项。原理图上,同步整流管往往紧靠变压器副边绕组,旁边有检测次级电流或电压的电路,用于生成驱动时序。

2.2 重点看PFC控制器的关键引脚连接

看PFC部分时,优先看控制芯片(常见的有TI的UCC28180或英飞凌的ICE3PCS01G)的引脚连接。以UCC28180为例,需要重点核对以下环节:

  • COMP引脚:误差放大器的输出,它连接一只电容或一个RC网络到地。这个引脚上的电阻电容决定了电压环的穿越频率和相位裕度。
  • ISENSE引脚:电流检测信号的输入,通常从电流互感器或采样电阻引出。看这个引脚的滤波电路,RC时间常数一般设置在开关频率的1/3左右。
  • VINSENSE引脚:输入电压检测分压点,用于前馈和过压保护。
  • GD引脚到MOSFET栅极之间:看是否有栅极驱动电阻,阻值范围从2.2Ω到10Ω不等,阻值大开关慢但EMI会好一些。

提示:不要在一开始就纠结PFC电感的具体匝数和气隙长度,那是电磁设计的事。把控制环路的补偿网络参数记录下来,后面调机时才是真用得上的东西。

2.3 用一段Python脚本自动提取原理图中的关键网络

如果想快速定位原理图里所有与PFC相关的网络,可以用KiCad的Python API批量扫描。虽然台达原厂源文件未必是KiCad格式,但很多维修和逆向工程师会先把图纸转成KiCad再分析。下面这段脚本可以直接读KiCad原理图文件,输出所有网络和引脚连接。

import re def parse_sch_netlist(sch_path): nets = {} with open(sch_path, "r", errors="ignore") as f: content = f.read() # 匹配网络定义行,格式类似 (net (code "12") (name "PFC_GATE_A")) for m in re.finditer(r'\(net\s+\(code\s+"(\d+)"\)\s+\(name\s+"([^"]+)"\)\)', content): code, name = m.group(1), m.group(2) if "PFC" in name.upper() or "LLC" in name.upper(): nets[code] = name # 匹配元件引脚连接,格式类似 (node (ref "Q3") (pin "G") (net "12")) for m in re.finditer(r'\(node\s+\(ref\s+"([^"]+)"\)\s+\(pin\s+"([^"]+)"\)\s+\(net\s+"(\d+)"\)\)', content): ref, pin, net_code = m.group(1), m.group(2), m.group(3) if net_code in nets: print(f"{nets[net_code]:20s} <- {ref}.{pin}") parse_sch_netlist("delta_15kw.sch")

这段脚本先用正则表达式找出所有含PFCLLC字样的网络名,再遍历元件引脚连接,打印出这些网络挂载了哪些元件的哪个引脚。用这种脚本过滤低信息量的页连接符号,可以直出“PFC_GATE_A挂到Q3栅极”这类结论,比人眼一页页翻靠谱得多。

参数说明:脚本里code是网络编号,name是网络名,关键是名称匹配用了upper()避免大小写问题。有些网表会写(net “12” “PFC_GATE_A”)这种顺序,需要相应调整正则。

3. PCB布局与走线:15kW的功率回路怎么排不炸板

3.1 大电流走线的载流能力估算

15kW模块的输出电流在低压充电桩场景下可能高达40A(假设输出375V/40A),在高压快充场景(输出750V/20A)也不算小。PCB走线的载流能力必须提前算,否则铜箔温度会直接击穿绝缘涂层。

IPC-2221的公式是常用的估算基准:

import math def trace_current_limit(width_mm, thickness_um, temp_rise_c=20): """ 计算PCB走线的载流能力 width_mm: 走线宽度(mm) thickness_um: 铜厚(um) temp_rise_c: 允许温升(°C) """ area_sq_mil = (width_mm * 39.37) * (thickness_um / 25.4) # IPC-2221 外层走线常数为 0.048 current = 0.048 * (temp_rise_c ** 0.44) * (area_sq_mil ** 0.725) return current # 单位为安培 for w in [3, 5, 8, 10]: i = trace_current_limit(width_mm=w, thickness_um=70, temp_rise_c=20) print(f"宽度 {w}mm @ 70um铜厚,20°C温升 -> {i:.1f}A")

输出结果大致为:5mm宽70um铜可走约20A,10mm宽可走约35A。有一点很重要:公式计算的是一个保守值,实际还要考虑走线周围的铺铜面积。如果走线旁边是大面积地铜(通常是功率地网络),散热条件好,可以适当放宽15%左右。

在15kW模块的PCB上,常见的做法是把主功率走线放在外层并开窗加锡,以增加等效铜厚。开窗是指去掉阻焊层,让裸铜暴露,后续在波峰焊时自然挂上一层锡;维修或逆向时如果看到功率走线上一条亮银色,往往是加锡的结果,而不是设计失误。

3.2 高频功率环路的面积控制

15kW模块的开关频率通常在60~200kHz之间,PFC级和LLC级的开关回路面积直接决定辐射EMI的水平。PCB上如果高频环路面积过大,磁场辐射会超标,整改EMI时加再多磁珠都压不下来。

重点关注三个环路:

  • PFC Boost的开关环路:从输入电容正极→升压电感→开关管→二极管→电容负极。这个环路的面积要尽可能小,走线要短而宽,最好在平面层直接跨越。
  • LLC全桥的对角开关环路:Q1和Q4同时导通时,电流路径要紧凑。原理图上镜像对称的开关管,在PCB上也要尽可能做成交叉短接的布局。
  • 副边同步整流的电流环路由变压器次级绕组到整流管再到输出电容。

判断一个环路好坏的最快方式是看PCB上对应面积的“包围圈”大小。在Altium Designer或KiCad中,可以用“测量两个节点间最短路径”的功能快速估算,但更好的办法是在布局阶段就以桥臂中点为起点画一个闭合矩形检查边界。

3.3 用DRC从源头拦截工艺问题

15kW电源板的PCB设计规则比普通数字板严得多。下面是宜配套的一组规则基准,按常见的4层板设计:

项目常规值功率板建议说明
最小线宽6mil10mil(信号)/60mil(功率)功率线宽由载流算,不是越小越好
最小间距6mil12mil(高压区)/20mil(AC与DC间)高压爬电距离优先,不行就开槽
最小钻孔尺寸0.2mm0.3mm大电流过孔需0.5mm以上,并加叠加过孔
丝印字宽4mil5mil板厂成品率更高
阻焊桥3mil5mil防止大电流焊点间连锡

在AD中把这些写进Design Rules并跑一次完整的DRC(Design Rule Check),重点看两类错误:一类是Clearance Constraint,另一类是Hole Size Constraint。功率板出现这两类问题的比例极高。

提示:DRC不能覆盖热设计。铜皮上的过孔矩阵(via stitching)是为了散热和均流,DRC不会替你判断“这一排过孔是不是太多导致返工”。建议在DRC后,还要检查过孔区域的铜皮连通性,尤其是多颗并联MOSFET下方的散热过孔是否完整落入焊盘。

3.4 热设计决定布局的边界

PCB布局不只是电性能问题,15kW的功率损耗集中程度很高。PFC电感、LLC变压器、整流桥、同步整流MOSFET,这些器件表面可能在满载时发热到100°C以上。布局阶段就要为每个发热器件预留散热路径。

台达这类模块板的典型做法是:把发热量最大的器件(LLC变压器和同步整流MOS管)放在同一边,让风道可以直线穿过散热鳍片;控制芯片和采样电路放在相对低温的进风侧。这一点在逆向PCB走线时很容易发现——控制IC几乎不会挨着变压器,中间一定会隔一段隔离带或铺地。

4. 源代码看什么:环路控制、状态机与保护逻辑的切入点

4.1 源码的目录结构先暴露了系统复杂度

一台15kW充电桩电源模块的源代码,按功能划分通常包含电源控制(PFC/LLC)、通信协议(CAN或PLC)、状态管理(待机、启动、充电、故障)、采样校准与保护判断。拿到一个未知工程的源码包,第一件事不是打开主函数,而是看一眼目录结构:

# 查看源码目录结构(假设压缩包已解压) find . -maxdepth 2 -type d | sort

合理的目录结构至少会有pfc/llc/protection/comm/adc/几个子目录。如果所有文件堆在一个目录里,说明工程管理比较随意,读起来要更小心,这类工程往往缺少有效版本控制,宏定义的命名也可能不一致。

4.2 从三处核心代码建立整体认知

第一处是PFC控制的中断服务函数。这个函数通常在PWM周期中断里被调用,频率与开关频率一致。重点关注电流内环的PI参数如何更新,以及是否有输入电压前馈项;前馈的存在与否决定了母线电压在电网波动时会不会明显下坠。

第二处是LLC的频率调制逻辑。LLC用频率调节输出电压,源码里能看到从PID输出到频率换算的公式;典型代码表现为“电压误差→PI→压控振荡器映射”。值得特别记下来的参数是最大频率和最小频率的钳位值——它们对应调压范围的两个极值。如果钳位值限得太窄,输出电压会在轻载时失控;限得太宽,开关管会进入容性区,轻则啸叫,重则炸管。

第三处是状态机。充电桩与普通电源最大的区别是:输出不是简单上电就有电压,而是先通过预充电回路给电池侧的电容充电,到电压平衡后再闭合主接触器。一个完整的充电状态机通常有四到六个状态:IDLE → PRECHARGE → CONSTANT_CURRENT → CONSTANT_VOLTAGE → CHARGE_DONE → FAULT。源码里的状态转换条件比采样滤波更容易被看懂,也适合用来反推硬件上每个继电器的动作时序。

4.3 用grep快速定位一组常用的保护阈值

定位保护阈值在源码里的位置是阅读固件的常用突破口。例如查找过温保护值:

grep -rn "OTP\|OVER_TEMP\|OVERTEMP" src/ --include="*.c" --include="*.h"

也可以一次性查完所有与故障相关的宏定义:

grep -rEn "FAULT_(OVP|UVP|OCP|OTP|COMMS)" src/config/ | head -50

这类搜索的价值在于:故障宏的命名风格会告诉你这个工程的“工程味”有多浓。好的工程会有明确的FAULT_前缀,并且每个故障码对应一个唯一位定义;混乱的工程则会在一堆数字魔数里混入注释,例如if (temp > 85)而不是if (temp > OTP_LIMIT_C)

查找之后建议画一张表格,记录每个故障码对应的触发条件和恢复条件。恢复条件尤其关键:是自恢复还是需要掉电重启,直接决定了现场运维是不是需要人工介入。

4.4 用一段脚本扫描源码里被注释掉的代码

被注释掉的代码在量产固件里是重要信号——它不是背景噪音,而是之前的调试现场。通过扫描可以快速找出所有被注释的函数或条件块:

# 查找被注释的代码行(支持以 #if 0 形式整体屏蔽的块) grep -n "^#if 0" -r src/ --include="*.c" --include="*.h" # 同时找出行尾注释中含有 TODO/FIXME 的标记 grep -rEn "TODO|FIXME|HACK" src/ --include="*.c"

#if 0块往往保留了旧版算法或已废弃的调试代码;TODOFIXME标记则标示出原工程师自认未完成或不确定的地方,这些位置常常与现场故障有对应关系。如果看到“FIXME: check if this affects comms timeout”,那通信看门狗相关的逻辑很可能是隐患集中区。

5. 验证三板斧:双脉冲测试、满载热循环和DRC复验

拿到一张已恢复的PCB或一套仿制固件,上电前先按下面三个维度做验证,都比直接满载开机安全得多。这三项验证也是电路图和PCB数据能用得上的关键步骤。

第一板斧:双脉冲测试。这个测试专门验证功率MOSFET的开关特性——开通延时、关断延时、米勒平台高度和关断电压尖峰。把示波器探头接到低压端MOSFET的Vds和Vgs上,用信号发生器输出两个宽度可调的窄脉冲,第一个脉冲建立电感电流,第二个脉冲看关断特性。理想波形是:Vds关断尖峰不超过额定电压的80%,Vgs的米勒平台清晰可见且无振荡。如果Vds尖峰高过100%,说明Layout的寄生电感还是偏大,优先检查栅极驱动回路的面积。

第二板斧:满载热循环。用电子负载或者真实电池负载跑一个“空载→满载→空载”的循环,每个阶段持续15分钟,同时记录关键点温度。热循环做不到位的主要问题是虚焊:功率管焊盘下方有空洞或焊接不完全,热态下器件局部高温,冷却后又能恢复正常。测量点至少要覆盖变压器磁芯、PFC电感磁芯、整流桥散热片和开关管表面。热像仪在这个阶段比热电偶效率高得多,可以直接看出哪一颗管子温度异常。

第三板斧:DRC和DFM复验。把最终版PCB文件重新跑一遍DRC,结合板厂的制造能力表检查三项:最小线宽/间距是否在可制造范围、钻孔的纵横比是否超标(孔深超过孔径6倍需要盲埋孔工艺)、铜厚和阻焊层的搭配是否正确。这一步看起来简单,但在“改了一版电源板只调了一根走线”的情况下最容易被跳过。跳过它的后果是:板厂打样的良率下降,维修时反复出现桥连或断板。

这三个顺序不能乱:先测单管开关特性,再测整机热表现,最后做工艺复核。测试时人不要站在机柜正前方,大功率电源在故障时释放的能量足够把接触器触头熔焊,你听到的“炸”声永远比保护快。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 19:02:36

PEL语言入门:交易逻辑形式化与金字塔系统实战要点

简介&#xff1a;本资源是面向程序化交易初学者的《金字塔决策交易系统_初级教程&#xff08;2016新版&#xff09;》完整入门指南&#xff0c;专为零编程基础的金融从业者、量化爱好者及期货/股票/期权交易者设计&#xff0c;旨在系统培养PEL语言编写能力与策略落地能力。文档…

作者头像 李华
网站建设 2026/9/17 18:59:22

80V/8A异步降压控制器实战:从BUCK原理到48V转12V模块设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/17 18:57:27

编译原理词法分析器实战:Token扫描、最长匹配与错误恢复

如果你正在上编译原理这门课&#xff0c;大概率会在开课三五周之后收到第一份实验任务&#xff1a;实现一个简单的词法分析器。很多人拿到题目第一反应是"这不就是个字符串切割吗"&#xff0c;然后花一个晚上写了两百行 if-else&#xff0c;跑通课本上那几行示例就交…

作者头像 李华
网站建设 2026/9/17 18:54:48

AD域架构详解:父域、子域、树域、林域的区别与实战部署

很多企业IT管理员第一次接触Windows域环境时&#xff0c;都会被“父域、子域、树域、林域”这四个概念绕晕。我在给客户做架构评估时经常遇到这种状况&#xff1a;域控已经搭了几个&#xff0c;名字看着像一家子&#xff0c;但你要问他们林子里的信任关系是怎么走的、子域和树域…

作者头像 李华