矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 小鬼头

合作设计基于mcu的数字式电容ESR表

  [复制链接]
     
发表于 2023-4-6 17:38:40 | 显示全部楼层
washu 发表于 2023-4-6 17:20
还是你之前用 5532 的问题,运放模型的 VSW,MS 的三端运放默认 VSW 是正负 12V(显然和 5532 一样...) ...

老师啊,早点弃暗投明改投我主LTSpice吧,保你荣华富贵妻妾成群吃香的喝辣的!
回复 支持 反对

使用道具 举报

     
发表于 2023-4-6 18:03:57 | 显示全部楼层
小鬼头 发表于 2023-4-6 17:27
MS的理想运放还得有电压摆幅的条件限制,这可真够坑的。

搞得我这两天都不安心。

这个,人家没说那个是理想(ideal)运放啊,那个是 Virtual 运放(可编辑的运放),同样二极管你用的肯定是 Virtual Diode 虽然它没显示,但它叫做 D1、D2 我猜肯定是 你应该是在 Diode > Virtual Diode 里找到的,它的描述是“Fully configurable diode.” 而不是 ideal diode,你试试看它正向压降挺大的,比 4148 都大


MS 里没有理想二极管和理想运放,后者没办法,前者有变通的方法不过它默认不是 D1 D2 这样的名字,是 S1 S2 这样的名字(在开关电源分类里)
无标题ms5.png

回复 支持 反对

使用道具 举报

     
发表于 2023-4-6 18:07:35 | 显示全部楼层
scoopydoo 发表于 2023-4-6 17:38
老师啊,早点弃暗投明改投我主LTSpice吧,保你荣华富贵妻妾成群吃香的喝辣的!


这个和 Basic 一样,习惯的力量是强大的

什么 GCC?风有点大 而且人家是 Visual Studio Shell 好不
回复 支持 反对

使用道具 举报

     
发表于 2023-4-6 18:21:02 | 显示全部楼层
小鬼头 发表于 2023-4-6 16:59
就是单位里的破电脑,应该早淘汰了。不过,应付文档处理还是够用的。

而我本来想多装一个LTspice,但 ...

LTspice 据说收敛比 MS 快,记得以前看过开发者访谈,是轮胎的一个攻城狮,觉得市面上的 SPICE 软件又大又慢,所以自己开发了一个

我用 MS 纯粹是上学的时候学校教就只教了这个,...


btw. 前段时间在对面论坛看到有人说用十年前的电脑简直是浪费生命,有感
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-4-6 22:35:20 来自手机 | 显示全部楼层
本帖最后由 小鬼头 于 2023-4-6 22:41 编辑
小鬼头 发表于 2023-4-6 12:07
现在说一说,我是如何推导得到增益计算公式的。如下图。

1、在正半周期间,D1截止,D2导通。


现在来研究一下,整流电路输出端接一个负载电阻RL的情形(即AD芯片输入阻抗不够高的情形),推导此情形下的整流电路增益计算公式。

因为由前面的推导可知,这个不是无穷大的负载电阻RL,正半周时,将会分走一部分充电电流,负半周时,又额外增加一条放电通道。而且,更关键的是,正负半周他参与充放电的比例不一致。因此,不能按通常的办法来计算这个负载得到的输出电压(指通过衰减比例计算得到结果)。

1、正半周

由于他的加入,Vout电压不能全部提供给电容充电。此时的电路,可运用戴维南定理作等效变换。也就是,原来的充电电压源Vout,被R3、RL分压后,变成只有这个分压关系的电压源,即Vout变成Vout*RL/(R3+RL),充电限流电阻R3,则变成R3与RL的并联,即R3变成R3*RL/(R3+RL)。

这样,充电电流变成Ic=[RL*Vout-(R3+RL)Vc]/(R3*RL)

2、负半周

RL的存在,不影响原来的放电关系,但新增加了一条电容两端的放电途径,这个途径的放电电流是Vc/RL。

