矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
楼主: 小鬼头

脉冲式数字ESR表的分析与设计(合作帖续篇)

  [复制链接]
     
 楼主| 发表于 2024-1-17 17:45:43 | 显示全部楼层
小鬼头 发表于 2024-1-10 16:45
脉冲式数字ESR表(带薄膜电容容量、电池内阻测量功能)的设计研究六

脉冲式数字ESR表(带薄膜电容容量、电池内阻测量功能)的设计研究七

      上一个研究的设计草图4的保护电路部分,是直接搬迁过来的,并没有进行过验算。
      验算后发现,草图4中的保护电路在容量测量模式(以及电池内阻模式)下,他对有效测试信号会产生限幅作用,会导致测试不正常。为此,作了一番计算。根据计算结果,证实通过适当调整保护电路元件的搭配,可以省去TVS和SCR这两种较为特殊的器件,从而令所订的“尽量使用通用器件”目标可以得到进一步实现。
      再对AC放大器加入电池内阻测量所需的PGAX10(提升10倍的AC放大能力)后,得到了如下的设计草图5(也即是35楼交Abbey用于PCB制作的设计草图n):







    一、保护电路的设计计算

    计算用图如下:

    保护电路的计算用图.jpg

    本机在工作时,图中所列的各个电压的总和Vtot,不得超过电源电压+3.0V,否则,就会导致测试异常。

    (一)电压计算

    这些电压包括:

    1、恒流源的检流电阻压降Vsen。机子工作时,最大的Vsen=1.0V。

    2、给恒流源BJT管保留的压降Vsat,以免他进入饱和状态。此项要求Vsat=0.3V

    3、激励电流在隔直保护电容C3上形成的电压Vc。其中包括C3自身的ESR形成的压降,即是有Vc=Id*tc/C+Id*ESR。
    本机电路运行时,最大激励电流为Id=100mA,激励脉冲宽度最大为tc=100uS(容量测量模式以及电池内阻模式时出现)。22u/400V高压电解的ESR,按ESR=5Ω来计算较为稳妥。
    于是可计得Vc=454mV+500mV=954mV。其中ESR部分的压降比较可观,已达到500mV——前面我分析原型机时漏算了保护电容ESR压降部分引入的非线性误差。如果把他计算在内,那么,原型机在0.01~0.99Ω量程的误差就不会是原先估计的1%,而是会达到3~5%。

    4、自恢复保险丝PPTC的压降Vp。设计时,特意选用了内阻较低的180mA/250V规格,其内阻为1~2.2Ω。按3Ω计,在100mA激励电流驱动下,有Vp=300mV。

    须注意的是:金科的JK250系列自恢复保险丝datadheet显示,JK250-180T的内阻才符合设计要求,JK250-180U的内阻则偏高,为2~4Ω。我在淘宝买到的不知生产厂家的180mA/250V规格PPTC,实测与JK250-180T的内阻规格相一致。

    5、测试检出信号Vo,包括2个部分。

   一是FS信号,FS=100mV。
   二是偏移信号Vos,由表笔引线、接触电阻等带来,最大有Vos=100mV。因为本机的表笔“补偿”功能,允许表笔引线、接触电阻等电阻Rc的最大值为1Ω(注:电池内阻测量模式的1mΩ档位,则只允许Rc的最大值为100mΩ)。
    因此,Vo=200mV。

    (二)核查电压总和情况并对保护二极管作出安排

    由上面可计得,各个电压的总和为Vtot=2.754V,低于3.0V的电源电压,因此,不会出现信号削波的问题。

    后3个电压Vc、Vp、Vo的叠加后的电压达到1.454V,如果保护二极管安排不恰当,那么,这个1.454V电压将会导致这些保护二极管产生预想外的导通。因此,安排了4只1N4004串在一直,在此处提供保护。

    一只1N4004提供的“空间”约是400mV(本人实测400mV时1N4004的漏电流只有10uA级),4只一共可提供1.600V的空间(multisim仿真显示,4只1N4004串与1.6V相并接,漏电流也是10uA级)


    ——以上是保护电路的计算。实际上,本人的计算顺序是反过来的,也就是,先是确定电压要求,才决定C3隔直保护电容的取值,以及确定保护二极管串的数量。


    二、电池内阻测量功能的实现

    1、所需的PGAX10

    原型机测试最小分辨阻值是0.01Ω。要满足电池内阻测量的需求,就需将最小分辨阻值提升扩展至0.001Ω(即1mΩ)。对于电路来说,把有效测试信号电平提升10倍,就可达到此目标。

    这由草图5的PGAX10控制端口来执行此功能。PGAX10激活前,纯AC放大器部分的名义放大倍数为14倍(总体是12倍),PGAX10激活后,则提升为140倍(总体是120倍)。

    图中R19的270Ω取值是借助Multisim仿真得到的。由于MCU的I/O引脚内部MOS管的导通电阻具体值不清楚,只能仿真出个大概来。

    当MCU的此PGAX10引脚为“开漏方式L电平”时,PGAX10被激活,“开漏方式H电平”时则关闭PGAX10。  


    2、测试脉宽的安排

    由于保护电路的限制,电池内阻测量模式的脉宽安排为100uS。
   
    根据我的推算(见下一节的误差分析),这个脉冲宽度,大概相当于3kHz的测试频率。假如想按照通常的电池内阻测试方法,去取1kHz的等效测试频率,那么,脉宽就要安排为300uS。由上面可知,保护电路将会对有效信号产生限幅作用,会带来与草图4相同的容量测试功能不正常的问题。


