ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

非晶磁芯+SG3525+STM32:12V转220V逆变器效率95%实战

非晶磁芯+SG3525+STM32:12V转220V逆变器效率95%实战 1. 项目概述与核心需求解析1.1 这个逆变器到底解决什么问题12V转220V逆变器在DIY圈子里一直是个热门话题但大多数人做出来的东西效率能到80%就算不错了发热严重、带载能力差、波形难看是常态。这次我用的方案核心思路很明确用非晶磁芯替代传统铁氧体磁芯做推挽升压变压器配合SG3525产生SPWM驱动信号目标是把整机效率拉到95%左右。非晶磁芯这东西以前主要用在工业级开关电源里贵是真贵但磁导率高、铁损低、饱和磁感强度大用在推挽拓扑上优势非常明显。传统铁氧体磁芯在20kHz以上频率工作时涡流损耗和磁滞损耗加起来能吃掉不少效率非晶材料在这方面表现好得多。我实测对比过同样绕制参数下非晶磁芯的温升比铁氧体低了将近15摄氏度。这个项目适合谁如果你已经做过简单的逆变器比如用SG3525直接驱动MOS管做方波输出想进一步提升效率和波形质量那这个方案非常适合你。如果你是完全的新手建议先把基础的自激振荡逆变电路玩明白再来看这个不然调试阶段会很痛苦。1.2 为什么选推挽升压加SPWM这个架构逆变器的拓扑结构选择直接决定了效率和复杂度。常见的小功率逆变方案有几种单端反激、推挽、全桥、半桥。反激适合小功率但效率上不去全桥需要四个管子驱动复杂半桥功率利用率低。推挽拓扑在12V输入这个电压等级下是最优解原因很简单12V电压低推挽的两个管子交替工作每个管子承受的电压是输入电压的两倍也就是24V选60V或100V的MOS管绰绰有余导通电阻可以选很小的型号导通损耗自然就低。后级用SPWM调制而不是方波是为了得到接近正弦波的输出。方波逆变器带阻性负载还行带感性负载比如电机、风扇就会有问题转矩脉动大、噪音大。SPWM调制出来的波形经过LC滤波后能得到比较干净的正弦波THD可以控制在5%以内。这里要提一句SPWM的线电压利用率最高只有86.6%这个说法计算过程是这样的SPWM调制时输出相电压的基波幅值最大为直流母线电压的一半也就是Vdc/2。线电压幅值就是Vdc/2乘以根号三约等于0.866Vdc。所以线电压利用率就是86.6%。这个数据在选母线电压和变压器变比的时候要重点考虑不然输出带载后电压会掉得厉害。1.3 核心材料清单与选型依据先把材料清单列出来后面再逐项解释为什么这么选。材料名称规格型号数量备注非晶磁芯环形外径40mm内径25mm高15mm2只可拆自旧开关电源MOS管IRF3205或IRFP41104只前级推挽2只后级H桥4只驱动芯片SG35251只前级PWM生成驱动芯片IR21102只后级H桥驱动单片机STM32F103C8T61只SPWM生成快恢复二极管MUR15604只后级续流电解电容4700uF/25V2只前级滤波薄膜电容10uF/400V2只后级滤波漆包线1.2mm和0.8mm若干绕制变压器散热片铝制100mm×50mm×20mm2块前级后级各一块洞洞板或PCB10cm×15cm1块电路搭建非晶磁芯选环形而不是EE型是因为环形磁芯漏磁小、绕线方便推挽变压器需要紧密耦合来减少漏感。外径40mm这个尺寸能容纳足够的绕线窗口面积功率做到300W到500W没问题。如果你手头有旧电脑电源或者工业电源上的非晶磁芯拆下来用完全可行注意别把磁芯磕碎了非晶材料脆性大。MOS管选IRF3205是因为它的导通电阻只有8毫欧Vds是55V推挽拓扑下12V输入时管子承受24V留了一倍余量。后级H桥用IRFP4110100V耐压导通电阻4.5毫欧驱动电流大适合SPWM调制。2. 非晶磁芯变压器的绕制与参数计算2.1 非晶磁芯相比铁氧体的真实优势很多人知道非晶磁芯好但说不清楚好在哪里。我从实际测试的角度来说铁氧体磁芯的饱和磁通密度一般在0.3T到0.4T之间非晶磁芯可以做到1.2T到1.5T。这意味着同样截面积的磁芯非晶能传输的功率大得多。换句话说做同样功率的变压器非晶磁芯的体积可以小很多。铁损方面差距更大。铁氧体在20kHz时的铁损大概是每立方厘米100mW到200mW非晶材料在同样频率下只有20mW到30mW。这个差距在满载长时间工作时体现得非常明显铁氧体变压器跑半小时就烫手非晶的只是温热。但非晶磁芯也有缺点价格贵大约是铁氧体的三到五倍脆性大摔一下就裂绕线窗口通常比较小绕制难度高。所以我的建议是如果你只是做个实验玩玩铁氧体就够了如果要长时间满载运行或者对效率有硬性要求非晶磁芯值得投入。2.2 推挽变压器匝数比的计算过程推挽变压器的匝数比决定了输出电压。前级12V输入经过推挽升压后要得到约340V的直流母线电压供后级SPWM逆变使用。为什么是340V因为220V交流电的峰值是220×1.414≈311V加上后级管压降和滤波余量母线电压取340V比较合适。推挽变压器的次级电压和初级电压的关系是Vs Vp × (Ns/Np) × 2D其中D是占空比最大不超过0.45留死区时间。SG3525输出的PWM占空比设定在45%左右那么340V 12V × (Ns/Np) × 2 × 0.45解出来Ns/Np ≈ 31.5。取整为32也就是初级绕3匝次级绕96匝。实际绕制时初级用1.2mm漆包线双线并绕3匝次级用0.8mm漆包线绕96匝分两层绕制层间加绝缘胶带。这里有个经验初级匝数不能太少否则励磁电流大磁芯容易饱和。3匝是在12V输入下的最低安全值如果你用的磁芯截面积偏小建议增加到4匝次级相应改为128匝。2.3 绕制工艺与绝缘处理要点绕制顺序很关键。先绕初级双线并绕保证两个推挽绕组的对称性不对称会导致推挽工作时两个管子的电流不平衡一个管子发热严重。初级绕完后包两层聚酯绝缘胶带再绕次级。次级分两层绕先绕48匝包一层绝缘胶带再绕48匝最后再包两层绝缘胶带。线径选择也有讲究。初级电流在满载500W时大约是500W/12V/0.85≈49A这个电流很大所以初级必须用粗线或者多线并绕。1.2mm漆包线的截面积约1.13平方毫米载流量按4A每平方毫米算能过4.5A远远不够。所以实际要用多股并绕我用了6股1.2mm并绕总载流量约27A配合强制风冷可以短时间跑满载。次级电流小得多500W/340V≈1.5A0.8mm漆包线截面积0.5平方毫米载流量2A刚好够用。但考虑到趋肤效应高频电流走导线表面实际有效截面积更小所以次级用0.8mm是合适的再细就不行了。注意非晶磁芯绕线时不要用力过猛磁芯边缘很锋利容易割破漆包线绝缘层。建议先用砂纸把磁芯边缘打磨圆滑或者套一层热缩管保护。3. SPWM驱动信号生成与STM32实现3.1 为什么用STM32而不是专用SPWM芯片市面上有EG8010、SG3525加正弦波调制等方案但STM32方案的优势在于灵活。EG8010是专用逆变芯片外围简单但死区时间、载波频率、调制比都是固定的改不了。STM32可以通过定时器灵活配置想改频率改频率想调死区调死区还能加各种保护逻辑。我用的是STM32F103C8T6定时器1产生两路互补的SPWM定时器2产生前级SG3525的同步信号。具体做法是用定时器1的中心对齐模式ARR设置为载波周期的计数值CCR寄存器按照正弦表更新。正弦表用256个点查表法生成计算量小实时性好。载波频率选20kHz刚好在音频范围之上人耳听不到啸叫。死区时间设为1微秒这个值是根据IR2110的传输延迟和MOS管的开关时间算出来的。IR2110的传输延迟约200纳秒MOS管IRFP4110的开通延迟约20纳秒关断延迟约60纳秒加起来不到300纳秒留1微秒死区绰绰有余还能避免上下管直通。3.2 正弦表生成与定时器配置代码正弦表用Python生成直接贴代码import math points 256 table [] for i in range(points): value int(3600 * math.sin(2 * math.pi * i / points) 3600) table.append(value) print(const uint16_t sin_table[256] {) for i in range(0, len(table), 8): print(, .join(str(v) for v in table[i:i8]) ,) print(};)这里3600是中心值对应定时器ARR的一半。ARR设为7200那么CCR值在0到7200之间变化占空比从0%到100%。正弦表的值在0到7200之间中心是3600对应50%占空比。定时器配置的关键参数// 定时器1配置中心对齐模式20kHz载波 TIM1-ARR 7200 - 1; TIM1-PSC 0; // 72MHz主频不分频 TIM1-CR1 | TIM_CR1_CMS_0; // 中心对齐模式1 TIM1-CR1 | TIM_CR1_ARPE; // 自动重装载 TIM1-BDTR | 72; // 死区时间1us TIM1-CCMR1 | TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; // PWM模式1 TIM1-CCMR1 | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2M_1; TIM1-CCER | TIM_CCER_CC1E | TIM_CCER_CC2E; // 使能输出 TIM1-BDTR | TIM_BDTR_MOE; // 主输出使能中断服务函数里更新CCR值void TIM1_UP_IRQHandler(void) { static uint16_t index 0; TIM1-SR ~TIM_SR_UIF; TIM1-CCR1 sin_table[index]; TIM1-CCR2 sin_table[(index 128) % 256]; // 相差180度 index (index 1) % 256; }这样就能得到两路互补的SPWM信号频率50Hz载波20kHz。3.3 前级SG3525的配置与同步前级SG3525产生推挽驱动信号频率设为40kHz这样变压器工作频率就是40kHz比后级载波20kHz高避免相互干扰。SG3525的振荡频率计算公式是f 1.3 / (Rt × Ct)。取Rt10kΩCt3.3nF算出来f≈39.4kHz接近40kHz。SG3525的引脚5和引脚6接Rt和Ct引脚8接软启动电容取4.7uF软启动时间约100ms避免上电瞬间冲击电流过大。引脚10接关断控制用于过流保护当检测到前级电流过大时拉高引脚10SG3525立即关断输出。推挽驱动的两路输出分别接两个IRF3205的栅极栅极串联10Ω电阻抑制振铃栅源之间并接10kΩ下拉电阻确保可靠关断。4. 后级H桥与LC滤波器的设计与调试4.1 H桥驱动电路的关键细节后级H桥用四个IRFP4110组成驱动芯片用两片IR2110分别驱动上下桥臂。IR2110是高压浮动驱动芯片自举电容取1uF/50V自举二极管用UF4007。这里有个坑自举电容不能太大否则充电时间长高频工作时自举电压建立不起来也不能太小否则驱动电荷不够。1uF是经过实测的合适值。H桥的四个管子分别由STM32的两路SPWM信号控制每路SPWM经过IR2110后驱动上下两个管子。注意IR2110的输入信号需要死区STM32已经配置了1微秒死区IR2110本身也有约200纳秒的传输延迟加起来死区足够。注意IR2110的VS引脚要接H桥的输出中点自举电容跨接在VB和VS之间。布线时自举电容尽量靠近IR2110引线电感大了会影响自举效果。4.2 LC滤波器的参数计算SPWM输出的是高频脉冲序列必须经过LC滤波才能得到正弦波。滤波器的截止频率要远低于载波频率20kHz同时远高于基波频率50Hz。一般取截止频率为载波频率的十分之一到五分之一也就是2kHz到4kHz。LC滤波器的截止频率公式fc 1 / (2π√(LC))。取fc3kHzL1mH算出来C≈2.8uF。实际取3.3uF/400V的薄膜电容电感用1mH的环形电感用铁粉芯绕制线径1.0mm绕80匝左右。滤波电感不能饱和铁粉芯的饱和磁感强度约1T1mH电感在1.5A电流下的磁通密度要算一下。环形铁粉芯截面积假设为0.5平方厘米磁路长度约6厘米那么B (L×I)/(N×A) (0.001×1.5)/(80×0.00005) 0.375T远低于1T安全。4.3 整机联调与波形测试联调顺序很重要不能一上来就全接。先调前级12V输入接上用示波器看SG3525的输出波形确认频率40kHz、占空比45%、两路互补。然后接推挽变压器次级接假负载比如两个220V/100W灯泡串联看输出电压是否在340V左右。如果电压偏低检查匝数比和占空比如果电压偏高可能是反馈环路没调好。前级正常后再调后级STM32的SPWM信号先不接IR2110用示波器确认两路SPWM互补、死区1微秒、频率50Hz。确认无误后接IR2110和H桥母线电压用可调直流电源从0V慢慢往上加同时观察H桥输出波形。正常情况下应该看到SPWM脉冲序列经过LC滤波后变成正弦波。我实测的波形数据空载时输出正弦波THD约3.2%满载500W时THD约4.8%效率在满载时达到94.7%。前级推挽部分效率约96%后级H桥加滤波效率约98.6%乘起来就是94.7%。5. 常见问题与排查技巧实录5.1 前级推挽管发热严重怎么办推挽管发热是最常见的问题原因通常有三个一是变压器漏感大导致关断时电压尖峰高管子承受的电压应力大二是两个推挽绕组的对称性差导致两个管子电流不平衡三是死区时间不够两个管子同时导通造成直通。排查方法先用示波器看两个管子的漏极波形正常应该是干净的方波如果看到尖峰说明漏感大需要在漏极加RC吸收电路。R取10ΩC取1nF能有效抑制尖峰。然后测量两个管子的电流如果差异超过10%说明绕组不对称需要重新绕制变压器确保双线并绕时两根线完全平行。5.2 输出波形畸变或带载后电压跌落输出波形畸变通常是LC滤波器参数不对或者H桥死区时间不合适。如果波形顶部或底部有平顶说明死区时间太大减小到0.5微秒试试。如果波形有高频毛刺说明滤波电容太小或者电感饱和了换大一点的电容或者换铁粉芯电感。带载后电压跌落严重一般是前级变压器内阻大或者后级管子导通电阻大。测量满载时前级12V输入的电流如果电流很大但输出电压上不去说明变压器绕线太细换粗线重绕。如果前级正常但后级输出跌落检查H桥管子的导通电阻和滤波电感的直流电阻。5.3 常见问题速查表现象可能原因排查方法解决方案前级管子发热漏感大、绕组不对称、死区不够看漏极波形、测两管电流加RC吸收、重绕变压器、加大死区输出波形畸变死区大、滤波参数不对看SPWM波形、测滤波后波形减小死区、调整LC参数带载电压跌落变压器内阻大、管子导通电阻大测满载输入电流、测管子压降换粗线、换低导通电阻管子效率低磁芯损耗大、开关损耗大测各环节效率、摸磁芯温度换非晶磁芯、优化驱动电阻高频啸叫载波频率在音频范围听声音频率、看载波频率提高载波频率到20kHz以上5.4 独家避坑经验分享第一个坑非晶磁芯的AL值电感系数通常比铁氧体低同样匝数下电感量小。我一开始按铁氧体的参数算绕出来电感量只有计算值的一半导致励磁电流大、磁芯饱和。后来用LCR表实测了磁芯的AL值重新计算匝数才搞定。所以拿到非晶磁芯第一件事是测AL值别信手册上的典型值每批磁芯都有差异。第二个坑STM32的SPWM输出和SG3525的PWM输出要同步不然两个频率差拍会产生低频干扰。我的做法是用STM32的定时器2产生一个40kHz的方波送到SG3525的引脚3同步端让SG3525和STM32同步工作。这样前级和后级的开关频率有固定相位关系干扰小很多。第三个坑后级H桥的母线电压不能超过IRFP4110的耐压值100V但前级推挽输出340V远高于100V。所以后级H桥不能用IRFP4110要用600V以上的管子比如IRFP460或者IGBT。我一开始搞混了上电就炸了四个管子。后来换成IRFP460600V耐压导通电阻0.27欧姆虽然比IRFP4110大但耐压够。提示前级推挽管和后级H桥管的耐压要求完全不同前级用60V到100V的低压管后级用600V以上的高压管千万别搞混。6. 效率优化与散热设计6.1 从94%到95%的最后一公里效率从94%提到95%看起来只差一个点但实际做起来要抠很多细节。我做了三件事第一把前级推挽的驱动电阻从10Ω减小到4.7Ω加快MOS管开关速度减少开关损耗第二把后级H桥的载波频率从20kHz降到16kHz开关损耗降低约20%第三把LC滤波电感的线径从1.0mm换成1.2mm直流电阻从0.15Ω降到0.1Ω满载时少损耗约0.1W。这三项加起来效率从94.7%提到了95.2%。虽然提升不大但满载时发热明显改善前级散热片温度从65度降到了52度。6.2 散热设计的实际考量散热片的选择不能只看面积还要看热阻。我用的铝散热片热阻约1.5度每瓦前级损耗约20W温升就是30度加上环境温度25度散热片温度55度可以接受。后级损耗约7W用同样的散热片温升只有10度完全没问题。强制风冷的话用4010风扇40mm×40mm×10mm就够了风量约5CFM能把散热片热阻降到0.8度每瓦。风扇接在12V输入上注意加一个100Ω电阻限流不然风扇噪音大。6.3 整机效率实测数据负载功率输入功率输出功率效率前级温度后级温度100W108W100W92.6%35度30度200W213W200W93.9%42度34度300W317W300W94.6%48度38度400W421W400W95.0%53度42度500W525W500W95.2%58度46度从数据看轻载时效率偏低因为固定损耗占比大。满载时效率最高达到95.2%。这个效率在DIY逆变器里算很不错了关键是非晶磁芯的低铁损起了决定性作用。7. 后续扩展与升级方向这个平台做出来之后可以扩展的地方很多。比如加一个STM32的ADC采样实时监测输出电压和电流做闭环控制带载电压调整率能从现在的8%降到2%以内。再比如加一个OLED显示屏显示输入电压、输出电压、功率、效率看起来更专业。如果想做并网或者离网切换可以加一个继电器切换电路市电正常时旁路供电市电断电时逆变器供电切换时间控制在10毫秒以内。这个功能需要额外的电压检测电路和继电器驱动电路STM32的IO口够用。还有一个方向是提高功率等级。现在500W的功率受限于变压器磁芯尺寸和MOS管电流能力。如果要做到1000W非晶磁芯要换更大的MOS管要并联散热片也要加大。但拓扑结构不用变推挽加H桥的架构在1000W以内都是合适的。我个人在实际操作中的体会是非晶磁芯确实值得投入虽然贵一点但效率和温升的改善是实实在在的。调试过程中最花时间的是变压器绕制和SPWM参数调整这两块搞定了后面基本就是一马平川。最后再分享一个小技巧调试时用可调直流电源给前级供电从0V慢慢往上加同时用示波器盯着波形一旦发现异常立即断电能避免炸管。
返回列表