简介: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在这个功率等级下有非常大的选择空间。
| 器件 | 选型方向 | 关键参数 | 说明 |
|---|---|---|---|
| 主开关MOSFET | 100V N-MOS | Rds(on)≤10mΩ,Qg≤80nC | 2A输出时导通压降约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_INT,DTG=50对应约0.7us TIM1->BDTR &= ~TIM_BDTR_MOE; // 先关闭主输出,避免配置期间误动作 TIM1->BDTR |= 50; // 死区时间寄存器赋值 TIM1->BDTR |= TIM_BDTR_MOE; // 重新使能主输出死区时间由DTG低8位决定,具体公式是t_dt=DTG×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²R,2A有效值流过10mΩ | 约0.04W |
| 滤波电感铜损 | 电感直流电阻30mΩ,2A | 约0.12W |
| 滤波电容损耗 | 纹波电流0.3A,ESR 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。理想条件下占空比D=Uo/Ui,0.5V步进对应占空比增量约0.0139。如果用20kHz开关频率、STM32定时器72MHz的计数器,一个PWM周期的计数值是3600,占空比分辨率为1/3600约0.028%,远高于步进需要的1.39%。所以PWM分辨率不是瓶颈,真正的误差来源是滤波电感和MOSFET导通压降在输出端的基波压降。
电感对50Hz基波的阻抗是2πfL,1mH在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.8,KI取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,各自的输出电流由自身外特性决定。如果两台机器都是理想电压源,输出电压完全相等,电流分配完全取决于线缆电阻,无法控制。解决方法是给每台机器人为制造一个输出电阻,即下垂特性:Uo=Uref−Rd×Io。当两台机器并联时,公共Uo相同,假设两机Uref相等,则Rd1×Io1=Rd2×Io2,电流比值Io1/Io2=Rd2/Rd1。所以要让电流比K=Io1/Io2等于设定值,只需要让两台机器的下垂系数反比于K即可。
这就是题目要求(6)的本质:K设定从0.5到2.0可调,对应的是改变2号机的下垂系数。当K=2时,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_BASE=0.2Ω,2号机在K=2时下垂系数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_TARGET=30V 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%,在K=2时K实测必须在1.94到2.06之间。影响K误差的主要因素有三个:电压采样偏置、电流采样增益误差、以及两台机器之间的线缆电阻差异。其中线缆电阻影响最大,因为低压大电流场景下,一根0.5米的长线缆电阻可能有20mΩ到50mΩ,与0.2Ω的下垂系数相比不是小数目。
校准流程我按三步走。第一步,K=1、Io=3A条件下,读取两机电流采样值,计算K实测,如果偏离1,则调整2号机电流采样的增益系数,使K回到1.00。第二步,设定K=2,再次读取K实测,如果偏差大于3%,说明是1号机或2号的电压环参考电压Uref有偏差,通过微调2号机的Uref偏置来校正。第三步,在K=0.5、1.0、2.0三个点各测一次,画一条K_set与K实测的曲线,如果曲线是线性的,说明采样增益和Uref偏置都已校准到位。为便于现场调试,我在2号机程序里留了一个校准模式,通过串口修改两个内部参数:电流采样增益和Uref偏置,不需要重新编译。
电流采样在这个题目里有特殊性:输出是交流有效值,不能用直流感测芯片直接读。我用的方案是电流互感器加真有效值电路,或者用低阻值分流电阻经隔离运放放大后送入ADC,再在软件里做RMS计算。后者的好处是温漂小、线性度好,分流电阻选5mΩ的合金电阻,2A电流下压降10mV,对输出电压的影响可以忽略。采样这一级的零点偏移要在硬件上做调零,软件上每次开机先空载测一次零点存起来,抵消运放失调电压。
4.4 两只变换器的硬件一致性与误差边界
并联均流的最后一道坎是硬件一致性。即使软件完全正确,两机的驱动延迟、光耦传输延迟、滤波电感感值不一致都会造成外特性差异。驱动延迟不一致的直接后果是两机的实际占空比存在固定偏差,等效于Uref不一致。我在焊接时要求两机的驱动电路使用同一批光耦,MOSFET选同一封装同批次,滤波电感绕制后测试感值误差控制在2%以内。更细致的做法是把两机的空载电压做一次出厂校准,在K=1、Io=0条件下把Uref误差修正到10mV以内。这套校准做完,K实测的相对误差基本能压到1.5%以内,给3%留足余量。
5. 效率与THD的联合调试:开关频率、死区补偿与测量顺序
5.1 先单机后并联的调试顺序
拿到板子后不要直接上并联,严格按照单机到并联的路径推进。第一步单独调试1号机,完成Uo步进调压和负载调整率测试;第二步测试单机效率,确认60W输出时效率大于91%,留出并联后可能增加的损耗余量;第三步再让1号机带载稳定运行,软启动2号机做并联。并联调试时用示波器电流探头同时观察Io1和Io2的波形,如果电流波形在切换瞬间出现振荡,优先怀疑恢复环带宽过高,把0.01的积分系数再降低一半。
效率测试有个容易踩的坑:题目规定辅助电源耗能计入效率,但变压器T是外部设备,所以测量点应该在隔离变压器次级也就是Ui=36V那一侧。用功率分析仪同时读取输入有功功率和输出有功功率,输出侧是阻性负载,Uo和Io同相,P_out=Uo×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 一个快速定位均流误差的技巧
当K=2时K实测偏差超过3%,不要急着改控制参数,先用万用表毫伏档测两台机器输出端子到负载端的电压差。如果两机到负载的线缆长度不同,负载端测到的电压相同,但两机各自的输出端电压其实不一样,这相当于给2号机叠加了一个负的Uref偏置。处理方式不是换粗线缆,而是在2号机的Uref偏置参数里主动叠加一个反向修正值。操作方法:设定K=2,空载下测两机输出电压差ΔU,然后在2号机程序里把Uref偏置减去ΔU的一半,重新带载测试。这个技巧能解决90%的K值偏差问题。
本文还有配套的精品资源,点击获取