(待续)


回复 支持 反对

使用道具 举报

     
发表于 2024-1-19 09:50:28 来自手机 | 显示全部楼层
感谢大师的无私奉献,期待作品早日完成。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-21 18:47:43 | 显示全部楼层
/*  以指定参数执行一次测量  
    excitI:指定电流档位,以0-3由小到大表示四个电流档位
    curPGA:是否使用PGAX10(1为放大10倍,0为不放大)
*/
u16 Take_a_Measurement(u8 excitI,u8 curPGA)
{
        u16 counter=0;
        Vref_ReturnTo0;    //参考电压泄放
        DUT_DisChargeStart;//DUT残留电压泄放
        delay_ms(10);
        DUT_ChargeReady;//DUT准备充电
  Vref_EstableReady;//参考电压准备启动       
        if(curPGA)PGAX10_Contrl=0;//放大10倍
  else PGAX10_Contrl=1;        //不放大
       
        TIM1->CCR1=2;
        TIM1->CNT=0;
        TIM_Cmd(TIM1, ENABLE);//启动PWM建构锯齿波参考电压
        //
        while(1)
         {
                DUT_DisChargeStart;//DUT残留电压泄放
                delay_us(492);
                if(counter>=MAXMEAS_VAL)
      { counter=0; break;}//计数大于限定值,强制置为0退出
                counter++;
               
                DUT_ChargeReady;//DUT准备充电
                TurnExcitCurr(excitI, T_ON);//开启激励电流给DUT充电
                delay_us(7);
//                TurnExcitCurr(excitI, T_OFF);//关闭激励电流
                /* 在激励脉冲结束瞬间,检查比较器输出 */       
                if(IsVrefExceedVdut(5,3)) {/* 参考电压开始超出DUT电压 */       
                tim_ccr=TIM1->CCR1; break;}
                TurnExcitCurr(excitI, T_OFF);//关闭激励电流
         }
        TurnExcitCurr(excitI, T_OFF);//关闭激励电流
        TIM_Cmd(TIM1, DISABLE);//停止PWM锯齿波参考电压

        Vref_ReturnTo0;//参考电压泄放
        DUT_DisChargeStart;//DUT残留电压泄放

        return counter;
}       
回复 支持 反对

使用道具 举报

     
发表于 2024-1-22 21:25:05 | 显示全部楼层
本帖最后由 abbey_tom 于 2024-1-22 21:28 编辑

用上述测量代码,初步试验了一下
各档计数记录如下:
可能有些元件,如2.7MΩ没有按设计图,
硬件状态及软件也没有调整好。
也没有补偿或校准,扣除偏移等动作,
不过,数据总体趋势好像是正常的。
aaa.png
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-23 16:30:56 来自手机 | 显示全部楼层
abbey_tom 发表于 2024-1-22 21:25
用上述测量代码,初步试验了一下
各档计数记录如下:
可能有些元件,如2.7MΩ没有按设计图,

你试验板的pwm波形纹波比仿真结果大很多的问题搞好没有?

看你给出的这几组数据,似乎在80欧(整个量程1~99欧)起的这个量程末段,锯齿波的SR有突然减少的现象。而80欧以下这一大段,则正常。

回复 支持 反对

使用道具 举报

     
发表于 2024-1-23 18:12:01 | 显示全部楼层
小鬼头 发表于 2024-1-23 16:30
你试验板的pwm波形纹波比仿真结果大很多的问题搞好没有?

