理解 与 计算 物联网产品的电池使用寿命
前言
在物联网领域,在保证产品性能的前提下,产品的功耗是做得越来越低,针对物联网领域的低功耗无线芯片的功耗也是越来越低。
作为研发人员,除了能够设计出满足需求的产品,还得要会计算自己的产品能工作多长时间,本文我们就来说明一下如何计算低功耗产品的工作时长。
我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开!
一、电池容量基础
在计算电池使用时长之前,我们必须得明白电池容量的含义。本文不深挖,只是把我们需要理解的部分解释清楚。
1.1 电池容量单位
电池的容量 表示在一定条件下电池放出的电量,我们现在看几组电池的参数图片:
电池容量的表示形式为 毫安时(mAh)和 安时(Ah)。
电池电量的表示形式为 瓦时(Wh) ,它是电池容量 (Ah) 和电池电压 (V) 的乘积。
这里只需要记住 有 2 个单位:
毫安时(mAh) 和 瓦时(Wh)。
毫安时(mAh) 和 安时 (Ah) 在我看来是一样的,因为一个是 mA 一个是 A ,1A = 1000mA, 都是电流单位,就像 cm 和 m 一样都是长度单位 。
对于我们物联网产品常用的 电池来说,更多的表示单位就是 毫安时 (mAh),我们也需要理解 这个单位来计算我们产品的使用时长 。
1.2 理解电池容量
那我们如何去理解这个 毫安时 (mAh)?
比如一个 1000 mAh 的电池:
表示该电池在放电电流为 1000mA 情况下能维持 1 小时完全放电;
或者是放电电流 100 mA 的情况下位置 10 小时的完全放电;
常见几点疑问
疑问 1: 这里可能有些人会有个疑问,电压呢? 电压不考虑吗?
这里我们必须要知道,电池都会有一个指标就是供电电压值。
比如一个电池指标为 3.6V 1000mAh ,那么就表示:
他可以在提供 3.6V 的电压输出的情况下,放电电流 100mA 的情况下工作 10 个 小时。
疑问 2: 这个电池用了一段时间电压不是会下降吗?那么这个时候电量算法是不是就变了?
对于我们以前的认知而言,就是电池用久了,就是快没电了,电压会下降,那么这个时候是不是就算不了了?
我是矜辰所致,全网同名,手动防止抄袭 = = !
这里你首先得知道这里是电池 没电了! 没电是什么情况,电压确实会下降,但是这个时候电池已经可以直接换了,过了可以计算的时候了。 因为,电池的指标写的 3.6V 1000mAh, 那么理论上来说,电池就能够保证在你放掉自己标定电量的时间内,电压保持在 3.6V。 什么意思呢,就是放电电流 100mA ,工作到 10 个小时的时候, 电池可以保证电压稳定在 3.6V 。 过了 10 个小时,对于电池而言,他已经把电用光了,你电压下降或者出现别的什么情况,都已经是情理之中,他已经是没用了的。
我也记得以前小时候电池没电了,给他压扁,好像还能挤出一点电来用用,这个…… = =!
对于这一点,有位粉丝朋友给了我一个很好的说明,这里放出来给大家参考:
放电过程中电压会下降,但是最多降到标称电压位置,就会停止输出,类似电池标称电压 3.6,满电电压 4.2,放电过程中会随着电量的减小而电压下降,降到大约标称电压左右时,有个参数叫放电截止电压的参数附近,会停止放电。也就是传统意义的电用没了。
1.3 一个好的比喻
我们再来加深一下对电池容量的理解,文章开头就说了:电池的容量表示在一定条件下电池放出的电量。
把电池比作装水的容器!
我们可以把电池容量看成一个装水水桶, 里面的装水多少已经固定了,如果你用小管子放水,放完需要时间长,对应放电电流小,使用时间长, 如果你用大管子放水,放完需要时间短,对应放电电流大,使用时间短。
当然你也可以大管子放一会,小的放一会,甚至是不放,这样看来完全是一个道理。
使用这个比喻,是否就能加能理解电池的容量了 (* ̄︶ ̄) !
1.4 电池的衰减与自放电?
这里要说明一下,本文基本上不考虑电池的衰减与自放电。
虽然电池确实是有自放电,而且如果是充电电池用久了确实会有衰减,但是考虑这些不仅白白增加了计算难度,甚至在某些情况下让我们无法进行理论计算。
而且,现在有些物联网产品专用的电池,自放电已经做到了很好的地步了,就拿博主自己使用的 锂亚电池来说:
而对于充电的锂电池,确实长期充放电对电池容量的影响不容忽视,确实会衰减,这个时候我们也只能初略的估计计算,因为衰减的百分比也不是一个确定的数字。
不仅是电池本身,对于低功耗的电池产品而言,我一般都会并联一个大容量钽电容用来稳压(如果没有大容量钽电容,无线芯片在发送无线报文的一瞬间因为电流忽然增大很多,会导致整体电压不稳,可能会使得芯片复位或者其他问题),电容本身也会存在自放电,所以严谨的说起来,这些都是影响电池电量的因数。
对于本文后面的计算,我们暂时不考虑衰减与自放电。
二、计算电池使用时长
铺垫了那么多,才到我们关键的环节,上面的说明是用一个固定的放电电流来说明电池的电量的,对于我们的低功耗产品而言,不可能始终保持在同样的电流状态,休眠时电流低,唤醒时电流高,本小结就来说明一下物联网产品上如何计算电池的使用寿命。
经过前文我们说过, 电池 我们就比作转满的一桶水,我们不管用粗管子(大电流)还是细管子(小电流)放水(电),我们最终就是计算需要多久放完。
在我们的物联网低功耗产品中,大多数情况下,休眠唤醒是有周期规律的,即便没有周期规律,比如类似于一些 被动的人感,门磁等设备,我们可以后台统计每天的平均值也能估算出一天休眠唤醒的次数。
电池使用时长的大体思路为:以一定时间为单位,进行平均电流的计算,从而得到使用时长,关键在于求出平均电流。
2.1 示例 1(周期唤醒传感器)
我们示例 1 ,先来计算一个周期唤醒的传感器使用时长:
条件如下:
周期上报传感器
电池电量:3600mAh
休眠电流:300uA
唤醒工作电流: 10mA
唤醒工作时间: 1S
唤醒周期: 1min
这里说明一下 1min 这个周期,我们这里以 59S 的休眠时间 与 1S 的唤醒时间 为说明
由上面的条件,因为一个完整的周期为 60S ,我们如果算出一个完整周期的平均电流,我们可以近似的认为传感器所有的时间都是以这个平均电流在工作的,那就直接可以算出使用的时间。
平均电流 :
平均电流 ((59 X 0.3)mA + (1 X 10)mA )/ 60 ≈ 0.46 mA
电池大概使用时长:
时长 3600 / 0.46 h = 7826 h
2.2 示例 2(被动唤醒传感器)
条件如下:
人体红外传感器
电池电量:1200mAh
休眠电流:20uA
唤醒工作电流: 10mA
唤醒工作时间: 0.5S
人体红外传感器的报文周期是不固定的,理论情况,如果一直有人,会每 10S 发送一次有人,如果没人,2 h 发送一次心率报文
那么这种不固定的我们计算时间,我们可以自己定义一个极限的理论场景,然后得到一个时间。
比如上面的传感器,我们可以假设: 白天一直有人 12 小时, 夜间一直没人,12 小时
那么白天的 12h 就是 10s 发送一次,10s 一个周期,可以求出白天 12 h 的平均电流。
夜间的 12h 就是 2h 发送一次, 2h 一个周期,求出夜间 12 h 的平局电流。
最后求出一天 24 h 的平均电流,求出使用天数。
夜间平均电流:
夜间平均电流 ((14399 X 20)uA + (1 X 10000)uA )/ 14400 ≈ 20 uA
上面的 14400 是怎么来的?
因为传感器唤醒时间为 0.5s ,那么 2 个小时是多少个 0.5 s ?
2 个小时 = 2 x 60 x 60 = 7200 s = 14400 个 0.5s
白天平均电流:
白天平均电流 ((19 X 20)uA + (1 X 10000)uA )/ 20 = 519 uA
上面的 20 ,是因为传感器 10s 一次周期,10s 一次周期就是 20 个 0.5s ,就是 19 个正常的休眠时间,1 个唤醒时间。
结合夜间电流和白天电流,计算一天平均电流:
((519uA X 12) + (20uA X 12) ) / 24 = 269.5uA = 0.2695mA
电池大概使用时长:
电池大概能够使用时长 1200 / 0.2695 h > 4452 h > 185 天
但是因为我们算的极限情况,白天不可能正真的一直有人,传感器发送报文的功耗为此传感器的大头,所以可以得出传感器实际使用时间会比这个时间长很多。
如果确实需要后续计算,可以在后台统计一定时间的传感器白天报文数量后做进一步的精确计算。
供电电压变换的说明
有时候为了测量产品的功耗我们可能会使用直流电源给产品供电方便测量,可能会和最终使用电池的场合下的供电电压不一样,这里就得需要算出产品功耗,转换一下不同电压下的电流。
供电电压大,板子肯定工作电流会小(电源整体入口),供电电压小,工作电流大 (电源整体入口),但是一块板子的功率可以认为是一样的,最后计算的时候要记得把电流换算成使用电池供电的产品电流。
结语
本文带大家理解了一下电池容量,同时给出了电池使用时长的理论计算方法。
当然在实际使用的时候,电池的使用时长要考虑多方面的因数,需要考虑到自己产品的应用场合,以及选择的电池性能等多方面的因数。
如果大家有好的意见,欢迎评论区留言,好了,本文就到这里,谢谢大家!
版权声明: 本文为 InfoQ 作者【矜辰所致】的原创文章。
原文链接:【http://xie.infoq.cn/article/a6b7dea21afac1c6cf90d6b02】。文章转载请联系作者。
评论