前段时间做了个电子负载,第一次真正接触,前几年就听过电子负载,但未了解其工作原理,之前一直误认为电子负载工作时场效应管处于饱和区,通过斩波控制平均电流。
电子负载测试的用处很多,如测试电源电流、功率等及电池的容量之类的,其实电子负载是很容易做的,下面分3块介绍下电子负载工作原理,其后说明labview软件设计。
1. 核心部件:大功率mos管,及其散热部分。电子负载全部功耗全部转化为热量,因此必须有效散热。
电子负载工作原理其实就是使场效应管工作在放大区:
如上图(右)可知,在Vgs(栅源极电压)大于4V时,场效应管导通电流逐步加大,虽然曲线很陡(也就是可控的电压范围很小),但精确调节后时可以精确控制电流的。若只想做个最简单的手动电子负载,那么只需要2个基本元件即可:
一个场效应管,一个可调电阻,场效应管必须有散热,否则过热会烧坏。上图左利用输入端电压控制,但电压可能有波动且输入电压不能低于5V,而右图呢则可以在场效应管最大可承受电压范围内都行,不过需要额外的一个直流电压,用电池串接等都可以,电压在5-12V间。此外最好有个电流表,不然就无法知道电流情况。
上图就可以实现手动精确调节电流,一般可调电阻中间端有3.8V-5V左右电压就能使场效应管导通(不同的管子有不同特性,实际测试下就知道了)。
2. PI调节器,这个是为了实现闭环控制,使场效应稳定在某一个输出状态,如恒流、恒压等。非手动模式下就得考虑它了。简单来说它由信号采集输入到PI调节器,PI调节器根据参考电压进行自动调节输出,PI调节器就是比例、积分控制,如常用的PID软件调节一个性质,只是这个是硬件的。
信号采集很简单,电压通过电阻分压即可,电流则需采样电阻,再通过放大器放大它上面的电压信号就可算出电流了,如下图:
电流只需采集R50的电压放大值即可,但是若是有大电流则需适当减少阻值或对其加强散热(风扇吹等)。
PI调节则是用一个放大器再通过一个阻容反馈:
输入输出关系为:Vo=Vref﹣(R2/R1) ×Ve-1/( C1×R1) ×∫Vedt (Ve为R1两端电压)
其作用就是使给定一个Vref参考值,Vi接电压或电流反馈,Vo接到场效应管的栅极(控制端,可控制场效应管输出电流),当发现电流或电源过大或过小时Vo就是适当减少或增加。最终它会到达平衡(运放的+-输入端电压值一样)。
所以控制时只要给定Vref(DA芯片输出等)值,PI调节器就会自动使输出达到目标值,调节R2、R1可使调节器响应速度变快,但过大则会导致超调,就会出现产生不稳定的锯齿输出波,过小就没起到调节作用,因此最好用一个可调电阻预先调节试下。
3. 其余的东西。这些则是一些辅助器件了,没它们一样可以做电子负载,有则更方便使用且精度更高,如单片机、AD芯片、电压基准、模拟开关芯片、温度传感器等,其中单片机是为了根据指令或键盘输入进行控制电流、电压,同时内部用PID算法使输出结果更精确,AD芯片则是为了提高精度,但成本也会贵,模拟开关芯片是为了切换不同的恒流、恒压模式,其实继电器是最好最便宜的,导通阻值低,但体积大且费电。
影响设备精度的主要是模数转换AD部分、放大器选用,放大器就没什么好说了,几美元到几十美元的进口放大芯片,稳定性及可靠性基本可从价格看出来,模数芯片随便一个好点的AD转换芯片都到30元以上了,因此要么不用AD芯片要用就用好的,就像拍照一样,要么用单反要么就用手机,因为投入和得到的性价比会更高。
整体结构图如上,虚线部分代表可以取消(用单片机代替),原理图如下:
电路采用STM8做控制器,它的主要作用时读取电流电压值,再根据这值计算输出的参考电压,以使实际电流或电压接近目标值。做电子负载只要掌握“核心”控制电压即可:mos管控制好就足够了,控得准不准直接就体现电子负载的性能。(不同的放大电路PI调节器及电阻值选择是不同的,需手动测试)
那么电子负载实际可以做什么呢?其实最根本的作用就是用作一个人为可控的电阻,可以控制流过电阻的电流,可以控制加在其两端的电压,有了这两个可控的基本元素,接着就可以控制电阻发热的功率,可以控制电阻的等效电阻。
例如恒流或恒压供放电,电池容量测试(以恒定电流放电能放多长时间),测试电源输出最大值,虽然它只是一个简单的测试设备,但通过给其编程加入不同的控制,它便可以实现很多的用处,比如说电路电流一会高一会低,且电流始终大于目标值,这时就可以在电路中串接电子负载,将电路实现恒流,注意电阻负载主控供电不要与测试电路同一路直流电源(最好单独电池之类的)。
电子负载其实技术含量并不高,但做好它也不容易,比如高精度,宽范围,超大功率等,一个是烧钱,二是整个系统考量要做的很好(找到平衡点),用进口的mos管多做些破坏实验,积累控制经验,其次得用高精度放大及信号采集电路,此时滤波、采样等一系列问题就出来了。下面再来说下labview程序,介绍下程序设计及一些它的基础知识,高手们就绕过吧。
为何用labview呢,其实原因也很简单,用它编程简单,调试也方便,debug也直观,最主要是N年前好像在学校学过,有那么一点印象。为做程序labview我又去借了本教科书,后来我发现我错了,书上介绍的是那么简单概括,怪不得一本薄薄的书把labview全部功能介绍一遍,看完后只记得原来labview有什么功能,但怎么用呢?我不得不一边百度一边针对性测试程序。言归正传,程序主要分:串口通信、数据处理、文件输出、配置保存4大块。
1. 串口:
串口就这么简单,的确就这么点就可以收发通信,但前提是电脑要装visa串口驱动(官网或网上均有),比单片机串口初始化还简单。
2. 数据处理没有太多需要介绍的,每个人写程序思路不一样,自然处理的方式也是五花八门的,但这里需要重点说的一点就是:labview的程序框时并行运行的,没错,就是并行的,如里面有多个while循环则循环是同步进行的,这样速度处理快但会有个很关键问题—里面的变量可能同时被多处赋值,此时这个值必定出错,说了这么多就是要提醒一下变量若有多处赋值的必须分时写入或等待一方写完后再由另一方控制写入,这里简单用个示意图表示:
此外就是主循环(一直处于循环下不停止的)内放一个延时等待,哪怕是1ms,若多个大循环不加它你就会发现CPU占用率会高达90%以上。
数据的传输在485下时必须考虑485总线的半双工特性,不能像232那样同时收发,因此必须有个主其他为次,因此软件以上位机为主,由它主动读取数据或控制(通信如上图)。
3. 采集的数据如何存到excel里呢?其实开始我看到labview报表这个功能时心里时很放心的,以为它可以很简单快捷的操作excel,谁知它仅是很方便生成excel而已,若在excel里快速操作数据几乎不可能,反正我没找到一个很好的方法可以用内置报表工具操作已存在的excel。导出到excel建议分2步:用报表功能新建excel,Activex操作已生成的报表(随时可操作)。为何这样呢:一是用模板生成excel界面好看且程序简单,内置的报表工具就可以实现,但在既有文件中快速操作单元却不行;二是Activex生成文件过程复杂但操作单元格还行。所以只好把两者结合用。
生成一个漂亮且格式固定的excel可以用模版,这样可以预先在模版把格式设定好,报表功能可直接套用。
如上图写入和读取单元格可写单元格序号如A2,也可写它被定义的名称。更多功能可以查Activex相关手册。
生成文件一是要确保路径的正确,二是指定的单元格存在或可写入,不然写入失败有弹窗告警。
4. 配置文件保存
保存配置的方法有很多种,labview里面也有单独保存配置的控件。配置文件在打开软件时读取,关闭软件时保存配置。
关于软件流程设计:先是从串口读取数据并存入缓冲区,再通过另一个循环读取缓冲区数据(此时就有变量在多处读写的情况,必须防止变量多处写入的情况,虽然读取时间很短但是变量写入冲突的概率还是存在的)。最后解析代码并作出相应指令控制或显示。
此外界面设计也是一个麻烦事,一是字体,二是界面缩放,字体不要用应用程序字体,最好指定字体,如宋体、黑体,这样XP系统或者win7系统都可显示不变样,最头痛的就是界面缩放,虽然可以用分隔栏,但是效果还是没其它编程软件效果好。
“文件—>VI属性”里设置窗口。由于这次软件界面为了简化使用,采用单一窗口,所以较高分辨率缩放时效果有点惨不忍睹。
软件中未使用太多虚拟仪器的元素,但为了将波形界面做的更大,显示的有效信息更直观,只好舍弃掉那些仪表盘、旋钮,我觉得软件界面做到够用且不繁杂就行了,什么功能、按钮都丢上去只会没了重点。
需值得注意的是,在测试labview2014-2015两个版本编译环境时,均无法使用绿色运行库,仅2013版本及以下可以使用(绿色运行库在安装目录的\National Instruments\Shared\LabVIEW Run-Time里),也就是说labview2014或2015生成的程序须以安装包形式生成,不然未装labview的电脑无法使用,所以不一定版本越高越好用。
最后,电子负载已做了几十个(PCB打样了20块),自己也用不了那么多,有需要话可以去https://shop280708882.taobao.com看看,那有硬件更多使用介绍及软件下载(含visa串口驱动等的网盘链接)。