搜索
bottom↓
回复: 32

抛砖引玉 基于DSP的LCR表试制 供大家参考

  [复制链接]

出0入0汤圆

发表于 2014-8-3 22:20:50 | 显示全部楼层 |阅读模式
本帖最后由 一天的蓝 于 2014-8-3 22:20 编辑

12年区赛题目 设计的测量范围不大 以验证为目的 还不具备实用性,仅作为实验 上传源码 以供大家参考。
由于去年做国赛的一些感触,一直以高频、连续测量为目标,而平衡电桥结构在100kHz以上表现不太好 提高测量频率和精度是下一步的研究方向。
现常用的方案是开关鉴相器和积分AD做复数变换,提高测量频率较为困难 元器件也比较多,而利用模拟乘法器&LPF I/Q解调方法虽频率高结构简单但有比较大的offset 动态范围不大 ,故转向研究基于数字信号处理的测量方法。
通过对同步采集的I/V两路数据做傅里叶变换 得相应频点的实部和虚部数据,复数计算得两路信号的模值之比和相位差 其计算方法与开关鉴相一致 不赘述。

主控是STM32F103Ze 模拟前端使用Linear的零漂运放和PGA,切换Rfb的是TI的高速视频开关,手头正好有片子 所以没有认真选型 器件可以降低要求。
利用STM32 DAC DMA 做波形发生器 200点正弦表 600mVrms,STM32 ADC12 DMA TIM做双路同步采样,采样一个周期 用F1的DSP库做64点FFT。
程序使用了FreeRTOS做任务调度 液晶是坛友的AMOLED 下面上图:

100uF电解 100Hz 测量速率10SPS



20pF瓷片 10kHz 测量速率我锁在100SPS,空载显示有0.x p的容性负载 暂未校准,系统相移1kHz 0.x° 10kHz约4° 比较大了 暂未校准



显示内容从上至下分别是: V/I 通道模值;直流分量/其它频域分量;V/I 通道相位差;模值换算的增益系数;换算的阻抗;换算的电容量;换算的电感量;测试频率/增益/Rfb;刷新帧率/测量速率;
做了自动增益控制和自动频率控制 数据稳定时间最大1s,全量程R/L/C 千位跳动1个字 基本准确度5% 初步校准可做到1%以内 D/Q可根据相移计算 暂未加入该功能,漂移还没测试。
其它图片就不上了 太占空间,下面是仿真图,调试时增加了相位补偿电容(不得已而为之 系统相移主要来源)



代码尚未整理 注释很少 但核心就是几行,附件如下:







部分运算过程:

  1. CosB = (x1*x2+y1*y2)/(sqrt(x1*x1+y1*y1)*sqrt(x2*x2+y2*y2));        //求向量夹角的坐标运算 x/y分别为FFT结果的实部/虚部数据
  2. Phase = acos(CosB)*57.29578;        //角度换算
  3. if((x1*y2-x2*y1) < 0)                //判断向量夹角方向的坐标运算,0-π Sin符号为正
  4.         Phase = -Phase;
复制代码


改进思路:
1.DAC输出信号频谱成分复杂 一定条件下运放出现多个极点 产生自激和相当多的无用频率成分,增加相位补偿有所减轻,拟增加开关电容滤波器增加几组Rfb 减少极点。
2.输出阻抗100R 设计的测量最小阻抗10R,未设电压通道程控放大,增加差分放大器及模拟开关进行切换,扩大量程。
3.改用4线测量。
4.提升测量频率,I-V转换或将不平衡 还在考虑解决方案。
5.参考DDS原理 使用相位累加器 增设LPF 改善信号质量。
6.固定AD采样率 增设抗混叠滤波器。
7.增加USB通信,上位机。

接触LCR尚不久 电路、程序还不完善 望各位高手不吝赐教 一同探讨!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

阿莫论坛才是最爱国的,关心国家的经济、社会的发展、担心国家被别国牵连卷入战争、知道珍惜来之不易的和平发展,知道师夷之长,关注世界的先进文化与技术,也探讨中国文化的博大精深,也懂得警惕民粹主义的祸国殃民等等等等,无不是爱国忧民的表现。(坛友:tianxian)

出0入0汤圆

发表于 2014-8-3 22:59:27 | 显示全部楼层
dsp用在哪里?没看到

出0入0汤圆

