发新帖我要提问
123
返回列表
打印

数字电桥软件算法分析

[复制链接]
楼主: 叶春勇
手机看帖
扫描二维码
随时随地手机跟帖
41
叶春勇|  楼主 | 2021-5-20 16:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
角度变化很小,经过标准差最好在千分之三,360*0.003=1.08°。好电容估计测不出来

使用特权

评论回复
42
Jack315| | 2021-5-21 11:28 | 只看该作者
建议 LZ 试试 Cordic 三角函数算法、haar 小波降噪算法。
这两个算法都可以不涉及浮点数运算的。

因为是单一频率,用 FFT 有点浪费单片机的资源了。
或者可以试试拟合三角函数的方法。
具体做法是用 Cordic 或查表求出反三角函数,然后做线性拟合。

临时想到的,不知道可行性如何。

小面板可以的,做个 LCR 正合适。

量具的研发始终是一个有挑战性的活。
ADC 位数也一直是精度的关键(之一)。
据说以前人家超过 12-bit 以上的 ADC 都不卖的。

使用特权

评论回复
43
叶春勇|  楼主 | 2021-5-21 12:57 | 只看该作者
Jack315 发表于 2021-5-21 11:28
建议 LZ 试试 Cordic 三角函数算法、haar 小波降噪算法。
这两个算法都可以不涉及浮点数运算的。

我现在没用fft。
一开始用的是单项DFT(就是计算某个关心频率的),这个应该怎么叫?DFT计算单独一项时候,算法复杂度为N,全部计算为N^2.
现在是最高1600点DFT。
fft全部计算的时候,效率高,算法复杂度N*LOG(N)。计算单独一项优势不明显。
正弦波算法,不研究了,stm32单片机的flash足够,ram是稀缺的,存个表格不困难。
三角函数拟合,计算量可不是一点点,我这个是加了偏置的正弦波,y=A+B*sin(Cx+D)四个变量。这种我只能在matlab里玩玩,单片机估计转换成整数很复杂,也没有必要。
后来看了《信号与系统》下册 郑君里,里面提到了沃尔什变换,就改用方波同步检波。
现在已经理解
单独一项的dft,是正交同步检波加平均滤波器
单独一项的沃尔什变换,是方波正交同步检波加平均滤波器
它们都不怕直流偏置,直接运算,直流偏置会被抵消。或者在原始数据中减去一个固定值只要足够小就行了。
主要是折腾我那个信号发生器,看看能干什么。我工作中目前没遇到交流信号的传感器,也就玩玩。
至于仪表精度,我已经发出这个电路的统计学极限。显示位数多了,准确度是不可靠的。
别的网站也提到纯数字信号处理的电桥,至于效果都是很模糊的表达。我发出这些统计数据,就是给大家参考一下。还是能用的。                                       

使用特权

评论回复
44
yjmwxwx| | 2021-5-21 13:45 | 只看该作者
本帖最后由 yjmwxwx 于 2021-5-21 13:52 编辑

自动平衡桥感觉主要那个用来平衡的运放影响测量,测量不同阻抗相移也不一样,频率低时候不太明显,100KHZ时候就很明显了,还要搞个校准算法,要不然测1K电阻和10K电阻相移不一样。老毛子那个简单电桥直接测3个点的电压应该不用校准相位,矿坛有这个MINI电桥和专业电桥的测量的对比。

  http://www.crystalradio.cn/forum.php?mod=viewthread&tid=1891419&highlight=


MINI电桥主要没放大和多档位切换,所以测量范围比较窄,但是电路非常简单。


迷你电桥测量原理
https://radiokot.ru/circuit/digital/measure/108/



1k电阻和100nf串联



采集两个差90度的信号手工移动的角度不太准确


MINI电桥实际是用的DFT算的实部虚部





下998.323+0.697i
中389.287+899.136i
上-998.323-0.697i

计算阻抗
(998.323+0.697i)+(389.287+899.136i)=1387.61+899.833i