这样,放电电流变成Id=[(Vc+Vin)/(R1+R3)]+Vc/RL

3、平衡稳定状态

像前面一样,用Ic=Id联立方程式,求解化简后可得到接RL负载时的整流电路增益计算公式为:

Gain=[R1*RL*(R1+R2+R3)]/{R2*[R1*RL+2*R3*(R1+R3+RL)]}

由这个式子可看到,如果RL>>(R1+R3),那么,分子分母同除以RL,将得到前面推导出来的增益计算公式(简化公式)。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-4-6 23:50:39 来自手机 | 显示全部楼层
washu 发表于 2023-4-6 18:03
这个,人家没说那个是理想(ideal)运放啊,那个是 Virtual 运放(可编辑的运放),同样二极管你用的肯定 ...

Virtual是“虚拟”的意思。没想到,这个虚拟的东西,还不直接提供理想化的器件,得要设置一番,才能取得较为理想的效果。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-4-7 00:12:19 来自手机 | 显示全部楼层
xjw01 发表于 2023-4-6 15:29
经过若干个信号周期后,电容电压会进入一个稳定/充放平衡的状态。这个状态是电容充进的能量/电量,等于 ...

你习惯用积分的方法,而我的微积分知识都丢光了。上次设计好指针esr表,好长时间之后想计算出该表自动关机的定时时间关系,还得上网查找一番,重新学习如何计算电容放电时间。

你这里的计算方法,实质上跟我的一样。你用电荷守恒,我用能量守恒。都是要从平衡状态出发来找电压电流关系。

你说到的那个导通角的问题,应该是跟输入信号电平有关。大信号输入时,二极管迅速进入导通。小信号输入时,一个周期里大部分时间不导通或微导通。

我这个电路方案有一个特殊的地方,也是他的优点:整流电路输入的信号,最小也是基准电阻上的交流压降,而这个是大信号。也就是说,无论被测电阻多小,测量时,整流电路的输入信号都是大信号。

这与普通拓扑/方案的测量电路不同。普通电路里,没有基准电阻交流压降这个“ac固定偏置”,测很小的电阻时,整流电路输入的信号也是很小的,小到不能令二极管开启。所以,线性方面不如我这个方案。



回复 支持 反对

使用道具 举报

     
发表于 2023-4-7 08:17:47 | 显示全部楼层
本帖最后由 xjw01 于 2023-4-7 09:15 编辑
小鬼头 发表于 2023-4-7 00:12
你习惯用积分的方法,而我的微积分知识都丢光了。上次设计好指针esr表,好长时间之后想计算出该表自动关 ...


电路使用正弦波做ESR,所以检波时还是要考虑导通角的问题。
PWM生成正弦波或可调直流源,本质上是对直流电源进行斩波。在做可调基准源时,非线性度误差可以做到达到50ppm甚至5ppm。
反之,对交流进行斩波,可以得到直流输出,同样是高线性的。二极管检波,就有些困难了。
而且,你现在对仿真感兴趣,斩波电路正好可以仿真。

关于微积分,大多数内容我也忘了。但微积分思想是反复要用的。比如说,方波换成正弦波,用微积分的思想去解决就可以了,要具体值,编程计算即可。当然,也可以用仿真软件。仿真结果要精确,也要耗费不少心思。所以,多数情况下,我宁可自己算。

编程的语言、平台很多种。单片机的语言平台,如果只用几次,学了也没什么用,很快就会忘了。如果只是为了计算方便,建议用python。多年来,我发现你对准确一点的计算(误差细节计算)比较感兴趣,所以建议学一种编程语言,否则的话,在计算方面我们将花费更多的时间。

python是最易上手的语言之一,大学计算机系的入门课程就是它。语法方面,几天时间就可以上手。算法方面,当然需要很长时间,但这并不是语言的问题。只须学习我们关心的算法就可以了。