发表于 2014-8-3 23:02:32 | 显示全部楼层
mubei 发表于 2014-8-3 22:59
dsp用在哪里?没看到

他应该指的是数字信号处理,不是指器件

出0入0汤圆

发表于 2014-8-3 23:24:22 | 显示全部楼层
一直都没有搞懂开关鉴相器的工作原理,LZ可否详细的讲一下,谢谢~

出0入0汤圆

发表于 2014-8-4 09:14:27 | 显示全部楼层
这没用开关鉴相器,是高速AD采样之后进行运算分解得到实部虚部,再计算得到各种参数,这种方式比传统的鉴相器现代多了。运算经过优化后速度也很快,72MHZ的STM32足够足够了,不过对ADC的速度要求较高,还有ADC的分辨率,我当时分析12BIT的ADC是不够的,主参是没问题的,但是LCR表很多情况下希望要准确的副参,这个12BIT就不够用了,我后来用的是AD的200KSPS的16BIT ADC SPI接口的还是,用来采样最高10KHZ。原来想做到100KHZ,用2MSPS的16BIT ADC配合FPGA+STM32架构的,后来实在买不起ADC了,也没地方申请高性能样片只好作罢,。参考信号我没有采用STM32的DAC来做,而是直接用TIM生产稳定的方波再用8阶LPF来实现的,因为当时发现STM32 DAC生成正弦波相位不稳,计算后得出的副参数值跳动的厉害,后来改成这个方式后就稳定多了。自己用感光板DIY出来LCR测试仪还是很准确的。后来人懒了,也没精力搞个壳,就扔在一旁没再玩了,个人感觉搞下LCR测试仪可以学到非常多的东西,很有意义

出0入0汤圆

发表于 2014-8-4 09:21:28 | 显示全部楼层
还有楼主根本没必要采用现成FFT库来做计算,把傅里叶算法吃透,完全可以自己写,很简洁,而且速度快很多倍

出0入0汤圆

 楼主| 发表于 2014-8-4 13:28:41 | 显示全部楼层
1109 发表于 2014-8-3 23:24
一直都没有搞懂开关鉴相器的工作原理,LZ可否详细的讲一下,谢谢~

我对相敏检波器的应用并无经验!理解并不深刻 您的问题请大师们回答更好~

出0入0汤圆

 楼主| 发表于 2014-8-4 13:35:03 | 显示全部楼层
JackFrost 发表于 2014-8-4 09:14
这没用开关鉴相器,是高速AD采样之后进行运算分解得到实部虚部,再计算得到各种参数,这种方式比传统的鉴相 ...

您已走了很远!这样的系统ADC速度和精度影响很大,因为主要考虑内部AD减少连线 使用DMA比较方便~所以用了内部AD DA,12bit够呛 噪声也不小 现是用改变增益的办法做一些补偿 动态范围并不大。
AD和DA触发时钟锁定在64:200 测量的初相很稳定 又因为是通过向量坐标算夹角 所以测得相位差大约只在千位跳一个字 下一步也准备统计出各参数的分布 如果符合期望是可以改进的!几百SPS的计算可以做很多事了。
DA&DMA合成的正弦波 10k的频率和相位还没有发现异常,或许是因为这样设计的初相稳定的缘故,我认为更大的问题是其谐波,如果被测网络是电容这样的频率特性 谐波在I-V转换电路中的增益比基波还大 极易自激,考虑增加开关电容滤波器或是LPF!

出0入0汤圆

发表于 2014-8-4 15:56:11 | 显示全部楼层
不错,有时间做一个

出0入0汤圆

发表于 2014-8-21 18:30:13 | 显示全部楼层
LCR副参主要取决于相位差,不知STM32的DSP库3种采样FFT后,实际相位分辨率能做到多少。

出0入0汤圆

发表于 2014-12-27 21:53:18 | 显示全部楼层
收藏了。准备试试

出0入0汤圆

发表于 2015-1-8 09:26:52 | 显示全部楼层
一天的蓝:
看了你的设计,有两点疑问,请赐教:
1、为什么你的未知阻抗上的电压测量(U3输出)没有信号放大处理,如果测量很小的电阻(比如1欧),U3上岂不是采不到电压值。

2、采样电阻上的电压测量,看你的设计只用了两个采样电阻,如果用多个采样电阻取代后面的可编程放大器,效果应该优于后者吧。

