请教一个关于LCR测量,自动量程判断的问题
最近在折腾单片机万用表玩,用的stm32f303cc我已经验证了电压和直流电阻测量,在校准以后,勉强可以达到4位精度。
但在添加LCR相关功能时,遇到了自动量程不好处理的问题。
请教各位大神,有没有什么好的方案做自动量程判断?
我目前的方案用单片机的DAC生成一路正弦波信号,范围是100Hz~100KHz。
滤波后由运放缓冲输出,经过一组采样电阻与被测器件串连。
采样电阻和被测器件分别由运放采集两端电压差分放大后(x1~x1000),送入单片机采样得到两组电压信号。
通过数字锁相放大后,计算出幅值比例和相位差。并最终判断器件的类型,输出计算结果,如下:
现在有3组变量
4个不同的采样电阻 10R,1K,100K,1M
4个不同的频率100Hz, 1KHz, 10KHz, 100KHz
4个不同的放大比例x1, x10, x100, x1000
做直流测量时,在最高档位就能大致判断测量目标的大致情况,然后选择一个适合的参考电阻,并切换到适合的放大比例。
但做交流测量时,如果当前档位不适合,计算出的相位就根本没有可参考的价值,判断不了器件,也很难决策如何切换参考电阻和放大比例。
不知道有没有什么好的思路?
另外,为了达到“防烧”的目标,输入和激励信号都是通过PTC保护,由二极管钳位。输入用很大的PTC几乎没有影响。
但激励信号用很大的PTC,在测量小电阻时会有很大的压降,导致测量精度下降。PTC用小了,其它部分又会很受伤。
不知道还有啥其它的保护思路没?
这个激励信号目前有三个作用:
1. 输出校准电压,用于ADC线性校准
2. 输出直流,用于电阻测量
3. 输出交流,用于LCR测量
未来还打算支持0~500K的简单扫频功能 厉害厉害,精益求精!不要自动量程也不错哈:lol 自动量程判断很简单
连续低于次一级量程最大值若干次时切换到次一级
连续高于本级量程若干次后切换到高一级量程
所以量程的设计要遵循等比原则,否则就比较难受,比如你的10R、1k、100k、1M,那么在10R档测得高于10R时切换到1k,在1k档测得低于10R切换到10欧,其他挡位类似 1、先不管相位,把 Z 测准再说,也就是根据 DUT 的 Z 选择合适的量程
2、所以商品 LCR 表和万用表不合体,因为很难解决保护的问题 :lol 误测带高压电容烧掉的 LCR 表多了去了 :P MF35_ 发表于 2024-5-29 20:29
自动量程判断很简单
连续低于次一级量程最大值若干次时切换到次一级
我现在大概也是这么弄的,就是经常反复横跳:L scu319hy 发表于 2024-5-30 00:40
我现在大概也是这么弄的,就是经常反复横跳
你仔细看我说的“连续低于xxx若干次”,所以要连续多个测量值都达标才切换量程,或者你设置一个迟滞区间,让“高到低”门限,低于“低到高”的门限,这样就不会反复跳了 washu 发表于 2024-5-29 20:31
1、先不管相位,把 Z 测准再说,也就是根据 DUT 的 Z 选择合适的量程
2、所以商品 LCR 表和万用表不合体 ...
反正就是ADC采集的数据一通加减乘除算个结果,只要档位合适就还挺稳定的。
基本上5位有效数字只跳一个字,相位最小分辨0.01度基本不跳。
准不准我也不知道,我就是瞎玩,没有你那些高级设备做验证;P
我就只有台VC86E,测量同一个小电容,100Hz出来的结果和万用表相差也就1%左右。就是不同频率下测量的结果变化挺大
档位不对时计算结果跳动就比较大。
另外,我发现100KHz时,运放对相位影响非常大,我现在用的是gs8552,是不是太慢了?
切换档位应该是优先切换参考电阻吧?
感觉我现在的档位间隔太大,还要用PGA配合切换,但不同放大倍数时相位偏移还不太一样。直流测量就还好。
再就是PTC分压太多,测量小电阻,小电感效果都不好,还好电容一般不会太大;P 。
我就只是玩玩而已,不去碰瓷商品LCR。只要能测个大概就行,不用太精确。这样还没好办法做保护么? MF35_ 发表于 2024-5-30 00:44
你仔细看我说的“连续低于xxx若干次”,所以要连续多个测量值都达标才切换量程,或者你设置一个迟滞区间 ...
我是有弄切换阈值和延迟来着的,但我又想测得快;P yu258gk 发表于 2024-5-29 20:20
厉害厉害,精益求精!不要自动量程也不错哈
感谢支持,我这都是瞎折腾,反正只有这水平,走到哪儿算哪儿。;P 就是根据Z来判断用哪个档位。比如,若测得的Z范围在0.8K-8K之间,就采用1K的量程电阻,若测得的Z范围在8K-80K之间,就采用10K的量程电阻.以此类推。
采用F303的DFT算法,主参数没啥问题。副参数能达到的精度是有限的,尤其是接近0°和90°相位的时候。像LQ9101那样的采用24bit ADC加硬件相敏检波的可以得到很高的副参数精度。
不管是DFT软件检波还是硬件检波,校准算法都是影响测其测量精度的核心内容。 scu319hy 发表于 2024-5-30 01:20
我是有弄切换阈值和延迟来着的,但我又想测得快
这个迟滞区间跟测得快慢没关系,它只影响换挡的时机,我举个例子你就明白了
假如有两个档位,2V和20V,从2V换到20V的阈值是2.2V,从20V换到2V的阈值是2V,也就是说,如果当前在2V挡,那么只有当测值高于2.2V时才换到20V,如果当前在20V挡,只有当测值低于2V时才换到2V挡,这样的好处是,挡测值在2V~2.2V之间波动时,挡位不会变化,和施密特比较器的原理是一样的 本帖最后由 鸡蛋 于 2024-5-30 10:14 编辑
你这不是和许老师电桥的原理差不多,可以参考许老师电桥量程切换代码。
对于交流信号的测量,许老师电桥用的是相敏检波的方法测量,不是直接送入单片机的ADC。 MF35_ 发表于 2024-5-30 09:20
这个迟滞区间跟测得快慢没关系,它只影响换挡的时机,我举个例子你就明白了
假如有两个档位,2V和20 ...
感谢大师指点
明白道理和能做得好是两码事:L
我还要再琢磨琢磨,看看是哪里没搞好
另外,我做线性校准的时候发现一个问题。
STM32F303的ADC1/2两个通道,分别从ADC1CH1/ADC1CH2,ADC2CH2/ADC2CH3做差分采集(ADC2CH1被DAC占用了)
ADC1做校准时,当校准电压小于约-0.7v时(ADC2两端都是-0.7v)ADC2读数不为0,负得越大差得越远。大于-0.7v时就归零了
搞不明白是啥问题。 zhengrob 发表于 2024-5-30 09:10
就是根据Z来判断用哪个档位。比如,若测得的Z范围在0.8K-8K之间,就采用1K的量程电阻,若测得的Z范围在8K-8 ...
我没有使用ST的FFT库,是自己实现的数字锁相放大算法。
感觉这个算法和采样精度关系不太大,反而受时间精度,采样密度,采样点数的影响比较大。 鸡蛋 发表于 2024-5-30 10:11
你这不是和许老师电桥的原理差不多,可以参考许老师电桥量程切换代码。
对于交流信号的测量,许老师电桥用 ...
我没有仔细研究过许老师的电桥,可能大体上原理是一样的吧。
我现在是直接ADC采样,然后通过软件计算的。
电子方面我不太在行,业余瞎玩的:L