测量电池电量的两种方式

如何测量电池的当前电量

项目背景:

本人在做项目的时候需要对使用到的锂电池电量进行监控,出于时间考虑,这里我采用的思路是使用原装充电器对其进行充电,而不是自己研发充电器。

这里采用一个电量测量模块(例如库仑计)在外部对电池的电量进行监控,当电量低于预警值时,自动开始充电,而当电量高于预警值时,自动断电。这里的自动充电和断电是指打开和关闭充电器的动作。如下图所示:
在这里插入图片描述

项目方案

在确定了如何来实现电池的自动充电方案以后,这里还需要做的就是如何测量电池的电量,经过查阅资料发现,测量电池的当前剩余容量一般有两种方法:

1、通过测量电池的电压来估算当前电量

电池在放电过程中,其电压会随着电池电量的降低而逐渐降低,因此这里可以通过测量当前电池电压来估算电池的电量。
在这里插入图片描述
根据上面的放电曲线可以看出,电池电压是随着电池电量的减少而逐渐降低的,但是这个关系并不是成比例的。也就是说电量减少50%时,电压并没有减半。因此要想根据电压来估算当前的电池电量,必须知道你所使用的电池的放电曲线。在有了放电曲线以后,可以提前将该曲线通过一个二维数组存储起来,当每次测得电池电压的时候,就可以对应着这个曲线去查表(查二维数组),然后便可以得到当前的电池电量情况。

即便如此,我们测得的电池电量还是和实际情况有较大的差异。因为在实际使用中,我们的电流大小一般是变化的,因此我们这里使用电压来估算电量,一定是在对电池电量不敏感的情况下方可使用,否则会产生较大的误差。

2、使用库仑计来测量电量

要想精确的得到电池当前还剩多少的电量,我们可以使用库仑计来测量。首先谈谈库仑计的工作原理:
举个例子:
当你在驾车时,如果想知道当前时速是多少,那么我们可以通过码表得知,如果想知道我们已经跑了多远了,那么可以通过里程表得知。那么里程表是如何得到我们所跑过的路有多长呢?有两种方式:一是直接通过编码器测量轮子所转过的圈数,然后乘以轮子的周长便可以知道我们实际的行驶里程。还有没有其他方式呢?当然有,我们知道,当车子匀速行驶的时候,里程=速度*时间,通过这个公式便可以通过当前的速度来得知我们的行驶里程。不过这里不是简单的速度乘以时间,而是对速度进行积分来得到里程。

那么对于库仑计也是类似的,我们可以通过测量一个采样电阻两端的电压,从而得到流经采样电阻的电流(这里的电流就类似于车子的当前时速),然后对电流做积分,就可以得到我们截止目前为止,所消耗的总的电荷量(也就是电量)。然后再通过剩余的电量除以额定容量,就可以得到当前电量的百分比,这种方式来测量电池的电量比较准确。

但是在使用的时候发现一个问题,使用库仑计来测量当前剩余电量时,是不能直接得到电池电量的!要使用库仑计来准确测量电池的电量,那么必须是在电池满电量时,库仑计就开始工作,然后随着电池的使用,库仑计一直在对流经的电流进行积分,从而得到当前已经消耗了多少电荷量。换句话说,库仑计测量的是电池电量的消耗量,是时间上累积的过程,而不是电池的剩余电量。

那么就有人要问了,那我们生活中的电池充电(手机、电动车、充电宝之类的)是如何测量当前剩余电量的呢?首先这一类的应用和我的项目背景是有差异的,我的项目是利用现成的充电器来进行充电,而使用外部模块来测量电量,然后再外部通过控制开关的形式来开启和关断充电器的电源。而对于前面说的这些电池充电,其库仑计是和电池做成一体的,因此库仑计从始至终都是在工作的,其内部的数据也不会丢失,放电的时候,可以记录消耗了多少的电荷量,同样,在充电时,也可以记录增加了多少电荷量,如下面的原理图,左侧是充电过程,右侧是放电过程。而在我的项目中,充电过程是没有流经库仑计的(购买的锂电池充放电接口是分开的),因此也就不知道流进电池的电荷量有多少。因此这种情况下是不能使用库仑计来测量当前电量的!!!
在这里插入图片描述
本项目中有使用到库仑计,因此选择了一款测量范围高达60V的库仑计,由于该芯片的资料较少,因此这里将其datasheet翻译了过来,以供大家参考。

LTC2944库仑计芯片使用说明
说明:
本人在做项目时需要用到电池电量管理的功能,由于没有找到现成的电源管理模块,查找到ADI半导体公司的LTC2944库仑计芯片满足我的使用要求,但是网上资料甚少,只有说明书,因此这里将原英文数据手册翻译过来,以方便使用,这里将该说明书开源,以方便有需要的小伙伴。