我举个例子,你就明白python上手的速度:
    我儿子读6年级时,国庆节7天,每天教1节课python,练习1节,合计14节课。这之后,做一些简单算法练习以及图形编程练习,大约又花费了20几节课。之后的两年多,他很少使用python,但偶尔会把一些不易解决的数学问题,拿到python中验证。

    前几天,他问我全错位排列的概率问题,我看了之后,建议读高中后再解决这个问题。但没想到,他不好好自习,一整个晚上在草搞纸上枚举所有的全错排列,并找到递推式:f(n) = (n-1) * [ f(n-1) + f(n-2) ]

    最后要计算通项公式f(n),按他的数学知识是无法解决的。于是他用python,先用递归法列出所有的全错排列及个数,再用递推公式法计算错误个数,相互验证。
    我想,能解决这样的问题,与成年人的相差不多。
    然而,如果要教他欧姆定律,却相当困难。我几次试图教他,均以失败告终。反正,他一使用物理公式就要出错。所以,我多次感概,模拟电路真难学。
    所以我认为,学习使用python计算,比学习欧姆定律容易得多。
回复 支持 反对

使用道具 举报

     
发表于 2023-4-7 09:01:36 | 显示全部楼层
本帖最后由 abbey_tom 于 2023-4-7 09:02 编辑

关于激励信号源的问题,
用SPWM和DAC都可以考虑,
不过,对于单片机来说,
100kHz的模拟信号还是比较高的,
无论何种方法,
都是需要滤波的,
按照许老师的计算,
16点以上的采样,
SPWM用RC简单滤波就可以了。
即使DAC,出来的也是阶梯方波。
另外,并不是所有的MCU都有DAC
如果要用的话,
可以考虑使用国产的AIR32,
这个芯片我还没有用过,
据说有不少坑。
这几天我摸索一下。
闻太师用此片子有经验,
有问题我可以请教他。
回复 支持 反对

使用道具 举报

     
发表于 2023-4-7 09:09:12 | 显示全部楼层
xjw01 发表于 2023-4-7 08:17
电路使用正弦波做ESR,所以检波时还是要考虑导通角的问题。
PWM生成正弦波或可调直流源,本质上是对直流 ...

许老师说得极是,
我也觉得模拟电路要难学多了。
建议小鬼头老师趁此机会,
学习一下单片机编程,
其实是非常简单,
同时也比捣腾模拟电路更有乐趣(至少我现在的体会是这样)。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-4-7 17:21:13 | 显示全部楼层
本帖最后由 小鬼头 于 2023-4-7 17:44 编辑

更新后的设计草图(草图6)

数字式ESR表模拟电路草图6.jpg


相关说明:

1、为了令FS输出的dc电压幅度最大化,以提升AD分辨力性能的利用率,重新核实了U1B输出端电压的摆动情况,并调整了相关参数。

将3.3V时U1B的DC偏置电压降为0.64V。经计算,此电压已足够负半周波形的摆动之用。

将AC增益设定为7倍,在保证正半周不出现削波的同时,又能尽量利用上电源电压所提供的上动态空间。

据此得到了U1B周边元件的参数。

2、按照推导出来的AC/DC转换增益,计算得到整个电路的FS输出dc电压。以方便MCU选型之用。

3、在图上加上标注。其中,考虑到5V的电源电压较少机会用上,故删除这个5V。

图中U1B的电路没有做过全面的仿真复核。但AC/DC转换增益这一块,曾做过理想化情况的仿真。


补充:草图中标注的“2.18倍(正弦波)”,应为“1.54倍(SPWM/正弦波)“
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-4-7 17:33:39 | 显示全部楼层
本帖最后由 小鬼头 于 2023-4-7 17:35 编辑
小鬼头 发表于 2023-4-6 22:35
现在来研究一下,整流电路输出端接一个负载电阻RL的情形(即AD芯片输入阻抗不够高的情形),推导此情形 ...


采用washu的方法,修改了虚拟运放的参数,对这个推导出来的AC/DC转换增益计算公式进行了验核。

