Linux kernel 如何计算电池充电结束前的剩余时间

Linux kernel 如何计算电池充电结束前的剩余时间,linux-kernel,sysfs,Linux Kernel,Sysfs,我有以下输出: $ cat /sys/class/power_supply/BAT0/uevent POWER_SUPPLY_NAME=BAT0 POWER_SUPPLY_TYPE=Battery POWER_SUPPLY_STATUS=Charging POWER_SUPPLY_PRESENT=1 POWER_SUPPLY_TECHNOLOGY=Li-ion POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000 POWER_SUPPLY_VOLTAGE_NOW=12

我有以下输出:

$ cat /sys/class/power_supply/BAT0/uevent
POWER_SUPPLY_NAME=BAT0
POWER_SUPPLY_TYPE=Battery
POWER_SUPPLY_STATUS=Charging
POWER_SUPPLY_PRESENT=1
POWER_SUPPLY_TECHNOLOGY=Li-ion
POWER_SUPPLY_VOLTAGE_MIN_DESIGN=10800000
POWER_SUPPLY_VOLTAGE_NOW=12178000
POWER_SUPPLY_CURRENT_NOW=904000
POWER_SUPPLY_CHARGE_FULL_DESIGN=4042000
POWER_SUPPLY_CHARGE_FULL=4042000
POWER_SUPPLY_CHARGE_NOW=3916000
POWER_SUPPLY_MODEL_NAME=
POWER_SUPPLY_MANUFACTURER=HP
POWER_SUPPLY_SERIAL_NUMBER=
我想计算电池充电结束前的剩余时间。
我可以这样做吗:(电源供应充电满-电源供应充电现在)/电源供应电流现在?对于该输出,剩余时间为:(4042000-3916000)/904000=.13938053097345132743每小时或8分钟。这是计算充电结束前剩余时间的正确公式吗?

因为现在的电源电流为µA,电源充电为µAh

(电源充电已满-电源充电已满)/电源电流已满


将以小时为单位计算达到电源充满的时间,假设电源电流保持不变。

如果电源电流单位为“每小时充电”,则应正确。是的,以微安为单位的电荷单位和以微安为单位的电流单位。@mhd,是否已解决?什么是获得电池剩余时间的正确方法?我想你必须添加一个假设,即电池充电的速度与电池放电的速度相同。因为1ah/1A=1h。这是蓄电池在放电过程中产生1A的时间。也许我错了,因为我对物理学不太了解。安培是一种以“库仑每秒”为单位的电荷率。对于更简单的数字,已选择Ah单位来测量实际电荷量(库仑)。Ah/s也是一种费率。电池放电率可能与充电率有很大不同,但其计算公式为:POWER\u SUPPLY\u charge\u NOW/(-POWER\u SUPPLY\u CURRENT\u NOW)。同样,这是恒定电流下的平均剩余时间。如果你想获得更精确的瞬时速率,你需要了解微积分的基础知识。我不确定这一点最近是否发生了变化,但我没有任何与当前速率相关的属性。然而,我确实看到了现在的能量,它似乎显示了每小时有多少能量被带走或增加。所以用能量除以功率,就可以得到剩余的小时数。