下载链接:LTC库仑计芯片使用说明书

这里对该芯片的使用做以下几点说明:
1、该芯片可测量的最高电池电压为60V,通过IIC总线接口与主控板进行通信。

2、该芯片的使用相对来说较为方便,外围电路只需要一颗采样电阻,加几颗普通电阻和电容即可。

3、该芯片的使用主要是对于采样电阻和预分频系数进行选择,然后再通过IIC总线对其内部寄存器的数据进行读取即可。

4、由于我在前期对于库仑计中的 qLSB有些许疑问,因此在这里记录下来。

5、手册中的qLSB是指能够测量的最小单位的电荷量,也就是16位寄存器的最低位所表示的电荷量(即分辨率),因此通过qLSB可以知道,所能测得的最大电池容量为65535*qLSB。
这里注意一下,qLSB的值是通过采样电阻和预分频系数M计算出来的,即:
在这里插入图片描述
因此在实际项目中,不同的电池容量,不同的电流大小,所选取的采样电阻和预分频系数都是不一样的。

6、对于预分频系数的选择,可以直接使用说明书中的图表3进行选择,然后再反带回去计算采样电阻值。电阻值通过公式计算出来的是可选的最大值,准确来说是最佳值。因为电阻值越大,那么测量精度越高,但是有可能会使得16位寄存器溢出,如果电阻值太小,那么测量精度越低,可能会使得16位寄存器的利用率较低(即只使用了寄存器的低几位)。

7、源代码很简单,这里可以参考另外一篇博客:LTC2941库仑计的驱动
因为LTC2941库仑计和LTC2944的使用方法几乎是一致的,连寄存器的地址都一样,因此该博客是一个很好的参考,至于该博客汇总提到的IIC驱动有问题,可以自己借鉴正点原子的IIC驱动试验源代码进行修改。

### 如何在Multisim中进行电容测量 #### 准备工作 在开始之前,确保已经安装并启动了Multisim软件。该软件提供了丰富的元件库和直观的操作界面,非常适合用于模拟各种类型的电路[^1]。 #### 构建测试环境 构建一个简单的RC充放电回路来间接测定未知电容器容量是一个常用的方法。具体来说,在电路中加入已知电阻R与待测电容C串联连接至直流电源Vcc两端;另外还需要接入电压表监测电容两端随时间变化而产生的充电曲线。当开关S闭合瞬间,电流会流经电阻向电容充电直到两者间达到相同电位差为止。此时通过记录下整个过程中不同时间节点对应的电压读数U(t),再利用公式\( C=\frac{Q}{V} \)(其中Q表示电量,V代表最终稳定下来的端口电压), 就可以计算得到被测件的大致数值大小。 对于更精确的结果获取,则建议采用交流电桥的方式来进行测量。这种方式基于惠斯通电桥原理改造而来,专门针对无源器件特性优化调整后的版本能够有效提高精度水平。其核心在于保持两个相邻臂阻抗相等的同时让另两侧也满足同样的关系式Z1/Z2=Z3/Z4 (此处Z分别指代各部分综合呈现出来的复数形式下的总阻抗)[^3]。 #### 使用现成资源加速学习过程 考虑到实际操作可能存在一定难度,可借助于网络上分享的一些优质教学材料辅助理解掌握要点。例如有作者整理了一份详尽的《数电课设-电容测量电路Multisim仿真设计》文档集,里面不仅包含了详细的步骤说明还有配套的教学影片可供参考观摩[^2]。 ```python # Python代码仅作为示意,并非Multisim中的实现方式 def measure_capacitance(voltage_over_time, resistance_value): """ 计算给定时间和对应电压值列表以及固定电阻情况下估算出电容值 参数: voltage_over_time : list of tuples [(time, voltage)] resistance_value : float 返回: capacitance : float """ import math time_points = [point[0] for point in voltage_over_time] voltages = [point[1] for point in voltage_over_time] # 假设初始状态完全未充电即t=0时u_c(0)=0 initial_voltage = 0 final_voltage = max(voltages) charging_timescale = [] for i in range(len(time_points)): if abs(final_voltage - voltages[i]) < 0.01 * final_voltage: break tau_estimate = -(resistance_value * ((voltages[i]-initial_voltage)/(final_voltage-initial_voltage))) charging_timescale.append((time_points[i],tau_estimate)) average_tau = sum([item[1] for item in charging_timescale])/len(charging_timescale) estimated_capacitance = average_tau / resistance_value return estimated_capacitance ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TomWang-0214

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值