xiehuipeng
级别: 探索解密
精华主题: 0
发帖数量: 7 个
工控威望: 132 点
下载积分: 537 分
在线时间: 17(小时)
注册时间: 2011-07-10
最后登录: 2019-09-11
查看xiehuipeng的 主题 / 回贴
楼主  发表于: 2013-03-05 01:06
1:有一台直流源的功能:只要输入0-10V电压就能对应输出0-2000A电流;
2:我用fx2nplc加个2ad模块,控制2ad输出0-10V来使直流源输出0-2000A范围内任意的电流值;
3:2ad模块的分辨率是 0-10V对应0-4000字。
4:程序中控制2ad的寄存器是D100。

现在问题来了-------
精度问题:实际中0-10v未必完全与0-2000A成线性。
比如理论上我要输出500A电流对应2ad输出2.5V(D100=1000字);输出1000A电流对应2ad输出5V(D100=2000字)。
实际中可能需要D100加减几个字才能精确的输出电流值:输出500A电流实际对应2ad输出2.7V(D100>1000字);输出1000A电流实际对应2ad输出4.8V(D100<2000字)。

我的解决方法是-----
1:为了能精确输出0-2000A的电流值,我把电流范围大致分为100段,每20A为一段视为线性。
2:手动调试时:控制D100能+1或者-1,分别记录钳形表显示电流20A、40A、60A...... 2000A时D100里对应的数字,存在以d500开始的100个寄存器里。
3:当我要精确输出一个电流值时,比如55.5A,我就取出40A与60A记录下来的值经过y=kx+b方程计算,得出y值传给D100,这样就能输出55.5A。
4:这种方法段数分得越多越细,精度就越高。但调试却非常非常耗时间。如果客户要输出0-4000A或者精度要求更高,那可不止记录100个数据,可能要成倍成倍的数据量。

所以请各位大神能帮忙想出一种控制方案来解决此种问题,小弟不胜感激。。。。
[ 此帖被xiehuipeng在2013-03-05 10:54重新编辑 ]