前言:
前面水了几期视频介绍到了我自己DIY的电子负载,很多小伙伴比较有兴趣,今天写个专栏做个开源和介绍吧。(我在电源网水过一个帖子,可能有的小伙伴没有账号,今天到B站专栏再水一下)
简介:
电子负载作为电子工程师经常使用的一款仪器,测试电源,电池容量等会经常用到。
先说下DIY的电子负载具体参数和技术细节吧:
一、电子负载最大电压100V,电流20A,最大功率150W
二、硬件支持恒流和恒压双闭环设计,负载支持恒压负载。恒流负载,恒阻负载,恒功率负载。
三、可以拓展支持电池直流内阻测试,太阳能电池板功率曲线测试。
四、主MCU采用STM32G0设计,32位MCU,64M主频,12位ADC,多路定时器。这是一款ST比较新的MCU,后面一段时间可能成为低成本32位机主流。可以学习下。
五、模拟量采集采用自带ADC,基准量给定采用PWM滤波处理,是一款比较低成本的方案。
六、电子负载采用两个通道设计,可以软件独立设置电流,可以保证功率均衡分布,同时可以兼容小电流的精度和大功率热量。
七、电压采样采用四线制,电压量程采用三段可编程电路设计。保证各个电压段的电压精度。
八、两路NTC实时温度检测,保护模块不过温烧坏,同时有智能风扇控制。
九、4.3寸液晶屏参数显示和设置交互,可以显示多个参数,图标显示等。
链接:https://pan.baidu.com/s/14ErBCNiB3yPpUhFxt-qJjQ
提取码:6bsz
整体结构:
主界面
整体效果图
功率扫描模式(测试温差发电功率就用的这个模式)
静态测试:
48V恒压负载
12V恒压负载
3.7V恒压负载
5A恒流负载
2A恒流负载
整体精度还是勉强可以用的。
动态测试:
恒流启动波形
恒流关闭波形
条件:先接好电源,再开启和关闭负载。
这边顺便说下,PWM滤波成模拟量给定基准是有缺陷的,为了满足模拟量的纹波足够小,一般RC滤波常数选PWM周期的10-20倍。这样PWM的分辨率(即模拟量基准的分辨率)和动态速度不能同时最优化,需要做个均衡。
恒流负载启动波形,看下边沿时间大概3ms。没有过冲和震荡还是可以的。
恒压梯形波动态测试
恒流1A,电压3V-10V动态变化
电压波形没有明显震荡和超调,说明电子负载动态特性还行
电流波形在电压变化过程中有震荡,说明电源的恒流模式动态调节欠缺。
恒流梯形波动态测试
电压15V,电流1A-4A动态变化。
电源电压未随着电流变化而波动,说明电源恒压动态调节特性还可以。
电流也没有明显震荡和超调,说明电子负载动态特性也行。
恒流硬连接
一般电子负载使用都是先连接好电源,再设置参数并启动。
如果先设置好电压电流参数,再硬连接到电子负载上,就存在过冲的风险。
下图为硬连接电流过冲波形,当然反馈调节电路反应慢也是电流过冲的一个重要原因。
当然软件是可以做一些优化和规避的,还没着手优化。
温度测试:
MOS管A通道
MOS管B通道
180W,超过额定功率20%负载半小时以上, 温度还有余量。
开发环境:
固件基于keil5编写
STM32底层外设基于STM32CUBEMX自动生成
串口屏基于USART HMI
电路板基于cadence绘制
原理图初步讲解:
负载部分
整个负载由两个负载模块构成,这边就贴一个图出来。
电流采样采用TI INA199运放放大,采样电阻R80实际贴的是5毫欧,原理图画了10毫欧。
运放出来的电流信号一个支路给反馈调节回路,一个支路给MCU采样。
R83和R84为一个负反馈电阻,降低MOS管跨导,减少过冲和震荡,同时可以分担部分低压大电流负载时功率。这个可以取消。
U9A为恒压调节回路,
U9B为恒流调节回路,
当输入电压低于设定电压时,U9A输出低,关闭负载,当电压高于设定电压时,U9A输出高,由U9B参与回路调节。直至负载电流等于设定电流稳定,这个模式为恒流调节模式。
当电压高于设定电压,电源的输出电流低于设定电流时(比如恒流源),U9B输出高,因为D16的原因,不起作用,这时U9A也输出高,MOS管导通,拉低电压,会稳定在输入电压等于设定电压状态,这个为恒压调节模式。
再稍微补充下:
一、原理图里面得MOS管实际使用型号为IRFP250
二、电流采样得U8 INA199的基准脚这里接的是地,导致零电流或者小电流的时候有点漂移(运放不能做到理想的轨至轨输出),最好的做法将基准脚上浮50-100mv。
电压采样反馈部分
电压采样支持远端采样,解决线阻压降问题。
电压采样分两级,第一级为差分电路,增益为 51 / 1600 。保证输入0-100V时输出在3.3V以内。
第二级采用一个可编程放大电路,
两个MOS关闭时二级增益为 1,跟随模式,可以测试到 0-100V量程
Q8关闭,Q9开启时二级增益为 231/51 总的增益为 231 / 1600 ,可测量0-22V量程
Q8开启,Q9关闭时二级增益为 19,总增益为 969/1600,可测量0-5.4V电压
电阻阻值分布情况
有些小伙伴好奇,差分电路为什么用了这么多电阻串并联。
这是个非常规的做法,因为前级电路对精度要求比较高。我就设计了个多个电阻串并联调高精度。
下图是我随机测量71个精度为1%的100K电阻,均值99.915K,误差0.1%左右。通过分布差异补偿可能提高精度。
当然如果向一个方向偏就难以补偿了。
国产运放
这个电路对运放要求也比较高,用了一个国产的运放,效果还可以。国产芯片一直在升级啊。
MCU部分
MCU这页比较简答,主MCU采用32为M0+内核的STM32G030C8T6。
首先是一个MCU最小系统。
PWM1-PWM3是一个调节给定的基准模拟量,使用PWM滤波获取模拟量,这边使用了二阶滤波。
ADC3-ADC5为一些模拟量采集。
J16-J17为风扇接口
ADC0-ADC1为外接的NTC温度接口。
J15为串口屏接口
J23为预留和上位机通讯接口
J22为预留的数字电位器接口
固件初步讲解:
固件工程
程序分为两个:一个为串口屏代码,另一个为MCU固件。MCU采用KEIL5编译器,底层外设代码生成采用STM32CubeMX.
整个固件大的框架采用状态机结构。
对每个文件做个介绍吧:
AdcFb.c :模拟量采集的一些出来,包含滤波计算电压电流之类的。
Eload.c :电子负载相关代码
Gui.c : 界面参数显示的相关代码
HMI.c :串口屏通讯解析,一些屏幕相关代码
LED.c : 对LED不同模式的显示做了个封装
NTC.c : 计算外接NTC的温度,包含对数计算法和查表法,这边用的查表法
SysParas.c : 一些系统参数
UsartBuf.c : 对串口做了个缓存处理,串口屏的硬件底层
FAN.c : 智能风扇的一些控制逻辑
补充说明:
有些小伙伴好奇,为什么MOS不能并联,这样就可以少一路驱动和采样。
因为两个MOS直接并联容易导致电流不均衡,电压一样,发热也就不均衡。一个卖力,一个划水。
我们看下下面的图片:
两个完全一样的MOS管,相同的GS控制电压,比如4V,温度在25度时电流3A,温度150度时电流6A。
这样就会导致,如果某一个温度稍微偏高点,相同的控制电压,电流会更大,温度进一步提高,加剧了不平衡。
但过了A点后(大概30A),相同的GS控制电压,温度升高,反而电流下降。这样反而会趋势两个温度接近。
为了保证每个MOS管发热均衡,保证每个MOS管发挥岀最大功率,一般采用多通道分别控制。