看你给出的这几组数据,似乎在80欧(整个量 ...


并联了一个103容量的独石电容,
似乎改善了一些,
不过,纹波依然较大,
中间部位目测波动峰峰值达300mV,
看来滤波还是不够。
我现在采用的是5局3胜制(连接读比较器5次,3次以上为低才算翻转)。
vref.jpg
回复 支持 反对

使用道具 举报

     
发表于 2024-1-24 08:15:41 | 显示全部楼层
我也做了一个,锯齿波电路波形比你这个更难看,中间部分波动太大了
回复 支持 反对

使用道具 举报

     
发表于 2024-1-24 08:21:17 | 显示全部楼层
波形见图,感觉中间波动太大
PWM_005.jpg
回复 支持 反对

使用道具 举报

     
发表于 2024-1-24 08:30:24 | 显示全部楼层
daw85 发表于 2024-1-24 08:21
波形见图,感觉中间波动太大

看起来,
这个简单的RC滤波好像不行。
你这个波动有好几百mV了,
我是又并了一个103才改善一些的。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-24 08:41:57 | 显示全部楼层
期待出出成品
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-24 09:06:43 | 显示全部楼层
abbey_tom 发表于 2024-1-24 08:30
看起来,
这个简单的RC滤波好像不行。
你这个波动有好几百mV了,

我回头查了一下我设计时的PWM仿真文件,发现是我当时在来回改参数作偿试的过程中,最后把PWM模块的1个关键参数搞错了。所以才得到纹波情况与实际相差甚远的结果。

这个关键参数是PWM模块的时钟频率,正确的时钟应该为2kHz。我仿真时误设置为20kHz,因此,仿真的效果与实际相差10倍。

改回正确的2kHz时钟后,设计草图n的RC取值(47k/0.01u)下,仿真出来的锯齿波结果如下图,纹波相当大,达100mV的Vpp值。


PWM波形的仿真结果2-1(更正PWM模块参数后47k取值时的DC电压纹波).jpg


这个纹波太大,会导致测量工作不正常。

你们可以先把R或C的取值增大至原来的10倍作试验,此情形下的仿真结果如下图。


PWM波形的仿真结果2-2(更正PWM模块参数后470k取值时的DC电压纹波).jpg




下图显示了纹波情况的细节,可看到,纹波的Vpp值不到10mV。

PWM波形的仿真结果2-3(更正PWM模块参数后470k取值时的DC电压纹波-细节情况).jpg



把R或C的取值增大至原来的10倍后,锯齿波的SR会在初始阶段变得不佳。现在这个锯齿波波形,不影响ESR和R测量模式的工作,足以供目前的试验之用。但是,容量测量模式需要锯齿波波形的SR一直保持固定,只有这样,才能得到准确的增益校准用参数,否则,会带来一定的误差。

如果改用DAC输出替代PWM,以此来生成锯齿波,应该就能迅速解决这里的问题。

容量测量模式因为此问题而增加的误差是否可接受,还是要将锯齿波的生成方案由PWM改为DAC?待我再考虑考虑。

回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-24 09:07:02 | 显示全部楼层
本帖最后由 小鬼头 于 2024-1-24 09:11 编辑

我到时计算一下,也给出一个用DAC生成锯齿波的备用方案(或许会成为正选方案)。


注:本来是重复回帖,就顺便多说一句。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-24 14:17:33 | 显示全部楼层
小鬼头 发表于 2024-1-24 09:07
我到时计算一下,也给出一个用DAC生成锯齿波的备用方案(或许会成为正选方案)。

改成DAC方案的话,
又得选用更好的MCU,
DAC产生高频模拟信号,
对MCU也有较大的负担,
基本上又回到了老的思路。

还不如回到我提过的方案,
锯齿波电路和比较器省去,
锯齿波由MCU虚拟,
采用软件比较。

从ESR测量来看,
采样那8us持续时间的信号,
还是很轻松的,
并且可以做到减少测量时间,
重复采样十来次信号取平均就可知ESR了。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2024-1-24 15:09:22 来自手机 | 显示全部楼层
本帖最后由 小鬼头 于 2024-1-24 15:11 编辑
abbey_tom 发表于 2024-1-24 14:17
改成DAC方案的话,
又得选用更好的MCU,
DAC产生高频模拟信号,


用adc代替比较器,需要uS级的能力。用dac代替pwm,则不需要这么高速的能力。两者不可同日而语。

就目前的电路来说,仅需要dac有数百uS的能力即可,这很轻松。即使是我前段时间构思好的四线版数字esr表也只需要数十uS级的能力,这应该也没有问题。

—— 所构思的四线版esr表,采用四线测量方式,因为能有效消除接触电阻的不良影响,可以大幅提升低阻档以及最大容量(10u~99u)档的测量精度,电池内阻/电阻档扩展至1000字。但这个也仅是纸面上的设计,一切还得待当前的两线版试验成功再说。

实际上,还有第三个锯齿波生成方案,即是采用原型机的模拟电路生成方案。但电路略显复杂,而且因为电源电压比原型机低,受到了更多的不利因素影响,采用简单电路形式时,在精度方面可能不是很理想。
回复 支持 反对

使用道具 举报

     
发表于 2024-1-24 16:03:06 | 显示全部楼层
小鬼头 发表于 2024-1-24 15:09
用adc代替比较器,需要uS级的能力。用dac代替pwm,则不需要这么高速的能力。两者不可同日而语。

就 ...

我觉得您进入了误区,
从ESR目前的测量来看,ADC足以应付。
8us的信号持续时间,相当于8*14=132个ADC时钟,
而ADC的采样时间可设定为1.5、7.5、13.5、28.5、41.5.……直到239.5个时钟
当设置为41.5以下各档采样时间,
则完全有充足的时间实现正确采样,
可安排ADC在8us的尾段开始采样。
只要采样精度优于1%
就可以和理论值进行比较获得ESR,
并且无论ESR处于1-99内的何值,
都可以重复任意次数,
对采样进行平均值或中值滤波,
即使对于ESR值小于10

而DAC首先是低档MCU没有这东西,
即使有可能也比较费资源。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

蒙公网安备 15040402000005号

GMT+8, 2024-5-14 11:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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