铁头娃 发自 凹非寺
量子位 出品 | 公众号 QbitAI

电池寿命的确定,是移动硬件发展的重要一环,但是由于电池电化学反应的不确定性以及不同的使用环境和习惯,电池寿命变成了一门玄学。

不过柏林的三位小伙伴,利用Tensorflow,在原有的预测体系基础上。更近一步,完成了电池的全寿命预测。

捋清数据

研究者在原始模型中,统计了124块锂电池的充放电循环次数中的数据作为寿命指标。

简单来说,从完全充满电到完全放光电是一个循环,当循环的次数多到锂电池只能容纳以前电量的80%时,电池寿终正寝。

研究中统计的电池循环次数从150到2300,差异巨大。

但是这个过程中的数据不仅只是记数,过程中输入的连贯充电循环可以作为窗口,每个窗口有一个“当前循环数”和“剩余循环次数”。除此之外,每个窗口有一个目标值,这个目标值以最后循环的特征值为准。

在每个电池循环周期中,电池的电压,电流,温度,电荷的动态变化也需要统计。并且还会出现像内阻,电荷量,通电时间等定量数据。

之前说过,入选研究的电池,通电循环的次数各不相同。

有的循环多,有的循环少,那跟时间变化相关的数据就不好统一。毕竟循环了几千次电池的电流,不能跟刚用两三次就超龄报废的电池电流做对比。

针对这个问题,研究者首先以放电时电池的电压变化范围代替时间作为变化量的参考基准。

因为电池的电压范围都是一样的,这就有了同步的参考范围。之后插补随电压变化的电荷量和温度值,最后给以电压为基准,划分量程,就能进行完整的数据参照了。

构建模型

虽然数据详细清晰,但是数组和标量数据显然不能简单塞进一个模型里。

研究者利用Keras functional API作为构建模型的工具,对数组数据和标量数据分开导入。

对于数组数据,他们将其与窗口的特征数据,例如窗口大小,长度,特征值数量相结合,形成三维矩阵。

之后在保证窗口的连续性基础上,利用Maxpooling处理,将矩阵分为三个Conv2D函数图层。

通过这个方式便可以提取出有相关性的信息,之后再把上述数据降维成一维数组。在数据都享有同一个变化范围,并且高度相关的前提下。

Conv2D扮演的角色,就像图片中代表颜色通道的数字一样,代表着数据的特征。

标量数据的导入流程也与之类似,不过只需要从二维降到一维就可以了。

经过处理后的两个具有特征映射的平面数组,就像处理好的食材一样,可以放心的做出模型需要的密集网络这盘大菜了。

训练优化

万事俱备,就差练手。

研究者撰写了一个指令集操作界面,从而方便进行训练的相关操作。

./train.sh

如果需要调整训练的epoch和窗口中样本的数量,只需要输入这个指令:

./train.sh -e 70 -w 10

将训练值(橙色)和验证值(蓝色)的数据趋势对比可以看出,在平均绝对偏差(MAE)方面,二者的差距在逐步缩小,曲线走势也在逐步接近。

为了缩小模型与验证值的差距,研究者选择加入Dropout工具进行进一步的拟合。

除此之外,研究者还需要对模型进行超参数调优,因此研究者对不同设置采用了网格搜索。

那么如何跟踪这些设置呢?这时候Tenserflow2.0的hparams module派上了用场。

经过这一系列操作之后,研究者就可以比较出拟合过程中最关键的参数了。

由于准确预测结果要求“当前循环”和“剩余循环数”都要大于零(电池都用废了你预测出来结果那是马后炮)。研究者使用了ReLU作为输出层的启动机制,这可以降低训练过程中模型的搜索范围,节约时间。

由于研究者的模型依赖CNN,所以他们尝试了不同的核心大小,最后在两种不同的学习速率前提下比较了不同设置下当前循环和剩余循环的MAE值。

误差值对比

当前循环的MAE值对比
剩余循环的MAE值对比

经过超参数调优后的最佳配置模型,在训练epoch上千的基础上,当前循环MAE为90.剩余循环MAE为115。虽说不算完美,不过对于研究者的应用方面预期来说,这个结果很不错。

预测上线

实际上曲线上可以看出。模型预测差距最小的位置,并不是训练终点,而是训练大概四分之三的时候。所以在研究者在这个分界点加入了检查点,从而重置模型来避免多次训练带来的偏差。

模型已经大功告成了,现在就可以尝试把结果转换成曲线,之后就可以上线应用了。

目前包括当前循环和剩余循环的输出曲线大概是这样的。

虽说对电池来说这有点“大限将至”的味道,但是对于用户而言,这确实是一个不错的进步。

现实的电池寿命预测,只是在原有电池容量的基础上对电池容量的变化进行大致参考。这样的评估模式,并没有考虑到不同的使用环境以及用户的使用习惯。

因为从低温到高温使用环境,从24小时插充电线到三天不开屏幕锁,电池的循环次数必然会产生差异,这还没有考虑不同批次电池的制造差异。因此这种模糊的估测并不能准确的表达电池的真正寿命。

而这个电池寿命预测模型,随着不同环境下电池寿命相关数据的丰富,可以为用户提供一个更为精准的使用参考。

至少它能提醒你,啥时候该换手机了。

参考链接

https://towardsdatascience.com/predicting-battery-lifetime-with-cnns-c5e1faeecc8f

榜单征集!三大奖项,锁定AI Top玩家

2019中国人工智能年度评选启幕,领航企业、商业突破人物、最具创新力产品3大奖项,欢迎优秀的AI公司报名参与!