仿真结果与计算结果相当接近,具有一致性。从仿真情况看,这个公式具有可信性。

下图可看到,AC/DC转换增益约为2.43倍(输入1Vpk方波,输出2.43Vdc)。

PS: 将图中R4改为1欧姆,仿真结果仍是下图的样子。

数字式ESR表仿真结果(整流增益专项研究时的仿真场景)6(带载时的增益情况仿真结果).jpg
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2023-4-7 22:51:35 来自手机 | 显示全部楼层
本帖最后由 小鬼头 于 2023-4-7 22:53 编辑
abbey_tom 发表于 2023-3-30 19:41
因为要简单低成本,
这次拟直接使用MCU内置的ADC,
据说这个ADC常有人诟病,


我不了解单片机。但看了你给的参数,觉得你准备使用的这种,不适合与现在的模拟电路搭配。

1、模拟电路的输出dc电平低。fs值只有0.72V,这是方波输入时才有,还是我挖掘了电源利用率之后才得到的。如果是正弦波,则要乘以0.707。

即使9V电池供电,情况也没什么好转。我今天算了一下,fs电压输出最多也就是上述数据约1.5倍。

这样一来,你的12bit实际变为不足10bit。

2、你这个型号的单片机强项,似乎在这里发挥不了。模拟电路已作了ac/dc转换工作,不需mcu有很强的数据处理能力。正如washu暗示说的,没有这个必要用你打算采用的这类mcu。

3、我刚才看了一下washu提到的avr单片机,以及同公司的pic16单片机。立创商城里只卖3块钱的,就有12bit的adc,Vref可选1.024V。我倒是觉得这样的单片机与现在电路搭配,更有性价比。

4、虽然你曾说不熟悉avr(washu熟悉),但如果确认avr/pic的更合适,你还可以趁这次合作设计的机会,掌握多一大类的mcu。

5、mcu选型,不宜光看自己手头有什么就选什么。最好是多看看,不限于你自己熟悉的种类。

以上供参考。
回复 支持 反对

使用道具 举报

     
发表于 2023-4-7 23:24:06 | 显示全部楼层
小鬼头 发表于 2023-4-7 22:51
我不了解单片机。但看了你给的参数,觉得你准备使用的这种,不适合与现在的模拟电路搭配。

1、模拟 ...

感觉必要为了保留二极管整流电路换单片机,以前看传感器的电路都不用二极管整流



截图_2023-04-07_23-12-38.png


El_Conv.jpg


abbey_tom擅长编程,您擅长模拟电路,现在单片机方面很容易就能输出正弦波和用ADC采样正弦波,需要您设计恒流部分和放大部分,就这两个部分对于我们这些只会单片机的也搞不好,比如我搞的测电池的100毫安恒流时候波形很差就是不知道怎么解决,再就是放大电路搞的也不好,只能靠程序方面弥补这些缺陷。
回复 支持 反对

使用道具 举报

     
发表于 2023-4-8 07:39:04 | 显示全部楼层
本帖最后由 abbey_tom 于 2023-4-8 09:07 编辑
小鬼头 发表于 2023-4-7 22:51
我不了解单片机。但看了你给的参数,觉得你准备使用的这种,不适合与现在的模拟电路搭配。

1、模拟 ...



您可能误会wash老师的意思了。


aaa.jpg

他的意思是按照您的这个要求,
我经常用的单片机可能不满足,
确实如此,原想用C8T6的,
它没有DAC,出不了比SPWM要求还要纯正理想的正弦波。

但是,他并没有说AVR就行,
AVR也没有DAC,一样达不到要求。
并且以其性能,
恐怕要输出100kHz的SPWM都困难。

因为您的要求,
我这几天专门看了国产的AIR32,
它是有DAC的,
并且价格只有3.8元,
容量稍高一些的AVR,
价格也不便宜,
这也是washu老师承认的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

蒙公网安备 15040402000005号

GMT+8, 2025-4-30 15:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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