出0入0汤圆

 楼主| 发表于 2015-1-8 17:33:49 | 显示全部楼层
qiaogang2006 发表于 2015-1-8 09:26
一天的蓝:
看了你的设计,有两点疑问,请赐教:
1、为什么你的未知阻抗上的电压测量(U3输出)没有信号放 ...

1.输出阻抗100欧,设计测量的最小阻抗在1欧左右 12bit ADC有10个字读数 就没有设置放大电路, 再小的话就接近底噪了 增设放大器可以改善
2.牺牲PGA的动态范围的设计,如果PGA级数不够多就要增设采样电阻了,这里没有留裕量 增加两对采样电阻效果会好一些

因为只是为了验证该方案的可行性,所以电路是非常精简的 元器件也没有认真地选型,思路可行 还需改进才可实用

出0入0汤圆

发表于 2015-2-9 11:28:09 | 显示全部楼层
一天的蓝 发表于 2015-1-8 17:33
1.输出阻抗100欧,设计测量的最小阻抗在1欧左右 12bit ADC有10个字读数 就没有设置放大电路, 再小的话就 ...

请教个电路公式
对于FFT计算的结果Zx和相位,如果是RC并联等效电路,实际电容值、电容损耗和电阻值的公式怎样计算?
数学都丢给老师了,网上查了一下也不是很理解
谢谢

出0入0汤圆

发表于 2016-10-14 15:35:54 | 显示全部楼层
收藏了。准备试试

出0入0汤圆

发表于 2016-10-29 10:17:27 | 显示全部楼层
果断收藏

出0入0汤圆

发表于 2016-10-29 10:36:01 | 显示全部楼层
不错,学习了

出0入0汤圆

发表于 2016-12-7 09:21:53 | 显示全部楼层
这个帖子我觉得荧光至酷啊

出0入0汤圆

发表于 2016-12-7 10:07:15 | 显示全部楼层
这个可以学习一下。

出0入0汤圆

发表于 2016-12-23 10:16:12 | 显示全部楼层
谢谢, 学习了

出130入0汤圆

发表于 2016-12-23 11:06:00 | 显示全部楼层
学习了,收藏

出0入0汤圆

发表于 2016-12-25 10:47:06 | 显示全部楼层
基于STM32 DSP的LCR表

出0入0汤圆

发表于 2016-12-25 11:37:24 | 显示全部楼层
呵呵   可以得啊

出0入0汤圆

发表于 2016-12-25 11:42:05 | 显示全部楼层
果断mark!

出0入0汤圆

发表于 2016-12-25 20:56:00 | 显示全部楼层
谢谢分享!

出10入95汤圆

发表于 2018-1-21 14:09:31 | 显示全部楼层
本帖最后由 ddcour 于 2018-1-21 14:48 编辑
JackFrost 发表于 2014-8-4 09:14
这没用开关鉴相器,是高速AD采样之后进行运算分解得到实部虚部,再计算得到各种参数,这种方式比传统的鉴相 ...


大师!DAC用DMA来产生的也会相位不稳定么?

出0入0汤圆

发表于 2018-5-4 06:30:55 来自手机 | 显示全部楼层
先mark,以后多加学习。

出0入0汤圆

发表于 2018-8-19 16:38:43 | 显示全部楼层

楼主好强

出0入0汤圆

发表于 2018-9-3 20:32:25 | 显示全部楼层
学习了 mark一下

出0入4汤圆

发表于 2018-9-3 21:35:41 来自手机 | 显示全部楼层
2013年花了几千买了一台LCR数字电桥,2010年出厂的,里面的微机部分居然是用8031做的方案,还外挂了几个EPROM,其中一个是陶瓷的,中间还有个圆窗,能看到里面的芯片,看上去很高大上。。。那机器里是一整块大主板,其他逻辑芯片,运放电容电阻都是直插的

出0入4汤圆

发表于 2018-9-3 21:37:57 来自手机 | 显示全部楼层
楼主能自己设计制作LCR感觉很强,虽然不懂这些深奥的理论,也得见识一下,谢谢分享!

出0入0汤圆

发表于 2018-10-16 21:23:48 | 显示全部楼层
good topic

出0入0汤圆

发表于 2019-3-25 00:51:20 | 显示全部楼层
向大师学习,致敬
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-17 04:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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