矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 19291|回复: 38

优利德UT61E在数控电源自动校正中的应用

[复制链接]
     
发表于 2019-3-26 11:35:53 | 显示全部楼层 |阅读模式
本帖最后由 闻太师 于 2019-3-26 12:11 编辑

      在做数控电源的时候,为了提高性能通常要做校正。不管是用最小二乘法还是用其它曲线拟合算法,都是测量的点算多精度越高。以校正输出电压为例,操作步骤大概是:设置输出电压--> 测量输出电压-->记录输出电压,这一步骤重复若干次,然后通过公式计算拟合参数。手工进行这种操作十分累人,而且单调重复的操作一不留神很可能搞错数据,工作效率也很低。以我上次校正为例,测量120个点用了一两个小时,做完以后脖子疼了好几天。
如果这一操作能自动完成,必将极大的提高效率和计算结果的可靠性。楼主经过一段时间的鼓捣,摸索出了一套用优利德UT61E自动测量自动校正的方法,现分享出来,希望对需要的人有所帮助。

      自动校正的原理很简单,就是通过数控电源上的单片机程序把UT61E的串口数据读出来,然后与设置值一起计算拟合参数,不断重复这一过程,直到把完成所有需要校正的点。然后把计算出来的参数存入EEPROM/Flash,之后程序中使用这些参数完成校正。

      要达到这一目的,有几个问题需要解决:
一、UT61E与上位机的通讯协议和数据包格式
二、UT61E串口接头的供电

      第一个问题是重中之重,为此先用官方上位机软件连接UT61E,此时使用了USB转RS232转接头,连接成功。断开连接,然后打开PC上的串口监控工具CommMonitor,然后再次用官方上位机软件连接UT61E,成功抓取到串口连接过程中的数据。结果如果:
(, 下载次数: 67)
(, 下载次数: 68)
      波特率19200,7位数据位,1位停止位、奇校验。UT61E和上位机是单向通讯的,即UT61E只发,上位机只收。数据是ASCII码形式,每包数据以回车换行为单位。这些信息表明,UT61E和上位机通讯非常简单,非常有利于单片机读取。同时还注意到上位机在连接UT61E时有一个把DTR置为高电平、RTS置为低电平的操作。
      获得上述信息之后就可以尝试绕开官方上位机软件,使用普通的串口工具读出UT61E的数据了。首先断开官方上位机软件与UT61E的连接,然后打开雪莉串口调试助手,按上述信息打开串口,成功接收到了UT61E发来的数据,表明上述分析是正确的。
(, 下载次数: 62)
      再看数据包格式,因为在对数据电源做校正时只需测量直流电压和电流,所以只需要分析电压档和电流档的数据包格式就可以了,这里以电压档为例。用UT61E连接可调稳压电源,并把电源的输出从0逐渐调高到15V(这个范围够我用了),同时观察串口数据。可以看出0~2V时与2V~15V时的数据格式稍有不同(应该分别对应2V档和20V档),但中间都有分号。对比UT61E屏幕读数可见2V档的数据以0开头,单位是0.1mV;2V档的数据以1开头,单位是1mV。知道这些就足够单片机读取并解析数据了,数据包中其它的数据无需关心。
(, 下载次数: 67)

     现在分析UT61E串口通讯的问题。前边分析串口数据的时候提到了上位机软件连接UT61E时有一个把DTR置为高电平、RTS置为低电平的操作,由此可以推测UT61E的串口是通过这两个管脚供电的,另外坛子里矿友的一个帖子也证实了这一点。
     因为RS232的电平与TTL/CMOS不同,高电平是实测为9V、低电平实测为-9V。常用的电平转换是用MAX232完成的,手里正好有一块MAX232板子,简单改造一下,两路RS232输出为UT61E串口供电,一路RS232输入接收UT61E数据并转换为TTL电平供单片机读取。电平转换板做好以后先验证一下,连接好UT61E和USB转TTL,同时外接5V给MAX232供电,PC上用串口调试工具成功读到UT61E发出的数据。