(-998.323-0.697i)+(389.287+899.136i)=−609.036+898.439i

1000×((1387.61+899.833i)÷(−609.036+898.439i))
=−31.11691635860416422162−1523.37407183862360632065i


1k电阻和200nf串联




下998.307+1.048i
中-272.119+969.873i
上-998.307-1.048i

(998.307+1.048i)+(-272.119+969.873i)=726.188+970.921i

(-998.307-1.048i)+(-272.119+969.873i)=−1270.426+968.825i

1000×((726.188+970.921i)÷(−1270.426+968.825i))
=7.08469508535031171723−758.84559217454262133375i








使用特权

评论回复
45
叶春勇|  楼主 | 2021-5-21 14:31 | 只看该作者
yjmwxwx 发表于 2021-5-21 13:45
自动平衡桥感觉主要那个用来平衡的运放影响测量,测量不同阻抗相移也不一样,频率低时候不太明显,100KHZ时 ...

我现在是100k的采样率,采集的是1khz。一个周期100个数据,90°相位才25个数据。
当采集速率调到stm32f103c8t6的最高采集速度1M的时候,有250个数据,这个时候,分辨率会高点。
我手上还有stm32f407vet的物联网开发板,不过就一片,最高采样速率可以达到单通道2.4M。
关键还是论文中的,dlia平衡电桥,扫相位,扫幅度。

使用特权

评论回复
46
叶春勇|  楼主 | 2021-5-21 14:37 | 只看该作者
本帖最后由 叶春勇 于 2021-5-21 14:39 编辑

我仿真一下

论文中的dlia电桥,两个信号源,一个固定,一个可调相位,可调幅度。把中间调平衡接近0。
stm32单片机可以生成任意移相的pwm波,pwm经过滤波得到正弦波。可以扫相位。
就是这个幅度怎么调,不知道你有思考过吗?

使用特权

评论回复
47
叶春勇|  楼主 | 2021-5-21 16:38 | 只看该作者
本帖最后由 叶春勇 于 2021-5-21 16:40 编辑
king5555 发表于 2021-5-21 08:02
电容的串联电阻能一并测出吗

单独测电阻3.6k 1%

电容与电阻串联:3.6k串联47n的电容

程序升级,将采样率提升至fs=400k,数据稳定性上升。


使用特权

评论回复
48
yjmwxwx| | 2021-5-21 18:25 | 只看该作者
叶春勇 发表于 2021-5-21 14:31
我现在是100k的采样率,采集的是1khz。一个周期100个数据,90°相位才25个数据。
当采集速率调到stm32f10 ...

俄版那个电桥也是DFT算的,不是直接把采到的数据偏移90度。只是感觉他这个方案简单,调相位和幅度的可能电路比较麻烦成本高

使用特权

评论回复
49
yjmwxwx| | 2021-5-21 18:29 | 只看该作者
叶春勇 发表于 2021-5-21 14:37
我仿真一下

论文中的dlia电桥,两个信号源,一个固定,一个可调相位,可调幅度。把中间调平衡接近0。

做这种可能要专用DDS芯片,我以前想过用变容二极管调相位和幅度,但是没试过,不知道行不行

使用特权

评论回复
50
何程| | 2021-8-20 13:27 | 只看该作者
**论坛上好像也有一个DLIA电桥,用32F411和TI的TLV320AIC3204编解码芯片做的,在github上下载了源码电路还没移植

使用特权

评论回复
51
jasontu| | 2021-12-24 17:37 | 只看该作者
叶春勇 发表于 2021-5-14 15:17
电桥Cx换成3.6k 1%的电阻,用表测3.58k
第一 组

请问电阻该怎麽算?

使用特权

评论回复
52
R2D2| | 2021-12-24 22:37 | 只看该作者
楼主能不能给个电路示意图,你这些数据看的一脸懵逼,v1、v2都是个啥?居然还有人能看懂?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则