AC-AC并联均流实战:交流斩波+虚拟阻抗实现无通信均流
发布时间:2026/9/20 15:50:12 锦皓数字建站

简介2024年全国大学生电子设计竞赛A题“AC-AC变换电路并联运行”赛题PDF面向参赛学生与指导教师。文件共1个为PDF格式大小759KB内容为赛题完整原文包含任务描述、系统框图、技术指标、设计说明与评分标准可帮助备赛者清晰理解AC-AC直接变换、并联均流、效率与THD等关键要求。题目要求设计两个单相AC-AC变换电路组成的并联系统重点考核调压范围、负载调整率、效率、输出电流分配比、谐波畸变率以及系统重量等指标并提供详细评分标准。赛题还明确了不得采用AC-DC-AC变换、两个变换电路需独立控制等限制条件方便团队在方案阶段避免违规设计设计报告部分给出了方案论证、理论分析、电路与程序设计等分值分布可据此规划备赛重点。已有2311人学习浏览适合需要对照赛题要求进行方案论证、理论分析和电路设计的电赛队伍。1. 拆解A题的硬约束为何这题考的是“无通信并联均流”2024年全国大学生电子设计竞赛A题“AC-AC变换电路并联运行”表面是让两台单相AC-AC变换器并联带载真正卡住大多数队伍的其实是三个硬约束第一题目明确禁用AC-DC-AC间接变换直接堵死了“整流逆变”这条最省事的路线第二辅助电源的耗能要计入效率意味着控制电路每多耗1W效率分就少一点第三两台变换器除了输入输出功率线之外不允许有任何连线也就是说并联均流方案不能依赖通信总线。参加电子设计竞赛的队伍往往把精力花在主电路上到了并联环节才发现均流做不稳。这道题适合正在备赛的本科生也适合做UPS、微逆变器并联的工程师其核心思想是通过整形外特性来实现分布式并联而不是通过通信协商电流。2. 交流斩波拓扑选型与低压大电流功率级设计2.1 为什么只能走PWM交流斩波这条路单相AC-AC直接变换在教材里常被称为交流调压电路经典方案是双向晶闸管相控调压。相控方案在50Hz工频下产生大量低次谐波输出THD在深度调压时会达到30%以上而题目要求并联状态下THD不大于5%相控方案连门槛都摸不到。另一个被题目排除的路线是AC-DC-AC即先整流成直流再逆变虽然控制成熟但题目说明1白纸黑字禁止。剩下的可行方案只有PWM交流斩波也叫AC Chopper用双向开关把输入交流斩成占空比可调的高频脉冲串再用LC滤波器恢复出基波正弦。开关频率从工频50Hz提高到10kHz以上谐波重心移到开关频率附近用一个二阶LC就能把THD压下来。交流斩波的本质是幅度调制而不是相位控制。输出电压基波有效值约等于输入电压乘占空比D所以Uo从1V到35V对应D从0.028到0.972这个数学关系简单难点在双向开关的实现和驱动供电。由于这台变换器的额定输出只有30V/2A属于低压大电流场景IGBT的饱和压降在这个电压等级下损耗占比太高必须选低压MOSFET。MOSFET的寄生体二极管无法承受反向阻断所以需要把两个MOSFET反串联组成双向开关这是整个功率级设计的第一决策点。2.2 双向开关结构与驱动隔离设计双向开关有两种常用接法共源极和共漏极。共源极结构用两只N-MOSFET的源极接在一起栅极参考点是公共源极驱动相对简单共漏极结构两只漏极相连源极分别接在负载路径上这种接法可以用半桥驱动芯片但开关管的驱动参考点会随交流电位摆动。在36V输入的场合我建议采用共源极结构原因有两点一是两只管的栅极电位都以公共源极为参考隔离驱动变压器的绕组数量少二是电流路径上任何一个方向都只经过一只MOSFET沟道导通损耗不会翻倍。驱动隔离是交流斩波最常见的翻车点。双向开关的源极电位在整个工频周期内跟随输入电压波动控制板的地不能直接连过来否则一上电栅极就会被拉穿。我用过两种驱动方案。第一种是隔离DCDC加光耦驱动控制侧输出PWM信号经高速光耦传到浮动侧浮动侧用一颗稳压二极管和推挽三极管给栅极供电优点是响应快缺点是每个双向开关要一路隔离电源第二种是变压器隔离驱动用一个小磁环变压器把PWM脉冲耦合过去占空比信号经磁隔离后在次级恢复优点是省一路隔离电源缺点是占空比接近0或1时驱动波形会失真。考虑到题目要求输出1V时D只有0.028占空比极小变压器驱动在这种极限工况下容易丢脉冲所以并联系统的两台机器我都采用光耦隔离方案。主功率器件选型可以参考下表低压MOSFET在这个功率等级下有非常大的选择空间。器件选型方向关键参数说明主开关MOSFET100V N-MOSRds(on)≤10mΩQg≤80nC2A输出时导通压降约20mV损耗可忽略高速光耦6N137或TLP2361传输延迟≤100ns保证死区时间可控隔离DCDC输入5V输出12V/1W隔离耐压≥1000V每个双向开关一路容量不需要大滤波电感铁硅铝磁环1mH/5A饱和电流避免直流偏磁导致感值跌落滤波电容CBB电容10uF/100V不能用电解电容耐高频纹波2.3 PWM死区与开关频率选择交流斩波电路包含两个双向开关一个串联在输入与负载之间作为调压开关另一个并联在负载端作为续流开关。调压开关导通时能量从输入流向负载调压开关关断时滤波电感里的电流通过续流开关保持连续。两个开关必须互补导通而且中间必须插入死区否则输入电源会被瞬时短路。死区设置不当会导致两个后果死区过小上下管直通烧MOSFET死区过大输出电压波形出现凹陷THD恶化。在10kHz开关频率下1us死区占总周期的1%对输出波形的影响非常明显。死区时间在STM32高级定时器上通过BDTR寄存器配置以72MHz定时器时钟为例每个计数周期约13.9ns要得到约0.7us死区DTG值取50左右// 高级定时器TIM1死区配置72MHz CK_INTDTG50对应约0.7us TIM1-BDTR ~TIM_BDTR_MOE; // 先关闭主输出避免配置期间误动作 TIM1-BDTR | 50; // 死区时间寄存器赋值 TIM1-BDTR | TIM_BDTR_MOE; // 重新使能主输出死区时间由DTG低8位决定具体公式是t_dtDTG×t_CK_INT这里t_CK_INT是定时器计数时钟周期。代码里先清MOE位再写寄存器是为了防止死区参数更新的瞬间产生窄脉冲。10kHz开关频率下死区占空比损失约0.7%这部分压降可以用PI调节器消除但死区造成的低次谐波PI环无能为力需要软件补偿第5章详细展开。2.4 损耗预算与辅助电源效率分配题目规定辅助电源由变压器T供电耗能计入AC-AC变换电路效率。这意味着控制板、驱动电路、采样电路的所有功耗都在效率分母里。实测很多队伍主电路损耗控制得很好最后效率不达标问题全出在辅助电源上。按60W输出倒推如果目标是94%整机效率总损耗预算只有约3.8W。控制板和驱动电路的实际功耗通常在2W左右辅助电源模块本身转换效率按85%计算输入侧需要约2.4W。剩下的损耗预算给主功率级包括MOSFET导通损耗、滤波电感铜损、电容等效串联电阻损耗。损耗项计算依据估算值双向开关导通损耗I²R2A有效值流过10mΩ约0.04W滤波电感铜损电感直流电阻30mΩ2A约0.12W滤波电容损耗纹波电流0.3AESR 0.1Ω约0.01W控制与采样电路MCU、运放、比较器静态功耗约0.8W驱动电路光耦LED、栅极充放电约1.0W辅助电源损耗输入2.4W输出2.0W约0.4W从表格可以看出辅助电源和驱动电路的功耗是效率大头主功率级的损耗反而很小。所以提效的关键不在功率管而在于精简控制电路功耗。我给赛队的一个建议是辅助电源输出不要追求多路隔离控制地、采样地、驱动地分开供电但共用同一个变压器绕组可以减少一路DCDC的静态损耗。变压器T这里使用自耦调压器加隔离变压器的组合输入36V已由题目给出辅助电源直接从36V侧取电即可。3. 电压环、RMS采样与步进0.5V调压的软件实现3.1 控制对象是RMS采样窗口与有效值更新AC-AC变换电路的输出电压是50Hz正弦波反馈量必须是有效值而不是瞬时值。如果直接对瞬时值做PI控制器会试图跟随每个工频周期的正弦细节结果就是占空比被工频分量调制波形反而变差。正确做法是让控制环只看到有效值这个缓慢变化量电压环带宽做到几Hz就够。常见做法是用真有效值芯片如AD8436但竞赛环境下更经济的方式是MCU的ADC直接采样在一个工频周期内均匀采集64个点实时计算RMS。采样窗口必须与工频同步否则电压每周期采样的点数不固定RMS值会有低频抖动。我用过零检测电路锁定工频相位当过零比较器触发中断后启动一个定时器按照400us间隔触发ADC采样50Hz一个周期正好采50个点。改用64点的话采样间隔是312.5us也能整除20ms。RMS计算放在DMA传输完成中断里#define N 64 // 每周波采样点数 // 64点滑动RMS计算采样值为ADC原始码 float calc_output_rms(uint16_t *buf, float scale, uint16_t offset) { uint32_t sum 0; for (int i 0; i N; i) { int32_t v (int32_t)buf[i] - offset; // 去掉ADC直流偏置 sum (uint32_t)v * (uint32_t)v; } float ms (float)sum / N; return sqrtf(ms) * scale; // scale折算分压比 }代码里offset是ADC在零输入时采集到的偏置码不扣除的话小电压档位下RMS误差会很大。scale是分压网络的比例系数比如电阻分压100:1再经隔离运放放大最终要标定到“ADC码对应多少伏有效值”。每个工频周期更新一次RMS结果电压环的PI计算也以20ms为周期执行。这套方案的缺点是计算量集中在DMA中断里所以sqrtf和乘法用浮点运算在STM32F103上64次循环加一次开方大约耗时30us远小于一个采样间隔没有问题。3.2 步进调压与占空比分辨率题目要求Uo在1V到35V之间以0.5V步进调整输入Ui固定在36V。理想条件下占空比DUo/Ui0.5V步进对应占空比增量约0.0139。如果用20kHz开关频率、STM32定时器72MHz的计数器一个PWM周期的计数值是3600占空比分辨率为1/3600约0.028%远高于步进需要的1.39%。所以PWM分辨率不是瓶颈真正的误差来源是滤波电感和MOSFET导通压降在输出端的基波压降。电感对50Hz基波的阻抗是2πfL1mH在50Hz时只有0.31Ω2A电流下压降0.62V这个值在30V输出时占比约2%会导致实际Uo低于设定值。我在赛题实测中一般做一次软件标定先输出一个已知占空比用交流毫伏表测实际Uo得到Uo与D的直线关系然后把这条标定线写进程序。这样在1V这个低电压点MOS管导通压降和电感压降的影响能被补偿掉。另一个容易忽略的是PWM起始相位如果调制波不是从正弦过零点开始输出变压器会出现偏磁虽然这里负载是纯阻性但滤波电感上的电流会出现不对称。调压的人机交互不需要通信接口用按键或旋钮即可。数字设定电压后电压环的目标值随之改变每次改动幅度限制在0.5V防止大幅阶跃导致输出电压过冲。这里可以限制每200ms只允许改变一个步进给PI调节器足够的收敛时间。3.3 增量式PI与单机负载调整率负载调整率要求是Io从0.1A变到2A时输出电压变化不超过0.5%。30V的0.5%是0.15V这个指标对模拟电源来说很严格但对数字闭环来说并不难前提是电压环增益要足够高。关键问题在于电流从0.1A跳变到2A时滤波电感的动态压降会引起Uo瞬间跌落PI调节器如果带宽太低恢复时间会长到几十个工频周期。我采用的电压环是增量式PI输出是占空比修正量积分项加限幅防止饱和// 电压环PI输入为电压误差err伏输出为占空比增量 float pi_update(float err, float *integ) { *integ KI * err; if (*integ DUTY_MAX) *integ DUTY_MAX; if (*integ -DUTY_MAX) *integ -DUTY_MAX; return KP * err *integ; }KP取0.8KI取0.05控制周期20ms。这一组参数的含义是输出电压偏差1V时占空比立即调整0.8%再以每周期0.05%的速度积分。由于D和Uo近似线性0.8%占空比对应约0.29V补偿量能把大部分瞬时误差压住。积分限幅DUTY_MAX取0.1即积分项最多贡献10%占空比修正防止启动时积分饱和导致Uo过冲。这里有一个与并联均流直接相关的选择单机模式下电压环外特性是水平的也就是下垂系数为0。如果为了均流在单机模式也引入下垂2A变化会让Uo多跌落Rd×2A以0.25Ω下垂计算就是0.5V负载调整率直接超差。所以单机和并联必须使用两套外特性这个切换逻辑在下一章展开。3.4 模式切换与软启动单机模式和并联模式的切换点不只是改变目标电流还需要处理软启动。AC-AC变换电路直接带载启动时滤波电容充电会产生很大的浪涌电流可能导致过流保护误动作。我一般在启动时让占空比从0缓慢斜升到目标值斜坡时间300ms每20ms增加1/15的目标占空比。并联模式下第二台机器启动时第一台已经稳定在30V第二台如果也斜升会有一段短暂的时间两机输出电压差较大产生环流。更稳妥的做法是让第二台机器先检测公共母线电压Uo把自身目标电压设为母线电压再斜升占空比这样接入瞬间几乎无冲击。4. 虚拟阻抗并联均流K值数字设定与3%误差收敛4.1 无通信均流的外特性整形原理两台AC-AC变换器并联后强制共享同一个输出电压Uo各自的输出电流由自身外特性决定。如果两台机器都是理想电压源输出电压完全相等电流分配完全取决于线缆电阻无法控制。解决方法是给每台机器人为制造一个输出电阻即下垂特性UoUref−Rd×Io。当两台机器并联时公共Uo相同假设两机Uref相等则Rd1×Io1Rd2×Io2电流比值Io1/Io2Rd2/Rd1。所以要让电流比KIo1/Io2等于设定值只需要让两台机器的下垂系数反比于K即可。这就是题目要求6的本质K设定从0.5到2.0可调对应的是改变2号机的下垂系数。当K2时Io1是Io2的2倍则Rd2必须是Rd1的2倍也就是2号机外特性比1号机软一倍。K设定范围0.5到2.0意味着Rd2/Rd1在0.5到2.0之间变化。数字设定K不需要任何外部通信2号机开机前通过本地按键或拨码开关读取K值程序里按下式计算目标下垂系数// K_set为数字设定值RD_BASE为基础下垂系数1号机固定 float rd_target RD_BASE * k_set; // 2号机下垂系数随K线性变化实际选择RD_BASE时要权衡两个方向太大了重载时输出电压跌落明显虽然恢复环可以补偿但动态响应变差太小了均流精度对采样偏置和线缆电阻过于敏感。在3A总电流下我取RD_BASE0.2Ω2号机在K2时下垂系数0.4Ω满载3A时外特性压降约1.2V这个电压由恢复环慢速抵消。4.2 虚拟阻抗与电压恢复环的分工上午要把均流和稳压两个指标同时满足单靠固定下垂做不到。固定下垂必然引入电压跌落如果不补偿Uo会随K设定值变化。解决思路是把下垂分成两个环节瞬时下垂用于均流慢速恢复环用于把平均输出电压拉回30V。恢复环的实现是对Uo的RMS做低通滤波后与目标电压的误差做积分把这个积分值叠加到Uref上// 电压恢复环更新周期100ms带宽约0.5Hz float restore_integ 0.0f; void voltage_restore(float uo_avg) { float err U_TARGET - uo_avg; // U_TARGET30V restore_integ 0.01f * err; // 积分系数0.01极慢 if (restore_integ 3.0f) restore_integ 3.0f; if (restore_integ -3.0f) restore_integ -3.0f; }恢复环积分系数0.01意味着Uo偏差1V时每100ms在Uref上叠加0.01V需要约10秒把偏差收敛掉。这个速度是刻意放慢的因为均流精度依赖下垂特性恢复环过快会把下垂压降全部抵消外特性重新变成水平线均流失效。恢复环的理想行为是只消除负载变化引起的稳态压降不影响瞬时的电流分配。带宽取0.5Hz以下与电压环的2Hz带宽拉开差距两者才不会相互干扰。一个很容易犯的错误是让两台机器都跑恢复环。如果1号和2号都去恢复输出电压公共母线电压会稳定但两台机器的Uref会各自漂移导致K值偏离设定。正确分工是1号机作为电压基准机固定下垂系数并运行恢复环2号机只按K_set调整下垂系数不运行恢复环保持电流跟随能力。由于题目要求两机独立这个角色分配在出厂烧录时就固化在程序里测试现场不需要任何设置。4.3 3%相对误差的校准流程要求6给的指标是K设定值的相对误差绝对值不超过3%在K2时K实测必须在1.94到2.06之间。影响K误差的主要因素有三个电压采样偏置、电流采样增益误差、以及两台机器之间的线缆电阻差异。其中线缆电阻影响最大因为低压大电流场景下一根0.5米的长线缆电阻可能有20mΩ到50mΩ与0.2Ω的下垂系数相比不是小数目。校准流程我按三步走。第一步K1、Io3A条件下读取两机电流采样值计算K实测如果偏离1则调整2号机电流采样的增益系数使K回到1.00。第二步设定K2再次读取K实测如果偏差大于3%说明是1号机或2号的电压环参考电压Uref有偏差通过微调2号机的Uref偏置来校正。第三步在K0.5、1.0、2.0三个点各测一次画一条K_set与K实测的曲线如果曲线是线性的说明采样增益和Uref偏置都已校准到位。为便于现场调试我在2号机程序里留了一个校准模式通过串口修改两个内部参数电流采样增益和Uref偏置不需要重新编译。电流采样在这个题目里有特殊性输出是交流有效值不能用直流感测芯片直接读。我用的方案是电流互感器加真有效值电路或者用低阻值分流电阻经隔离运放放大后送入ADC再在软件里做RMS计算。后者的好处是温漂小、线性度好分流电阻选5mΩ的合金电阻2A电流下压降10mV对输出电压的影响可以忽略。采样这一级的零点偏移要在硬件上做调零软件上每次开机先空载测一次零点存起来抵消运放失调电压。4.4 两只变换器的硬件一致性与误差边界并联均流的最后一道坎是硬件一致性。即使软件完全正确两机的驱动延迟、光耦传输延迟、滤波电感感值不一致都会造成外特性差异。驱动延迟不一致的直接后果是两机的实际占空比存在固定偏差等效于Uref不一致。我在焊接时要求两机的驱动电路使用同一批光耦MOSFET选同一封装同批次滤波电感绕制后测试感值误差控制在2%以内。更细致的做法是把两机的空载电压做一次出厂校准在K1、Io0条件下把Uref误差修正到10mV以内。这套校准做完K实测的相对误差基本能压到1.5%以内给3%留足余量。5. 效率与THD的联合调试开关频率、死区补偿与测量顺序5.1 先单机后并联的调试顺序拿到板子后不要直接上并联严格按照单机到并联的路径推进。第一步单独调试1号机完成Uo步进调压和负载调整率测试第二步测试单机效率确认60W输出时效率大于91%留出并联后可能增加的损耗余量第三步再让1号机带载稳定运行软启动2号机做并联。并联调试时用示波器电流探头同时观察Io1和Io2的波形如果电流波形在切换瞬间出现振荡优先怀疑恢复环带宽过高把0.01的积分系数再降低一半。效率测试有个容易踩的坑题目规定辅助电源耗能计入效率但变压器T是外部设备所以测量点应该在隔离变压器次级也就是Ui36V那一侧。用功率分析仪同时读取输入有功功率和输出有功功率输出侧是阻性负载Uo和Io同相P_outUo×Io有效值乘积。效率达到90%以上时输入输出功率差值只有几瓦功率计的精度等级至少要0.5级否则测出来的效率自身误差就覆盖了指标余量。5.2 死区补偿公式与实现死区导致输出电压损失了一块面积损失量与电流方向有关电流为正时死区造成输出电压降低电流为负时死区造成输出电压抬高。反映在波形上就是每个开关周期出现一个小缺口这些缺口叠加成低次谐波直接影响THD。补偿方法是把死区时间折算成占空比修正量叠加到调制波上// 死区补偿dt_us为死区时间(us)Tsw_us为开关周期(us)dir为电感电流方向(±1) float deadtime_comp(float dt_us, float Tsw_us, int8_t dir) { return dir * (dt_us / Tsw_us); // 返回占空比修正量正半周加负半周减 }dir由滤波电感电流的过零比较器输出决定正半周补偿量使占空比增加负半周使占空比减少。补偿量本身很小10kHz下0.7us死区对应0.7%占空比但正好抵消死区造成的基波电压损失和谐波成分。死区补偿要在电压环输出后叠加不能让PI环把补偿量吞掉否则两个机制互相打架。实际效果是补偿后THD能从6%降到3%以下同时输出电压有效值也能提高约0.2V。5.3 常见问题排查表故障现象优先检查项备注并联后两机电流振荡恢复环带宽是否过高积分系数降到0.005以下K实测值与设定偏差大于3%电流采样零漂和线缆电阻重新做4.3节三步校准THD大于5%死区补偿方向是否正确正负半周补偿方向反了THD会恶化单机效率低于90%辅助电源静态功耗检查控制板是否有没用的LED常亮输出电压低且不可调双向开关驱动波形是否正常示波器查光耦输出高电平是否掉到8V以下5.4 一个快速定位均流误差的技巧当K2时K实测偏差超过3%不要急着改控制参数先用万用表毫伏档测两台机器输出端子到负载端的电压差。如果两机到负载的线缆长度不同负载端测到的电压相同但两机各自的输出端电压其实不一样这相当于给2号机叠加了一个负的Uref偏置。处理方式不是换粗线缆而是在2号机的Uref偏置参数里主动叠加一个反向修正值。操作方法设定K2空载下测两机输出电压差ΔU然后在2号机程序里把Uref偏置减去ΔU的一半重新带载测试。这个技巧能解决90%的K值偏差问题。本文还有配套的精品资源点击获取
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。