(, 下载次数: 64)
(, 下载次数: 66)

     剩下的事就是修必数控电源的单片机程序,读出UT61E数据并计算拟合参数和。啰嗦一下:UT61E连接数控电源的输出端,把数控电源的输出设置为某电压,单片机读取UT61E测量到的实际电压,并把设置电压和实际电压保存在RAM里,然后再把输出设置为另一压,重复上述过程。然后计算拟合参数,然后再重复上述过程,直到所有需要校正的点都完成参数的计算。整个过程完全不用人工干预,几分钟后完成所有参数的测量、计算和保存,大功告成。
(, 下载次数: 65)
(, 下载次数: 65)


补充内容 (2019-4-7 17:05):
UT61E精度不算很高,业余玩玩可以,需要高精度还是得台表。

评分

2

查看全部评分

     
发表于 2019-3-29 17:17:53 | 显示全部楼层
闻太师 发表于 2019-3-28 17:19
0~12v分成12段,每段看成一条y=ax+b 的直线,每段采集10个点计算出a和b,所以总共120个点。

两点确定一条直线,既然你把每一段都看成 y=ax+b 的直线,那么只需要这一段的起点和止点就能确定 a、b,而不需要再测试这一段内的 10 个点。

也就是说,只需要测试 0V、1V、2V...12V 的 13 个点就能确定出 12 条拟合直线。

回复 支持 1 反对 0

使用道具 举报

     
 楼主| 发表于 2019-3-28 17:19:34 | 显示全部楼层
washu 发表于 2019-3-28 16:59
非线性的主要来源,

1、DAC 本身,这个是没有办法的,除非你不用 MCU 提供的 DAC

0~12v分成12段,每段看成一条y=ax+b 的直线,每段采集10个点计算出a和b,所以总共120个点。
回复 支持 1 反对 0

使用道具 举报

     
发表于 2019-3-26 11:41:32 | 显示全部楼层
顶一顶,没有61E表
回复 支持 1 反对 0

使用道具 举报

     
 楼主| 发表于 2019-3-26 12:06:58 | 显示全部楼层
xisogou 发表于 2019-3-26 11:41
顶一顶,没有61E表

理论上讲能和上位机通讯的表都行,就看解析数据难度大小了。
回复 支持 反对

使用道具 举报

     
发表于 2019-3-26 15:51:16 | 显示全部楼层
闻太师 发表于 2019-3-26 12:06
理论上讲能和上位机通讯的表都行,就看解析数据难度大小了。

1、这种情况应使用标准接口(和数据格式)的台式仪表。一方面这种长时间操作更应使用市电而非电池供电的仪表;一方面如今主流厂家的台式仪表基本都支持 SCPI 语法,可以用通用的 ASCII 明文操作和返回结果,不需要自己“解析”。

2、一个出发点为“廉价数控电源”的设计需要使用 120 多个校准点,我认为设计上有不合理之处,即使是一线厂家的高性能数控电源也不会使用如此多的校准点。实际上一线厂家的仪器校准点不会很多,尤其是用户校准的时候。比如电源(或万用表)的校准点通常只有 0 和增益(通常是满度)校准,线性度校准偶尔有,也只是几个点而已。

我的 Voltgen 具有 1ppm setting/result 和 5ppm INL 设计,但非线性校准点也只用了 10 个。虽然“测量点越多精度越高”,但也要考虑投入产出比这种经济问题,简而言之就是在 4 位半(UT61E)尺度上做 120 多个点是否是经济的。

为此我也给我的 Voltgen 设计了自动校准和测试程序。针对某台非线性曲线极不规律的样机 110 点的自动测试表明,非线性曲线和 11 点测试结果重合度极高,因此使用 10 点拟合后非线性可优于设计目标的 5ppm,进入 <1ppm 尺度,无需使用更繁多的测试点。



vg_c02.png

vg_c12.png

11 点测试
vg_c31.png

110 点测试
vg_c31b.png


校准后,非线性误差 <1ppm
vg_c32.png

评分

2

查看全部评分

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-3-26 16:47:57 | 显示全部楼层
本帖最后由 闻太师 于 2019-3-26 16:52 编辑
washu 发表于 2019-3-26 15:51
1、这种情况应使用标准接口(和数据格式)的台式仪表。一方面这种长时间操作更应使用市电而非电池供电的 ...


娃叔说的没错,这个方案可能不是最合理的,但对目前的楼主来说却可能是最适合的。