AI社群 | 与优秀的人交流

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !

你的电池再充几次电就报废?机器学习帮你预测电池寿命相关推荐

  1. Thinkpad T460s电池2充不进去电的解决办法

    电脑型号是Thinkpad T460s,平时使用时都是接通电源使用(两个电池一直保持满电的状态).突然有一天使用了电池2后发现充不进去电,在Lenovo Vantage中显示状态良好.试了各种方法,比 ...

  2. 台式计算机电池能充电吗,笔记本电脑到底应该是边充电边用?还是没电再充?很多人搞错了...

    现在很多笔记本电脑渐渐代替台式电脑成为了大家的主力机. 但是,笔记本存在一个容易让人突然「花容失色」的问题--随时会出现电量不足的情况. 顾及到电池寿命问题,不知道大家有没有这样矛盾过: 笔记本电脑到 ...

  3. 科沃斯机器人电池激活_扫地机器人充不进去电怎么办

    原标题:扫地机器人充不进去电怎么办 扫地机器人是家庭里的好宝贝,因为他的存在为我们减轻了不少的生活压力,120㎡左右的卧室让扫地机器人每天打扫一遍,基本就没大扫除什么事.不过一些使用扫地机器人的朋友, ...

  4. “联想笔记本电脑的电池显示0%,充不进电” 解决方案

    品牌型号:联想 小新 潮7000 系统版本:Win10 情况描述:2018年暑假买的电脑,今年寒假(2022年1月19日)的一天,在没有连电源线的情况下,突然"滴"地一声,自动关机 ...

  5. 电动自行车电池[充不进电][铅酸电池][饿死]重新激活

    电动自行车有三个月没骑了,电池亏损,导致充不进电,直观现象:充电器插上就是绿灯.本着可靠省钱的原则,在网上搜索相关问题,不找师傅,自行解决. 网友提供的方法挺多的,首先试了下不用购买工具的方法: 1) ...

  6. 电脑电池修复_笔记本电脑充不进去电如何修复

    现在,很多人普遍拥有手机或者电脑, 高科技电子产品已经成为我们的必备品,在平时工作.生活学习等方面,我们聊天上网.玩游戏.看电影.听音乐等等都可以通过它们来实现,不得不说,电子产品让我们的生活更加便捷 ...

  7. 计算机电池维修心得,千米电脑维修师傅告诉你:笔记本电脑插电后,充不进去电怎么办?...

    原标题:千米电脑维修师傅告诉你:笔记本电脑插电后,充不进去电怎么办? 一.原因分析 1.软件问题 一般来说,很多电脑品牌如戴尔.联想.索尼等,都会为其笔记本电脑配备电源管理软件,如果启用了一定的&qu ...

  8. 华硕笔记本电池0%充不进电_华硕笔记本电池充不进电,0%可用(电池已接通,正在充电)...

    展开全部 笔记本电池充不进电怎么办?下文将为大家介绍笔记本电脑电池充不了电解决方法,有很32313133353236313431303231363533e58685e5aeb9313334313430 ...

  9. 苹果手机数据线充不了电_苹果手机充不进电怎么回事?iPhone充电没反应解决方法...

    我们日常在使用iPhone的过程中,经常会碰到苹果手机充不进电.其实也不仅仅是iPhone手机,包括iPad,还有安卓手机,也经常会碰到这个问题.导致手机充电充不进去的原因有很多,所以我们需要一一排查 ...

最新文章

  1. ps aux参数说明
  2. 干掉 Postman?测试接口直接生成API文档,这个工具我爱了
  3. 斯坦福-随机图模型-week1.0_
  4. Oracle ASM 进程之ASMB
  5. FileNotFoundError: [Errno 2] No such file or directory: 'traingingDigits/0_0.txt'
  6. vue中使用Vue-pdf在线预览
  7. 连通图遍历策略之深度优先搜索(C语言)
  8. 即时通讯软件线上系统维护工作总结
  9. Dataguard学习笔记
  10. Spark常用的算子以及Scala函数总结
  11. 大数据_Hbase-API访问_Java操作Hbase_数据操作_命名空间创建_表创建_表查询---Hbase工作笔记0013
  12. 【转载】linux下如何使用sftp命令
  13. js怎么实现ftp上传文件到服务器上,js ftp上传文件到服务器上
  14. 信号处理--傅里叶变换的性质及常用信号的傅里叶变换
  15. 【云存储】IOPS概念及测试方法
  16. Greeplum+GPTest
  17. LightProxy 无线端代理iOS,安装验证证书后仍不生效
  18. PCIe是如何工作的——How PCI Express Works
  19. 无需下载软件,有手就能做的线上个人简历
  20. IM1253B交直流电能计量模块(艾锐达光电)

热门文章

  1. 厉害!重庆参加马拉松赛人数7年翻10倍,今年区县马拉松赛事将大增
  2. 创建代码生成器可以很简单:如何通过T4模板生成代码?[下篇]
  3. 《深入理解Nginx:模块开发与架构解析》一1.2 为什么选择Nginx
  4. python网络编程——简单例子
  5. 关于CLSCompliant
  6. Mysql学习笔记【原创】
  7. html 滚动条向下滚动,如何实现元素随着滚动条向下滑动逐渐变小
  8. 禁用任何未使用的端口com_分享连接思科路由器控制台端口的正确设置
  9. YYAnimatedImageView--gif在ios14之后只能播放一次
  10. ios NSString 正则表达式 其它字符