赛题要求

搭载屏幕显示电压电流数据参数;通过按键或旋钮进行参数设置;输入电压为 5~12V,输出电压与电流可调,具体参数如下:

  • 电压输出范围:0~12V;
  • 电压调整步进:0.1V;
  • 电压测量精度:0.01V;
  • 电流输出范围:0~2A;
  • 电流调整步进:0.1A;
  • 电流测量精度:0.01A。

设计摘要

本系统采用纯数字方案,以EG2104栅极驱动IC为核心,以STM32G474RBT6单片机为控制器,拓扑结构为四开关管的同步Buck-Boost,根据电压、电流输出采样,进行PID闭环控制,从而实现恒压或恒流输出。直流输入电压5-12V,系统输出直流电压0-12V可调、直流电流0-2A可调,步进电压0.1V、步进电流0.1A。系统搭载屏幕显示输出参数,显示精度0.01,支持用户触屏控制。输入输出接口使用XT30,输入支持过压保护、过流保护,输出支持过压保护、恒流自动切换。

系统方案

本系统采用双模态、四开关管的同步Buck-Boost拓扑结构作为升降压方案,通过改变单片机的PWM占空比,控制栅极驱动IC改变4颗NMOS的开关,从而获得用户要求的输出。

器件选型

主控

STM32G474RBT6,最高170 MHz主频,同时具有FPU单元。具有高精度定时器,此应用中输出的PWM频率为200kHz。G474带有可编程运放,所以无需设计外部电路,配置成电压跟随器,即可将内部运放用于电压采样。

MOSFET

因为是高频开关电路,所以MOS管的开关损耗和消耗功率不可忽略。应优先考虑栅极电荷较小、漏源导通电阻较小的MOS管。再根据输入电压,筛选漏源电压、驱动阈值电压小于EG2104供电电压的MOS管。最终,选择了 Qg typ=19nC, VGS=10V, RDS=3.1 mΩ\mathrm{ Q_{g \ typ} = 19 nC, \ V_{GS} = 10 V, \ R_{DS} = 3.1\ m \Omega } 的IRFH8318PbF。

屏幕

采用陶晶驰T1系列2.8寸串口屏,电阻触摸,与MCU仅通过串口DMA通信,减小对主要pid计算速度的影响。

辅助电源

由于需要适应5~12V输入需求,且要能带动屏幕,所以先用DC-DC一级降压至4.8V,再用LDO降至其他所需电压。为了增加模拟采样的精准度,使用了TPS7A20作为模拟3.3V的降压IC,和精密、低压差的REF3025作为模拟2.5V的降压IC。

电感

降压时

已知公式

Lbuck=VOUT×(VINVOUT)VIN×ΔIL×FSW=VOUT×(1VOUTVIN)ΔIL×FSWL_{buck} = \frac{V_{OUT} \times (V_{IN} - V_{OUT})}{V_{IN} \times \Delta I_L \times F_{SW}} = \frac{V_{OUT} \times \left( 1 - \frac{V_{OUT}}{V_{IN}} \right)}{\Delta I_L \times F_{SW}}

ΔIL=γIOUT\Delta I_L = \gamma I_{OUT}

式中,FSW\mathrm{ F_{SW} } 是开关频率,本系统使用 200kHz,ΔIL\mathrm{ \Delta I_L } 是电感的交变电流,γ\mathrm{ \gamma } 是交变系统系数,这里选取 γ=0.3\mathrm{ \gamma = 0.3}。根据公式可知,当 VIN\mathrm{ V_{IN} } 不变,VOUT=0.5×VIN\mathrm{ V_{OUT} = 0.5 \times V_{IN} } 时,Lbuck\mathrm{ L_{buck} } 得最大值。参考题目中 5V 的输入,这里选取 VIN=5V,VOUT=2.5V\mathrm{ V_{IN} = 5V, V_{OUT} = 2.5V},代入公式计算得 ΔIL=0.3×2A=0.6A,Lbuck=2.5V×(5V2.5V)5V×0.6A×200kHz=10.42μH.\mathrm{ \Delta I_L = 0.3 \times 2A = 0.6A, L_{buck} = \frac{2.5V \times (5V-2.5V)}{5V \times 0.6A \times 200kHz} = 10.42 \mu H. }

然后,再根据公式计算 ILPK1=ILOAD+ΔIL2\mathrm{ I_{LPK1} = I_{LOAD} + \frac{\Delta I_L}{2} } 计算电感峰值电流,得 ILPK1=2A+0.6A2=2.3A.\mathrm{ I_{LPK1} = 2A + \frac{0.6A}{2} = 2.3A. }