1. 设备问题:UT61E精度确实不如专业台表,可对于没有固定住所的楼主来说,台表那么大的家伙搬家很是麻烦,况且楼主是近一两年玩电源才需要好点的表,过了这阵子玩别的了台表就变成食之无肉弃之可惜的鸡肋了,业余玩玩UT61E勉强够楼主用了。

2. 校正点数的问题:选择好的曲线并估算出曲线的拐点确实用不了校正那么多的点。楼主粗略了一下上一个数控电源里影响输出电压准确度的因素:
  (1)DAC本身的失调和非线性的影响
  (2)电流型DAC转换成电压时电阻精度的影响,楼主当时买了一批1%的金属膜电阻,实测根本达不到1%,暂时还腾不出空来找合适的电阻。
  (3)电压放大时运放的失调及电阻误差对放大倍数的影响。
楼主数学不是很好,暂时估算不出以上三个因素所形成的输出曲线大概是个什么样子,暂时也没有太多精力考虑这事。
索性多分几段(目前是12段),每段都当成直线,也就是把输出曲线折线化。UT61E每秒刷新两次测量结果,考虑到电压刚变动后UT61E的测量结果不稳,丢掉前两个数据,测量每个点大约需要1.5秒,120个点3分钟左右也就完事了。这个速度虽然不算快,只要不是大批生产也够用了。况且方案摸索出来了,以后有精力有兴趣了还可以继续优化,不管是换成台表还是优化拟合算法/拟合曲线都是在现有的基本上稍做修改。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-3-26 16:50:00 | 显示全部楼层
哈哈,小猫猫来了,我就猜到了你准来。
回复 支持 反对

使用道具 举报

     
发表于 2019-3-26 17:08:09 | 显示全部楼层
有点屌
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-3-26 17:12:09 | 显示全部楼层

说的没错,就是屌丝级的东西,高大上的请绕行。
回复 支持 反对

使用道具 举报

     
发表于 2019-3-28 14:47:34 来自手机 | 显示全部楼层
好想法,好文章!
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2019-3-28 15:42:50 | 显示全部楼层
李雨萌 发表于 2019-3-28 14:47
好想法,好文章!

雕虫小技,感谢捧场
回复 支持 反对

使用道具 举报

     
发表于 2019-3-28 15:48:49 | 显示全部楼层
请教瓦书个问题:看到您校正的11个点都在曲线的拐点上,那这些点是如何确定的呢。
回复 支持 反对

使用道具 举报

     
发表于 2019-3-28 15:49:19 | 显示全部楼层
washu 发表于 2019-3-26 15:51
1、这种情况应使用标准接口(和数据格式)的台式仪表。一方面这种长时间操作更应使用市电而非电池供电的 ...

请教瓦书个问题:看到您校正的11个点都在曲线的拐点上,那这些点是如何确定的呢。
回复 支持 反对

使用道具 举报

     
发表于 2019-3-28 16:59:43 | 显示全部楼层
闻太师 发表于 2019-3-26 16:47
娃叔说的没错,这个方案可能不是最合理的,但对目前的楼主来说却可能是最适合的。

1. 设备问题:UT6 ...

非线性的主要来源,

1、DAC 本身,这个是没有办法的,除非你不用 MCU 提供的 DAC

2、运放的共模误差,在精密电路中它是主要的误差来源,因此当使用共模抑制比更大的运放。或者,将共模电压尽可能降低,比如我们看惠普等厂家的高性能电源,运放往往都是接成反相放大器形式,就是为了达成 Vcm 总是 0V 这个条件

运放的 Vos 相对固定,可以在校准中扣除;增益电阻引入的误差通常也不会表现为非线性的。

我唯一的疑问是,为毛你要弄 120 个测试点,你不是说分 12 段么
回复 支持 反对

使用道具 举报

     
发表于 2019-3-28 17:03:54 | 显示全部楼层
书到用时 发表于 2019-3-28 15:48
请教瓦书个问题:看到您校正的11个点都在曲线的拐点上,那这些点是如何确定的呢。

明显没有这回事吧,只有 2、5、7、8 几个点是拐点吧,其他都不是。

曲线是测绘出来的,110 测试图表明和 11 点测试图很接近,因此可以用 11 点测试图做拟合,测试点当然是以人类方便的角度   11 点就是 0V、1V、2V、3V........,110 点就再每 0.1V 插入一个点咯。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-4-28 12:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表