恒流充电测量电容容量
使用充电曲线测量电容容量利用NE555测量电容的压电效应基于PMOS构建的恒流电路AD\Test\2026\October\CapacitorTestConstCurrent.PcbDoc*恒流充电测量电容容量一、背景介绍前两天通过NE555芯片搭建的震荡电路 测量了表贴电容对应的不同电压下的容量变化 可以看到电压从三伏到15伏变化范围内 电容的容值几乎降低了一半 但这种方法测量的是电容在一个电压范围内 平均电容的容量并不是在某一个电压下它的瞬时电流情况。 下面我们通过刚刚测试的恒流电路给电容进行充电 通过测量充电过程中电压变化率 反过来计算电容容量在不同电压下瞬时电容的变化 为了能够精确测量到充电过程 在原有的恒流电路基础上 施加一个N沟的摩斯管放电电路 通过周期性的放电测量充电过程中所形成的锯齿波电压 利用示波器加权平均的特性 获得噪声低的测量信号 这样为计算电容容量变化提供数据基础。二、电路设计这是在原有恒流充电电路基础上改装之后的测量电路 在原本恒流输出的端口增加几个并联电容。 在实际测试中这些并联电容的封装形式不一样 便可以焊接不同材质型号的电容 利用一个N沟道摩斯管对电容电压进行放电。 外部放电脉冲由两芯端口输入 使用示波器同步测量电容放电和充电的信号 铺设单面PCB适合一分钟制板 一分钟之后得到测试电路板 焊接电路清洗之后进行测量。三、测量结果首先观察一下示波器测量的放电脉冲信号与电容充电信号 黄色信号是摩斯管放电栅极的脉冲信号 作为同步我们观察青色信号是电容上的充电信号 能够明显看到电容电压从0伏上升到5伏左右 充电斜率在逐步加快 也反映了电容本身容量 在高压下降低的特性。 现在将电路板工作电压修改为18伏 将充放电频率降低到1K赫兹 我们便可以观察到电容上的电压。 从0伏充电到17伏左右过程中的充电信号 这一次更加明显在电压比较低时 充电的斜率比较小预示对应电容容量较大。 当充电电压接近17伏时 可以看到此时充电电压斜率变得很大 对应的电容容量变小。 之后当电压超过17伏时 恒流电路便进入了饱和区停止充电。下面我们展开示波器信号波形 读取示波器采集到的数据 这是读取的示波器屏幕显示数据 数据量为1000个测量数据 接下来读取示波器内部存储的数据 总共数据量为10万个采集数据下面我们根据这10万个数据来计算电容的容量 随着电压的变化情况。首先我们截取一个周期内有效的充电数据 从0.2毫秒到0.535毫秒之间的数据 根据这些数据计算充电电压变化率。 这里需要说明的是计算的数据 本身具有比较大的噪声 通过对连续500个变化率进行平滑滤波之后 便可以得到相对干净的充电电压变化率 接下来我们根据电压的变化率以及恒流源的输出的恒流电流可以计算出待测表贴电容的容量变化 我们焊接的是一个0.1微法的电容 在电压比较低的时候 比如此时是两伏附近 它的容量大体是0.1微法。 随着电压上升电流容量逐步下降。 令人感到惊讶的是当充电电压达到14伏时 对应的电容容量降低到0.027微法。 也就是最终的容量不到原来的30%这个结果令人感到惊讶。下面我们更换一颗金属化聚丙烯薄膜电容 电容的标称值为0.1微法 使用相同的电路测量它的充电电压变化 相比于刚才的MLCC表贴电容 这颗金属化聚丙烯薄膜电容充电线性度非常好 预示着它的电容稳定性随着电压变化并不大 不过有一个问题也就是在充电结束之后 前面电压变化有些异常 电容的电压并不是线性从0伏开始充电 而是先跳跃一个比较大的电压 大约一伏左右然后才开始充电 可以看到如果将后期的充电过程进行线性延长 似乎从放电脉冲结束之后应该是线性充电的。 但为什么会出现这个变化 现在根据电路原理图还不能够解释。 从示波器导出测量波形数据 选择电压从三伏变化到16伏之间线性度比较好的一段计算电压变化率 进而可以得到电容的容量与电压之间的关系。 可以看到在电压小于5伏之前随着电压增加 电容容量从0.085微法降低到大约0.06微法。 当电压从6伏变化到16伏过程中 电容容量始终保持在0.06微法左右非常稳定。 至于为什么在电压小于5伏之前 电容容量随着电压增加而下降 有可能还是和前面的问题有关系 也就是在放电阶段结束之后 电容上电压变化并不是充电过程。※总结 ※本文利用恒流充电方法测量电容上充电电压曲线 进而计算出电容容量大小随着充电电压变化情况 可以看到对于普通表贴MLcc电容来说 它的电容容量随着电压升高会急剧下降 电压从三伏到15伏之间的变化 会使得电容容量下降到原来不到30%左右 普通的金属化聚丙烯薄膜电容 容量则是非常稳定的但在测量过程中 电路中出现了放电充电曲线开始区段异常情况 后面再对原来电路进行仔细分析查找其中的原因。一、测量程序#!/usr/local/bin/python# -*- coding: gbk -*-## TEST1.PY -- by Dr. ZhuoQing 2026-10-27## Note:#fromheadmimport*fromtsmodule.tsvisaimport*dho924open(4)t,d1,d2dho924readraw(1,2)tspsave(data1,tt,d1d1,d2d2)printf(len(t))plt.plot(t,d1,lw3,labelPulse)plt.plot(t,d2,lw3,labelCharge)plt.xlabel(Time(s),colorsteelblue,fontsize24)plt.ylabel(Voltage(V),colorsteelblue,fontsize24)plt.grid(True,whichboth,linestyle--,alpha0.7)plt.legend(locupper right,fontsize24)plt.xticks(fontsize16)plt.yticks(fontsize16)plt.tight_layout()plt.show()#------------------------------------------------------------printf(\a)#------------------------------------------------------------# END OF FILE : TEST1.PY##!/usr/local/bin/python# -*- coding: gbk -*-## TEST2.PY -- by Dr. ZhuoQing 2026-10-27## Note:#fromheadmimport*importscipy t,d1,d2tspload(data1,t,d1,d2)#t1 where(t0.00023)[0][0]#t2 where(t0.00053)[0][0]t1where(t0.0003)[0][0]t2where(t0.0007)[0][0]printf(t1,t2)#------------------------------------------------------------I1/470N100vdimd2[t1:t2]tdimt[t1:t2]dvdim[(v1-v2)/(tt1-tt2)forv1,v2,tt1,tt2inzip(vdim[N:],vdim[:-N],tdim[N:],tdim[:-N])]#------------------------------------------------------------NNN*5kernelones(NN)/NN smoothconvolve(array(dvdim,dtypefloat),kernel,modevalidate)printf(len(smooth),t2-t1)#------------------------------------------------------------cdim[I/dvfordvinsmooth]#plt.plot(vdim[:-1], cdim, lw3)#plt.plot(dvdim, lw3)plt.plot(vdim[:len(cdim)],cdim,lw3)plt.xlabel(Voltage(V),colorsteelblue,fontsize24)plt.ylabel(Capacitor(F),colorsteelblue,fontsize24)plt.grid(True,whichboth,linestyle--,alpha0.7)plt.xticks(fontsize16)plt.yticks(fontsize16)plt.tight_layout()plt.show()#------------------------------------------------------------plt.plot(t[t1:t2],d2[t1:t2],lw3)plt.xlabel(Time(s),colorsteelblue,fontsize24)plt.ylabel(Voltage(V),colorsteelblue,fontsize24)plt.grid(True,whichboth,linestyle--,alpha0.7)plt.xticks(fontsize16)plt.yticks(fontsize16)plt.tight_layout()plt.show()#------------------------------------------------------------# END OF FILE : TEST2.PY#■ 相关文献链接:利用NE555测量电容的压电效应-CSDN博客基于PMOS构建的恒流电路