升压时

已知公式

ΔIL=γIIN=γIOUT×VOUTVIN\Delta I_L = \gamma I_{IN} = \gamma \frac{I_{OUT} \times V_{OUT}}{V_{IN}}

Lboost=VIN×(VOUTVIN)VOUT×ΔIL×FSW=VIN2×(VOUTVIN)γIOUT×VOUT2×FSWL_{boost} = \frac{V_{IN} \times (V_{OUT} - V_{IN})}{V_{OUT} \times \Delta I_L \times F_{SW}} = \frac{V_{IN}^2 \times (V_{OUT} - V_{IN})}{\gamma I_{OUT} \times V_{OUT}^2 \times F_{SW}}

相似地,取 VIN=5V\mathrm{V_{IN} = 5V}VOUT=12V\mathrm{V_{OUT} = 12V} 代入数据计算得 ΔIL2=0.3×2A×12V5V=1.44A\mathrm{\Delta I_{L2} = 0.3 \times \frac{2A \times 12V}{5V} = 1.44A}Lboost=(5V)2×(12V5V)0.3×2A×(12V)2×200kHz=10.13μH{\mathrm{L_{boost} = \frac{(5V)^2 \times (12V - 5V)}{0.3 \times 2A \times (12V)^2 \times 200kHz} = 10.13\mu H} }

然后计算电感峰值电流 ILPK2=IIN+ΔIL22=2A×12V5V+1.44A2=5.52A\mathrm{I_{LPK2} = I_{IN} + \frac{\Delta I_{L2}}{2} = \frac{2A \times 12V}{5V} + \frac{1.44A}{2} = 5.52A}

综合上述两种计算结果,选取电感量为15uH,饱和电流为14.5A的一体成型电感。(原理图中为10uH,并不是实际使用的电感)

其他芯片型号见原理图,电阻、电容实际使用数值与原理图相同,但型号可能不同。其中EG2104的自举电容用的NP0陶瓷电容。

电路设计

原理图

img
img

图一为核心升降压部分,图中4V8为一级降压后的输出电压4.8V,经测试,若供电电压较低(以4.3V为例测试),则整体带载能力不足,表现为PWM占空比极低时输出两颗MOS无法被驱动。且考虑到赛题最低5V供电,所以最终采取一级降压4.8V、自举电容100nF的方案。

图二为辅助电源部分,输入电压经过一级降压为4.8V,再经过二级降压为数字3.3V和模拟3.3V,再经过三级降压为模拟2.5V。

PCB

img

上图为主要电流路径,两个白色线框为回路区域示意,左侧输入端有一片保险丝和一片TVS、右侧输出端有一片TVS,三者起保护作用。右侧输出端使用一片5mΩ的电流采样电阻进行电流采样。板上共4个M3螺丝孔,便于后期将PCB固定于外壳。

img

上图左侧为功率地、数字地、模拟地的连接部分,通过0Ω电阻单点连接。右侧白线框为电压采样的分压电阻,采样电压输出后连接到单片机的内置运放,通过内置运放连接到ADC进行采样。

软件程序

主程序

MCU使用CUBEMX初始化,配置高精度定时器输出两路互补PWM波,其频率为200kHz。配置内部运放为电压跟随器模式,与ADC连接,ADC采样精度为12位。配置串口DMA,以及串口接收中断。配置主程序定时器频率1kHz。

  • 程序流程图如下图所示:

img

PID控制部分

  • CV部分pid模型:

img

此部分使用MATLAB中的Simulink建模,并生成代码,部署到单片机上,作为程序的PID计算部分。

实物展示

img
img

总结

经测试,此数控电源可以实现5~12V输入,0~12V、0~2A输出,0.1V电压步进,0.1A电流步进,0.01V电压测量精度,0.01A电流测量精度,输出误差非常小,稳定性高,可以很好地满足赛题需求。(参赛队伍:此方。成员:Poria Cocos)

改进方向

  • 本系统Buck-Boost为双模态(两路互补PWM波),无需区分升压或降压。可以换成三模态(建议添加输入电压采样,程序自动更改升压or降压模式)。
  • pid响应不算快,有较大改进空间,CV和CC切换时不是很流畅。
  • 如果不需要5V输入,一级降压可以高一点,提高EG2104带载能力。
  • 输入输出的13V的TVS和5A保险丝是专为本赛题设计,可以更换,以达到更宽的输入输出范围,具体的极限还未测试。
  • 带载时恒流模式实测值比显示值低,输出2A时低0.1~0.2A,应该是电流采样问题。

开源链接