STM32G474实战:单相逆变器并联运行系统的设计与调试

发布时间:2026/10/28 1:11:19
STM32G474实战:单相逆变器并联运行系统的设计与调试 做单相逆变器并联这件事最让我长记性的不是单机怎么调出漂亮的SPWM波形而是两台单独看都很正常的机器输出端并到同一个低压母线之后突然变成一对互相较劲的冤家。母线接触器一闭电流波形直接爆表其中一台还在倒吸电流声音都不对了。我最早带这个项目去联调时就被现场狠狠教育过一轮后来整套方案换到STM32G474RCT6上单相逆变器并联运行系统才算真正收敛。这篇文章不打算堆理论就把我从芯片选型、原理图设计、控制策略梳理到现场参数整定的完整过程写出来。这套“单相逆变器并联运行系统”能解决的问题很具体多台逆变电源模块共享一个交流母线系统要能自动均分负载任意一台故障退出后其余模块继续供电。它适合做UPS并联扩容、储能变流器多机并联、微电网接口装置的同行参考也适合刚接触数字电源并联控制的同学当一份带坑位标注的实操笔记。1. 并联逆变器项目到底在解决什么问题1.1 单机容易并联难环流与同步两大拦路虎单相逆变器说白了就是一个受控交流电压源。单机运行时你只需要保证输出电压波形、幅值、频率都满足要求负载电流自然会根据负载阻抗走。但把两台电压源直接并到同一个点问题就来了两个理想电压源并联要求电压幅值完全相等、相位完全一致、频率完全相同。现实中没有两台机器能做到这一点哪怕同一批板子、同一套程序采样电阻有精度误差开关管压降有差异死区效应也略有不同最终输出就会存在一个很小的电压差。这个电压差会作用在什么回路上两个逆变器的输出滤波电感、线路阻抗物理上等效于串联起来再承受这个电压差。于是产生了环流。我项目里滤波电感是2mH两台机的环路总电感约4mH输出差3V一台222V、一台219.5V50Hz下这个回路的阻抗约1.26Ω环流轻松超过2A。额定电流才9A凭空多出2A环流意味着其中一台机器的电流会比另一台高很多负载分配完全失衡而且环流是不做功的只在线路和器件上发热。同步问题比幅值差更难处理。即使两台机都工作在50Hz各自的晶振频率也不可能完全一致。比如20ppm误差的晶振每秒会累积约10微秒的相位误差这个误差在闭环里会转化为持续的相位差导致环流不断变化。所以并联系统的第一优先级就是解决相位同步和幅值均衡这也是整个控制策略的出发点。1.2 STM32G474RCT6选型电源控制外设是决定性因素我第一版用的是常见MCU做单机没问题一上并联就各种别扭PWM和ADC同步要靠软件硬凑过流保护走中断响应总有延迟模拟采样通道还要外挂运放板子越做越大。换到STM32G474RCT6之后很多问题变成外设配置问题而不是电路妥协问题。这颗芯片值得关注的几个点全是冲着数字电源去的。它主频170MHzCortex-M4F带FPU算PWM、跑PI环、做软件锁相都够用。更重要的是外设组合内部带3个12位ADC其中两个支持5MSPS采样率还有DMA和硬件过采样带6个内置运放可以直接处理电流采样信号带7个快速比较器可以做硬件过流保护。这些功能配在一起单芯片就能覆盖并联逆变器需要的全部模拟量采集和保护回路。最核心的是它那颗高分辨率定时器HRTIM。G474的HRTIM可以输出多路互补PWM自带死区发生器、斩波调制、故障输入和外部事件同步分辨率能做到130ps级别。原本需要外部逻辑电路才能实现的快速关断、载波同步现在配置寄存器就能完成。对比同类的专用电源DSP方案G4的生态要友好得多CubeMX一键生成初始化代码调试工具链也成熟对团队里不习惯写DSP底层寄存器的同事非常友好。1.3 控制策略选型下垂控制为什么比主从控制更可靠并联控制策略是项目的灵魂。我评估过三种路线。第一种是主从控制主机定电压基准从机检测自身输出电流去跟随主机的电流指令。这种方案均流效果最好动态响应也快但核心问题是高度依赖通信通信线一旦断掉或者主机故障整个系统立刻失去平衡可靠性在工业现场不够看。第二种是模拟均流母线方案板间用一根均流信号线交换负载误差。早期UPS并联经常用这个方案成本低、响应快但信号线是模拟信号容易受功率开关干扰线长一点就不稳定而且只能实现有功均流无功和相位协调做不好。最终选了第三种下垂控制也叫Droop控制。它的思路模仿多台柴油发电机并联发电机负载增大时转速会下降、频率微降各台机依靠自身转速特性自动分走相应的负载不需要机器之间有任何连线。电力电子逆变器同样可以人为构造一条输出电压频率/幅值随输出功率增加而下垂的外特性曲线每台机只根据本地采样到的有功P和无功Q对参考频率和参考幅值做修正就能实现无互联线均流。这种方式牺牲了一点点电压调整率换来的是系统可靠性和模块化程度的大幅提升。任何一台机器掉线其余机器照常运行任意一台机器加入母线不需要修改其他机器的参数。在这个项目里这个特性是刚需。1.4 系统架构功率回路与控制回路的整体布局系统整体由功率级、控制级和通信级三块组成。直流输入侧是DC 380V~420V母线经过全桥逆变拓扑变成SPWM脉冲再经过LC滤波得到AC 220V/50Hz正弦波输出。每台逆变器输出端各有一个交流接触器或者继电器系统启动时先空载建立电压满足并联条件后再闭合接入公共母线。控制板以STM32G474RCT6为核心采集母线电压、输出电压、输出电流、电感电流和温度信号。控制软件在PWM中断里完成电压外环和电流内环运算在主循环或慢速中断里完成功率计算、下垂修正和状态机管理。HRTIM产生的四路PWM信号经过隔离驱动后控制全桥MOSFET。硬件比较器做好第一道防线电流采样信号直接进比较器一旦超过设定阈值无需软件干预直接触发HRTIM故障关断。通信级用的是CAN总线波特率250kbps周期广播本机的运行状态、输出功率和载波同步信息。通信在并联控制回路里不承担实时均流控制只负责同步载波和状态监控这样通信故障不会直接影响均流稳定性。模块主要芯片/器件作用功率级MOSFET全桥 LC滤波DC转AC实现电压源输出控制级STM32G474RCT6采样、控制算法、PWM生成、保护采样调理内置运放 外部差分电路电压/电流信号调理保护内置比较器 HRTIM Fault硬件级超快关断通信CAN收发器状态广播、载波同步2. 围绕STM32G474RCT6的关键配置与实操要点2.1 HRTIM配置死区、极性与故障输入一个都不能错并联逆变器的软件基础是HRTIM生成的SPWM。载波频率我用了10kHz系统时钟170MHz所以时基周期设为16999。对应配置代码核心部分是这样HRTIM_TimeBaseCfgTypeDef timeBaseCfg {0}; timeBaseCfg.Period 16999; // 170MHz / 17000 10kHz timeBaseCfg.RepetitionCounter 0; timeBaseCfg.PrescalerRatio HRTIM_PRESCALERRATIO_DIV1; timeBaseCfg.Mode HRTIM_MODE_CONTINUOUS; timeBaseCfg.Polarity HRTIM_PERIODACTIVE_POSITIVE; HAL_HRTIM_TimeBaseInit(hhrtim1, HRTIM_TIMERINDEX_A, timeBaseCfg);单相全桥我用的是单极倍频调制方式高频桥臂工作在10kHz载波低频桥臂在正负半周做低频切换。这样等效输出纹波频率翻倍电感电流纹波比双极性调制小很多滤波电感体积也能压缩。HRTIM的TimerA作为高频载波TimerB作为低频方波各自输出两路互补PWM到两组桥臂。死区时间我配置为500ns。选这个值不是拍脑袋要综合MOSFET的关断延迟时间、栅极驱动芯片的传输延迟和功率回路的寄生参数。死区小了容易直通炸管大了输出波形畸变增加且低压输出时损耗明显。用示波器量驱动芯片输出确认上下桥臂驱动波形之间有一个清晰的凹陷区间这个步骤在批量中每次都要做。HRTIM的极性配置也容易翻车。全桥两个桥臂的电平逻辑要结合实际驱动电路确认是高电平开通还是低电平开通。要是把极性配反了上电瞬间就是直通。我的排查顺序是先不接主功率单独给控制板供电用示波器看四路驱动波形确认没有同时为高的时刻再合直流母线。然后就是故障输入这是并联系统能安全运行的关键。我把电流采样信号接到G474内部比较器比较器输出直接连到HRTIM的Fault输入阈值靠片内参考电压设置。电流一旦超限硬件就在几百纳秒内把PWM输出拉到安全电平整个过程不经过CPU也不依赖中断调度。并联系统最忌讳的就是保护靠软件判断软件要是在忙别的几个周期下来功率管早就炸了。还有一个HRTIM使用上的实际体会HRTIM有很多影子寄存器有些参数写入后要到下一个周期事件才更新。第一次调的时候占空比改了但波形没反应我还以为是芯片坏了查了半天才想起来是没等周期更新。介入调试时记住这个特性能省半天时间。2.2 ADC同步采样采样点选在PWM周期的哪里很关键ADC采样质量直接决定控制环路的性能。逆变器功率级有大量的开关噪声干扰如果采样时刻落在开关边沿附近采集到的是什么就很难说了。那时候电流环反馈值每个周期都在跳控制量也被带偏输出电压波形上能看到毛刺。正确的采样点应该放在PWM周期中间对于对称三角载波来说就是载波的顶点或者谷底。这个时刻开关状态已经稳定功率回路里没有大的di/dt而且对于电感电流来说这个采样点刚好对应一个周期内的平均值控制模型更准确。G474实现这个机制很直接。配置HRTIM的周期匹配事件去触发ADC注入组转换不需要软件定时器或者外部引脚触发。我在代码里把ADC1的触发源配成了HRTIM TimerA的周期事件转换完成后用DMA自动把结果搬进内存。ADC_InjectionConfTypeDef sConfigInjected {0}; sConfigInjected.InjectedChannel ADC_CHANNEL_2; // 电感电流通道 sConfigInjected.InjectedNbrOfConversion 1; sConfigInjected.InjectedSamplingTime ADC_SAMPLINGTIME_3CYCLES_5; sConfigInjected.ExternalTrigInjecConv ADC_EXTERNALTRIGINJECCONV_T1_TRGO2; HAL_ADCEx_InjectedConfigChannel(hadc1, sConfigInjected, 0);单机调试时先不要直接合高压母线。我是从直流低压比如50V开始开环给一个固定占空比看采样回来的电压电流值跟外部万用表和电流钳差多少。G474内置运放的增益和零点校准在这一步做完软件里记录零偏值后续所有采样都先减去零偏再参与控制。2.3 单相锁相与正交信号构造没有它并联无从谈起并联系统里必须有稳定的相位基准。如果两台机器对“现在到底该输出什么相位”没有统一认识环流一定压不住。单机运行可以自己自由振荡并联则必须有一个方法让输出电压相位跟踪公共母线或者跟踪主机的相位。我用的方案是SOGI二阶广义积分器加SRF-PLL。单相只有一个电压标量直接算不出瞬时有功和无功必须先构造一个虚拟正交信号。SOGI的作用就是输入一个正弦电压内部输出两个正交分量一个跟输入同相的α分量一个滞后90°的β分量同时还能滤掉一部分谐波。有了αβ坐标系坐标变换就顺畅了。锁相环的核心逻辑就是通过调节频率和相位让q轴分量归零。误差进PI调节器输出就是角频率修正量再积分得到相位角。这样得到的相位角同时供三处使用正弦表查询生成SPWM调制波、功率计算中的dq变换、下垂控制中的频率参考。实测下来SOGI-PLL在母线电压畸变的情况下也能锁住比过零检测的方式抗干扰能力强太多。两台机器之间的同步策略是这样的所有模块都锁同一个外部同步源。在样机上我用一路同步信号线把所有机器的HRTIM外部事件输入并联在一起同步脉冲一到各机器在同一时刻重置自己的载波计数器。这样两机的载波相位一致输出PWM的开关时刻也一致高频纹波环流能大幅减少。同步线的抗干扰要处理好用双绞屏蔽线靠近控制板一侧加RC滤波。2.4 均流控制逻辑与四级保护体系整套控制回路的逻辑链是先采集输出电压和输出电流计算瞬时功率低通滤波得到平均P和Q然后在下垂控制器里生成频率参考和幅值参考再交给电压电流双闭环去跟踪。下垂公式很简单[ f f_0 - m \times P ][ E E_0 - n \times Q ]f0是空载额定频率E0是空载额定电压幅值m是有功下垂系数n是无功下垂系数。每台机器看到的P和Q是本地负载功率负载越大它就越主动把自己的频率和幅值压低一点这样在公共母线上自然会让满载的那台稍微“退让”把负载份额匀出去。这个原理跟发电机并联完全一致只是用软件实现。保护体系我按响应速度和严重程度分了四级。第一级是硬件比较器过流保护触发到HRTIM故障关断最快微秒级动作。第二级是ADC采样后的软件过压过流判断在PWM中断里执行毫秒级用于处理比较器没覆盖到的异常。第三级是母线欠压保护和过温保护判断条件相对更缓防止在异常状态下长时间运行。第四级是看门狗和状态机管理程序跑飞或者逻辑异常时能自动复位或进入安全停机。均流控制里有一个容易被忽略的细节功率低通滤波器的时间常数。时间常数太小P和Q波动大下垂输出抖电压波形会跟着毛躁时间常数太大均流响应变慢负载突变时短时间内环流会拉得很大。我用的是20ms左右的一阶低通折中效果比较满意。3. 从单机到并联联调过程与参数计算实录3.1 硬件平台搭建关键器件和参数清单样机硬件参数如下表所示这套配置是按2000VA输出能力设计的实际并联两台总功率4000VA。参数数值说明额定功率2000VA单台可连续运行直流输入DC 380V~420V前级整流或直流源交流输出AC 220V / 50Hz纯正弦开关频率10kHzHRTIM时基17000功率管600V / 40A MOSFET低Qg型号隔离驱动数字隔离驱动芯片带死区设置滤波电感2mH 铁硅铝磁粉芯两机并联时环流阻抗基础滤波电容10uF CBB电容并联吸收电容另加电流采样霍尔传感器 内置PGA故障保护用比较器直采通信CAN 250kbps同步和状态上报电流采样通道要特别规划。G474虽然有多个ADC但并联系统需要的模拟量不少母线电压、本机输出电压、本机电感电流、输出电流、温度。把这些通道合理分配到三个ADC上确保同一时刻能对电压和电流同时采样。我在给原理图分配通道时把电压和电流放到了可以同步采样的不同ADC上这样控制环拿到的电压电流样本在时间上对齐功率计算才准确。3.2 单机闭环调试先把单台系统的性能榨干并联联调之前单机调试必须非常扎实。我踩过的教训是如果单台系统动态响应还稀里哗啦的就忙着去并联最后根本分不清问题是出在单机控制还是在均流策略上。单机调试分四步。第一步是不带功率管的开环测试只验证HRTIM的PWM波形、死区和驱动电平。第二步是开环带功率直流母线通过调压器从低压慢慢升观察输出电压波形和电流波形确认桥臂没有直通、电感没有异响。第三步是只跑电压外环空载和带电阻负载调电压环PI参数。第四步是加入电流内环把电流环带宽调出来再重新验证电压环。调PI的一个实用技巧比例增益从0开始慢慢加盯着输出波形看有没有振荡。一旦出现振荡记录这个临界增益然后把比例设在临界值的30%到50%再补积分。这样调出来的参数稳定裕度比较足不至于在并联之后因为外界条件变化就发散。每台机器都先记录一组PI参数后面并联时如果环流大至少能确认不是单机环路的问题。3.3 并联联调下垂系数的计算与现场整定并联调试最忌讳直接闭合并网。我的流程是两台机器先各自空载运行用示波器双通道同时看两机的输出电压波形人工确认幅值和相位差足够小之后才允许闭合母线接触器。样机上要求相位差小于0.1°对50Hz来说就是20微秒左右示波器上就能看出来。下垂系数先按理论计算给初值。额定功率2000W允许满载时频率下降0.5Hz则有功下垂系数[ m \frac{0.5 \text{ Hz}}{2000 \text{ W}} 0.00025 ]允许满载时输出电压幅值下降15V则无功下垂系数[ n \frac{15 \text{ V}}{2000 \text{ W}} 0.0075 ]这两个初值固定后把两台机器同时接到母线上带25%负载观察环流。如果环流大优先往下垂系数上找原因。样机在初值下满载环流还是偏大我把m加大到0.00035n加大到0.011环流明显下降代价是满载输出电压从220V落到208V。这个取舍没有公式一步到位要看产品对电压调整率的要求。还有一个容易忽略的测量操作测环流不能只靠电流表看额定输出电流要在两台机器的输出电流采样点各串一个电流探头用示波器的A-B数学通道看差值波形。这个差值就是环流能看到它的幅值和频率成分比看总电流信息量多很多。3.4 并机带载测试看波形和数据验证均流效果并联测试的负载我用了纯阻性负载箱先不带整流型负载因为整流负载会引入谐波和EMC问题干扰因素先排除掉。测试表按空载、25%、50%、75%、100%五档来拉。带载到50%时两台的输出电流分别是4.1A和4.3A均流偏差在5%以内。满载下偏差稍微大一点6%左右原因是两台机器的功率器件温升不同导致压降有差异这是一个正常现象。环流RMS从最初闭合时的2.8A降到0.3A左右这个数据说明下垂控制确实在起作用。动态测试是突加满载。负载从空载突加到2000W输出电压瞬间跌了12V然后约30ms恢复。切换瞬间两台机器的电流都能跟上没有出现其中一台承担绝大部分负载而另一台“发呆”的情况。如果在示波器上看到瞬间负载分配明显失衡优先检查功率低通滤波器时间常数和下垂直流分量是否一致。谐波测试用功率分析仪看了一眼输出THD单机约2.5%并联以后总电流THD略有上浮但还在3%以内符合预期。整个流程走完并联系统才算真正过关。4. 并联运行常见问题与排查技巧4.1 开机阶段过流优先级最高的排查并联系统每次上电最紧张的时刻就是母线接触器闭合那一瞬间。如果闭合后直接过流报警按这个顺序排查第一步确认两台机器在闭合前输出电压幅值和相位确实一致没有人为分合闸顺序错误。第二步看控制板上电时序是不是两台机器都没有进入稳定运行状态就被硬并了。第三步用示波器抓闭合瞬间的电流波形看是不是出现了很大的冲击电流峰。冲击电流往往是相位不一致造成的。闭合瞬间两台机的电压差如果是20V对2mH电感来说这个电压在极短时间内会憋出一个很大的电流尖峰。实际操作中我加了一个“预同步完成”指示灯两机相位差达标后再允许闭合母线接触器操作员凭指示灯动作不再凭感觉。软件层面也要做协作控制。母线闭合是由主机统一控制的从机不主动闭合自己那路接触器而是等待主机的CAN同步帧和闭合并联指令。这样能避免两机同时抢着闭合导致瞬间短路的混乱局面。4.2 稳态环流偏大从零偏到同步逐项定位稳定运行后环流还是大要逐项小时代排查。我最先怀疑的是采样零偏没有校准干净。电流传感器的零点漂移在温度变化后尤其明显如果两台机器的零漂方向相反即使实际没有负载也会读出功率下垂控制就会误修正制造出虚假的环流。解决办法是在上电后、逆变器启动前专门做一个零偏校准流程采集20次电流求平均存为偏置值。第二个高发原因是相位同步精度。如果同步线受到干扰或者CAN同步丢包两台机的PWM载波相位差别越来越大输出PWM的等效开通时刻就不一致。在示波器上如果看到两台机器输出电流的高频纹波部分有明显的错位和叠加基本就是载波不同步处理办法见下一节。第三个原因是输出阻抗不一致。两台机器的滤波电感磁芯批次不同电感值可能有5%到10%的偏差这会让环流在无功分量上偏大。理论上可以加虚拟阻抗来平衡把每台机器的等效输出阻抗修正到一致。我在样机上把虚拟阻抗设了0.5Ω环流又下来了一截。4.3 载波不同步引发的波纹群环流两台机器的MCU各自都有独立的晶振即使载波频率都设置为10kHz两路PWM开关时刻也不可能严格对齐。开关时刻错开后两路SPWM脉冲的频谱有了差异输出端会出现额外的开关频率差拍分量在电感上表现为刺耳的高频噪声同时高频环流明显增大。解决载波同步有两种手段。第一种是硬件同步线把所有机器的HRTIM外部事件输入并联由主机周期性地发一个同步脉冲各机收到脉冲后立即重置载波计数器。这种方案简单、延时小、精度高适合机柜内短距离布置。第二种是软件同步主机在CAN帧里周期广播本地载波计数器的数值从机收到后对应修正自己的HRTIM周期值实现载波频率的掏平。软件同步不需要额外接线但同步精度受CAN通信抖动影响我用下来能到微秒级对10kHz载波够用。样机最终是两条手段同时启用。同步线负责硬同步CAN报文负责握手确认如果同步线断了系统还能靠CAN同步维持运行一段时间不至于立刻崩溃等于给关键环节加了一层热备份。4.4 常见问题速查表现象可能原因处理办法闭合并联瞬间过流报警相位差过大、接触器误动作检查预同步灯加装同步闭锁逻辑空载时两台机电流不为零采样零漂未校准、传感器温漂每次启动前执行零点校准满载环流偏大下垂系数不足、输出阻抗不一致加大下垂系数加虚拟阻抗输出声音刺耳、高频纹波大载波不同步、同步线受干扰更换屏蔽线启用CAN同步兜底输出电压满载时掉得太多下垂系数过大、电压外环带宽不足折中调整下垂系数优化PI参数不规律过流报警干扰误触发比较器阈值提高比较器抗干扰滤波检查采样回路CAN通信丢包波特率不对、终端电阻缺失检查总线终端电阻降低波特率验证一台机器突然退出并联保护误动作、通信失联查看故障寄存器确认触发的是哪一级保护这套项目做下来我个人的体会是并联系统的技术深度不在单机性能上而是在如何定义模块之间的边界条件。选择STM32G474RCT6确实是关键一步它把ADC同步采样、PWM生成、硬件保护和通信占用的资源都拉开了档次让控制策略可以做得很纯粹而不是到处找资源缺口补丁。如果你正准备做类似的多机并联项目我建议先把单机调试和上位机监控软件做好把调试界面里的电压、电流、P、Q、下垂状态全部可视化成曲线再去碰并联联调。没有完整的数据记录做辅助现场出了问题基本只能靠猜而并联系统的故障往往一次猜测就要付出炸机的代价。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询