刚把这套3.6KW储能双向逆变器的原理图、PCB和源码全部整理归档,想着顺手把整个设计过程里真正卡过人的地方都写出来。这个项目做的是48V电池系统到220V交流的双向变换,拆成两级来做:前级双向同步Buck-Boost负责电池和400V母线之间的能量交换,后级单相全桥负责母线到交流负载或电网的逆变与整流。整机额定3.6KW,既可以离网带负载,也可以并网馈电,还能反向给电池充电。
这个功率段非常有意思。再往上走,4KW以上就是光伏并网逆变器和户储PCS的天下,对安规、并网认证、孤岛保护的要求直接上了一个台阶;再往下降,1~2KW又难以覆盖家庭应急、阳台光伏、房车用电这些实际场景。3.6KW正好卡在个人工程师能完整走完硬件设计、软件调试、样机验证全流程的临界点,做透了之后往5KW~10KW扩展,无非是器件并联和热设计加码,控制思路完全一致。所以这篇就把我从拓扑选型到实板调试的完整链路拆开讲,重点放在原理图设计里的保护逻辑、PCB布局里的大电流路径和信号完整性处理、以及源码里状态机与闭环控制这几个真正决定成败的环节。
1. 3.6KW的定位逻辑:拓扑选型与功率级参数估算
1.1 为什么用“48V电池 + 400V母线 + 两级变换”这个架构
储能逆变器最核心的决策不是选芯片,而是定母线电压和拓扑。我最终选了48V电池侧、400V母线侧、非隔离两级结构。48V是储能行业事实上的低压标准,16串磷酸铁锂满电58.4V,铅酸浮充55.2V,几乎所有单机3~5KW的储能产品都共用这个电压平台,器件供应链成熟,MOS管选型压力小。
两级结构在3.6KW这个功率段是唯一合理的方案。单级Boost直接升到220V交流峰值311V不是不行,但需要极高占空比,电感体积大、效率低、动态响应差。用两级以后,前级DCDC只负责把电池电压稳到400V母线,后级DCAC只负责把400V母线逆变成220V交流,两级各管各的事,控制和保护逻辑都能做得很干净。
直流母线定在400V也是有讲究的。220V交流的峰值是311V,逆变器要输出高质量正弦波,母线电压必须高于311V且留出死区补偿和电感压降的余量,400V正好让调制比控制在0.78左右,既不会过调制,又不会因为母线太高导致开关管应力过大、开关损耗飙升。母线电容我选了4个470uF/450V电解电容并联,容值计算见后文,耐压留了12%的降额,这在380V光伏母线上都够用。
1.2 前级双向Buck-Boost:同步整流决定了效率天花板
前级拓扑用的是双向同步Buck-Boost,四个管子构成两路半桥,中间夹一个储能电感。工作模式很简单:电池放电时是Boost,悬在母线侧的管子作为主开关,电池侧的管子做同步整流;电池充电时是Buck,逻辑反过来。
这里必须强调一点,同步整流不是可选项,而是效率的生死线。如果放电模式只靠体二极管续流,48V侧平均75A的电流通过二极管会产生几十瓦的导通损耗,整机效率拉到90%以下。而同步整流让电流走MOSFET沟道,压降从二极管的大约0.7V降到了导通电阻乘以电流,以8mΩ的管子算只有0.6V压降,损耗直接少一个数量级。
关键参数估算如下。设开关频率20kHz,电池电压48V,母线400V,工作在Boost模式时占空比D=(400-48)/400=0.88。取纹波电流ΔI为平均电流的20%(平均输入电流75A,纹波15A),电感量计算:
L = V_i × D / (f × ΔI) = 48 × 0.88 / (20k × 15) ≈ 141uH
实际取了150uH,双只铁硅铝磁环并联绕制。铁硅铝磁导率随直流偏置下降明显,必须查磁芯手册做直流偏置校验,否则满载电流一上来电感量可能跌去40%,纹波电流飙升,甚至饱和啸叫。这个坑后面调试章节会细说。
母线电容的容量按输出电压纹波要求反算。母线电压纹波取±20V,工频纹波100Hz,二次纹波功率约3600W,需要的电容量:
C ≈ P / (2 × π × f_line × ΔV × V_bus) = 3600 / (2 × 3.14 × 100 × 20 × 400) ≈ 1430uF
4个470uF并联是1880uF,满足要求且留有余量。注意电解电容的纹波电流额定值也要核算,单只允许纹波电流不够的话会发热鼓包,这不是容量够不够的问题,是寿命问题。
1.3 后级全桥逆变与开关管选型
后级DCAC采用单相全桥结构,四个管子两个半桥,输出经过LCL滤波后接负载或者电网。全桥拓扑上下管交替导通,电感两端电压在+400V和-400V之间切换,平均电压通过正弦脉宽调制(SPWM)控制,得到正弦电流。
全桥的好处是每个桥臂的电压利用率高,同样是400V母线,全桥输出的最大交流峰值就是母线电压,而半桥只有母线一半,所以3.6KW以上必须全桥。
开关管的选型直接决定散热设计和可靠性。母线侧和H桥都工作在400V,我用了650V的SiC MOSFET和600V的IGBT混合方案。H桥用600V IGBT(额定电流30A),因为IGBT在低开关频率下的饱和压降特性比MOSFET更有优势,而且抗短路能力强;前级升压管用650V SiC MOSFET,SiC在硬开关条件下的开关损耗远低于Si,20kHz频率下优势非常明显。电池侧的同步管用100V MOSFET,额定电流按满载75A的1.5倍选110A以上等级,导通电阻控制在5mΩ以内。所有功率管的电流应力都按最大电流的1.5~2倍选型,不能只看额定功率下的电流,还要考虑短路瞬间和负载切换的冲击。
2. 原理图设计的五块拼图:从功率级到控制级的完整链路
2.1 功率级之外的隐性核心:栅极驱动与隔离方案
原理图画起来很多人只盯着功率管的连接,实际上最容易出错的地方是驱动电路。前级四个管和后级四个管,每一路驱动都要做到“低寄生电感、强驱动能力、可靠的死区控制”。
驱动芯片我用的是带自举的半桥驱动方案。半桥驱动的低压侧直接由控制电源供电,高压侧通过自举电容从低压侧取电。这里有个关键计算:自举电容必须维持高压侧导通期间的栅极电荷和漏电流。以100nF自举电容为例,假设栅极电荷Q_g=100nC,开关频率20kHz,平均漏电流约2mA,自举电容的电压跌落ΔV=Q/C=100nC/100nF=1V,加上漏电流的影响,驱动电压会从15V跌到13V左右,仍然高于MOSFET的米勒平台电压,所以够用。但自举电容必须靠近驱动芯片放置,走线要短,否则驱动回路的寄生电感会在开关瞬间产生严重的电压尖峰。
死区时间我设了300ns。这个值不能拍脑袋:死区太小,上下管直通炸管;死区太大,输出波形畸变,THD升高。让高级定时器生成互补PWM并硬件插入死区,绝不依赖软件延时。软件死区在高负载下会因为中断响应的不确定性造成直通风险,这个教训后面还会提。
2.2 采样链路:电压、电流、温度的三路采集设计
控制算法再漂亮,采样不干净也白搭。这个项目的采样分成三组:母线电压和电池电压用差分电阻分压网络,输出交流电压用电压霍尔传感器,电池侧和输出侧电流用闭环霍尔电流传感器。
电压采样这一路我踩过最大的坑是共模干扰。直接用电阻分压到ADC引脚,母线开关节点的高dV/dt会通过寄生电容耦合到采样回路,导致ADC读数在开关瞬间大幅跳变。解决办法是分压电阻用串阻加差分结构,ADC前加一级RC低通滤波,截至频率设10kHz,既能滤除开关噪声,又不影响100Hz的工频控制。霍尔传感器输出为2.5V中心偏置的模拟电压,ADC采集后软件里减掉偏置得到带符号电流值。
温度采样用NTC热敏电阻串电阻分压,分别放在H桥散热器、升压管散热器、电感和环境温度四个点。NTC分压后经过RC滤波进ADC,阻值选取300K上拉,NTC在25度的阻值是10K,这样100度以上还有可分辨的电压变化。过热保护不光是过阈值就停机那么简单,我会做温度变化率监测,用升温速率提前告警,防止热惯性导致已经过温了才反应。
2.3 硬件保护电路:比软件更快的那道防线
软件保护再快也要经过ADC采样、比较、中断响应,至少几个微秒。但功率管短路电流在几百纳秒内就能翻倍,所以原理图上必须有一道纯硬件保护链路。
我用了比较器电路对电流采样信号做实时监控,一旦超过阈值,输出直接硬件封锁所有PWM输出,同时把故障信号锁存并上报MCU。这个锁存非常重要。如果不锁存,PWM关断后电流回落、比较器复位,PWM又会重新打开,于是进入危险的“打嗝短路”状态,几次之后管子还是炸掉。硬件保护的响应时间设计在1微秒以内,覆盖了IGBT在10倍过流下的短路耐受时间。
母线过压保护和欠压保护也做了硬件比较器回路,只是阈值不同。母线过压比较器的参考电压通过稳压管提供,比软件里的阈值更高一点,必须保证软件保护先动作,硬件保护是兜底。
3. PCB设计中的三场硬仗:电流、热量、噪声
3.1 大电流路径的铜箔与过孔设计
先算一笔账:3.6KW在48V侧额定电流是75A,在220V交流侧是16.4A。交流侧用2oz铜箔、10mm宽走线、加锡处理,载流余量足够。但电池侧的75A绝对不能靠单一平面硬扛。
计算铜箔载流的常用公式是用IPC-2221标准曲线。1oz铜箔10mm宽走线大约能走10A(温升10度),75A就需要将近8条10mm宽的1oz走线,或者用2oz铜箔加宽加厚。我做的是电池侧整块铺铜,同时在地网络上打满过孔阵列,让电流从顶层到底层平面分流,过孔数量大概每平方厘米40个。
这里要回应一个常见的问题:“0.3mm的PCB走线能过多少电流?”0.3mm宽在1oz铜箔下的载流能力大约是1A,温升10度。很多新手拿它走大电流,结果铜箔发烫甚至冒烟。即便加了阻焊开窗铺锡,0.3mm的载流能力也不会超过3A,所以大电流路径设计原则是:优先扩宽度,其次增加铜厚,最后才用多个过孔换层。
还有一个容易被忽略的细节:电池侧的输入端必须走“母线式”结构。也就是说,正极和负极走线要尽量平行、紧贴,这样电流环路面积最小,寄生电感最小。我见过很多设计正极走一圈、负极走一圈,中间隔着大面积挖空的区域,结果形成一个巨大的电流环,开关瞬间在这个环上感应出很高的电压尖峰,轻则干扰采样,重则击穿管子。
3.2 布局分区:功率区、驱动区、控制区不能混在一起
PCB布局我按三个物理分区来做:功率区、驱动隔离区、控制区。功率区在最左侧,从左到右依次是电池输入端子、前级四个开关管及散热器、电感、母线电容。控制区在最右侧,以MCU为中心。驱动隔离区在中间偏左,靠近功率管引脚。
为什么驱动区要靠近功率管?因为驱动芯片到功率管栅极的走线是整个系统中最关键的一根走线。栅极回路寄生电感与栅极电容形成LC振荡,如果走线过长,开关瞬间栅极电压会振铃,严重时超过栅极最大额定电压直接把管子打死。所以驱动芯片紧贴功率管,栅极走线尽量宽且短,并在栅极串10欧电阻抑制振铃。测过栅极波形,振铃幅值控制在5V以内。
控制区放MCU、采样调理电路和通信接口。采样调理电路与功率区之间有完整的铺地隔离带,并且关键模拟信号只在控制区内走线,绝不允许从功率区穿过去。控制区域的地是模拟地,通过一个0欧电阻或磁珠在一点连接到功率地。这样做的目的是让功率开关产生的地弹电流只在功率地回路里流动,不会污染ADC的参考地。
3.3 热设计:散热器选型与热通道规划
PCB布局上最怕的事情是热源堆在一起。升压、H桥共8个功率管,分布在两块散热器上。电池侧4只管放在较小的一块,H桥4只管放在较大的一块。每块散热器下方留足通风空间,机箱风道从前面板进风、从后面板出风,这样的主动散热效率最高。
电感是另一个不能忽视的热源。150uH的磁环绕组在满载时发热不小,铁硅铝磁环可以容忍100度以上温度,但我还是把电感放在了风扇直吹的风道位置,并且预留了5mm以上的间隔,避免热辐射直接加热旁边的电解电容。电解电容在高温下寿命衰减非常厉害,满载温度从85度降到65度,寿命能提升5倍以上。
功率区和控制区之间还加了一块铝屏蔽板,接壳地。这个东西非常管用,高压开关节点产生的辐射EMI被铝板屏蔽,控制区的MCU和模拟电路几乎不受影响。
3.4 制板前的检查清单:DRC、爬电距离与制造约束
AD20自带的DRC检查只能查连接性错误,真正决定板子能不能可靠工作的检查项要靠自己盯。我整理了一份清单:一是爬电距离,400V母线与低压控制电路之间的爬电距离至少6mm,需要在板上开隔离槽;二是布局阶段要有意识地把强电引脚的间距拉大,然后是安规距离的检查。
我习惯在投板前把PCB导出成3D图和Gerber用CAM编辑器逐层检查,重点看阻焊层开窗是否覆盖了需要加锡的走线、丝印是否压到了焊盘、钻孔层和焊盘层是否对齐。这些在AD20里看不出来的问题,到了板厂就是做错板子的直接原因。
4. 源码架构:状态机、软件PLL与闭环控制实现
4.1 代码分层的思路
主控用的STM32F334系列,选它是因为带高分辨率定时器HRTIM和高速ADC,对逆变器这类需要精确PWM和快速采样的场景非常合适。整个代码的架构按“任务级中断 + 模块化驱动 + 应用层状态机”来组织。
PWM产生放在HRTIM中断里,中断频率就是开关频率20kHz。每次进入中断,执行电流环和电压环计算,更新占空比寄存器。这里必须要用定时器更新事件触发ADC采样,而不是随机采样。如果ADC采样时刻不固定,不同开关周期采样到的电流纹波位置不一样,环路看到的是一个跳变的电流信号,PI输出会抖,波形会毛。
ADC采样在硬件触发下进行,采样窗口对准PWM开关周期内的中点。因为电感电流在这个时刻正好等于平均电流,纹波分量最小。这个细节直接影响控制精度。很多新手发现电流波形毛刺严重,其实就是采样时刻没有对准平均电流点。
4.2 顶层状态机:从启动到停止的每一步保护逻辑
整机运行状态我用一个状态机来管理:初始化→待机→预充电→软启动→并网/离网运行→故障停机。每个状态转换都有严格的进入条件和超时看门狗。
初始化状态做寄存器配置和自检,读取EEPROM里的用户参数。待机状态等待启机指令,同时母线电容通过软启动电阻预充电。预充电这一步很多人省略,但这是保护母线电容和防止上电冲击电流的关键:断电状态下母线电容是0V,直接闭合主继电器的话,电池会瞬间给电容充电,充电电流只受回路电阻限制,可以达到几百安培,把继电器触点烧蚀。
所以预充电状态是:先闭合预充继电器,电池通过限流电阻给母线电容充电,等母线电压升到电池电压的90%以上,再闭合主继电器并断开预充继电器。整个过程约1秒。如果母线电压一直升不上去,说明回路有明显的短路或者电容失效,状态机进入故障,拒绝闭合主继电器。
软启动状态里,DCDC从0开始缓慢抬升母线电压,H桥输出从小幅度正弦波逐渐增加到额定幅度。这样做的目的是避免变压器、电感这类磁性元件在开机瞬间由于磁通饱和产生巨大冲击电流。
4.3 软件锁相环:并网模式下同步电网电压
离网模式对软件锁相环没有要求,只需输出稳定的50Hz正弦波。并网模式就必须准确同步电网电压的相位和频率,否则并网瞬间会产生巨大的电流冲击,直接触发硬件保护。
锁相环我选了不用调整参数的方案:用正弦和余弦两路正交分量做比较,把电网电压的相位误差收敛到0,这样在电网频率波动时也能准确跟踪。在DSP里实现,锁相环的带宽设在10Hz左右,既能有不错的动态跟踪速度,又不会因为电网扰动导致相位抖动。
单片机锁相环的线性化分母就是额定频率,一般在2π×50。带宽参数通过离散化方法变成PI系数,采样周期固定为1/10kHz。具体的系数整定我用了一个简单的带宽换算:锁相环PI系数满足比例系数和带宽成正比,积分系数和带宽的平方成正比,只要理解了这两个关系,任何频率平台都能快速配置。
4.4 双闭环PI控制的参数整定方法
控制环路是电流内环加电压外环。电流环采样电感电流,输出PWM占空比;电压环采样输出交流电压(离网模式)或母线电压(充放电模式),输出电流环的给定值。
电流环的PI参数整定我用工程方法,不靠盲调。电感150uH,开关频率20kHz,采样电阻把电流转换成电压,放大倍数固定。电流环的开环传递函数首先要让PI的零点抵消掉电感这个极点,也就是PI的积分时间常数约等于感值除以电阻值,然后比例系数由所需的带宽决定。我实测带宽1.5kHz左右,动态和噪声抑制平衡得不错。
电压环的带宽要远低于电流环一个数量级,否则两级环路相互干扰。离网模式下电压环带宽取100Hz,它对电流环而言是慢变量,对工频正弦波输出又足够快。调试时先调内环再调外环:给电流环一个阶跃给定,观察电流响应是否超调;再给电压环阶跃,观察电压稳定时间。PI参数在运行温度范围内不会有明显漂移,但在电感轻微饱和时电流环仍然稳定,说明裕量是足够的。
5. 实板调试:从预充电到并网运行,那些炸管前的危险信号
5.1 首次上电的安全操作顺序
实板调试必须严格按“低压→高压、轻载→满载、开环→闭环”的顺序推进。第一次上电只接辅助电源,确认MCU工作正常、PWM波形正确、驱动芯片输出正常,栅极波形没有振铃和直通。这一关不过就继续检查硬件,绝不往下走。
第二步用电池侧低压大电流电源(比如可调线性电源限流到5A)给母线电容预充电。同时用示波器同时看母线电压和H桥输出,确认没有异常振荡。低压环境下的带载测试可以把功率降到几百瓦,用电阻假负载做功率管温升预判。
第三步才逐步提高输入电压到48V、负载到3.6KW。期间全程用热像仪监测每个功率管的壳温。如果某个管子温度明显高于其他管,要立刻停机检查,这往往意味着驱动信号有问题或散热器接触不良,继续跑下去就是炸管。
5.2 常见故障的排查链路:以电感啸叫为例
调试中遇到最典型的故障是满载时电感发出尖锐啸叫,同时输入电流波形出现幅度很大的低频振荡。我的排查链路是:先确认这不是控制环失稳,然后测量电感电流纹波,发现纹波频率是开关频率的一半,且幅度远大于设计值十几个安培。再进一步查,发现磁环在75A直流偏置下有效磁导率掉到了初始值的60%,实际感值从150uH掉到了90uH,纹波电流自然就大了。
解决方法是换更大尺寸的磁环、增加圈数,或者用两个磁环并联。我最终用了两个磁环并联绕制,这样单只磁环的直流偏置更低,感值跌落控制在20%以内,满载纹波电流降回15A以内,啸叫消失。
这个排查过程告诉我们,磁性元件设计必须查磁芯手册的直流偏置曲线,不能只看无偏置下的电感量。很多从原理图仿真直接抄到PCB上的人,就是在这里踩坑。
5.3 并网调试中的相位与死区补偿
并网模式调试要格外小心,因为电网是电压源,逆变器本质上是通过控制电流来交换功率。第一次并网要在电网电压过零时闭合主继电器,并且PWM输出先置为0,等检测到电网电压与自身输出电压一致再加载电流给定,这样可以避免并网瞬间的环流冲击。
死区对并网波形的影响在低功率下特别明显:输出电流过零点附近会出现波形畸变,总谐波畸变率升高。原因是死区期间电感的续流路径改变了输出电压的有效值。解决办法是在软件里做死区补偿,根据电流方向实时修正占空比:电流为正时,下管死区导致输出电压降低半拍,补偿量为死区时间对应的占空比;电流为负时反向补偿。实测补偿后满载THD从5%降到2%以下,效果非常直接。
并网测试一定要从最小功率开始,比方说先以100W并网,确认有功功率方向正确、直流母线电压稳定,再逐步加大到3.6KW。我见过有人第一次并网就上大功率,母线电压瞬间被电网拉低触发硬件保护,整机直接跳闸,万幸器件没烧。
6. 个人实测记录与后续扩展方向
样机调试完成后我做了几组关键数据记录:48V电池充放电全程,放电3.6KW时母线电压稳定在398V,波动±5V,输出交流波形THD在1.8%,整机最高效率在负载2.5KW处效率接近92%。充电模式下从交流侧吸收3.6KW给电池充电,电池电压从44V抬升到58V过程中,前级Buck模式工作稳定,母线电容纹波电流引起的温升在可接受范围。
整个设计中最容易从“能跑”到“跑得稳”拉开差距的地方,我认为是三点:电流采样点的选择与布局、磁性元件的直流偏置设计、以及软硬件两级保护的无缝配合。这三点做不好,波形也能出来,但负载一动态变化就露馅。
后续想继续扩展的方向是把这个平台改成双向三相版本,拓扑换三桥臂,控制上要加DQ旋转坐标系和SVPWM。单相平台积累的锁相、状态机、硬件保护和调试方法论都能直接迁移,真正需要重写的部分主要是旋转坐标变换和三相调制。这套3.6KW单相的软硬件文件,作为个人学习和二次开发的起点足够用了。