gFG_capacity_by_C,库仑计计算的电量值.也等于SOC的值.
DOD0对应初始的电量值.
Car 为t时间内, 流过Rfg电阻电流的电量.
Qmax为电池的容量.
1.开机头10S.
2.插拔USB.
3.电池充满的状态
4.电池容量为15%和0%的情况
正常情况下如果,库仑计获取的初始电量DOD0的值比较准确,
那么,gFG_capacity_by_c的值会很准,
实际上,gFG_capacity_by_c跟实际的电量会有点小偏差。不过该值
会在充电过程中与实际电量同步起来。譬如充电过程中是在100%
不充电过程中是在15%和0%
[PLATFORM]
采用Fuel gauge方案。
1.充电情况
A.充电到99%,需要等上一段比较长的时间才能到100%.
先将UI显示即Bat_Volt_Check_point定格在99.直到电池满足充满条件时,才会让Bat_Volt_Check_point
值变成100,并在UI上面显示100,此时底层的值为gFG_capacity_by_C以及Bat_Volt_check_point为100.
上层会show满的图片,并停止充电。
B.充电从90%(可能是其他值)到100%需要的时间比较长
DOD1 = DOD0 + Car/Qmax,Car = I*t,每增加一%,如果电流恒定,那么电量增加的时间是相等,在CC阶段,电流比较大,每增加1%的时间,
所需要的时间比较短,在CV阶段,电流减小,每增加1%的时间就会变长。
假设FG电量的方式gFG_capacity_by_c为96,电池满足充满的条件,此时,
Bat_volt_check_point(即UI显示)会每10S增加1,当Bat_volt_check_point为100时,
此时会调用FGADC_SW_RESET_parameter,直接将DOD1变成0,也即是
gFG_capacity_by_c变成100.
C.出现在比较低的电量,此时插入USB,发现会在一个变量上面停留譬如10-20min,
过了这段时间电量的增长速度就变正常了。
那么UI上面会一直停留在20%,直到FG的电量从15%增加到20%,UI上面电量的增长
速度才会恢复正常。
不插充电器,UI只会下降不会上升
又会重新充电,但是,UI上面会一直显示100%,假设这个时候拔掉USB,这个时候
电量会从100%每1min down 1%去syc FG的电量。
此时还不会直接update DOD0为100,也即gFG_capacity_by_c不会是100,可能只有96.
如果刚好在这个时候拔掉USB,此时,bat_volt_check_point会每1min掉1%,去syc FG的电量,
假设FG的电量为96,那么4min后,UI会显示96,此时电量的显示就会比较平稳。
置为真。此时会停止充电,并把update DOD0的值为100,此时对应的
gFG_capacity_by_c为100,就不会出现100下降很快的问题。
2.不充电情况
A.出现在20或者其他值,很快下降到15%,或者是在15%处停留时间比较久。
—->
当真实电池电量达到15%(电压的方式得到),此时UI上的显示以及FG的电量会去
同步15%这个点。
的电量达到15%.而此时FG的电量会update DOD0,停留在15这个值.
即FG的值,具体也是20S,update一次,直到15%
—->
当实际的电量达到0%,也即电池电压的值小于3.4V,此时,UI上面会每10S,下降1直到
0%,而FG的电量也会每10S,update一次,直到0.
—->
当FG的计算方式先达到0%,那么UI上面会保持为1%,直到真实的电池容量变为0,也即是
电池电压小于3.4V
而当有点小偏差,那么就会出现上述的一些情况.
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223774.html原文链接:https://javaforall.net
